diff --git a/CMake/Packages.cmake b/CMake/Packages.cmake index e070fa3c8a803558b29458bf9728855bd339cee8..d96ed89a935cdaf219b938a043c50d7a051fae47 100644 --- a/CMake/Packages.cmake +++ b/CMake/Packages.cmake @@ -125,3 +125,7 @@ if(NOT yaml-cpp_POPULATED) FetchContent_Populate(yaml-cpp) add_subdirectory(${yaml-cpp_SOURCE_DIR} ${yaml-cpp_BINARY_DIR}) endif() + +# Metis +add_subdirectory(${VF_THIRD_DIR}/metis/metis-5.1.0) +target_compile_definitions(project_options INTERFACE VF_METIS) \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index d8d8279b32b280094c2a9aa5b0893297e33abceb..2e622d5448e85ef1ed5ce09468c3dae22963bd73 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,13 +78,11 @@ option(VF_RANGECHECK "Enable rangecheck in Release, if VF_NO_RANGECHECK is OFF" include(CMake/ProjectSettings.cmake) include(CMake/Packages.cmake) - add_subdirectory(src/logger) add_subdirectory(src/basics) add_subdirectory(src/parallel) add_subdirectory(src/lbm) - if(VF_ENABLE_CPU) include(cpu.cmake) endif() diff --git a/cpu.cmake b/cpu.cmake index b6de4f02a964e1433995b55144e6cddecd8dc5b6..6d7f7713de1b8e607a5150f41d31384db032d603 100644 --- a/cpu.cmake +++ b/cpu.cmake @@ -46,14 +46,11 @@ IF(${VF_CP_ENABLE_CATALYST}) target_compile_definitions(project_options INTERFACE VF_CATALYST) ENDIF() -target_compile_definitions(project_options INTERFACE VF_METIS) - ############################################################# ### Libraries ### ############################################################# add_subdirectory(${VF_THIRD_DIR}/MuParser) -add_subdirectory(${VF_THIRD_DIR}/metis/metis-5.1.0) add_subdirectory(src/cpu/core) diff --git a/src/cpu/VirtualFluids.h b/src/cpu/VirtualFluids.h index b6406c4cd7c109d0e6ce020845a83a3a851718fa..62da5d548dc2d57a7a9faf8f8dadfcddb7c6ac82 100644 --- a/src/cpu/VirtualFluids.h +++ b/src/cpu/VirtualFluids.h @@ -41,6 +41,7 @@ #include <parallel/Communicator.h> #include <parallel/MPICommunicator.h> #include <parallel/NullCommunicator.h> +#include <parallel/MetisPartitioner.h> #include <parallel/transmitter/TbTransmitter.h> #include <parallel/transmitter/TbTransmitterLocal.h> #include <parallel/transmitter/TbTransmitterMpiPool.h> @@ -226,8 +227,6 @@ #include <geometry3d/KdTree/splitalgorithms/KdSpatiallMedianSplit.h> #include <geometry3d/KdTree/splitalgorithms/KdSplitAlgorithm.h> -#include <cpu/core/Parallel/MetisPartitioner.h> - #include <cpu/core/Utilities/ChangeRandomQs.hpp> #include <cpu/core/Utilities/CheckpointConverter.h> #include <cpu/core/Utilities/MathUtil.hpp> diff --git a/src/cpu/core/CMakeLists.txt b/src/cpu/core/CMakeLists.txt index 94dc320bcf5ed082e28731ef6341a307e4d2f997..f8a91d46c4e9c430eb88177cb664b2ff0f660fde 100644 --- a/src/cpu/core/CMakeLists.txt +++ b/src/cpu/core/CMakeLists.txt @@ -34,12 +34,6 @@ set(VF_LIBRARIES) -IF(METIS_RELEASE_LIBRARY AND METIS_DEBUG_LIBRARY) - list(APPEND VF_LIBRARIES optimized ${METIS_RELEASE_LIBRARY} debug ${METIS_DEBUG_LIBRARY}) -ELSE() - list(APPEND VF_LIBRARIES metis) -ENDIF() - IF(${VF_CPU_ENABLE_VTK}) list(APPEND VF_LIBRARIES optimized ${VTK_LIBRARIES} debug ${VTK_LIBRARIES}) ENDIF() @@ -99,6 +93,5 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") target_compile_options(${library_name} PUBLIC "/wd4305") #'initializing': truncation from double to float target_compile_options(${library_name} PUBLIC "/wd4505") # C4505: 'XXX': unreferenced local function has been removed target_compile_options(${library_name} PUBLIC "/wd4310") # C4310: cast truncates constant value, triggerd by muParserbase.h - target_compile_options(${library_name} PUBLIC "/wd4005") # disable macro redefinition (triggered by metis.h) target_compile_options(${library_name} PUBLIC "/wd4456") # C4456: declaration of hides previous local declaration endif() \ No newline at end of file diff --git a/src/cpu/core/Parallel/MPIIODataStructures.h b/src/cpu/core/SimulationObservers/MPIIODataStructures.h similarity index 99% rename from src/cpu/core/Parallel/MPIIODataStructures.h rename to src/cpu/core/SimulationObservers/MPIIODataStructures.h index f0fcca2b648c789116de06708a1dbca74b008dcd..4e45977ca63e08adab5f5bf34c989ecb481717db 100644 --- a/src/cpu/core/Parallel/MPIIODataStructures.h +++ b/src/cpu/core/SimulationObservers/MPIIODataStructures.h @@ -26,7 +26,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright © VirtualFluids Project contributors, see AUTHORS.md in root folder // -//! \addtogroup cpu_Parallel Parallel +//! \addtogroup cpu_SimulationObservers SimulationObservers //! \ingroup cpu_core core //! \{ //! \author Alena Karanchuk diff --git a/src/cpu/core/Visitors/MetisPartitioningGridVisitor.h b/src/cpu/core/Visitors/MetisPartitioningGridVisitor.h index 992664a417c1ba5ef4e9fa9ee2b7290c374958f2..153c3505d7884e93eda2d8b37f74bd98d1ca09e6 100644 --- a/src/cpu/core/Visitors/MetisPartitioningGridVisitor.h +++ b/src/cpu/core/Visitors/MetisPartitioningGridVisitor.h @@ -40,13 +40,12 @@ #include <vector> #include "Grid3DVisitor.h" -#include "MetisPartitioner.h" +#include "parallel/MetisPartitioner.h" namespace vf::parallel {class Communicator;} //////////////////////////////////////////////////////////////////////// //! \brief The class implements domain decomposition with METIS library -//! \author Kostyantyn Kucher ////////////////////////////////////////////////////////////////////////// class Grid3D; diff --git a/src/parallel/CMakeLists.txt b/src/parallel/CMakeLists.txt index 9f04c1c9386b152b54970ccb520f70e65d5d2716..98bf6ff3d847b143421c1c873b91a9583f357cf7 100644 --- a/src/parallel/CMakeLists.txt +++ b/src/parallel/CMakeLists.txt @@ -32,7 +32,7 @@ #! \author Soeren Peters #======================================================================================= -vf_add_library(PUBLIC_LINK logger basics PRIVATE_LINK project_warnings project_options) +vf_add_library(PUBLIC_LINK logger basics metis PRIVATE_LINK project_warnings project_options) if(MSVC) target_link_libraries(parallel PRIVATE ws2_32) @@ -56,5 +56,9 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES ".*Clan endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - target_compile_options(parallel PRIVATE "/wd4100") # warning C4100: unreferenced formal paramete + target_compile_options(parallel PUBLIC "$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/wd4100>") + target_compile_options(parallel PUBLIC "$<$<COMPILE_LANGUAGE:CXX>:/wd4100>") + + target_compile_options(parallel PUBLIC "$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/wd4005>") + target_compile_options(parallel PUBLIC "$<$<COMPILE_LANGUAGE:CXX>:/wd4005>") endif() \ No newline at end of file diff --git a/src/cpu/core/Parallel/MetisPartitioner.cpp b/src/parallel/MetisPartitioner.cpp similarity index 100% rename from src/cpu/core/Parallel/MetisPartitioner.cpp rename to src/parallel/MetisPartitioner.cpp diff --git a/src/cpu/core/Parallel/MetisPartitioner.h b/src/parallel/MetisPartitioner.h similarity index 97% rename from src/cpu/core/Parallel/MetisPartitioner.h rename to src/parallel/MetisPartitioner.h index f083fb6a6451ac733e104e3e0996638ef94da6cd..ab63819053dab55e7e0db36bbffcf5eef230879b 100644 --- a/src/cpu/core/Parallel/MetisPartitioner.h +++ b/src/parallel/MetisPartitioner.h @@ -26,8 +26,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright © VirtualFluids Project contributors, see AUTHORS.md in root folder // -//! \addtogroup cpu_Parallel Parallel -//! \ingroup cpu_core core +//! \addtogroup parallel //! \{ //! \author Konstantin Kutscher //======================================================================================= @@ -40,7 +39,7 @@ #include "basics/utilities/UbSystem.h" #include "metis.h" -#include <PointerDefinitions.h> +#include "PointerDefinitions.h" #include <string> #include <vector>