diff --git a/CMake/3rd/OpenMP.cmake b/CMake/3rd/OpenMP.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fce16693d4eb5b8d61187ed198811e44de96f124 --- /dev/null +++ b/CMake/3rd/OpenMP.cmake @@ -0,0 +1,13 @@ + +find_package(OpenMP) +if (OPENMP_FOUND) + #set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + #set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler ${OpenMP_CXX_FLAGS}") +endif() + +#message (Cuda Flags: ${OpenMP_CXX_FLAGS}) +vf_get_library_name(library_name) +if(OpenMP_CXX_FOUND) + target_link_libraries(${library_name} PUBLIC OpenMP::OpenMP_CXX) +endif() diff --git a/gpu/CMakeMacros/Cuda/Link.cmake b/CMake/3rd/cuda.cmake similarity index 68% rename from gpu/CMakeMacros/Cuda/Link.cmake rename to CMake/3rd/cuda.cmake index c1a4ddcc1b37916eb6a595af2ac928f4218ff85f..32b2e82d4f8ef0e2ec4c258ad19e99ae5938d9fc 100644 --- a/gpu/CMakeMacros/Cuda/Link.cmake +++ b/CMake/3rd/cuda.cmake @@ -1,20 +1,18 @@ -macro(linkCuda) -#input: - + find_path(CUDA_CUT_INCLUDE_DIR helper_cuda.h - PATHS "$ENV{NVCUDASAMPLES_ROOT}" + PATHS "$ENV{NVCUDASAMPLES_ROOT}" "${NVCUDASAMPLES_ROOT}" PATH_SUFFIXES "common/inc" DOC "Location of helper_cuda.h" NO_DEFAULT_PATH ) - - INCLUDE_DIRECTORIES( ${CUDA_INCLUDE_DIRS} ${CUDA_CUT_INCLUDE_DIR}) + + vf_get_library_name(library_name) + target_include_directories(${library_name} PRIVATE ${CUDA_INCLUDE_DIRS} ${CUDA_CUT_INCLUDE_DIR}) #set_property(TARGET ${targetName} PROPERTY CUDA_SEPARABLE_COMPILATION ON) #set_property(TARGET ${targetName} PROPERTY CUDA_64_BIT_DEVICE_CODE ON) #set(CUDA_NVCC_FLAGS "-G" CACHE TYPE INTERNAL FORCE) #set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}; -gencode arch=compute_13,code=sm_13 ) - -endmacro(linkCuda) diff --git a/CMake/CMakeSetCompilerFlags.cmake b/CMake/CMakeSetCompilerFlags.cmake index 7fb108825dd325aec5a2494ae8c2948485fbaf60..76a5b3f1bb2941e8c250dbf7abe19939bba34126 100644 --- a/CMake/CMakeSetCompilerFlags.cmake +++ b/CMake/CMakeSetCompilerFlags.cmake @@ -116,23 +116,36 @@ MACRO(ADD_COMPILER_FLAGS_TO_PROJECT compiler_type project_name project_language ADD_TARGET_PROPERTIES(${project_name} LINK_FLAGS ${CAB_COMPILER_ADDITIONAL_LINK_PROPS_DEBUG}) ENDIF() IF(CAB_COMPILER_ADDITIONAL_LINK_PROPS_RELEASE) - ADD_TARGET_PROPERTIES(${project_name} LINK_FLAGS ${CAB_COMPILER_ADDITIONAL_LINK_PROPS_RELEASE}) + ADD_TARGET_PROPERTIES(${project_name} LINK_FLAGS ${CAB_COMPILER_ADDITIONAL_LINK_PROPS_RELEASE}) ENDIF() ################################################################ # COMPILER FLAGS ################################################################ + #message (COMPILE FLAGS INTERN: ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS}) + + # TODO: Clean this up!! IF(CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS) - ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS}) + #message (COMPILE FLAGS INTERN: ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS}) + foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS) + #message(compiler option: ${flag}) + target_compile_options(${project_name} PRIVATE "$<$<COMPILE_LANGUAGE:${project_language}>:${flag}>") + endforeach() + #get_target_property(var ${project_name} COMPILE_OPTIONS) + #message(set compile options: ${var}) + + #add_custom_command(TARGET ${project_name} POST_BUILD COMMAND echo built with the flags: ${var}) + #ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS}) + #target_compile_options (${project_name} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS}>) ENDIF() IF(CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_DEBUG) MESSAGE(STATUS "ADD_COMPILER_FLAGS_TO_PROJECT: sorry, a long as CMake has no support for COMPILE_FLAGS_<CONFIG> -> DEBUG flags are neglected") - #ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS_DEBUG ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_DEBUG}) + #ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS_DEBUG ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_DEBUG}) ENDIF() IF(CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_RELEASE) MESSAGE(STATUS "ADD_COMPILER_FLAGS_TO_PROJECT: sorry, a long as CMake has no support for COMPILE_FLAGS_<CONFIG> -> RELEASE flags are set for RELEASE AND DEBUG") ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_RELEASE}) - #ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS_RELEASE ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_RELEASE}) + #ADD_TARGET_PROPERTIES(${project_name} COMPILE_FLAGS_RELEASE ${CAB_COMPILER_ADDTIONAL_${project_language}_COMPILER_FLAGS_RELEASE}) ENDIF() diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake index 676fad0a5d7f6f7c0d310d328b172e071cce58f8..0a0389b40fdcd22250bc27de6ddeeb9c81a7c9b8 100644 --- a/CMake/VirtualFluidsMacros.cmake +++ b/CMake/VirtualFluidsMacros.cmake @@ -133,6 +133,7 @@ function(vf_add_library) ADD_COMPILER_FLAGS_TO_PROJECT(${CAB_COMPILER} ${library_name} "CXX" ${ARG_BUILDTYPE}) MESSAGE(STATUS "compiler flags for compiler ${CAB_COMPILER} on machine ${CAB_MACHINE} for project ${project_name} (${ARG_BUILDTYPE}) have been configured") + MESSAGE (COMPILE FLAGS: ${CAB_ADDTIONAL_COMPILER_FLAGS}) IF(CAB_ADDTIONAL_COMPILER_FLAGS) ADD_TARGET_PROPERTIES(${library_name} COMPILE_FLAGS ${CAB_ADDTIONAL_COMPILER_FLAGS}) ENDIF() @@ -167,8 +168,9 @@ function(vf_add_library) endif() target_include_directories(${library_name} PRIVATE ${CMAKE_BINARY_DIR}) - #target_include_directories(${library_name} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(${library_name} PRIVATE ${CMAKE_SOURCE_DIR}/src) + endfunction(vf_add_library) diff --git a/CMake/cmake_config_files/ELLADAN.config.cmake b/CMake/cmake_config_files/ELLADAN.config.cmake index 59cee740084200b5c65c89fbf3ef564e39400615..1a7304ce91bd3534660b6e056cb1092481b2bc14 100644 --- a/CMake/cmake_config_files/ELLADAN.config.cmake +++ b/CMake/cmake_config_files/ELLADAN.config.cmake @@ -34,6 +34,9 @@ ################################################################################# # METIS ################################################################################# +set (NVCUDASAMPLES_ROOT "~/cuda-samples/Common") + + IF(${USE_METIS}) SET(METIS_INCLUDEDIR "/usr/include") SET(METIS_DEBUG_LIBRARY "/usr/lib/x86_64-linux-gnu/libmetis.so") diff --git a/CMake/compilerflags/gccGeneric.cmake b/CMake/compilerflags/gccGeneric.cmake index c2e14c67f2db45aed3f718249480fd037474e5ca..d658afe73f2a7c1991018553b4488ed028e9d787 100644 --- a/CMake/compilerflags/gccGeneric.cmake +++ b/CMake/compilerflags/gccGeneric.cmake @@ -8,11 +8,11 @@ MACRO(SET_COMPILER_SPECIFIC_FLAGS_INTERN build_type use64BitOptions) ############################################################################################################# # Flags ############################################################################################################# - LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -funroll-all-loops -fPIC") + LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-O3;-fomit-frame-pointer;-finline-functions;-funroll-all-loops;-fPIC") LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-deprecated") #deprecated header warning (jarl benutzt sstream weil schneller und so) LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-result") - LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-O3 -fomit-frame-pointer -finline-functions -funroll-all-loops -fPIC") + LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-O3;-fomit-frame-pointer;-finline-functions;-funroll-all-loops;-fPIC") LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-Wno-deprecated") #deprecated header warning (jarl benutzt sstream weil schneller und so) LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-Wno-unused-result") ############################################################################################################# diff --git a/CMakeLists.txt b/CMakeLists.txt index 301363e62538f9711981ac2d01059697f109f07b..7edb2acb24e38011d7d4c35242df8c98daeff66b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,13 +22,11 @@ include("${CMAKE_PATH}/VirtualFluidsMacros.cmake") add_subdirectory(src/basics) #if (BUILD_VF_CPU) -# add_subdirectory(3rdParty/MuParser) -# add_subdirectory(cpu) -include (cpu.cmake) +#include (cpu.cmake) #endif() #if(BUILD_VF_GPU) -# add_subdirectory(gpu) +include (gpu.cmake) #endif() set (APPS_ROOT_CPU "${CMAKE_SOURCE_DIR}/apps/cpu/") -include(${APPS_ROOT_CPU}/Applications.cmake) \ No newline at end of file +#include(${APPS_ROOT_CPU}/Applications.cmake) \ No newline at end of file diff --git a/apps/cpu/VirtualFluids.h b/apps/cpu/VirtualFluids.h index c40393345fe3d3eef89ef222d51325000868690a..2fd3321905ffdd14ba2860282b02e6e6bae9651c 100644 --- a/apps/cpu/VirtualFluids.h +++ b/apps/cpu/VirtualFluids.h @@ -12,7 +12,7 @@ #include <omp.h> #endif -#include <basics/core/PointerDefinitions.h> +#include <basics/Core/PointerDefinitions.h> #include <MuParser/include/muParser.h> #include <MuParser/include/muParserBase.h> diff --git a/gpu.cmake b/gpu.cmake index aa345b8692c37c5449201ff893bdb63b6511cf32..66b478204c4c0da2de726d4f47dca862918d17cf 100644 --- a/gpu.cmake +++ b/gpu.cmake @@ -1,54 +1,232 @@ -cmake_minimum_required(VERSION 3.9..3.17 FATAL_ERROR) +cmake_minimum_required(VERSION 3.9 FATAL_ERROR) -if(${CMAKE_VERSION} VERSION_LESS 3.12) - cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) +if(POLICY CMP0042) + CMAKE_POLICY(SET CMP0042 NEW) endif() +if(POLICY CMP0020) + CMAKE_POLICY(SET CMP0020 NEW) +endif() +if(POLICY CMP0028) + CMAKE_POLICY(SET CMP0028 NEW) +endif() +if(POLICY CMP0037) + CMAKE_POLICY(SET CMP0037 NEW) +endif() +if(POLICY CMP0047) + CMAKE_POLICY(SET CMP0047 NEW) +endif() +if(POLICY CMP0053) + CMAKE_POLICY(SET CMP0053 NEW) +endif() +if(POLICY CMP0054) + CMAKE_POLICY(SET CMP0054 NEW) +endif() + + +if(UNIX) + set(CMAKE_CXX_STANDARD 11) +endif() + +############################################################# +### ENVIRONMENT ### +############################################################# +set(cmakeMacroPath "CMakeMacros") +#include(${cmakeMacroPath}/Environment/environment.cmake) + +#CAB +#include("../CMake/CMakeCABMacros.cmake") +#include("../CMake/FileUtilities.cmake") +#include("../CMake/VirtualFluidsMacros.cmake") + +############################################################# +### GENERAL MACROS ### +############################################################# +#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/BuildTarget.cmake) +#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/BuildTargetUtilities.cmake) +#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/EndingsToCollect.cmake) +#include(${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/general/FileUtilities.cmake) + +############################################################# +### PROJECT SETTINGS ### +############################################################# + +project(VirtualFluidsGPU) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +include_directories(${CMAKE_BINARY_DIR}/gpu) + +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER ".cmake") + +set(libraryFolder "libs") +set(gksLibraryFolder "libs/GKS") + +set(testFolder "tests") + +set(appFolder "apps") +set(lbmAppFolder "apps/LBM") +set(gksAppFolder "apps/GKS") + +set(thirdPartyFolder "3rdParty") + +IF(MSVC) + ADD_DEFINITIONS ( "-DNOMINMAX" ) # Disable Min/Max-Macros + ADD_DEFINITIONS ( "-D_CRT_SECURE_NO_WARNINGS" ) # disable warnings promoting Microsoft's security enhanced CRT + ADD_DEFINITIONS ( "-D_SCL_SECURE_NO_WARNINGS" ) # disable warnings triggered by Microsoft's checked iterators + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -MP" ) # enable multi-threaded compiling + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" ) # enable big object files (fatal error C1128) +ENDIF(MSVC) + +############################################################# +### OPTIONS ### +############################################################# +option(BUILD_SHARED_LIBS "Build shared libraries" ON ) +option(VF.BUILD_VF_GPU "Build VirtualFluids GPU" OFF ) +option(VF.BUILD_VF_GKS "Build VirtualFluids GKS" OFF ) +option(VF.BUILD_VF_TRAFFIC "Build VirtualFluids Traffic" OFF) +option(VF.BUILD_JSONCPP "Builds json cpp " OFF) +option(VF.BUILD_NUMERIC_TESTS "Build numeric tests" OFF) + +option(VF.BUILD_DOUBLE_ACCURACY "Use double accuracy" OFF ) + +IF( VF.BUILD_DOUBLE_ACCURACY ) + SET( VF_DOUBLE_ACCURACY 1 ) +ENDIF() -project(VirtualFluids CXX) +############################################################# -set (CMAKE_PATH "${CMAKE_SOURCE_DIR}/CMake") +enable_language(CUDA) -option(BUILD_VF_CPU "Build VirtualFluids cpu variant" OFF) -option(BUILD_VF_GPU "Build VirtualFluids gpu variant" ON) +#sharedLibs() +############################################################# -include("${CMAKE_PATH}/CMakeCABMacros.cmake") -include("${CMAKE_PATH}/FileUtilities.cmake") -include("${CMAKE_PATH}/VirtualFluidsMacros.cmake") +include(${CMAKE_SOURCE_DIR}/gpu/${cmakeMacroPath}/general/FindCompiler.cmake) +configure_file(src/gpu/VirtualFluidsDefinitions.in.h VirtualFluidsDefinitions.h) +if(MSVC) + SET( CMAKE_CXX_FLAGS "/FI${CMAKE_BINARY_DIR}/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" ) +ELSE(MSVC) + SET( CMAKE_CXX_FLAGS "-include ${CMAKE_BINARY_DIR}/VirtualFluidsDefinitions.h ${CMAKE_CXX_FLAGS}" ) +ENDIF(MSVC) +IF( VF.BUILD_VF_GKS ) + # only use this with device of CC larger than 6.0 + set(CMAKE_CUDA_FLAGS " -arch=sm_60 -Xptxas=\"-v\"" CACHE STRING "" FORCE) +ENDIF() + +set(CMAKE_CUDA_FLAGS_DEBUG " -G" CACHE STRING "" FORCE) + + +########################################################################################################################## +### Subdirectories ### +########################################################################################################################## + +############################################################# +### Core ### +############################################################# + +add_subdirectory(gpu/src/GridGenerator) +#add_subdirectory(3rdParty/metis/metis-5.1.0) + +############################################################# +### Virtual Fluids GPU ### +############################################################# -SET(USE_ZOLTAN OFF CACHE BOOL "include Zoltan library support") -SET(USE_METIS ON CACHE BOOL "include METIS library support") -SET(USE_MPI ON CACHE BOOL "include MPI library support") -SET(USE_VTK OFF CACHE BOOL "include VTK library support") -SET(USE_CATALYST OFF CACHE BOOL "include Paraview Catalyst support") -SET(USE_BOOST OFF CACHE BOOL "include Boost support") -#SET(USE_PYTHON OFF CACHE BOOL "include Python scripting support") -#SET(USE_FETOL OFF CACHE BOOL "include FETOL library support") -SET(USE_INTEL OFF CACHE BOOL "include Intel compiler support") -SET(USE_GCC OFF CACHE BOOL "include gcc compiler support") -SET(USE_HLRN_LUSTRE OFF CACHE BOOL "include HLRN Lustre support") -SET(USE_DEM_COUPLING OFF CACHE BOOL "PE plugin") -IF(${USE_MPI}) - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DVF_MPI) +IF (VF.BUILD_VF_GPU) + add_subdirectory(targets/libs/VirtualFluids_GPU) + + #add_subdirectory(targets/apps/LBM/lbmTest) + #add_subdirectory(targets/apps/LBM/metisTest) + #add_subdirectory(targets/apps/LBM/Basel) + #add_subdirectory(targets/apps/LBM/BaselNU) + #add_subdirectory(targets/apps/LBM/BaselMultiGPU) + add_subdirectory(targets/apps/LBM/DrivenCavity) + add_subdirectory(targets/apps/LBM/gridGeneratorTest) + add_subdirectory(targets/apps/LBM/TGV_3D) + add_subdirectory(targets/apps/LBM/TGV_3D_MultiGPU) +ELSE() + MESSAGE( STATUS "exclude Virtual Fluids GPU." ) ENDIF() -IF(${USE_METIS}) - LIST(APPEND CAB_ADDTIONAL_COMPILER_FLAGS -DVF_METIS) + +############################################################# +### Virtual Fluids GKS ### +############################################################# + +IF (VF.BUILD_VF_GKS) + add_subdirectory(targets/libs/GksMeshAdapter) + add_subdirectory(targets/libs/GksVtkAdapter) + + add_subdirectory(targets/libs/GksGpu) + + #add_subdirectory(targets/apps/GKS/gksTest) + #add_subdirectory(targets/apps/GKS/ChannelFlow) + + #add_subdirectory(targets/apps/GKS/ChannelFlowObstacle) + #add_subdirectory(targets/apps/GKS/ShearWave) + + #add_subdirectory(targets/apps/GKS/LiFuXu) + + #add_subdirectory(targets/apps/GKS/TaylorGreen3D) + #add_subdirectory(targets/apps/GKS/DrivenCavity3D) + #add_subdirectory(targets/apps/GKS/ThermalCavity) + + #add_subdirectory(targets/apps/GKS/ThermalCavityMultiGPU) + #add_subdirectory(targets/apps/GKS/DrivenCavityMultiGPU) + #add_subdirectory(targets/apps/GKS/RayleighBenardMultiGPU) + + #add_subdirectory(targets/apps/GKS/SalinasVazquez) + #add_subdirectory(targets/apps/GKS/BoundaryJet) + + #add_subdirectory(targets/apps/GKS/PropaneFlame) + #add_subdirectory(targets/apps/GKS/ConfinedCombustion) + #add_subdirectory(targets/apps/GKS/MethaneFlame) + + #add_subdirectory(targets/apps/GKS/Room) + #add_subdirectory(targets/apps/GKS/RoomMultiGPU) + #add_subdirectory(targets/apps/GKS/RoomFire) + #add_subdirectory(targets/apps/GKS/RoomFireExtended) + #add_subdirectory(targets/apps/GKS/ConcreteHeatFluxBCTest) + + #add_subdirectory(targets/apps/GKS/PoolFire) + add_subdirectory(targets/apps/GKS/Flame7cm) + add_subdirectory(targets/apps/GKS/SandiaFlame_1m) + #add_subdirectory(targets/apps/GKS/Candle) + + #add_subdirectory(targets/apps/GKS/MultiGPU) + add_subdirectory(targets/apps/GKS/MultiGPU_nD) + add_subdirectory(targets/apps/GKS/SingleGPU) +ELSE() + MESSAGE( STATUS "exclude Virtual Fluids GKS." ) ENDIF() -# FIND MPI -IF((NOT ${CMAKE_CXX_COMPILER} MATCHES mpicxx) AND (NOT ${CMAKE_CXX_COMPILER} MATCHES mpiicpc))# OR NOT ${CMAKE_CXX_COMPILER} MATCHES cc OR NOT ${CMAKE_CXX_COMPILER} MATCHES mpiCC) - FIND_PACKAGE(MPI REQUIRED) + +############################################################# +### JSONCPP ### +############################################################# +IF (NOT VF.BUILD_JSONCPP) + MESSAGE( STATUS "Build Input Project without JsonCpp." ) +ELSE() + add_subdirectory(3rdParty/jsoncpp) + add_definitions(-DBUILD_JSONCPP) ENDIF() -add_subdirectory(src/basics) +############################################################# +### Numeric Tests ### +############################################################# + +if(VF.BUILD_NUMERIC_TESTS) + add_subdirectory(3rdParty/fftw/fftw-3.3.7) + add_subdirectory(3rdParty/googletest) + add_subdirectory(targets/tests/NumericalTests) + add_subdirectory(targets/tests/NumericalTestPostProcessing) +endif() + +############################################################# +### Annas Traffic Sim ### +############################################################# -#if (BUILD_VF_CPU) - add_subdirectory(3rdParty/MuParser) - add_subdirectory(cpu) -#endif() -#if(BUILD_VF_GPU) -# add_subdirectory(gpu) -#endif() +if(VF.BUILD_VF_TRAFFIC) + add_subdirectory(targets/libs/Traffic) -set (APPS_ROOT_CPU "${CMAKE_SOURCE_DIR}/apps/cpu/") -include(${APPS_ROOT_CPU}/Applications.cmake) \ No newline at end of file + add_subdirectory(targets/apps/LBM/TrafficTest) +endif() \ No newline at end of file diff --git a/gpu/CMakeMacros/OpenMP/Link.cmake b/gpu/CMakeMacros/OpenMP/Link.cmake deleted file mode 100644 index 2a5ae6710f75a77602ab15f3818f3e211a3fb38b..0000000000000000000000000000000000000000 --- a/gpu/CMakeMacros/OpenMP/Link.cmake +++ /dev/null @@ -1,10 +0,0 @@ -macro(linkOpenMP targetName) - -find_package(OpenMP) -if (OPENMP_FOUND) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler ${OpenMP_CXX_FLAGS}") -endif() - -endmacro(linkOpenMP) diff --git a/gpu/src/GridGenerator/CMakeLists.txt b/gpu/src/GridGenerator/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..052da46b848d787caacdb0aa9718c8c277ff332e --- /dev/null +++ b/gpu/src/GridGenerator/CMakeLists.txt @@ -0,0 +1,26 @@ + + +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/Cuda/Link.cmake) +#linkCuda(${targetName}) +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/MPI/Link.cmake) +#linkMPI(${targetName}) +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/Boost/Link.cmake) +#linkBoost(${targetName} "serialization") +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/Metis/Link.cmake) +#linkMetis(${targetName}) +#include (${CMAKE_SOURCE_DIR}/${cmakeMacroPath}/OpenMP/Link.cmake) +#linkOpenMP(${targetName}) + + +vf_add_library(BUILDTYPE shared) + +include (${CMAKE_PATH}/3rd/cuda.cmake) +include (${CMAKE_PATH}/3rd/OpenMP.cmake) + +vf_get_library_name(library_name) +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics") +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/gpu/src") +target_include_directories(${library_name} PRIVATE "${CMAKE_SOURCE_DIR}/src/basics/Core") + + +set_property(TARGET ${library_name} PROPERTY CUDA_SEPARABLE_COMPILATION ON) \ No newline at end of file diff --git a/gpu/src/GridGenerator/geometries/Arrow/ArrowImp.h b/gpu/src/GridGenerator/geometries/Arrow/ArrowImp.h index 950dbfd9f6c7a16bfc6dd2615c856960da582f8e..61e7158664b1def3a733120ccb2216662c547ae4 100644 --- a/gpu/src/GridGenerator/geometries/Arrow/ArrowImp.h +++ b/gpu/src/GridGenerator/geometries/Arrow/ArrowImp.h @@ -3,7 +3,7 @@ #include <memory> -#include "GridGenerator/global.h" +#include "global.h" #include "Arrow.h" diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu b/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu index acce19b7105b975ae5ef056efbbbb702dacefaa1..96bc858e40534a4bad8fb29633802f7f5732e23f 100644 --- a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu +++ b/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMesh.cu @@ -2,7 +2,7 @@ #include "Core/Timer/Timer.h" -#include "VirtualFluidsBasics/numerics/geometry3d/GbTriFaceMesh3D.h" +#include "basics/numerics/geometry3d/GbTriFaceMesh3D.h" #include "geometries/TriangularMesh/triangleNeighborFinder/TriangleNeighborFinder.h" #include "geometries/TriangularMesh/TriangularMeshStrategy.h" diff --git a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp b/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp index b24c6c9fbd7c03d21d4307846f748aeff13c3ee8..3fea77f5434b7e1d02fef5fce096247727259e5c 100644 --- a/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp +++ b/gpu/src/GridGenerator/geometries/TriangularMesh/TriangularMeshStrategy.cpp @@ -2,7 +2,7 @@ #include "Core/Timer/Timer.h" -#include "VirtualFluidsBasics/numerics/geometry3d/GbTriFaceMesh3D.h" +#include "basics/numerics/geometry3d/GbTriFaceMesh3D.h" #include "geometries/Triangle/Triangle.h" #include "geometries/TriangularMesh/TriangularMesh.h" diff --git a/gpu/src/GridGenerator/grid/GridBuilder/GridBuilder.h b/gpu/src/GridGenerator/grid/GridBuilder/GridBuilder.h index 8307d2d7f8e13383e84aa5e0b76b46e7e1821f29..b7cb1094e70bc12082b6ddcb0db515f4e2151cba 100644 --- a/gpu/src/GridGenerator/grid/GridBuilder/GridBuilder.h +++ b/gpu/src/GridGenerator/grid/GridBuilder/GridBuilder.h @@ -5,7 +5,7 @@ #include <string> #include <memory> -#include "GridGenerator/global.h" +#include "global.h" #define GEOMQS 6 #define INLETQS 0 diff --git a/gpu/src/GridGenerator/grid/GridImp.cu b/gpu/src/GridGenerator/grid/GridImp.cu index 84c64cba3263e82a7e66080eeacc2c83b36ae18f..795a2460ae64d3fb9545ba4ba7789b497337d869 100644 --- a/gpu/src/GridGenerator/grid/GridImp.cu +++ b/gpu/src/GridGenerator/grid/GridImp.cu @@ -476,7 +476,7 @@ HOSTDEVICE bool GridImp::isValidEndOfGridStopper(uint index) const return hasNeighborOfType(index, FLUID); - //previous version of Sören P. + //previous version of S�ren P. //return this->field.is(index, OUT_OF_GRID) && (nodeInNextCellIs(index, FLUID) || nodeInNextCellIs(index, FLUID_CFF)) // || this->field.is(index, OUT_OF_GRID) && (nodeInPreviousCellIs(index, FLUID) || nodeInPreviousCellIs(index, FLUID_CFF)); } @@ -489,7 +489,7 @@ HOSTDEVICE bool GridImp::isValidEndOfGridBoundaryStopper(uint index) const return ! hasAllNeighbors(index); - //previous version of Sören P. + //previous version of S�ren P. //return this->field.is(index, OUT_OF_GRID) && (nodeInNextCellIs(index, FLUID) || nodeInNextCellIs(index, FLUID_CFF)) // || this->field.is(index, OUT_OF_GRID) && (nodeInPreviousCellIs(index, FLUID) || nodeInPreviousCellIs(index, FLUID_CFF)); } @@ -502,7 +502,7 @@ HOSTDEVICE bool GridImp::isValidSolidStopper(uint index) const return hasNeighborOfType(index, FLUID); - //previous version of Sören P. + //previous version of S�ren P. //return this->field.is(index, SOLID) && (nodeInNextCellIs(index, FLUID) || nodeInNextCellIs(index, FLUID_CFF)) // || this->field.is(index, SOLID) && (nodeInPreviousCellIs(index, FLUID) || nodeInPreviousCellIs(index, FLUID_CFF)); } diff --git a/gpu/src/GridGenerator/grid/partition/Partition.cpp b/gpu/src/GridGenerator/grid/partition/Partition.cpp index e4df0040375554d12dbd3936a49a07535cb4619f..970599105e9363f37f930480f1874827672c86d2 100644 --- a/gpu/src/GridGenerator/grid/partition/Partition.cpp +++ b/gpu/src/GridGenerator/grid/partition/Partition.cpp @@ -4,7 +4,7 @@ //#include <stdio.h> //#include <iostream> // -//#include <GridGenerator/global.h> +//#include <global.h> //#include <GridGenerator/grid/Grid.h> //#include <GridGenerator/geometries/Triangle/Triangle.h> //#include <GridGenerator/geometries/Vertex/Vertex.h> diff --git a/gpu/src/GridGenerator/grid/partition/Partition.h b/gpu/src/GridGenerator/grid/partition/Partition.h index 5700af1d9b09b22b23ebb693b982fb611ec442d2..0c0ebc870465f7e4150a758450d52f9fe57bb074 100644 --- a/gpu/src/GridGenerator/grid/partition/Partition.h +++ b/gpu/src/GridGenerator/grid/partition/Partition.h @@ -1,7 +1,7 @@ //#ifndef Partition_H //#define Partition_H // -//#include "GridGenerator/global.h" +//#include "global.h" // // //#include <vector> diff --git a/gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp b/gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp index 9ea43fd9f7b3fb78f226b06d3d3df09be532f6f5..a0a15e2e580842d77b94fed0455368b6916dc77c 100644 --- a/gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp +++ b/gpu/src/GridGenerator/io/GridVTKWriter/GridVTKWriter.cpp @@ -6,8 +6,8 @@ #include <sstream> #include <memory> -#include "VirtualFluidsBasics/basics/writer/WbWriterVtkXmlBinary.h" -#include "VirtualFluidsBasics/basics/container/CbArray3D.h" +#include "basics/basics/writer/WbWriterVtkXmlBinary.h" +#include "basics/basics/container/CbArray3D.h" #include "geometries/Vertex/Vertex.h" diff --git a/gpu/src/GridGenerator/io/QLineWriter.cpp b/gpu/src/GridGenerator/io/QLineWriter.cpp index 7f086b2725a8c08f403fda995d687f0bf2cb54a4..79a54a9983c5fc8cfa1af238dbf5d2551d621eea 100644 --- a/gpu/src/GridGenerator/io/QLineWriter.cpp +++ b/gpu/src/GridGenerator/io/QLineWriter.cpp @@ -4,7 +4,7 @@ #include <string> #include <fstream> -#include "VirtualFluidsBasics/basics/utilities/UbTuple.h" +#include "basics/basics/utilities/UbTuple.h" #include "geometries/Vertex/Vertex.h" diff --git a/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h b/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h index 7a08ac0416314c2edaedc26fdf9c65a52c7f0098..b4edfba926504ef97bfb8204dfa377cc2fac73dc 100644 --- a/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h +++ b/gpu/src/GridGenerator/io/SimulationFileWriter/SimulationFileWriter.h @@ -10,7 +10,7 @@ #include "Core/NonCreatable.h" -#include "GridGenerator/global.h" +#include "global.h" class UnstructuredGridBuilder; class GridBuilder; diff --git a/src/basics/CMakeLists.txt b/src/basics/CMakeLists.txt index 4052d3b628f3c79381e84bf6684d0d2ce842dc64..b668e432fcecc548e04f2541963e6a04f47eb0fd 100644 --- a/src/basics/CMakeLists.txt +++ b/src/basics/CMakeLists.txt @@ -14,7 +14,7 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR}/basics/writer) include (${CMAKE_SOURCE_DIR}/CMake/VirtualFluidsMacros.cmake) SET(CAB_ADDITIONAL_LINK_LIBRARIES ${MPI_CXX_LIBRARIES}) -include(core/buildInfo.cmake) +include(Core/buildInfo.cmake) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/VirtualFluidsCore) INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH}) @@ -30,10 +30,10 @@ vf_add_library(BUILDTYPE static ${CMAKE_CURRENT_LIST_DIR}/basics/transmiitter ${CMAKE_CURRENT_LIST_DIR}/basics/utilities ${CMAKE_CURRENT_LIST_DIR}/basics/writer - ${CMAKE_CURRENT_LIST_DIR}/core + ${CMAKE_CURRENT_LIST_DIR}/Core EXCLUDE buildInfo.in.cpp ) vf_get_library_name (library_name) -target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/core) +target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/Core) target_include_directories(${library_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/basics/core/ArrayTypes.h b/src/basics/Core/ArrayTypes.h similarity index 100% rename from src/basics/core/ArrayTypes.h rename to src/basics/Core/ArrayTypes.h diff --git a/src/basics/core/DataTypes.h b/src/basics/Core/DataTypes.h similarity index 100% rename from src/basics/core/DataTypes.h rename to src/basics/Core/DataTypes.h diff --git a/src/basics/core/Input/ConfigData/ConfigData.h b/src/basics/Core/Input/ConfigData/ConfigData.h similarity index 100% rename from src/basics/core/Input/ConfigData/ConfigData.h rename to src/basics/Core/Input/ConfigData/ConfigData.h diff --git a/src/basics/core/Input/ConfigData/ConfigDataImp.cpp b/src/basics/Core/Input/ConfigData/ConfigDataImp.cpp similarity index 100% rename from src/basics/core/Input/ConfigData/ConfigDataImp.cpp rename to src/basics/Core/Input/ConfigData/ConfigDataImp.cpp diff --git a/src/basics/core/Input/ConfigData/ConfigDataImp.h b/src/basics/Core/Input/ConfigData/ConfigDataImp.h similarity index 100% rename from src/basics/core/Input/ConfigData/ConfigDataImp.h rename to src/basics/Core/Input/ConfigData/ConfigDataImp.h diff --git a/src/basics/core/Input/ConfigFileReader/ConfigFileReader.cpp b/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp similarity index 100% rename from src/basics/core/Input/ConfigFileReader/ConfigFileReader.cpp rename to src/basics/Core/Input/ConfigFileReader/ConfigFileReader.cpp diff --git a/src/basics/core/Input/ConfigFileReader/ConfigFileReader.h b/src/basics/Core/Input/ConfigFileReader/ConfigFileReader.h similarity index 100% rename from src/basics/core/Input/ConfigFileReader/ConfigFileReader.h rename to src/basics/Core/Input/ConfigFileReader/ConfigFileReader.h diff --git a/src/basics/core/Input/ConfigInput/ConfigInput.cpp b/src/basics/Core/Input/ConfigInput/ConfigInput.cpp similarity index 100% rename from src/basics/core/Input/ConfigInput/ConfigInput.cpp rename to src/basics/Core/Input/ConfigInput/ConfigInput.cpp diff --git a/src/basics/core/Input/ConfigInput/ConfigInput.h b/src/basics/Core/Input/ConfigInput/ConfigInput.h similarity index 100% rename from src/basics/core/Input/ConfigInput/ConfigInput.h rename to src/basics/Core/Input/ConfigInput/ConfigInput.h diff --git a/src/basics/core/Input/Input.cpp b/src/basics/Core/Input/Input.cpp similarity index 100% rename from src/basics/core/Input/Input.cpp rename to src/basics/Core/Input/Input.cpp diff --git a/src/basics/core/Input/Input.h b/src/basics/Core/Input/Input.h similarity index 100% rename from src/basics/core/Input/Input.h rename to src/basics/Core/Input/Input.h diff --git a/src/basics/core/Input/JsonInput/JsonInput.cpp b/src/basics/Core/Input/JsonInput/JsonInput.cpp similarity index 100% rename from src/basics/core/Input/JsonInput/JsonInput.cpp rename to src/basics/Core/Input/JsonInput/JsonInput.cpp diff --git a/src/basics/core/Input/JsonInput/JsonInput.h b/src/basics/Core/Input/JsonInput/JsonInput.h similarity index 100% rename from src/basics/core/Input/JsonInput/JsonInput.h rename to src/basics/Core/Input/JsonInput/JsonInput.h diff --git a/src/basics/core/LbmOrGks.h b/src/basics/Core/LbmOrGks.h similarity index 100% rename from src/basics/core/LbmOrGks.h rename to src/basics/Core/LbmOrGks.h diff --git a/src/basics/core/Logger/Logger.cpp b/src/basics/Core/Logger/Logger.cpp similarity index 100% rename from src/basics/core/Logger/Logger.cpp rename to src/basics/Core/Logger/Logger.cpp diff --git a/src/basics/core/Logger/Logger.h b/src/basics/Core/Logger/Logger.h similarity index 100% rename from src/basics/core/Logger/Logger.h rename to src/basics/Core/Logger/Logger.h diff --git a/src/basics/core/Logger/implementations/LoggerImp.cpp b/src/basics/Core/Logger/implementations/LoggerImp.cpp similarity index 100% rename from src/basics/core/Logger/implementations/LoggerImp.cpp rename to src/basics/Core/Logger/implementations/LoggerImp.cpp diff --git a/src/basics/core/Logger/implementations/LoggerImp.h b/src/basics/Core/Logger/implementations/LoggerImp.h similarity index 100% rename from src/basics/core/Logger/implementations/LoggerImp.h rename to src/basics/Core/Logger/implementations/LoggerImp.h diff --git a/src/basics/core/Logger/implementations/LoggerTest.cpp b/src/basics/Core/Logger/implementations/LoggerTest.cpp similarity index 100% rename from src/basics/core/Logger/implementations/LoggerTest.cpp rename to src/basics/Core/Logger/implementations/LoggerTest.cpp diff --git a/src/basics/core/NonCreatable.h b/src/basics/Core/NonCreatable.h similarity index 100% rename from src/basics/core/NonCreatable.h rename to src/basics/Core/NonCreatable.h diff --git a/src/basics/core/PointerDefinitions.h b/src/basics/Core/PointerDefinitions.h similarity index 100% rename from src/basics/core/PointerDefinitions.h rename to src/basics/Core/PointerDefinitions.h diff --git a/src/basics/core/RealConstants.h b/src/basics/Core/RealConstants.h similarity index 100% rename from src/basics/core/RealConstants.h rename to src/basics/Core/RealConstants.h diff --git a/src/basics/core/StringUtilities/StringUtil.cpp b/src/basics/Core/StringUtilities/StringUtil.cpp similarity index 100% rename from src/basics/core/StringUtilities/StringUtil.cpp rename to src/basics/Core/StringUtilities/StringUtil.cpp diff --git a/src/basics/core/StringUtilities/StringUtil.h b/src/basics/Core/StringUtilities/StringUtil.h similarity index 100% rename from src/basics/core/StringUtilities/StringUtil.h rename to src/basics/Core/StringUtilities/StringUtil.h diff --git a/src/basics/core/Timer/Timer.cpp b/src/basics/Core/Timer/Timer.cpp similarity index 100% rename from src/basics/core/Timer/Timer.cpp rename to src/basics/Core/Timer/Timer.cpp diff --git a/src/basics/core/Timer/Timer.h b/src/basics/Core/Timer/Timer.h similarity index 100% rename from src/basics/core/Timer/Timer.h rename to src/basics/Core/Timer/Timer.h diff --git a/src/basics/core/Timer/TimerImp.cpp b/src/basics/Core/Timer/TimerImp.cpp similarity index 100% rename from src/basics/core/Timer/TimerImp.cpp rename to src/basics/Core/Timer/TimerImp.cpp diff --git a/src/basics/core/Timer/TimerImp.h b/src/basics/Core/Timer/TimerImp.h similarity index 100% rename from src/basics/core/Timer/TimerImp.h rename to src/basics/Core/Timer/TimerImp.h diff --git a/src/basics/core/VectorTypes.cpp b/src/basics/Core/VectorTypes.cpp similarity index 100% rename from src/basics/core/VectorTypes.cpp rename to src/basics/Core/VectorTypes.cpp diff --git a/src/basics/core/VectorTypes.h b/src/basics/Core/VectorTypes.h similarity index 100% rename from src/basics/core/VectorTypes.h rename to src/basics/Core/VectorTypes.h diff --git a/src/basics/core/buildInfo.cmake b/src/basics/Core/buildInfo.cmake similarity index 100% rename from src/basics/core/buildInfo.cmake rename to src/basics/Core/buildInfo.cmake diff --git a/src/basics/core/buildInfo.h b/src/basics/Core/buildInfo.h similarity index 100% rename from src/basics/core/buildInfo.h rename to src/basics/Core/buildInfo.h diff --git a/src/basics/core/buildInfo.in.cpp b/src/basics/Core/buildInfo.in.cpp similarity index 100% rename from src/basics/core/buildInfo.in.cpp rename to src/basics/Core/buildInfo.in.cpp diff --git a/src/basics/core/package.include b/src/basics/Core/package.include similarity index 100% rename from src/basics/core/package.include rename to src/basics/Core/package.include diff --git a/gpu/src/VirtualFluidsDefinitions.in.h b/src/gpu/VirtualFluidsDefinitions.in.h similarity index 100% rename from gpu/src/VirtualFluidsDefinitions.in.h rename to src/gpu/VirtualFluidsDefinitions.in.h