diff --git a/cpu/Applications/Applications.cmake b/cpu/Applications/Applications.cmake index 5519b3566695136aae34e86c4cf187749e26eb19..79fae3a86eb05be2897d0bc23dde2e3f71f7bb57 100644 --- a/cpu/Applications/Applications.cmake +++ b/cpu/Applications/Applications.cmake @@ -2,7 +2,7 @@ #add_subdirectory(Applications/gridRf) #add_subdirectory(Applications/greenvortex) # add_subdirectory(Applications/micropart) -add_subdirectory(Applications/sphere) +#add_subdirectory(Applications/sphere) #add_subdirectory(Applications/vfscript) #add_subdirectory(Applications/reefer) #add_subdirectory(Applications/bananas) @@ -11,8 +11,8 @@ add_subdirectory(Applications/sphere) #add_subdirectory(Applications/bananas2) # add_subdirectory(Applications/plate) # add_subdirectory(Applications/plate2) -add_subdirectory(Applications/FlowAroundCylinder) -add_subdirectory(Applications/LaminarTubeFlow) +##add_subdirectory(Applications/FlowAroundCylinder) +##add_subdirectory(Applications/LaminarTubeFlow) # add_subdirectory(Applications/LaminarTubeFlowConv) #add_subdirectory(Applications/cylinderSt) #add_subdirectory(Applications/mpichTest) @@ -20,9 +20,9 @@ add_subdirectory(Applications/LaminarTubeFlow) # add_subdirectory(Applications/bond_test) # add_subdirectory(Applications/bond_benchmark) # add_subdirectory(Applications/musis) -add_subdirectory(Applications/Hagen_Poiseuille_flow) -add_subdirectory(Applications/Hagen_Poiseuille_flow2) -add_subdirectory(Applications/mpi_benchmark) +##add_subdirectory(Applications/Hagen_Poiseuille_flow) +##add_subdirectory(Applications/Hagen_Poiseuille_flow2) +##add_subdirectory(Applications/mpi_benchmark) # add_subdirectory(Applications/shear) # add_subdirectory(Applications/wing) # add_subdirectory(Applications/bKanal) @@ -40,28 +40,28 @@ add_subdirectory(Applications/mpi_benchmark) # add_subdirectory(Applications/porplate2) # add_subdirectory(Applications/BeadPack) # add_subdirectory(Applications/town) -add_subdirectory(Applications/perm) +##add_subdirectory(Applications/perm) add_subdirectory(Applications/pChannel) #add_subdirectory(Applications/pDisk) -add_subdirectory(Applications/BoxBenchmark) -add_subdirectory(Applications/DHIT) -add_subdirectory(Applications/DLR-F16) -add_subdirectory(Applications/DLR-F16-Solid) -add_subdirectory(Applications/DLR-F16-Porous) -add_subdirectory(Applications/aperm) -add_subdirectory(Applications/f16test) -add_subdirectory(Applications/mirror) -add_subdirectory(Applications/levels) -add_subdirectory(Applications/AcousticPulse) -add_subdirectory(Applications/screw) -add_subdirectory(Applications/PoiseuilleFlow) -add_subdirectory(Applications/InterfaceTest) -add_subdirectory(Applications/teperm) -add_subdirectory(Applications/Thermoplast) -add_subdirectory(Applications/bChannelA) -add_subdirectory(Applications/ConvectionOfVortex) -add_subdirectory(Applications/CheckpointConverter) -add_subdirectory(Applications/bChannelVA) -add_subdirectory(Applications/OrganPipe) -add_subdirectory(Applications/LidDrivenCavity) +#add_subdirectory(Applications/BoxBenchmark) +#add_subdirectory(Applications/DHIT) +#add_subdirectory(Applications/DLR-F16) +#add_subdirectory(Applications/DLR-F16-Solid) +#add_subdirectory(Applications/DLR-F16-Porous) +#add_subdirectory(Applications/aperm) +#add_subdirectory(Applications/f16test) +#add_subdirectory(Applications/mirror) +#add_subdirectory(Applications/levels) +#add_subdirectory(Applications/AcousticPulse) +#add_subdirectory(Applications/screw) +#add_subdirectory(Applications/PoiseuilleFlow) +#add_subdirectory(Applications/InterfaceTest) +#add_subdirectory(Applications/teperm) +#add_subdirectory(Applications/Thermoplast) +#add_subdirectory(Applications/bChannelA) +#add_subdirectory(Applications/ConvectionOfVortex) +#add_subdirectory(Applications/CheckpointConverter) +#add_subdirectory(Applications/bChannelVA) +#add_subdirectory(Applications/OrganPipe) +#add_subdirectory(Applications/LidDrivenCavity) diff --git a/cpu/Applications/pChannel/CMakeLists.txt b/cpu/Applications/pChannel/CMakeLists.txt index 14d4bb23d2f185bc64319cb18a5ac0317b9283ae..8b5f07fda67146c0b20c7e7b18e56e25371b3839 100644 --- a/cpu/Applications/pChannel/CMakeLists.txt +++ b/cpu/Applications/pChannel/CMakeLists.txt @@ -17,7 +17,7 @@ FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES}) SOURCE_GROUP(src FILES ${SPECIFIC_FILES}) -SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids) +SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluidsCore VirtualFluidsBasic) ################################################################# ### CREATE PROJECT ### diff --git a/cpu/Applications/pChannel/pChannel.cpp b/cpu/Applications/pChannel/pChannel.cpp index f698d8d26bc2963464a0b30f709fbd9737e5fa96..b7fb0b443c5cfbfb186300962258ece238b4feb7 100644 --- a/cpu/Applications/pChannel/pChannel.cpp +++ b/cpu/Applications/pChannel/pChannel.cpp @@ -1,7 +1,7 @@ #include <iostream> #include <string> #include "VirtualFluids.h" - +#include <omp.h> double rangeRandom(double M, double N) { return M + (rand() / (RAND_MAX / (N - M))); @@ -653,7 +653,8 @@ void run(string configname) UBLOG(logINFO, "PID = " << myid << " Physical Memory currently used by current process: " << Utilities::getPhysMemUsedByMe()); } - omp_set_num_threads(numOfThreads); + //omp_set_num_threads(numOfThreads); + numOfThreads = 4; SPtr<UbScheduler> stepGhostLayer(new UbScheduler(1)); SPtr<Calculator> calculator(new BasicCalculator(grid, stepGhostLayer, (int)endTime)); calculator->addCoProcessor(nupsCoProcessor); diff --git a/cpu/CMake/VirtualFluidsMacros.cmake b/cpu/CMake/VirtualFluidsMacros.cmake new file mode 100644 index 0000000000000000000000000000000000000000..bc4dbd573e7d4b133326b1735b2120b6719346ab --- /dev/null +++ b/cpu/CMake/VirtualFluidsMacros.cmake @@ -0,0 +1,135 @@ + + +set (VIRTUAL_FLUIDS_GLOB_FILES + *.cpp + *.c + *.h + *.cu + CACHE INTERNAL "File endings to glob for source files" ) + + + +function (vf_get_library_name library_name) + get_filename_component(library_name_out ${CMAKE_CURRENT_SOURCE_DIR} NAME) + set(${library_name} ${library_name_out} PARENT_SCOPE) +endfunction(vf_get_library_name) + + + +function(vf_add_library) + message("Start new Cmake") + + set( options ) + set( oneValueArgs ) + set( multiValueArgs DEPENDS FOLDER) + cmake_parse_arguments( ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) + + #message("${ARG_FOLDER}") + + vf_get_library_name (library_name) + message("${library_name}") + + if (ARG_FOLDER) + foreach(folder ${ARG_FOLDER}) + foreach(file ${VIRTUAL_FLUIDS_GLOB_FILES}) + set (filePath ${folder}/${file}) + #message("${filePath}") + file ( GLOB part_files ${filePath} ) + set(sourceFiles ${sourceFiles} ${part_files}) + endforeach() + endforeach() + + else () + file ( GLOB_RECURSE sourceFiles ${VIRTUAL_FLUIDS_GLOB_FILES} ) +endif() + + foreach(X IN LISTS sourceFiles) + #message(STATUS "${X}") + endforeach() + + + set (build_type STATIC) + + + MESSAGE(STATUS "configuring ${library_name} (type=${build_type})...") + + + ################################################################# + ### OS DEFINES ### + ################################################################# + IF(WIN32) + LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -D__WIN__) + ELSEIF(APPLE) + LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -D__APPLE__) + ELSEIF(UNIX) + LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -D__unix__) + ENDIF() + + ################################################################# + ### ADDITIONAL_MAKE_CLEAN_FILES ### + ################################################################# + #SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${GENERATED_FILES}") + + ################################################################# + ### EXCECUTABLE ### + ################################################################# + IF(${build_type} MATCHES BINARY) + ADD_EXECUTABLE(${library_name} ${sourceFiles} ) + ELSEIF(${build_type} MATCHES SHARED) + ADD_LIBRARY(${library_name} SHARED ${sourceFiles} ) + ELSEIF(${build_type} MATCHES STATIC) + ADD_LIBRARY(${library_name} STATIC ${sourceFiles} ) + ELSE() + MESSAGE(FATAL_ERROR "build_type=${build_type} doesn't match BINARY, SHARED or STATIC") + ENDIF() + + ################################################################# + ### ADDITIONAL LINK LIBRARIES ### + ################################################################# + message("Link Depending Libraries: ${ARG_DEPENDS}") + if (ARG_DEPENDS) + TARGET_LINK_LIBRARIES(${library_name} ${ARG_DEPENDS}) + endif() + + IF(CAB_ADDITIONAL_LINK_LIBRARIES) + TARGET_LINK_LIBRARIES(${library_name} ${CAB_ADDITIONAL_LINK_LIBRARIES}) + ENDIF() + + ################################################################# + ### COMPILER Flags ### + ################################################################# + message (${CAB_COMPILER}) + ADD_COMPILER_FLAGS_TO_PROJECT(${CAB_COMPILER} ${library_name} "CXX" ${build_type}) + MESSAGE(STATUS "compiler flags for compiler ${CAB_COMPILER} on machine ${CAB_MACHINE} for project ${project_name} (${build_type}) have been configured") + + IF(CAB_ADDTIONAL_COMPILER_FLAGS) + ADD_TARGET_PROPERTIES(${library_name} COMPILE_FLAGS ${CAB_ADDTIONAL_COMPILER_FLAGS}) + ENDIF() + IF(CAB_ADDTIONAL_COMPILER_FLAGS_DEBUG) + MESSAGE(FATAL_ERROR "COMPILE_FLAGS_DEBUG_<CONFIG> not supported by cmake yet :-(") + ADD_TARGET_PROPERTIES(${library_name} COMPILE_FLAGS_DEBUG ${CAB_ADDTIONAL_COMPILER_FLAGS_DEBUG}) + ENDIF() + IF(CAB_ADDTIONAL_COMPILER_FLAGS_RELEASE) + MESSAGE(FATAL_ERROR "COMPILE_FLAGS_<CONFIG> not supported by cmake yet :-(") + ADD_TARGET_PROPERTIES(${library_name} COMPILE_FLAGS_RELEASE ${CAB_ADDTIONAL_COMPILER_FLAGS_RELEASE}) + ENDIF() + + ################################################################# + ### ADDITIONAL LINK PROPERTIES ### + ################################################################# + IF(CAB_ADDITIONAL_LINK_FLAGS) + ADD_TARGET_PROPERTIES(${library_name} LINK_FLAGS ${CAB_ADDITIONAL_LINK_FLAGS}) + ENDIF() + IF(CAB_ADDITIONAL_LINK_FLAGS_DEBUG) + ADD_TARGET_PROPERTIES(${library_name} LINK_FLAGS_DEBUG ${CAB_ADDITIONAL_LINK_FLAGS_DEBUG}) + ENDIF() + IF(CAB_ADDITIONAL_LINK_FLAGS_RELEASE) + ADD_TARGET_PROPERTIES(${library_name} LINK_FLAGS_RELEASE ${CAB_ADDITIONAL_LINK_FLAGS_RELEASE}) + ENDIF() + + SET(project_name ${library_name} CACHE STRING "name of binary") + + MESSAGE(STATUS "configuring ${library_name} (type=${build_type})... done") + + +endfunction(vf_add_library) \ No newline at end of file diff --git a/cpu/CMakeLists.txt b/cpu/CMakeLists.txt index eb4287cd0b34b3f1e3023cf7077ead8d32a5f23b..a11fc6896c276b8c9d638e82f396055e86ea853d 100644 --- a/cpu/CMakeLists.txt +++ b/cpu/CMakeLists.txt @@ -158,6 +158,7 @@ ENDIF() #ENDIF() add_subdirectory(VirtualFluidsCore) +add_subdirectory(VirtualFluidsBasic) set(APPS_ROOT "${SOURCE_ROOT}/Applications") INCLUDE(${APPS_ROOT}/Applications.cmake) diff --git a/cpu/VirtualFluidsBasic/CMakeLists.txt b/cpu/VirtualFluidsBasic/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..dcf15e33549bfdb095aaaeca7483f0a204aa66b1 --- /dev/null +++ b/cpu/VirtualFluidsBasic/CMakeLists.txt @@ -0,0 +1,31 @@ + +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/Creator) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/KdTree) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/container) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/memory) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/objects) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/transmiitter) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/utilities) +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsBasic/basics/writer) + + +include (${PROJECT_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake) +#message (${MPI_LIBRARY}) +SET(CAB_ADDITIONAL_LINK_LIBRARIES ${MPI_LIBRARY}) + +INCLUDE_DIRECTORIES(${SOURCE_ROOT}/VirtualFluidsCore) +INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH}) + +vf_add_library(FOLDER + ${CMAKE_CURRENT_LIST_DIR}/numerics/geometry3d + ${CMAKE_CURRENT_LIST_DIR}/numerics/geometry3d/Creator + ${CMAKE_CURRENT_LIST_DIR}/numerics/geometry3d/KdTree + ${CMAKE_CURRENT_LIST_DIR}/basics/container + ${CMAKE_CURRENT_LIST_DIR}/basics/memory + ${CMAKE_CURRENT_LIST_DIR}/basics/objects + ${CMAKE_CURRENT_LIST_DIR}/basics/transmiitter + ${CMAKE_CURRENT_LIST_DIR}/basics/utilities + ${CMAKE_CURRENT_LIST_DIR}/basics/writer + ) \ No newline at end of file diff --git a/cpu/VirtualFluidsCore/CMakeLists.txt b/cpu/VirtualFluidsCore/CMakeLists.txt index 194ac8a06aed2ab38d6e08b8327c2fad0e06039a..47bcdef2cfb83b863346bfc19e6b54ceeb211b49 100644 --- a/cpu/VirtualFluidsCore/CMakeLists.txt +++ b/cpu/VirtualFluidsCore/CMakeLists.txt @@ -1,10 +1,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10) -######################################################## -## C++ PROJECT ### -######################################################## -PROJECT(VirtualFluids) - + ################################################################# ### PACKAGES ### ################################################################# @@ -13,19 +9,19 @@ SET(WITH_SUBFOLDERS_FOR_SG TRUE) INCLUDE(${SOURCE_ROOT}/ThirdParty/MuParser/CMakePackage.txt) #new VirtualFluids -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/BoundaryConditions/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Connectors/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Data/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Interactors/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/LBM/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Parallel/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Grid/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Visitors/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/CoProcessors/CMakePackage.txt) -INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Utilities/CMakePackage.txt) +#sINCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/BoundaryConditions/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Connectors/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Data/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Interactors/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/LBM/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Parallel/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Grid/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Visitors/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/CoProcessors/CMakePackage.txt) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsCore/Utilities/CMakePackage.txt) #old VirtualFluids -INCLUDE(${SOURCE_ROOT}/VirtualFluidsBasic/VirtualFluidsBasic.cmake) +#INCLUDE(${SOURCE_ROOT}/VirtualFluidsBasic/VirtualFluidsBasic.cmake) #FETOL IF(${USE_FETOL}) @@ -98,4 +94,19 @@ message("CAB_ADDITIONAL_LINK_LIBRARIES: " ${CAB_ADDITIONAL_LINK_LIBRARIES}) ################################################################# ### CREATE PROJECT ### ################################################################# -CREATE_CAB_PROJECT(VirtualFluids STATIC) +#CREATE_CAB_PROJECT(VirtualFluids STATIC) +include (${PROJECT_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake) + +vf_add_library(DEPENDS VirtualFluidsBasic) + +vf_get_library_name(library_name) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/Creator) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/numerics/geometry3d/KdTree) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/container) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/memory) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/objects) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/transmiitter) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/utilities) +target_include_directories(${library_name} PRIVATE ${SOURCE_ROOT}/VirtualFluidsBasic/basics/writer)