From 8688c4d72efe0bb2a0ec75d6ed85c4b8613654e2 Mon Sep 17 00:00:00 2001 From: markus holzer <markus.holzer@fau.de> Date: Fri, 18 Feb 2022 16:22:06 +0100 Subject: [PATCH] Remove duplicated code --- CMakeLists.txt | 7 ++++ .../FlowAroundSphereCodeGen/CMakeLists.txt | 35 +++++++------------ .../PhaseFieldAllenCahn/CMakeLists.txt | 33 ++++++----------- 3 files changed, 31 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d0585943..b96132639 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1105,6 +1105,13 @@ if (WALBERLA_BUILD_WITH_CUDA AND (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "11.0 set(CMAKE_CUDA_STANDARD 14) set(WALBERLA_USE_STD_EXPERIMENTAL_ANY 1) endif() + +# Can be used in CMake files containing generated files where the file suffix is dependent on the target +if (CUDA_FOUND) + set(CODEGEN_FILE_SUFFIX "cu") +else() + set(CODEGEN_FILE_SUFFIX "cu") +endif() ############################################################################################################################ diff --git a/apps/benchmarks/FlowAroundSphereCodeGen/CMakeLists.txt b/apps/benchmarks/FlowAroundSphereCodeGen/CMakeLists.txt index 549b7fd08..faaaf44dc 100644 --- a/apps/benchmarks/FlowAroundSphereCodeGen/CMakeLists.txt +++ b/apps/benchmarks/FlowAroundSphereCodeGen/CMakeLists.txt @@ -1,29 +1,20 @@ waLBerla_link_files_to_builddir( "*.py" ) +waLBerla_generate_target_from_python(NAME FlowAroundSphereGenerated + FILE FlowAroundSphereCodeGen.py + OUT_FILES FlowAroundSphereCodeGen_LbSweep.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_LbSweep.h + FlowAroundSphereCodeGen_MacroSetter.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_MacroSetter.h + FlowAroundSphereCodeGen_UBB.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_UBB.h + FlowAroundSphereCodeGen_NoSlip.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_NoSlip.h + FlowAroundSphereCodeGen_Outflow.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_Outflow.h + FlowAroundSphereCodeGen_PackInfoEven.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_PackInfoEven.h + FlowAroundSphereCodeGen_PackInfoOdd.${CODEGEN_FILE_SUFFIX} FlowAroundSphereCodeGen_PackInfoOdd.h + FlowAroundSphereCodeGen_InfoHeader.h) + if (WALBERLA_BUILD_WITH_CUDA) - waLBerla_generate_target_from_python(NAME FlowAroundSphereGenerated - FILE FlowAroundSphereCodeGen.py - OUT_FILES FlowAroundSphereCodeGen_LbSweep.cu FlowAroundSphereCodeGen_LbSweep.h - FlowAroundSphereCodeGen_MacroSetter.cu FlowAroundSphereCodeGen_MacroSetter.h - FlowAroundSphereCodeGen_UBB.cu FlowAroundSphereCodeGen_UBB.h - FlowAroundSphereCodeGen_NoSlip.cu FlowAroundSphereCodeGen_NoSlip.h - FlowAroundSphereCodeGen_Outflow.cu FlowAroundSphereCodeGen_Outflow.h - FlowAroundSphereCodeGen_PackInfoEven.cu FlowAroundSphereCodeGen_PackInfoEven.h - FlowAroundSphereCodeGen_PackInfoOdd.cu FlowAroundSphereCodeGen_PackInfoOdd.h - FlowAroundSphereCodeGen_InfoHeader.h) waLBerla_add_executable( NAME FlowAroundSphereCodeGen FILE FlowAroundSphereCodeGen.cpp - DEPENDS blockforest boundary core domain_decomposition field geometry python_coupling timeloop vtk FlowAroundSphereGenerated) + DEPENDS blockforest boundary core cuda domain_decomposition field geometry python_coupling timeloop vtk FlowAroundSphereGenerated) else () - waLBerla_generate_target_from_python(NAME FlowAroundSphereGenerated - FILE FlowAroundSphereCodeGen.py - OUT_FILES FlowAroundSphereCodeGen_LbSweep.cpp FlowAroundSphereCodeGen_LbSweep.h - FlowAroundSphereCodeGen_MacroSetter.cpp FlowAroundSphereCodeGen_MacroSetter.h - FlowAroundSphereCodeGen_UBB.cpp FlowAroundSphereCodeGen_UBB.h - FlowAroundSphereCodeGen_NoSlip.cpp FlowAroundSphereCodeGen_NoSlip.h - FlowAroundSphereCodeGen_Outflow.cpp FlowAroundSphereCodeGen_Outflow.h - FlowAroundSphereCodeGen_PackInfoEven.cpp FlowAroundSphereCodeGen_PackInfoEven.h - FlowAroundSphereCodeGen_PackInfoOdd.cpp FlowAroundSphereCodeGen_PackInfoOdd.h - FlowAroundSphereCodeGen_InfoHeader.h) waLBerla_add_executable( NAME FlowAroundSphereCodeGen FILE FlowAroundSphereCodeGen.cpp DEPENDS blockforest boundary core domain_decomposition field geometry python_coupling timeloop vtk FlowAroundSphereGenerated) -endif() \ No newline at end of file +endif (WALBERLA_BUILD_WITH_CUDA) \ No newline at end of file diff --git a/apps/benchmarks/PhaseFieldAllenCahn/CMakeLists.txt b/apps/benchmarks/PhaseFieldAllenCahn/CMakeLists.txt index 35bf3f763..139d05a24 100644 --- a/apps/benchmarks/PhaseFieldAllenCahn/CMakeLists.txt +++ b/apps/benchmarks/PhaseFieldAllenCahn/CMakeLists.txt @@ -1,33 +1,22 @@ waLBerla_link_files_to_builddir(*.prm) waLBerla_link_files_to_builddir(*.py) -if (WALBERLA_BUILD_WITH_CUDA) - waLBerla_generate_target_from_python(NAME BenchmarkPhaseFieldCodeGenGPU - FILE multiphase_codegen.py - OUT_FILES initialize_phase_field_distributions.cu initialize_phase_field_distributions.h - initialize_velocity_based_distributions.cu initialize_velocity_based_distributions.h - phase_field_LB_step.cu phase_field_LB_step.h - hydro_LB_step.cu hydro_LB_step.h - PackInfo_phase_field_distributions.cu PackInfo_phase_field_distributions.h - PackInfo_phase_field.cu PackInfo_phase_field.h - PackInfo_velocity_based_distributions.cu PackInfo_velocity_based_distributions.h - GenDefines.h) +waLBerla_generate_target_from_python(NAME BenchmarkPhaseFieldCodeGenGPU + FILE multiphase_codegen.py + OUT_FILES initialize_phase_field_distributions.${CODEGEN_FILE_SUFFIX} initialize_phase_field_distributions.h + initialize_velocity_based_distributions.${CODEGEN_FILE_SUFFIX} initialize_velocity_based_distributions.h + phase_field_LB_step.${CODEGEN_FILE_SUFFIX} phase_field_LB_step.h + hydro_LB_step.${CODEGEN_FILE_SUFFIX} hydro_LB_step.h + PackInfo_phase_field_distributions.${CODEGEN_FILE_SUFFIX} PackInfo_phase_field_distributions.h + PackInfo_phase_field.${CODEGEN_FILE_SUFFIX} PackInfo_phase_field.h + PackInfo_velocity_based_distributions.${CODEGEN_FILE_SUFFIX} PackInfo_velocity_based_distributions.h + GenDefines.h) +if (WALBERLA_BUILD_WITH_CUDA) waLBerla_add_executable(NAME benchmark_multiphase FILES benchmark_multiphase.cpp InitializerFunctions.cpp multiphase_codegen.py DEPENDS blockforest core cuda field postprocessing python_coupling lbm geometry timeloop gui BenchmarkPhaseFieldCodeGenGPU) else () - waLBerla_generate_target_from_python(NAME BenchmarkPhaseFieldCodeGenCPU - FILE multiphase_codegen.py - OUT_FILES initialize_phase_field_distributions.cpp initialize_phase_field_distributions.h - initialize_velocity_based_distributions.cpp initialize_velocity_based_distributions.h - phase_field_LB_step.cpp phase_field_LB_step.h - hydro_LB_step.cpp hydro_LB_step.h - PackInfo_phase_field_distributions.cpp PackInfo_phase_field_distributions.h - PackInfo_phase_field.cpp PackInfo_phase_field.h - PackInfo_velocity_based_distributions.cpp PackInfo_velocity_based_distributions.h - GenDefines.h) - waLBerla_add_executable(NAME benchmark_multiphase FILES benchmark_multiphase.cpp InitializerFunctions.cpp multiphase_codegen.py DEPENDS blockforest core field postprocessing python_coupling lbm geometry timeloop gui BenchmarkPhaseFieldCodeGenCPU) -- GitLab