diff --git a/.gitignore b/.gitignore index f5446c38145895a70b4bd952b6a71423a34868b2..79d3fb5b4f7e594493dc4df238514afba87fdf57 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,9 @@ FASPXX_macro.h *.synctex.gz *.log *.out -*.tex \ No newline at end of file +*.tex + + +build +install +__.SYMDEF* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b95183556174b24977531456fee75dc573a0fcb..e33d2386bbff37c9eb51e49bfae971932cdf29e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,37 +1,101 @@ # Minimum CMake version -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.21) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_C_COMPILER mpicc) +# set(CMAKE_C_COMPILER mpicc) # Project Name -project(FASPXX) +project(FASPXX VERSION 1.0.0) + +find_package(MPI REQUIRED) + +set(CMAKE_POSITION_INDEPENDENT_CODE ON) +option(BUILD_SHARED_LIBS "Build shared libraries" ON) + # Set the output library name -set(LIBRARY_NAME FASPXX) +set(LIBRARY_NAME faspxx CACHE STRING "The library name") +if(BUILD_SHARED_LIBS) + add_library(${LIBRARY_NAME} SHARED) +else() + add_library(${LIBRARY_NAME} STATIC) +endif() +add_library(FASP::faspxx ALIAS ${LIBRARY_NAME}) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) + +if(MPI_FOUND) + target_link_libraries(${LIBRARY_NAME} PUBLIC MPI::MPI_C MPI::MPI_CXX) + target_include_directories(${LIBRARY_NAME} PUBLIC ${MPI_INCLUDE_PATH}) +endif() + +add_subdirectory(utilities) +add_subdirectory(src/JSON) +add_subdirectory(src/MAT) +add_subdirectory(src/LS) +add_subdirectory(src/ITM) +add_subdirectory(interface) -# Add the source directories -file(GLOB_RECURSE SRC1 "src/*.c") -# message(STATUS "SRC1: ${SRC1}") -file(GLOB_RECURSE SRC2 "utilities/*.c") -# message(STATUS "SRC2: ${SRC2}") +# Install and export -file(GLOB_RECURSE SRC3 "interface/*.c") -# message(STATUS "SRC3: ${SRC3}") +include(GNUInstallDirs) +# set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR} CACHE PATH "the install path" FORCE) +install(TARGETS ${LIBRARY_NAME} + EXPORT faspxxTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + ) +install(DIRECTORY "include/faspxx" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -set(ALL_SRC ${SRC1} ${SRC2} ${SRC3} ) -# message(STATUS "ALL: ${ALL_SRC}") +set(FASPXX_INSTALL TRUE) +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + faspxxConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion + ) +install(EXPORT faspxxTargets + FILE faspxxTargets.cmake + NAMESPACE FASP:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/faspxx + ) +# export(TARGETS faspxx NAMESPACE FASP:: FILE ${PROJECT_SOURCE_DIR}/modules/faspxx-targets.cmake) +configure_file(${PROJECT_SOURCE_DIR}/faspxxConfig.cmake.in faspxxConfig.cmake @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/faspxxConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/faspxxConfigVersion.cmake" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/faspxx + ) -# add_compile_options( -g -std=gnu99) -add_compile_options(-O2 -DHAVE_CONFIG_H -std=gnu99) -# Include header directories -include_directories(include utilities src/LS/parcsr_ls/ src/LS/parbsr_ls/ src/MAT/csr_mv/ src/MAT/bsr_mv/ src/MAT/parcsr_mv/ src/MAT/parbsr_mv/ ) -# Create the shared library -add_library(${LIBRARY_NAME} SHARED ${ALL_SRC}) -install(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_SOURCE_DIR}/lib/) + +# Add a custom command named headers +add_custom_command( + OUTPUT ${PROJECT_SOURCE_DIR}/include/faspxx.h + COMMAND cat interface/*.c src/JSON/*.c src/MAT/*.c src/LS/*.c src/ITM/*.c utilities/*.c | awk -v name="faspxx.h" -f./utilities/mkheaders.awk > ${PROJECT_SOURCE_DIR}/include/faspxx.h + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + COMMENT "Generating faspxx.h header" + VERBATIM +) +add_custom_target(headers DEPENDS ${PROJECT_SOURCE_DIR}/include/faspxx.h) + + +# Add a custom command named codenum +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codenum_result + COMMAND find. -type d \( -name ".git" -o -name "data" -o -name "lib" \) -prune -o -type f -print | xargs wc -l + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + COMMENT "Counting lines of code" + VERBATIM + USES_TERMINAL +) +add_custom_target(codenum DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/codenum_result) + +# Add the source directories diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000000000000000000000000000000000000..f7cdc7e347bfaf68513375552af51769bb7a24c6 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,72 @@ +{ + "version": 3, + "cmakeMinimumRequired": { + "major": 3, + "minor": 21, + "patch": 0 + }, + "configurePresets": [ + { + "name": "default", + "displayName": "Default Config", + "description": "Default build configuration", + "generator": "Unix Makefiles", + "binaryDir": "${sourceDir}/build/release", + "installDir": "${sourceDir}/install/release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_C_FLAGS": "-O2 -DHAVE_CONFIG_H -std=gnu99", + "CMAKE_CXX_FLAGS": "-O2 -DHAVE_CONFIG_H", + "BUILD_SHARED_LIBS": "ON" + } + }, + { + "name": "debug", + "displayName": "Debug Config", + "description": "Debug build configuration", + "generator": "Unix Makefiles", + "binaryDir": "${sourceDir}/build/debug", + "installDir": "${sourceDir}/install/debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_C_FLAGS": "-g -Wall -DHAVE_CONFIG_H -std=gnu99", + "CMAKE_CXX_FLAGS": "-g -Wall -DHAVE_CONFIG_H", + "CMAKE_INSTALL_PREFIX": "build/install/debug", + "BUILD_SHARED_LIBS": "ON" + } + },{ + "name":"debug-static", + "displayName":"Debug Static Config", + "description":"Debug build configuration with static libraries", + "inherits":["debug"], + "binaryDir": "${sourceDir}/build/debug-static", + "installDir": "${sourceDir}/install/debug-static", + "cacheVariables": { + "BUILD_SHARED_LIBS": "OFF" + } + } + ], + "buildPresets": [ + { + "name": "default-build", + "displayName": "Default Build", + "configurePreset": "default", + "configuration": "Release", + "jobs": 4 + }, + { + "name": "debug-build", + "displayName": "Debug Build", + "configurePreset": "debug", + "configuration": "Debug", + "jobs": 4 + }, + { + "name": "debug-static-build", + "displayName": "Debug Static Build", + "configurePreset": "debug-static", + "configuration": "Debug Static", + "jobs": 4 + } + ] + } \ No newline at end of file diff --git a/README.md b/README.md index 0c43e1c5de5d7111d4bcb62070f6c0bfac5994d3..8d6114f149ea3efb6fd676963c445288fd1c45cb 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,26 @@ make make run # or make mpirun4 or mpirun -np 4 ./demo demo.json ``` +#### Dynamic library +``` +// configure +cmake --preset debug +// build +cmake --build --preset debug-build +// install +cmake --build --preset debug-build --target install +``` + +#### Static library +``` +// configure +cmake --preset debug-static +// build +cmake --build --preset debug-static-build +// install +cmake --build --preset debug-static-build --target install +``` + ### 5. Results ```txt diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..476a07fdbd4d1d45ac92906ab820b15eef574922 --- /dev/null +++ b/example/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.21) + +project(example VERSION 1.0.0) + +find_package(MPI REQUIRED) +find_package(faspxx REQUIRED) +add_executable(demo demo.c) +target_link_libraries(demo PRIVATE FASP::faspxx) \ No newline at end of file diff --git a/example/CMakePresets.json b/example/CMakePresets.json new file mode 100644 index 0000000000000000000000000000000000000000..4c40a2164ad03fa46bb5a184d73dd255ce13a8ec --- /dev/null +++ b/example/CMakePresets.json @@ -0,0 +1,50 @@ +{ + "version": 3, + "cmakeMinimumRequired": { + "major": 3, + "minor": 21, + "patch": 0 + }, + "configurePresets": [ + { + "name": "default", + "displayName": "Default Config", + "description": "Default build configuration", + "generator": "Unix Makefiles", + "binaryDir": "${sourceDir}/build/release", + "installDir": "${sourceDir}/install/release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + }, + { + "name": "debug", + "displayName": "Debug Config", + "description": "Debug build configuration", + "generator": "Unix Makefiles", + "binaryDir": "${sourceDir}/build/debug", + "installDir": "${sourceDir}/install/debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "faspxx_DIR": "${sourceDir}/../install/debug/lib/cmake/faspxx", + "CMAKE_INSTALL_PREFIX": "build/install/debug" + } + } + ], + "buildPresets": [ + { + "name": "default-build", + "displayName": "Default Build", + "configurePreset": "default", + "configuration": "Release", + "jobs": 4 + }, + { + "name": "debug-build", + "displayName": "Debug Build", + "configurePreset": "debug", + "configuration": "Debug", + "jobs": 4 + } + ] + } \ No newline at end of file diff --git a/example/README.md b/example/README.md index 06bbcc8b21d6602ab22af0bcfd86c1143dbb5625..cf6e9860d485617858fe8f7b3d886989b872a42d 100644 --- a/example/README.md +++ b/example/README.md @@ -14,3 +14,10 @@ make mpirun4 # i.e. mpirun -np 4 ./demo demo.json - `new_demo.json`: (generated) json file which is generated by `demo.c` for debugging. It is generated via replacing some name values in `demo.json` with the corresponding number values. - `Makefile`: make file - `README.md`: this file + + +``` +cmake --preset debug +cmake --build --preset debug-build +cmake --build --preset debug-build --target install +``` diff --git a/faspxxConfig.cmake.in b/faspxxConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..2ad6b9d885bf619554bf8065319da00ba40ecd5b --- /dev/null +++ b/faspxxConfig.cmake.in @@ -0,0 +1,11 @@ +include(CMakeFindDependencyMacro) + +# Capturing values from configure (optional) +# set(my-config-var @my-config-var@) + +# Same syntax as find_package +find_dependency(MPI REQUIRED) +# Any extra setup + +# Add the targets file +include("${CMAKE_CURRENT_LIST_DIR}/faspxxTargets.cmake") \ No newline at end of file diff --git a/FASPXX_config.h b/include/faspxx/FASPXX_config.h similarity index 100% rename from FASPXX_config.h rename to include/faspxx/FASPXX_config.h diff --git a/include/faspxx.h b/include/faspxx/faspxx.h similarity index 99% rename from include/faspxx.h rename to include/faspxx/faspxx.h index 6e71e354f0b42367f38565fe77ab7f1bb7122d42..2009173a3584ab89563be5a1332704746aaed798 100644 --- a/include/faspxx.h +++ b/include/faspxx/faspxx.h @@ -20,17 +20,17 @@ extern "C" { #endif -#include "../utilities/_faspxx_utilities.h" -#include "../src/JSON/cJSON.h" -#include "../src/LS/LS.h" -#include "../src/LS/parcsr_ls/faspxx_parcsr_ls.h" -#include "../src/LS/parbsr_ls/faspxx_parbsr_ls.h" -#include "../src/MAT/MAT.h" -#include "../src/MAT/parcsr_mv/parcsr_mv.h" -#include "../src/MAT/parbsr_mv/parbsr_mv.h" -#include "../src/MAT/csr_mv/csr_mv.h" -#include "../src/MAT/bsr_mv/bsr_mv.h" -#include "../src/ITM/ITM.h" +#include "utilities/_faspxx_utilities.h" +#include "src/JSON/cJSON.h" +#include "src/LS/LS.h" +#include "src/LS/parcsr_ls/faspxx_parcsr_ls.h" +#include "src/LS/parbsr_ls/faspxx_parbsr_ls.h" +#include "src/MAT/MAT.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" +#include "src/MAT/bsr_mv/bsr_mv.h" +#include "src/ITM/ITM.h" /*-------- In file: OCP_fim.c --------*/ diff --git a/interface/OCP_debug.h b/include/faspxx/interface/OCP_debug.h similarity index 100% rename from interface/OCP_debug.h rename to include/faspxx/interface/OCP_debug.h diff --git a/interface/OCP_decoup.h b/include/faspxx/interface/OCP_decoup.h similarity index 100% rename from interface/OCP_decoup.h rename to include/faspxx/interface/OCP_decoup.h diff --git a/src/ITM/ITM.h b/include/faspxx/src/ITM/ITM.h similarity index 100% rename from src/ITM/ITM.h rename to include/faspxx/src/ITM/ITM.h diff --git a/src/JSON/cJSON.h b/include/faspxx/src/JSON/cJSON.h similarity index 100% rename from src/JSON/cJSON.h rename to include/faspxx/src/JSON/cJSON.h diff --git a/src/LS/LS.h b/include/faspxx/src/LS/LS.h similarity index 100% rename from src/LS/LS.h rename to include/faspxx/src/LS/LS.h diff --git a/src/LS/parbsr_ls/_faspxx_parbsr_ls.h b/include/faspxx/src/LS/parbsr_ls/_faspxx_parbsr_ls.h similarity index 100% rename from src/LS/parbsr_ls/_faspxx_parbsr_ls.h rename to include/faspxx/src/LS/parbsr_ls/_faspxx_parbsr_ls.h diff --git a/src/LS/parbsr_ls/faspxx_parbsr_ls.h b/include/faspxx/src/LS/parbsr_ls/faspxx_parbsr_ls.h similarity index 100% rename from src/LS/parbsr_ls/faspxx_parbsr_ls.h rename to include/faspxx/src/LS/parbsr_ls/faspxx_parbsr_ls.h diff --git a/src/LS/parcsr_ls/faspxx_parcsr_ls.h b/include/faspxx/src/LS/parcsr_ls/faspxx_parcsr_ls.h similarity index 100% rename from src/LS/parcsr_ls/faspxx_parcsr_ls.h rename to include/faspxx/src/LS/parcsr_ls/faspxx_parcsr_ls.h diff --git a/src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h b/include/faspxx/src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h similarity index 100% rename from src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h rename to include/faspxx/src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h diff --git a/src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h b/include/faspxx/src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h similarity index 100% rename from src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h rename to include/faspxx/src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h diff --git a/src/LS/parcsr_ls/parcsr_relax/_faspxx_parcsr_relax_struct.h b/include/faspxx/src/LS/parcsr_ls/parcsr_relax/_faspxx_parcsr_relax_struct.h similarity index 100% rename from src/LS/parcsr_ls/parcsr_relax/_faspxx_parcsr_relax_struct.h rename to include/faspxx/src/LS/parcsr_ls/parcsr_relax/_faspxx_parcsr_relax_struct.h diff --git a/src/LS/parcsr_ls/parcsr_relax/faspxx_parcsr_relax.h b/include/faspxx/src/LS/parcsr_ls/parcsr_relax/faspxx_parcsr_relax.h similarity index 100% rename from src/LS/parcsr_ls/parcsr_relax/faspxx_parcsr_relax.h rename to include/faspxx/src/LS/parcsr_ls/parcsr_relax/faspxx_parcsr_relax.h diff --git a/src/MAT/MAT.h b/include/faspxx/src/MAT/MAT.h similarity index 100% rename from src/MAT/MAT.h rename to include/faspxx/src/MAT/MAT.h diff --git a/src/MAT/bsr_mv/_bsr_mv_struct.h b/include/faspxx/src/MAT/bsr_mv/_bsr_mv_struct.h similarity index 100% rename from src/MAT/bsr_mv/_bsr_mv_struct.h rename to include/faspxx/src/MAT/bsr_mv/_bsr_mv_struct.h diff --git a/src/MAT/bsr_mv/bsr_mv.h b/include/faspxx/src/MAT/bsr_mv/bsr_mv.h similarity index 100% rename from src/MAT/bsr_mv/bsr_mv.h rename to include/faspxx/src/MAT/bsr_mv/bsr_mv.h diff --git a/src/MAT/csr_mv/_csr_mv_struct.h b/include/faspxx/src/MAT/csr_mv/_csr_mv_struct.h similarity index 100% rename from src/MAT/csr_mv/_csr_mv_struct.h rename to include/faspxx/src/MAT/csr_mv/_csr_mv_struct.h diff --git a/src/MAT/csr_mv/csr_mv.h b/include/faspxx/src/MAT/csr_mv/csr_mv.h similarity index 100% rename from src/MAT/csr_mv/csr_mv.h rename to include/faspxx/src/MAT/csr_mv/csr_mv.h diff --git a/src/MAT/parbsr_mv/_parbsr_mv_struct.h b/include/faspxx/src/MAT/parbsr_mv/_parbsr_mv_struct.h similarity index 100% rename from src/MAT/parbsr_mv/_parbsr_mv_struct.h rename to include/faspxx/src/MAT/parbsr_mv/_parbsr_mv_struct.h diff --git a/src/MAT/parbsr_mv/parbsr_mv.h b/include/faspxx/src/MAT/parbsr_mv/parbsr_mv.h similarity index 100% rename from src/MAT/parbsr_mv/parbsr_mv.h rename to include/faspxx/src/MAT/parbsr_mv/parbsr_mv.h diff --git a/src/MAT/parcsr_mv/_parcsr_mv_struct.h b/include/faspxx/src/MAT/parcsr_mv/_parcsr_mv_struct.h similarity index 100% rename from src/MAT/parcsr_mv/_parcsr_mv_struct.h rename to include/faspxx/src/MAT/parcsr_mv/_parcsr_mv_struct.h diff --git a/src/MAT/parcsr_mv/parcsr_mv.h b/include/faspxx/src/MAT/parcsr_mv/parcsr_mv.h similarity index 100% rename from src/MAT/parcsr_mv/parcsr_mv.h rename to include/faspxx/src/MAT/parcsr_mv/parcsr_mv.h diff --git a/utilities/FASPXX_utilities.h b/include/faspxx/utilities/FASPXX_utilities.h similarity index 100% rename from utilities/FASPXX_utilities.h rename to include/faspxx/utilities/FASPXX_utilities.h diff --git a/utilities/_faspxx_utilities.h b/include/faspxx/utilities/_faspxx_utilities.h similarity index 100% rename from utilities/_faspxx_utilities.h rename to include/faspxx/utilities/_faspxx_utilities.h diff --git a/utilities/macro_printf.h b/include/faspxx/utilities/macro_printf.h similarity index 100% rename from utilities/macro_printf.h rename to include/faspxx/utilities/macro_printf.h diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad2a7b3b328b72379e0d02607a063d646fcd2b32 --- /dev/null +++ b/interface/CMakeLists.txt @@ -0,0 +1,2 @@ +set(SRC OCP_impec.c OCP_fim.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) diff --git a/interface/OCP_fim.c b/interface/OCP_fim.c index d048ac0f9ba7725480aae4d0d4d6a880d939aed1..e6dc8437454f51cfe305533f37d14ab6e9d24cd0 100644 --- a/interface/OCP_fim.c +++ b/interface/OCP_fim.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "OCP_decoup.h" +#include "interface/OCP_decoup.h" #include "faspxx.h" // FASPXX_Int DecoupType = 0; // 0: None, 1: ABF, 2: ANL, 3: SEM, 4: QI diff --git a/src/ITM/CMakeLists.txt b/src/ITM/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac6dcd3ef5aa292136cbcdea7e7bce88df2627f3 --- /dev/null +++ b/src/ITM/CMakeLists.txt @@ -0,0 +1,9 @@ +# set(ITM_LIB_NAME ${LIBRARY_NAME}_ITM) +# add_library(${ITM_LIB_NAME}) +# add_library(FASP::ITM ALIAS ${ITM_LIB_NAME}) + +set(SRC ITM.c ITM_richardson.c ITM_pcg.c ITM_pfgmres.c ITM_pbicgstab.c) + +# target_sources(${ITM_LIB_NAME} PUBLIC ${SRC}) + +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) diff --git a/src/JSON/CMakeLists.txt b/src/JSON/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..0f28a1b2ebc5b97b1a3964feb2e06d7f609ba0ba --- /dev/null +++ b/src/JSON/CMakeLists.txt @@ -0,0 +1,13 @@ +# set(JSON_LIB_NAME ${LIBRARY_NAME}_JSON) +# add_library(${JSON_LIB_NAME}) +# add_library(FASP::JSON ALIAS ${JSON_LIB_NAME}) + +set(SRC cJSON.c JSON.c) + +# target_sources( +# ${JSON_LIB_NAME} +# PUBLIC ${SRC}) + +target_sources( + ${LIBRARY_NAME} + PRIVATE ${SRC}) \ No newline at end of file diff --git a/src/JSON/JSON.c b/src/JSON/JSON.c index 664ccebff5f2b7ff5360a0e4fc3d93b289c671bd..cb02cc4be52cc559564a0950e7465ccbedb5bc2a 100644 --- a/src/JSON/JSON.c +++ b/src/JSON/JSON.c @@ -28,7 +28,7 @@ use cJSON to deal with json data */ -#include "cJSON.h" +// #include "src/JSON/cJSON.h" #include #include #include diff --git a/src/JSON/cJSON.c b/src/JSON/cJSON.c index 8fbfc38ee51ce935c24e828794dfb2d3d351eff6..276cc12cf698a6268f340aaf21a00a0702fef536 100644 --- a/src/JSON/cJSON.c +++ b/src/JSON/cJSON.c @@ -41,7 +41,7 @@ #pragma GCC visibility pop #endif -#include "cJSON.h" +#include "src/JSON/cJSON.h" /* define our own boolean type */ #ifdef true diff --git a/src/LS/CMakeLists.txt b/src/LS/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..36e18fee06314ef16f4708709ce825b6d93272dd --- /dev/null +++ b/src/LS/CMakeLists.txt @@ -0,0 +1,21 @@ +# set(LS_LIB_NAME ${LIBRARY_NAME}_LS) add_library(${LS_LIB_NAME}) +# add_library(FASP::LS ALIAS ${LS_LIB_NAME}) + +set(SRC + LS.c + LS_ml.c + LS_ml_parcsr.c + LS_ml_parbsr.c + LS_relax.c + LS_cpr.c + LS_ilu.c + LS_ilu_seq.c) +# target_sources(${ITM_LIB_NAME} PUBLIC ${SRC}) + +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) + +add_subdirectory(parbsr_ls) +add_subdirectory(parcsr_ls) \ No newline at end of file diff --git a/src/LS/LS.c b/src/LS/LS.c index 10feb3aadd15ab4b6161e1805adcea2fe94c8ed1..c5210353b9c6b77ed343b77aba2f7637f3f0fe75 100644 --- a/src/LS/LS.c +++ b/src/LS/LS.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "LS.h" +// #include "LS.h" #include "faspxx.h" FASPXX_Int StringToLS_TYPE(const char* str) diff --git a/src/LS/LS_cpr.c b/src/LS/LS_cpr.c index d8e91e435d8323b350353657493323a9d0573559..cd0db85d55fe753cba05cc86d270b055702eb421 100644 --- a/src/LS/LS_cpr.c +++ b/src/LS/LS_cpr.c @@ -8,10 +8,10 @@ *--------------------------------------------------------------------------------- */ -#include "LS.h" +// #include "src/LS/LS.h" #include "faspxx.h" -#include "faspxx_parbsr_ls.h" -#include "faspxx_parcsr_ls.h" +// #include "faspxx_parbsr_ls.h" +// #include "faspxx_parcsr_ls.h" // GetPressureSubmatrix FASPXX_MAT FASPXX_GetPressureSubmatrix(FASPXX_MAT A, FASPXX_Real threshold, FASPXX_Int bs) diff --git a/src/LS/LS_ilu.c b/src/LS/LS_ilu.c index e7da8a4f76b25f4f589f4d5cacd1182689a64fc5..b83116d25b2dc19214505d186b8d93bdb3f7bd7e 100644 --- a/src/LS/LS_ilu.c +++ b/src/LS/LS_ilu.c @@ -8,10 +8,10 @@ *--------------------------------------------------------------------------------- */ -#include "LS.h" +// #include "LS.h" #include "faspxx.h" -#include "faspxx_parbsr_ls.h" -#include "faspxx_parcsr_ls.h" +// #include "faspxx_parbsr_ls.h" +// #include "faspxx_parcsr_ls.h" FASPXX_Int StringToILU_TYPE(const char* str) { diff --git a/src/LS/LS_ilu_seq.c b/src/LS/LS_ilu_seq.c index 2c21f1fe64cf480d245f4ae2529ac2cfef57c3f5..1eb31da49c0d148994d3ae99b5eab2878f9c0e93 100644 --- a/src/LS/LS_ilu_seq.c +++ b/src/LS/LS_ilu_seq.c @@ -9,10 +9,10 @@ *--------------------------------------------------------------------------------- */ -#include "LS.h" +// #include "LS.h" #include "faspxx.h" -#include "faspxx_parbsr_ls.h" -#include "faspxx_parcsr_ls.h" +// #include "faspxx_parbsr_ls.h" +// #include "faspxx_parcsr_ls.h" FASPXX_Int faspxx_CSRMatrixILUSetup(FASPXX_LS ls) { diff --git a/src/LS/LS_ml.c b/src/LS/LS_ml.c index da68263acc7313820d40350ffb080dd527d40b84..fbc36e0b348dabfca9d7098860379902f462b181 100644 --- a/src/LS/LS_ml.c +++ b/src/LS/LS_ml.c @@ -8,10 +8,10 @@ *--------------------------------------------------------------------------------- */ -#include "LS.h" +// #include "LS.h" #include "faspxx.h" -#include "faspxx_parbsr_ls.h" -#include "faspxx_parcsr_ls.h" +// #include "faspxx_parbsr_ls.h" +// #include "faspxx_parcsr_ls.h" FASPXX_Int StringToML_TYPE(const char* str) { diff --git a/src/LS/LS_ml_parbsr.c b/src/LS/LS_ml_parbsr.c index 885193ff92121c2e7616522bc7effc645b29409e..a728f7e6f7581cfdccde1e99eeb8024bbe63f8d3 100644 --- a/src/LS/LS_ml_parbsr.c +++ b/src/LS/LS_ml_parbsr.c @@ -8,11 +8,11 @@ *--------------------------------------------------------------------------------- */ -#include "FASPXX_utilities.h" -#include "LS.h" +// #include "FASPXX_utilities.h" +// #include "LS.h" #include "faspxx.h" -#include "faspxx_parbsr_ls.h" -#include "faspxx_parcsr_ls.h" +// #include "faspxx_parbsr_ls.h" +// #include "faspxx_parcsr_ls.h" FASPXX_MAT FASPXX_ParBSRSetupLMAT(_PTR lvl_data) { diff --git a/src/LS/LS_ml_parcsr.c b/src/LS/LS_ml_parcsr.c index 3e9500740c1f6165e73fc3b23195776937ea220f..30ddb1b019af4ff9bfdb0f580f334e7f8b15ea23 100644 --- a/src/LS/LS_ml_parcsr.c +++ b/src/LS/LS_ml_parcsr.c @@ -8,10 +8,11 @@ *--------------------------------------------------------------------------------- */ -#include "FASPXX_utilities.h" -#include "LS.h" +// #include "src/LS/parcsr_ls/faspxx_parcsr_ls.h" + +// #include "utilities/FASPXX_utilities.h" +// #include "src/LS/LS.h" #include "faspxx.h" -#include "faspxx_parcsr_ls.h" FASPXX_MAT FASPXX_ParCSRSetupLMAT(_PTR lvl_data) { diff --git a/src/LS/LS_relax.c b/src/LS/LS_relax.c index 9e061259756c411406103df67f040fa161651057..591fadf335828e8507ec01a49ea54cbbdb75e1f1 100644 --- a/src/LS/LS_relax.c +++ b/src/LS/LS_relax.c @@ -14,10 +14,10 @@ */ -#include "LS.h" +// #include "LS.h" #include "faspxx.h" -#include "faspxx_parbsr_ls.h" -#include "faspxx_parcsr_ls.h" +// #include "faspxx_parbsr_ls.h" +// #include "faspxx_parcsr_ls.h" FASPXX_Int StringToRELAX_TYPE(const char* str) { diff --git a/src/LS/parbsr_ls/CMakeLists.txt b/src/LS/parbsr_ls/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..69f27824c10049c4e1a43c6e03b61016bd04ffd5 --- /dev/null +++ b/src/LS/parbsr_ls/CMakeLists.txt @@ -0,0 +1,5 @@ +set(SRC par_bsr_interp.c par_bsr_nodal_systems.c par_bsr_relax.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) +target_include_directories( + ${LIBRARY_NAME} PUBLIC $ + $) diff --git a/src/LS/parbsr_ls/par_bsr_interp.c b/src/LS/parbsr_ls/par_bsr_interp.c index c060cd654404e23d2462bd9d89bc3a578b83e8e2..fe4bf61067d70c0051060a3875ad8b6f46ad4910 100644 --- a/src/LS/parbsr_ls/par_bsr_interp.c +++ b/src/LS/parbsr_ls/par_bsr_interp.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parbsr_ls.h" +#include "src/LS/parbsr_ls/faspxx_parbsr_ls.h" /*--------------------------------------------------------------------------- * faspxx_BoomerAMGBlockBuildInterp diff --git a/src/LS/parbsr_ls/par_bsr_nodal_systems.c b/src/LS/parbsr_ls/par_bsr_nodal_systems.c index 036736b6a0b662e3514845f673b42cedbbe413d5..7186ae4544d2c782dca1b6a75bce29f6ca604519 100644 --- a/src/LS/parbsr_ls/par_bsr_nodal_systems.c +++ b/src/LS/parbsr_ls/par_bsr_nodal_systems.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parbsr_ls.h" +#include "src/LS/parbsr_ls/faspxx_parbsr_ls.h" /*--------------------------------------------------------------------------- * faspxx_BoomerAMGBlockCreateNodalA diff --git a/src/LS/parbsr_ls/par_bsr_relax.c b/src/LS/parbsr_ls/par_bsr_relax.c index 65b19bce58fc202e249f29312a209d0f8740f7a6..49a9845aa590f4c2216d9d4c624582f114d844c7 100644 --- a/src/LS/parbsr_ls/par_bsr_relax.c +++ b/src/LS/parbsr_ls/par_bsr_relax.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parbsr_ls.h" +#include "src/LS/parbsr_ls/faspxx_parbsr_ls.h" /*--------------------------------------------------------------------------- * faspxx_ParBSRJacobiRelax: Weighted Jacobi relaxation for ParBSR diff --git a/src/LS/parcsr_ls/CMakeLists.txt b/src/LS/parcsr_ls/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..b167868d3ac41b4b22e2fe086cfe52e268b514a3 --- /dev/null +++ b/src/LS/parcsr_ls/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(parcsr_coarsen) +add_subdirectory(parcsr_interp) +add_subdirectory(parcsr_relax) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) \ No newline at end of file diff --git a/src/LS/parcsr_ls/parcsr_coarsen/CMakeLists.txt b/src/LS/parcsr_ls/parcsr_coarsen/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..7ad96f0c6aa71dc51695bba647cc569c645abef4 --- /dev/null +++ b/src/LS/parcsr_ls/parcsr_coarsen/CMakeLists.txt @@ -0,0 +1,2 @@ +set(SRC par_aggregation.c par_coarsen.c par_indepset.c par_strength.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) diff --git a/src/LS/parcsr_ls/parcsr_coarsen/par_aggregation.c b/src/LS/parcsr_ls/parcsr_coarsen/par_aggregation.c index 1a4571661e87ae007bad1db08d5ec7180e4f0974..5ef79d00963bc2237ac4574b549228735a779a5f 100644 --- a/src/LS/parcsr_ls/parcsr_coarsen/par_aggregation.c +++ b/src/LS/parcsr_ls/parcsr_coarsen/par_aggregation.c @@ -8,8 +8,9 @@ *--------------------------------------------------------------------------------- */ -#include "../parcsr_interp/faspxx_parcsr_interp.h" -#include "faspxx_parcsr_coarsen.h" +// #include "../parcsr_interp/faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h" // internal debug parameter #define AGG_DEBUG 0 diff --git a/src/LS/parcsr_ls/parcsr_coarsen/par_coarsen.c b/src/LS/parcsr_ls/parcsr_coarsen/par_coarsen.c index fa99790f090379a18ba77c283bada520e2bdf415..7eaf9f97bf591508aee58e6cf00d37f1a71cd727 100644 --- a/src/LS/parcsr_ls/parcsr_coarsen/par_coarsen.c +++ b/src/LS/parcsr_ls/parcsr_coarsen/par_coarsen.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_coarsen.h" +#include "src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h" /*==========================================================================*/ /*==========================================================================*/ diff --git a/src/LS/parcsr_ls/parcsr_coarsen/par_indepset.c b/src/LS/parcsr_ls/parcsr_coarsen/par_indepset.c index a43ee1b5b7410f9d2da71fd3bf803e3fa9f66231..880f57a257be0a68b92003418f007470f6223ba1 100644 --- a/src/LS/parcsr_ls/parcsr_coarsen/par_indepset.c +++ b/src/LS/parcsr_ls/parcsr_coarsen/par_indepset.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_coarsen.h" +#include "src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h" /*==========================================================================*/ /*==========================================================================*/ diff --git a/src/LS/parcsr_ls/parcsr_coarsen/par_strength.c b/src/LS/parcsr_ls/parcsr_coarsen/par_strength.c index d035d52b50408564a0fc302f0d7c4917b8862123..917b125cb33407b1219f30f5b4e71c234099a673 100644 --- a/src/LS/parcsr_ls/parcsr_coarsen/par_strength.c +++ b/src/LS/parcsr_ls/parcsr_coarsen/par_strength.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_coarsen.h" +#include "src/LS/parcsr_ls/parcsr_coarsen/faspxx_parcsr_coarsen.h" /*==========================================================================*/ /*==========================================================================*/ diff --git a/src/LS/parcsr_ls/parcsr_interp/CMakeLists.txt b/src/LS/parcsr_ls/parcsr_interp/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..c17283c121ac493d77b2e8de9e6b84c373c73a99 --- /dev/null +++ b/src/LS/parcsr_ls/parcsr_interp/CMakeLists.txt @@ -0,0 +1,11 @@ +set(SRC + aux_interp.c + par_interp.c + par_interp_agg.c + par_lr_interp.c + par_mod_multi_interp.c + par_multi_interp.c + par_rap.c + par_rap_communication.c) + +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) diff --git a/src/LS/parcsr_ls/parcsr_interp/aux_interp.c b/src/LS/parcsr_ls/parcsr_interp/aux_interp.c index 293843db322cdb88c3c26a6b910defd99ff4cb30..a6aaa409ac73f690614fdffa659546280bac12b4 100644 --- a/src/LS/parcsr_ls/parcsr_interp/aux_interp.c +++ b/src/LS/parcsr_ls/parcsr_interp/aux_interp.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_interp.h" +// #include "faspxx_parcsr_interp.h" #include "faspxx.h" /*--------------------------------------------------------------------------- diff --git a/src/LS/parcsr_ls/parcsr_interp/par_interp.c b/src/LS/parcsr_ls/parcsr_interp/par_interp.c index 79b6b340d6a1bf0ed8d2c9b9cfd241a828d611b4..4b2155f1bd726068b1ee91919371da8f5f4c8897 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_interp.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_interp.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" /*--------------------------------------------------------------------------- * faspxx_BoomerAMGBuildInterp diff --git a/src/LS/parcsr_ls/parcsr_interp/par_interp_agg.c b/src/LS/parcsr_ls/parcsr_interp/par_interp_agg.c index d19fcf8d0b3c517b44795066e863eee5e3abc81a..ecd2a85dac794a174a7c48d76eb99315ff802ac1 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_interp_agg.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_interp_agg.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" /** * \fn FASPXX_Int faspxx_form_tentative_p(faspxx_ParCSRMatrix* A, FASPXX_Int* Vertices, diff --git a/src/LS/parcsr_ls/parcsr_interp/par_lr_interp.c b/src/LS/parcsr_ls/parcsr_interp/par_lr_interp.c index 81a7eee42c5084fde474391c9bdc70b052b9664a..eca2a85f4033f08de66ac1a883bb6a27074da1fe 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_lr_interp.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_lr_interp.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" #define MAX_C_CONNECTIONS 100 diff --git a/src/LS/parcsr_ls/parcsr_interp/par_mod_multi_interp.c b/src/LS/parcsr_ls/parcsr_interp/par_mod_multi_interp.c index 5326bb19dc0725c0ec77b392202f65e96cd76964..ea9834f0609bac9039416b11674ef2cc8c653003 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_mod_multi_interp.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_mod_multi_interp.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" /*-------------------------------------------------------------------------- * faspxx_ParAMGBuildModMultipass diff --git a/src/LS/parcsr_ls/parcsr_interp/par_multi_interp.c b/src/LS/parcsr_ls/parcsr_interp/par_multi_interp.c index be57e72dca2912be842436655c79e2ddcc6fa503..a2590f8d541494bba7efde5de700dbdf8ab96108 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_multi_interp.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_multi_interp.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" /*-------------------------------------------------------------------------- * faspxx_ParAMGBuildMultipass diff --git a/src/LS/parcsr_ls/parcsr_interp/par_rap.c b/src/LS/parcsr_ls/parcsr_interp/par_rap.c index e1bcb4448cefa5416165b567270fe6224a06f939..ec8196554ed32cfc9b90020c1352fcbbbb2c3c9f 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_rap.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_rap.c @@ -11,7 +11,7 @@ // #include "faspxx_parcsr_ls.h" // #include "_faspxx_utilities.h" -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" /*-------------------------------------------------------------------------- * faspxx_BoomerAMGBuildCoarseOperator diff --git a/src/LS/parcsr_ls/parcsr_interp/par_rap_communication.c b/src/LS/parcsr_ls/parcsr_interp/par_rap_communication.c index c66bd83372625f072ffa8811ca60df89bff433e3..f8448584fb94258e99f8776f6b2ff6883699a6bd 100644 --- a/src/LS/parcsr_ls/parcsr_interp/par_rap_communication.c +++ b/src/LS/parcsr_ls/parcsr_interp/par_rap_communication.c @@ -9,7 +9,7 @@ */ // #include "faspxx_parcsr_ls.h" -#include "faspxx_parcsr_interp.h" +#include "src/LS/parcsr_ls/parcsr_interp/faspxx_parcsr_interp.h" FASPXX_Int faspxx_GetCommPkgRTFromCommPkgA(faspxx_ParCSRMatrix* RT, faspxx_ParCSRMatrix* A, FASPXX_Int* fine_to_coarse, FASPXX_Int* tmp_map_offd) { diff --git a/src/LS/parcsr_ls/parcsr_relax/CMakeLists.txt b/src/LS/parcsr_ls/parcsr_relax/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..372ac059044c0f3acf79ac1f8e7c1b86dd8e0081 --- /dev/null +++ b/src/LS/parcsr_ls/parcsr_relax/CMakeLists.txt @@ -0,0 +1,3 @@ +set(SRC par_relax.c par_lu.c par_dsuperlu.c) + +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) diff --git a/src/LS/parcsr_ls/parcsr_relax/par_dsuperlu.c b/src/LS/parcsr_ls/parcsr_relax/par_dsuperlu.c index f3aea8f7bd2dcf61c0ed6e757c22575cc4ceed9e..7a510b0bea1fbaf1aa048704d38f909d8d63ea26 100644 --- a/src/LS/parcsr_ls/parcsr_relax/par_dsuperlu.c +++ b/src/LS/parcsr_ls/parcsr_relax/par_dsuperlu.c @@ -8,7 +8,8 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_relax.h" +#include "src/LS/parcsr_ls/parcsr_relax/faspxx_parcsr_relax.h" + #ifdef FASPXX_USING_DSUPERLU // SuperLU setup faspxx_DSLUData* faspxx_DSuperLUSetup(faspxx_ParCSRMatrix* A) diff --git a/src/LS/parcsr_ls/parcsr_relax/par_lu.c b/src/LS/parcsr_ls/parcsr_relax/par_lu.c index 448813196a7736c08cad208edfe83371cd23c45e..aa275f56e555be33f6ebcb7204c5494f25373abe 100644 --- a/src/LS/parcsr_ls/parcsr_relax/par_lu.c +++ b/src/LS/parcsr_ls/parcsr_relax/par_lu.c @@ -8,7 +8,8 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_ls.h" +#include "src/LS/parcsr_ls/faspxx_parcsr_ls.h" + faspxx_CSRMatrix* MyGatherMatrix(faspxx_ParCSRMatrix* A); faspxx_Vector* MyGatherVec(faspxx_ParVector* x); diff --git a/src/LS/parcsr_ls/parcsr_relax/par_relax.c b/src/LS/parcsr_ls/parcsr_relax/par_relax.c index 6ee0fd0fd7cfa71a2f7ba022c52ce046de3ab0ec..8f97a3bbb293dd86897941c873d2b051da29f4e2 100644 --- a/src/LS/parcsr_ls/parcsr_relax/par_relax.c +++ b/src/LS/parcsr_ls/parcsr_relax/par_relax.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "faspxx_parcsr_ls.h" +#include "src/LS/parcsr_ls/faspxx_parcsr_ls.h" static inline void faspxx_HybridGaussSeidelNS(FASPXX_Int* A_diag_i, FASPXX_Int* A_diag_j, FASPXX_Complex* A_diag_data, FASPXX_Int* A_offd_i, FASPXX_Int* A_offd_j, FASPXX_Complex* A_offd_data, FASPXX_Complex* b_data, FASPXX_Complex* x_data, diff --git a/src/MAT/CMakeLists.txt b/src/MAT/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..26f06c66a0410ff9da0eee5153752d99668b45b7 --- /dev/null +++ b/src/MAT/CMakeLists.txt @@ -0,0 +1,18 @@ +set(SRC MAT.c MAT_csr.c MAT_parcsr.c MAT_bsr.c MAT_parbsr.c) + +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) + +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) + + +# target_include_directories( +# ${LIBRARY_NAME} +# PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/parbsr_mv +# ${CMAKE_CURRENT_SOURCE_DIR}/parcsr_mv +# ${CMAKE_CURRENT_SOURCE_DIR}/bsr_mv ${CMAKE_CURRENT_SOURCE_DIR}/csr_mv) +add_subdirectory(csr_mv) +add_subdirectory(parcsr_mv) +add_subdirectory(bsr_mv) +add_subdirectory(parbsr_mv) diff --git a/src/MAT/MAT.c b/src/MAT/MAT.c index 927b5df07f92ca99b51a629c30a5fd7d4e7763b8..7293d5c256c3ce841d23653ba721c6b47d91dd2b 100644 --- a/src/MAT/MAT.c +++ b/src/MAT/MAT.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "MAT.h" +// #include "src/MAT/MAT.h" #include "faspxx.h" void FASPXX_VECDestroy(FASPXX_VEC x) diff --git a/src/MAT/MAT_bsr.c b/src/MAT/MAT_bsr.c index e570ae29c83ba51a8f953f73349a2cc8969e686d..edcca502e0d01efa3b0da5a8bf750ab404e93509 100644 --- a/src/MAT/MAT_bsr.c +++ b/src/MAT/MAT_bsr.c @@ -8,8 +8,8 @@ *--------------------------------------------------------------------------------- */ -#include "MAT.h" -#include "bsr_mv.h" +// #include "src/MAT/MAT.h" +// #include "src/MAT/bsr_mv/bsr_mv.h" #include "faspxx.h" void faspxx_BSRMatrixPrintAPI(FASPXX_MAT A_api, const char* fn, FASPXX_Int format) diff --git a/src/MAT/MAT_csr.c b/src/MAT/MAT_csr.c index dbd6aa505901e80a719d2f878132610ab6682a9e..23f3d55c8d9cfc082e9acf5bb02917783ed546e3 100644 --- a/src/MAT/MAT_csr.c +++ b/src/MAT/MAT_csr.c @@ -8,8 +8,8 @@ *--------------------------------------------------------------------------------- */ -#include "MAT.h" -#include "csr_mv.h" +// #include "src/MAT/MAT.h" +// #include "src/MAT/csr_mv/csr_mv.h" #include "faspxx.h" void faspxx_CSRMatrixPrintAPI(FASPXX_MAT A_api, const char* fn, FASPXX_Int format) diff --git a/src/MAT/MAT_parbsr.c b/src/MAT/MAT_parbsr.c index 23cf5cda8859f473cd9d89825941e79299d8193f..facc2daafaa9c322be9336e50c2ff4a88ba2222c 100644 --- a/src/MAT/MAT_parbsr.c +++ b/src/MAT/MAT_parbsr.c @@ -8,9 +8,9 @@ *--------------------------------------------------------------------------------- */ -#include "MAT.h" +// #include "src/MAT/MAT.h" #include "faspxx.h" -#include "parbsr_mv.h" +// #include "src/MAT/parbsr_mv/parbsr_mv.h" void faspxx_ParBSRMatrixPrintAPI(FASPXX_MAT A_api, const char* fn, FASPXX_Int format) { diff --git a/src/MAT/MAT_parcsr.c b/src/MAT/MAT_parcsr.c index 21f1370dc77c118e4ff8997559a65f85bd42639d..4138f72364005f13f38a3c0517f680ee32cf74e1 100644 --- a/src/MAT/MAT_parcsr.c +++ b/src/MAT/MAT_parcsr.c @@ -8,9 +8,9 @@ *--------------------------------------------------------------------------------- */ -#include "MAT.h" +// #include "src/MAT/MAT.h" #include "faspxx.h" -#include "parcsr_mv.h" +// #include "src/MAT/parcsr_mv/parcsr_mv.h" void faspxx_ParCSRMatrixPrintAPI(FASPXX_MAT A_api, const char* fn, FASPXX_Int format) { diff --git a/src/MAT/bsr_mv/CMakeLists.txt b/src/MAT/bsr_mv/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..18f5b8e2b54a6cb969073ed68a8509a390bbfd38 --- /dev/null +++ b/src/MAT/bsr_mv/CMakeLists.txt @@ -0,0 +1,5 @@ +set(SRC bsr_matop.c bsr_matrix.c bsr_matvec.c bsr_ilu.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) \ No newline at end of file diff --git a/src/MAT/bsr_mv/bsr_ilu.c b/src/MAT/bsr_mv/bsr_ilu.c index 0998aa9193cd87967f0a1195e81eba67e303e87e..03b713d018e94327cfb4f46b923ca5ce3e17bd70 100644 --- a/src/MAT/bsr_mv/bsr_ilu.c +++ b/src/MAT/bsr_mv/bsr_ilu.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "bsr_mv.h" +#include "src/MAT/bsr_mv/bsr_mv.h" #include "bsr_matrix_inv.inl" diff --git a/src/MAT/bsr_mv/bsr_matop.c b/src/MAT/bsr_mv/bsr_matop.c index 3d5d771f9e8f992e1c23460bf6a8fe136b33f33c..c5cec28caa9473c6e4e301879460c0d5aadbb703 100644 --- a/src/MAT/bsr_mv/bsr_matop.c +++ b/src/MAT/bsr_mv/bsr_matop.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "bsr_mv.h" +#include "src/MAT/bsr_mv/bsr_mv.h" /****************************************************************************** * diff --git a/src/MAT/bsr_mv/bsr_matrix.c b/src/MAT/bsr_mv/bsr_matrix.c index ec7541ef0c5404455d26f7345fb73ed127674807..a64502d46797a12335537530dff30cc16383476c 100644 --- a/src/MAT/bsr_mv/bsr_matrix.c +++ b/src/MAT/bsr_mv/bsr_matrix.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "bsr_mv.h" +#include "src/MAT/bsr_mv/bsr_mv.h" /****************************************************************************** * diff --git a/src/MAT/bsr_mv/bsr_matvec.c b/src/MAT/bsr_mv/bsr_matvec.c index 466aa90214f97816cc5fcfe8d7a0e99f2698282e..51ba716e8e736adb6044e25f483262a083174421 100644 --- a/src/MAT/bsr_mv/bsr_matvec.c +++ b/src/MAT/bsr_mv/bsr_matvec.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "bsr_mv.h" +#include "src/MAT/bsr_mv/bsr_mv.h" /****************************************************************************** * diff --git a/src/MAT/csr_mv/CMakeLists.txt b/src/MAT/csr_mv/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..d33396870c165855911df0d9ff2a84ff0bc316db --- /dev/null +++ b/src/MAT/csr_mv/CMakeLists.txt @@ -0,0 +1,5 @@ +set(SRC csr_matop.c csr_matrix.c csr_matvec.c csr_ilu.c genpart.c vector.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) \ No newline at end of file diff --git a/src/MAT/csr_mv/csr_ilu.c b/src/MAT/csr_mv/csr_ilu.c index 532fff0788f64149426682d75822fcae1a9c3eac..d8f4bc10fbaa74677d5c04b0e4b92f83c64fe3db 100644 --- a/src/MAT/csr_mv/csr_ilu.c +++ b/src/MAT/csr_mv/csr_ilu.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "csr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" static void faspxx_qsplit(FASPXX_Real* a, FASPXX_Int* ind, FASPXX_Int n, FASPXX_Int ncut); static void faspxx_check_col_index(FASPXX_Int row, FASPXX_Int num, FASPXX_Int* q); diff --git a/src/MAT/csr_mv/csr_matop.c b/src/MAT/csr_mv/csr_matop.c index 5c7d4269d0c3452b49fdc0880e957431e6d52c22..200af51e289950bf5fab8e9e4e4dd971cebad6b8 100644 --- a/src/MAT/csr_mv/csr_matop.c +++ b/src/MAT/csr_mv/csr_matop.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "csr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" // #include "csr_matrix.h" /*-------------------------------------------------------------------------- diff --git a/src/MAT/csr_mv/csr_matrix.c b/src/MAT/csr_mv/csr_matrix.c index 5f1fe6c942c7f9d7a89c8b03a193a9055c47bd6e..4138f34a2e711835b61599e72193e3e17a1e202e 100644 --- a/src/MAT/csr_mv/csr_matrix.c +++ b/src/MAT/csr_mv/csr_matrix.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "csr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" #ifdef FASPXX_PROFILE FASPXX_Real faspxx_profile_times[FASPXX_TIMER_ID_COUNT] = {0}; diff --git a/src/MAT/csr_mv/csr_matvec.c b/src/MAT/csr_mv/csr_matvec.c index d8cde0bce44a404c103757ff50f217e30d4d7c94..e992de2ee8ccf0969aa46d6f50510310e470c3a3 100644 --- a/src/MAT/csr_mv/csr_matvec.c +++ b/src/MAT/csr_mv/csr_matvec.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "csr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" /*-------------------------------------------------------------------------- * faspxx_CSRMatrixMatvec diff --git a/src/MAT/csr_mv/genpart.c b/src/MAT/csr_mv/genpart.c index 5ee62210fc3a418937e98f36849f8c43b09961d2..902111fe7e66860f7af4725f67b048c4a3cef1b5 100644 --- a/src/MAT/csr_mv/genpart.c +++ b/src/MAT/csr_mv/genpart.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "csr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" /*-------------------------------------------------------------------------- * faspxx_GeneratePartitioning: diff --git a/src/MAT/csr_mv/vector.c b/src/MAT/csr_mv/vector.c index 4382ba30eee9496e0c5c650348bee4972072c7bb..a52953612a8c322ecaf57ac31296ca257388d054 100644 --- a/src/MAT/csr_mv/vector.c +++ b/src/MAT/csr_mv/vector.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "csr_mv.h" +#include "src/MAT/csr_mv/csr_mv.h" /*-------------------------------------------------------------------------- * faspxx_SeqVectorCreate diff --git a/src/MAT/parbsr_mv/CMakeLists.txt b/src/MAT/parbsr_mv/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..3d6f53f14daea8b467297ee7ab6f8ad96abed70c --- /dev/null +++ b/src/MAT/parbsr_mv/CMakeLists.txt @@ -0,0 +1,6 @@ +set(SRC par_bsr_assumed_part.c par_bsr_communication.c par_bsr_matop.c + par_bsr_matrix.c par_bsr_matvec.c par_bsr_triplemat.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) \ No newline at end of file diff --git a/src/MAT/parbsr_mv/par_bsr_assumed_part.c b/src/MAT/parbsr_mv/par_bsr_assumed_part.c index a62b5596364f88d8d8c4810c1a087dee20f48b7d..d6297a6bde097b9818670e0b6bc1966b6f6127b6 100644 --- a/src/MAT/parbsr_mv/par_bsr_assumed_part.c +++ b/src/MAT/parbsr_mv/par_bsr_assumed_part.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parbsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" /*-------------------------------------------------------------------- * faspxx_ParBSRMatrixCreateAssumedPartition diff --git a/src/MAT/parbsr_mv/par_bsr_communication.c b/src/MAT/parbsr_mv/par_bsr_communication.c index 18425d862cf2546513569e0de5a5e3421b567e1b..bba805098cc734ade768f4d4c7b271bea353280a 100644 --- a/src/MAT/parbsr_mv/par_bsr_communication.c +++ b/src/MAT/parbsr_mv/par_bsr_communication.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parbsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" /*-------------------------------------------------------------------------- * faspxx_ParBSRCommHandleCreate diff --git a/src/MAT/parbsr_mv/par_bsr_matop.c b/src/MAT/parbsr_mv/par_bsr_matop.c index 8c3cfa7b4a60d0ef171fd993fee420d732eb6cdd..5b10a24757df220aecc8dab627f358f7d5dbee8e 100644 --- a/src/MAT/parbsr_mv/par_bsr_matop.c +++ b/src/MAT/parbsr_mv/par_bsr_matop.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parbsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" /* ---------------------------------------------------------------------- * faspxx_ParBSRMatrixExtractBExt: extracts rows from B which are located on diff --git a/src/MAT/parbsr_mv/par_bsr_matrix.c b/src/MAT/parbsr_mv/par_bsr_matrix.c index fe212d2acada8c8697e45634c300d4c824acaf9c..942fa6d81f0e70315cc7d177be58527279294d88 100644 --- a/src/MAT/parbsr_mv/par_bsr_matrix.c +++ b/src/MAT/parbsr_mv/par_bsr_matrix.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parbsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" /*-------------------------------------------------------------------------- * faspxx_ParBSRMatrixCreate diff --git a/src/MAT/parbsr_mv/par_bsr_matvec.c b/src/MAT/parbsr_mv/par_bsr_matvec.c index 3a3e8d2a51170ffc11eac5a5a7958d6b77923f65..52e059cf331c50dc682e07a1e19ccfe3a1796c60 100644 --- a/src/MAT/parbsr_mv/par_bsr_matvec.c +++ b/src/MAT/parbsr_mv/par_bsr_matvec.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parbsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" /*-------------------------------------------------------------------------- * faspxx_ParCSRMatrixMatvec diff --git a/src/MAT/parbsr_mv/par_bsr_triplemat.c b/src/MAT/parbsr_mv/par_bsr_triplemat.c index 32c417d99a4e2d39d998083bfefb60fdcfa0db2b..c7e70480f400f81c27cd68efb85c83088fedc272 100644 --- a/src/MAT/parbsr_mv/par_bsr_triplemat.c +++ b/src/MAT/parbsr_mv/par_bsr_triplemat.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parbsr_mv.h" +#include "src/MAT/parbsr_mv/parbsr_mv.h" /*-------------------------------------------------------------------------- * used in RAP function - block size must be an argument because RAP_int may diff --git a/src/MAT/parcsr_mv/CMakeLists.txt b/src/MAT/parcsr_mv/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..74ea370699d16fbc596d3db793f276c69ead0c9b --- /dev/null +++ b/src/MAT/parcsr_mv/CMakeLists.txt @@ -0,0 +1,13 @@ +set(SRC + new_commpkg.c + par_csr_assumed_part.c + par_csr_communication.c + par_csr_matop.c + par_csr_matrix.c + par_csr_triplemat.c + par_vector.c + par_csr_matvec.c) +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) \ No newline at end of file diff --git a/src/MAT/parcsr_mv/new_commpkg.c b/src/MAT/parcsr_mv/new_commpkg.c index 2a0223e01d0b81dd2ce249da5c2fbae52ba18a9e..022603d049402a853e18f6b9e867b24bac88e3d6 100644 --- a/src/MAT/parcsr_mv/new_commpkg.c +++ b/src/MAT/parcsr_mv/new_commpkg.c @@ -13,7 +13,7 @@ * AHB 6/04 *-----------------------------------------------------*/ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" /* some debugging tools*/ #define mydebug 0 diff --git a/src/MAT/parcsr_mv/par_csr_assumed_part.c b/src/MAT/parcsr_mv/par_csr_assumed_part.c index 612f5a32c0dd5f3b7562271e73c9ec1701af4d31..47c20cf4d9058cf65109b3422d49f3bf2a37afcf 100644 --- a/src/MAT/parcsr_mv/par_csr_assumed_part.c +++ b/src/MAT/parcsr_mv/par_csr_assumed_part.c @@ -14,7 +14,7 @@ * AHB 4/06 *-----------------------------------------------------*/ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" /* This is used only in the function below */ #define CONTACT(a, b) (contact_list[(a) * 3 + (b)]) diff --git a/src/MAT/parcsr_mv/par_csr_communication.c b/src/MAT/parcsr_mv/par_csr_communication.c index 2473f28711511ec65eb1044af035ac51e9a40c14..2612a4bb87fa1fd0a5aa910b077f4047b0bc8ab0 100644 --- a/src/MAT/parcsr_mv/par_csr_communication.c +++ b/src/MAT/parcsr_mv/par_csr_communication.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" /*==========================================================================*/ diff --git a/src/MAT/parcsr_mv/par_csr_matop.c b/src/MAT/parcsr_mv/par_csr_matop.c index a06a91cabe22100402d8d1b38a4f7c4e0cc798b5..6c10a3e205ff7f8bbf37c5870efbc4f154b42e06 100644 --- a/src/MAT/parcsr_mv/par_csr_matop.c +++ b/src/MAT/parcsr_mv/par_csr_matop.c @@ -8,8 +8,8 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" -#include "parcsr_mv.h" +#include "utilities/_faspxx_utilities.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" // #include "_faspxx_lapack.h" // #include "_faspxx_blas.h" diff --git a/src/MAT/parcsr_mv/par_csr_matrix.c b/src/MAT/parcsr_mv/par_csr_matrix.c index 0c26ad57b702e46da168b5c571def60cfc0bcc41..f72541c0b0db4df8327ce7ddeb71d0155b5d8c65 100644 --- a/src/MAT/parcsr_mv/par_csr_matrix.c +++ b/src/MAT/parcsr_mv/par_csr_matrix.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" // #include "../seq_mv/FASPXX_seq_mv.h" // #include "../seq_mv/csr_matrix.h" diff --git a/src/MAT/parcsr_mv/par_csr_matvec.c b/src/MAT/parcsr_mv/par_csr_matvec.c index 259f2e196a678ac3f9fee12559ae3d92f9432d27..9179df97c4aa4dc1f169a10a7617580b60066ef4 100644 --- a/src/MAT/parcsr_mv/par_csr_matvec.c +++ b/src/MAT/parcsr_mv/par_csr_matvec.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" /*-------------------------------------------------------------------------- * faspxx_ParCSRMatrixMatvec diff --git a/src/MAT/parcsr_mv/par_csr_triplemat.c b/src/MAT/parcsr_mv/par_csr_triplemat.c index ac487255c23e30ed5b901c9da30075bc65bc9f47..905d9ef160ab72babc50d3fd967020a803e2411f 100644 --- a/src/MAT/parcsr_mv/par_csr_triplemat.c +++ b/src/MAT/parcsr_mv/par_csr_triplemat.c @@ -8,10 +8,10 @@ *--------------------------------------------------------------------------------- */ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" // #include "../parcsr_mv/parcsr_mv.h" -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /*-------------------------------------------------------------------------- * faspxx_ParCSRMatMat : multiplies two ParCSRMatrices A and B and returns diff --git a/src/MAT/parcsr_mv/par_vector.c b/src/MAT/parcsr_mv/par_vector.c index 39146907736649fce50a189ab46d1da134970ab6..f25bbd24a19ef7fb8aaec680111039ce0ddf89f4 100644 --- a/src/MAT/parcsr_mv/par_vector.c +++ b/src/MAT/parcsr_mv/par_vector.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "parcsr_mv.h" +#include "src/MAT/parcsr_mv/parcsr_mv.h" FASPXX_Int faspxx_FillResponseParToVectorAll(void*, FASPXX_Int, FASPXX_Int, void*, MPI_Comm, void**, FASPXX_Int*); diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..8a42c59ad4bff96b6958bb05bef4c7739f54598e --- /dev/null +++ b/utilities/CMakeLists.txt @@ -0,0 +1,34 @@ +# set(UTIL_LIB_NAME ${LIBRARY_NAME}_utitlies) add_library(${UTIL_LIB_NAME}) +# add_library(FASP::utilities ALIAS ${UTIL_LIB_NAME}) + +set(HEADERS FASPXX_utilities.h _faspxx_utilities.h) +set(SRC + amg_linklist.c + binsearch.c + exchange_data.c + ap.c + log.c + error.c + hopscotch_hash.c + merge_sort.c + mmio.c + prefix_sum.c + printf.c + qsort.c + utilities.c + mpistubs.c + qsplit.c + random.c + threading.c + timer.c + timing.c + int_array.c + memory.c) +# target_sources( ${UTIL_LIB_NAME} PUBLIC ${SRC}) + +target_sources(${LIBRARY_NAME} PRIVATE ${SRC}) + +target_include_directories(${LIBRARY_NAME} PUBLIC + $ + $) + diff --git a/utilities/amg_linklist.c b/utilities/amg_linklist.c index 0ffdd2fc51961797d3a366285dff8b00c168c0d7..b6fa70e18072f3852e24ea71403b252926d1401d 100644 --- a/utilities/amg_linklist.c +++ b/utilities/amg_linklist.c @@ -14,7 +14,7 @@ * ****************************************************************************/ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #define faspxx_LIST_HEAD -1 #define faspxx_LIST_TAIL -2 diff --git a/utilities/ap.c b/utilities/ap.c index 754d0a11273b48d911e741c92744cbe0e3ddc38d..52fb915c98c056f8a2f250a1daccb70364fc415a 100644 --- a/utilities/ap.c +++ b/utilities/ap.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /* This file will eventually contain functions needed to support a runtime decision of whether to use the assumed partition */ diff --git a/utilities/binsearch.c b/utilities/binsearch.c index b0e35502fb61f69d486a2a1a04bf125c3b80bb19..4eaae3ca04b216d981356f5c2e18f7ad2ea7d3b3 100644 --- a/utilities/binsearch.c +++ b/utilities/binsearch.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /*-------------------------------------------------------------------------- * faspxx_BinarySearch diff --git a/utilities/error.c b/utilities/error.c index 4866a21566681566313ee7aa6b6a4071ec525a51..658802e0ccb9a5b7ee560961b83186bce98621ae 100644 --- a/utilities/error.c +++ b/utilities/error.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" FASPXX_Int faspxx__global_error = 0; diff --git a/utilities/exchange_data.c b/utilities/exchange_data.c index 9c4acb107c0c0c2fef888a16da292cfecffb585f..5ee37df94f87757d164fc95a778aac9fbd4a6212 100644 --- a/utilities/exchange_data.c +++ b/utilities/exchange_data.c @@ -12,7 +12,7 @@ #include #include -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /*--------------------------------------------------- * faspxx_CreateBinaryTree() diff --git a/utilities/hopscotch_hash.c b/utilities/hopscotch_hash.c index c354fecc2243a1d06bbebf254e1396ba89a873f2..3bd858577077ed1fd576116bac5fa20cabb2fe2f 100644 --- a/utilities/hopscotch_hash.c +++ b/utilities/hopscotch_hash.c @@ -8,8 +8,8 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" -#include "faspxx.h" +#include "utilities/_faspxx_utilities.h" +// #include "faspxx.h" static FASPXX_Int NearestPowerOfTwo(FASPXX_Int value) { diff --git a/utilities/int_array.c b/utilities/int_array.c index 15adf8af6a34dc29db3d757125890871892537ea..e04751899218f8f11dc06caa7e37f6cf9d2cd5c4 100644 --- a/utilities/int_array.c +++ b/utilities/int_array.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" // #include "_faspxx_utilities.hpp" /****************************************************************************** diff --git a/utilities/log.c b/utilities/log.c index 20fde3432861d8589622e553d1b057463d6e436e..500a222a2dbcc8eb3fad07df8e64c28a04c38276 100644 --- a/utilities/log.c +++ b/utilities/log.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /*-------------------------------------------------------------------------- * faspxx_Log2: diff --git a/utilities/memory.c b/utilities/memory.c index e030edbbfd2c201575a74f1dbc778259fbef3006..c8472feba5b7c2079c35503650af806c6d7eb83c 100644 --- a/utilities/memory.c +++ b/utilities/memory.c @@ -14,7 +14,7 @@ * *****************************************************************************/ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #if defined(FASPXX_USE_UMALLOC) #undef FASPXX_USE_UMALLOC diff --git a/utilities/merge_sort.c b/utilities/merge_sort.c index 31f37ca7bc6714d648be9c8dace64e3cef7c0918..6d6a3264899d38e8579c6af762d1169aaae06a57 100644 --- a/utilities/merge_sort.c +++ b/utilities/merge_sort.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" // #include "../csr_mv/FASPXX_csr_mv.h" // #define DBG_MERGE_SORT #ifdef DBG_MERGE_SORT diff --git a/utilities/mmio.c b/utilities/mmio.c index 07ef9a37b335ea294861f6e8922918575137960f..24e981a16dfa15dea0c9ddffeec1671db39f2491 100644 --- a/utilities/mmio.c +++ b/utilities/mmio.c @@ -15,7 +15,7 @@ * * */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #include #include #include diff --git a/utilities/mpistubs.c b/utilities/mpistubs.c index 59443183eb9d940a104b1ba543956098480de24f..554e0128fd2943c396e3622d0aa27d3ba19ca62c 100644 --- a/utilities/mpistubs.c +++ b/utilities/mpistubs.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /****************************************************************************** * This routine is the same in both the sequential and normal cases diff --git a/utilities/prefix_sum.c b/utilities/prefix_sum.c index 22e01acb5bf631e4cd1121aff738f5485116c76c..21bbb1fd1e1a21dd8de97ee776ed78562280135e 100644 --- a/utilities/prefix_sum.c +++ b/utilities/prefix_sum.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" void faspxx_prefix_sum(FASPXX_Int* in_out, FASPXX_Int* sum, FASPXX_Int* workspace) { diff --git a/utilities/printf.c b/utilities/printf.c index c88c9e353ab203abd76a33ca8de4f00dacf44d0c..dd808c23d831a38dd960207ed6415cef2c51d73d 100644 --- a/utilities/printf.c +++ b/utilities/printf.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #include #include diff --git a/utilities/qsort.c b/utilities/qsort.c index 5cfcb648a6bce5e4d011b5eb3c27051c1db45fc6..4093d6729779d96bf5968637ce2d347c6c11b270 100644 --- a/utilities/qsort.c +++ b/utilities/qsort.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #include /*-------------------------------------------------------------------------- diff --git a/utilities/qsplit.c b/utilities/qsplit.c index b72fb979dfb5e5bb541fb0d702dfbc9dba6927b6..b7b3f7f7ae939995197f16e2008e7a7aa53ea373 100644 --- a/utilities/qsplit.c +++ b/utilities/qsplit.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #include /*-------------------------------------------------------------------------- diff --git a/utilities/random.c b/utilities/random.c index 172f4b5a717e21a3346587cbf7eeee8bb75157c0..792bc18703f7d85cec1456fe3f107729e49b8f03 100644 --- a/utilities/random.c +++ b/utilities/random.c @@ -34,7 +34,7 @@ * *****************************************************************************/ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" static FASPXX_Int Seed = 13579; diff --git a/utilities/threading.c b/utilities/threading.c index 2791490df1318e1c2d73469080d0b798bece0262..c625ed0ee310caf5b53523dbbb610520fd1cb346 100644 --- a/utilities/threading.c +++ b/utilities/threading.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #include #include diff --git a/utilities/timer.c b/utilities/timer.c index 00f48ef3321c7a8f23f5804b359f260a0e5d113f..f11561f678d9840fdaab69865b11a80c425c90d6 100644 --- a/utilities/timer.c +++ b/utilities/timer.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" #include #ifndef WIN32 diff --git a/utilities/timing.c b/utilities/timing.c index f518868aae5f979c53e372a505a5632026010b54..fe2d26981342053e20f6a5801a07ee09e125b6dd 100644 --- a/utilities/timing.c +++ b/utilities/timing.c @@ -15,7 +15,7 @@ *****************************************************************************/ #define FASPXX_TIMING #define FASPXX_TIMING_GLOBALS -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" // #include "timing.h" /*------------------------------------------------------- diff --git a/utilities/utilities.c b/utilities/utilities.c index bec01c0908e4e52e5fdee179837da0fbbb4a7935..4056dc16d1019cdc1954492589bdfe13970fb58f 100644 --- a/utilities/utilities.c +++ b/utilities/utilities.c @@ -8,7 +8,7 @@ *--------------------------------------------------------------------------------- */ -#include "_faspxx_utilities.h" +#include "utilities/_faspxx_utilities.h" /*-------------------------------------------------------------------------- * faspxx_multmod