diff --git a/apps/benchmarks/PhaseFieldAllenCahn/multiphase_codegen.py b/apps/benchmarks/PhaseFieldAllenCahn/multiphase_codegen.py index 5fd50cf5735c84d404005020d7711ea9aa74f3ab..7a00cbca687ed8218c1739554e72de42de5bb686 100644 --- a/apps/benchmarks/PhaseFieldAllenCahn/multiphase_codegen.py +++ b/apps/benchmarks/PhaseFieldAllenCahn/multiphase_codegen.py @@ -122,8 +122,9 @@ hydro_LB_step = get_collision_assignments_hydro(lb_method=method_hydro, density=density, velocity_input=u, force=force_g, - optimization={"symbolic_field": g, - "symbolic_temporary_field": g_tmp}, + sub_iterations=1, + symbolic_fields={"symbolic_field": g, + "symbolic_temporary_field": g_tmp}, kernel_type='collide_stream_push') # streaming of the hydrodynamic distribution diff --git a/apps/showcases/PhaseFieldAllenCahn/CMakeLists.txt b/apps/showcases/PhaseFieldAllenCahn/CMakeLists.txt index ed6d22966d3b63e776d5a1a02642cf1f4cf7bd07..9084c99a814c65c5ab6fefe54b1ad5ff0213282c 100644 --- a/apps/showcases/PhaseFieldAllenCahn/CMakeLists.txt +++ b/apps/showcases/PhaseFieldAllenCahn/CMakeLists.txt @@ -1,6 +1,4 @@ -if ( NOT WALBERLA_BUILD_WITH_CUDA) add_subdirectory( CPU ) -endif() if ( WALBERLA_BUILD_WITH_CUDA) add_subdirectory( GPU ) diff --git a/apps/showcases/PhaseFieldAllenCahn/CPU/CMakeLists.txt b/apps/showcases/PhaseFieldAllenCahn/CPU/CMakeLists.txt index b155b2f5b06877094acf351dfe8cad8fc6d8eac0..0e8f653f7601a82c69862e8631a4b5d033cce38f 100644 --- a/apps/showcases/PhaseFieldAllenCahn/CPU/CMakeLists.txt +++ b/apps/showcases/PhaseFieldAllenCahn/CPU/CMakeLists.txt @@ -13,7 +13,7 @@ waLBerla_generate_target_from_python(NAME PhaseFieldCodeGenCPU stream_hydro.cpp stream_hydro.h GenDefines.h) -waLBerla_add_executable(NAME multiphase +waLBerla_add_executable(NAME multiphaseCPU FILES multiphase.cpp PythonExports.cpp InitializerFunctions.cpp contact.cpp CalculateNormals.cpp multiphase_codegen.py DEPENDS blockforest core field postprocessing lbm geometry timeloop gui PhaseFieldCodeGenCPU) diff --git a/apps/showcases/PhaseFieldAllenCahn/CPU/multiphase_codegen.py b/apps/showcases/PhaseFieldAllenCahn/CPU/multiphase_codegen.py index 42e990dc30f32c487c75f021ca4f21ec993cf202..497e00299d059134feb49a845850daf05e3463fb 100644 --- a/apps/showcases/PhaseFieldAllenCahn/CPU/multiphase_codegen.py +++ b/apps/showcases/PhaseFieldAllenCahn/CPU/multiphase_codegen.py @@ -134,8 +134,9 @@ hydro_LB_step = get_collision_assignments_hydro(lb_method=method_hydro, density=density, velocity_input=u, force=force_g, - optimization={"symbolic_field": g, - "symbolic_temporary_field": g_tmp}, + sub_iterations=2, + symbolic_fields={"symbolic_field": g, + "symbolic_temporary_field": g_tmp}, kernel_type='collide_only') hydro_LB_step.set_sub_expressions_from_dict({**{relaxation_rate: relaxation_rate_cutoff}, @@ -163,24 +164,24 @@ with CodeGeneration() as ctx: if not ctx.optimize_for_localhost: cpu_vec = {'instruction_set': None} - generate_sweep(ctx, 'initialize_phase_field_distributions', h_updates) - generate_sweep(ctx, 'initialize_velocity_based_distributions', g_updates) + generate_sweep(ctx, 'initialize_phase_field_distributions', h_updates, target='cpu') + generate_sweep(ctx, 'initialize_velocity_based_distributions', g_updates, target='cpu') generate_sweep(ctx, 'phase_field_LB_step', phase_field_LB_step, field_swaps=[(h, h_tmp)], inner_outer_split=True, - cpu_vectorize_info=cpu_vec) - generate_boundary(ctx, 'phase_field_LB_NoSlip', NoSlip(), method_phase) + cpu_vectorize_info=cpu_vec, target='cpu') + generate_boundary(ctx, 'phase_field_LB_NoSlip', NoSlip(), method_phase, target='cpu') generate_sweep(ctx, 'hydro_LB_step', hydro_LB_step, inner_outer_split=True, - cpu_vectorize_info=cpu_vec) - generate_boundary(ctx, 'hydro_LB_NoSlip', NoSlip(), method_hydro) + cpu_vectorize_info=cpu_vec, target='cpu') + generate_boundary(ctx, 'hydro_LB_NoSlip', NoSlip(), method_hydro, target='cpu') generate_sweep(ctx, 'stream_hydro', stream_hydro, field_swaps=[(g, g_tmp)], inner_outer_split=True, - cpu_vectorize_info=cpu_vec) + cpu_vectorize_info=cpu_vec, target='cpu') ctx.write_file("GenDefines.h", info_header) diff --git a/apps/showcases/PhaseFieldAllenCahn/GPU/CMakeLists.txt b/apps/showcases/PhaseFieldAllenCahn/GPU/CMakeLists.txt index e2982ff9355663358789d257de9d679c3264e098..c65a87749aee1bfe721d738b1cb7aac751c29648 100644 --- a/apps/showcases/PhaseFieldAllenCahn/GPU/CMakeLists.txt +++ b/apps/showcases/PhaseFieldAllenCahn/GPU/CMakeLists.txt @@ -16,7 +16,7 @@ waLBerla_generate_target_from_python(NAME PhaseFieldCodeGenGPU PackInfo_velocity_based_distributions.cu PackInfo_velocity_based_distributions.h GenDefines.h) -waLBerla_add_executable(NAME multiphase +waLBerla_add_executable(NAME multiphaseGPU FILES multiphase.cpp PythonExports.cpp InitializerFunctions.cpp CalculateNormals.cpp contact.cu multiphase_codegen.py DEPENDS blockforest core cuda field postprocessing lbm geometry timeloop gui PhaseFieldCodeGenGPU) diff --git a/apps/showcases/PhaseFieldAllenCahn/GPU/multiphase_codegen.py b/apps/showcases/PhaseFieldAllenCahn/GPU/multiphase_codegen.py index 16bdcfb5adfefe261e024ce29f32c18d01f4984d..48a19621db6f0e62be8c6bc21f6ecc4c65faa90a 100644 --- a/apps/showcases/PhaseFieldAllenCahn/GPU/multiphase_codegen.py +++ b/apps/showcases/PhaseFieldAllenCahn/GPU/multiphase_codegen.py @@ -133,8 +133,9 @@ hydro_LB_step = get_collision_assignments_hydro(lb_method=method_hydro, density=density, velocity_input=u, force=force_g, - optimization={"symbolic_field": g, - "symbolic_temporary_field": g_tmp}, + sub_iterations=2, + symbolic_fields={"symbolic_field": g, + "symbolic_temporary_field": g_tmp}, kernel_type='collide_only') hydro_LB_step.set_sub_expressions_from_dict({**{relaxation_rate: relaxation_rate_cutoff}, diff --git a/python/lbmpy_walberla/tests/test_walberla_codegen.py b/python/lbmpy_walberla/tests/test_walberla_codegen.py index 391743468a66994f9150eab066263e880b95ae3c..e38880acadeae832ae377a24d366e6e263ae34b8 100644 --- a/python/lbmpy_walberla/tests/test_walberla_codegen.py +++ b/python/lbmpy_walberla/tests/test_walberla_codegen.py @@ -85,7 +85,7 @@ class WalberlaLbmpyCodegenTest(unittest.TestCase): collision_rule = create_lb_collision_rule( stencil='D3Q19', compressible=True, fluctuating={'seed': 0, 'temperature': 1e-6}, method='mrt', relaxation_rates=[omega_shear] * 19, - force_model='guo', force=force_field.center_vector, + force_model='schiller', force=force_field.center_vector, optimization={'cse_global': False} ) generate_lattice_model(ctx, 'FluctuatingMRT', collision_rule) diff --git a/tests/lbm/codegen/FluctuatingMRT.py b/tests/lbm/codegen/FluctuatingMRT.py index 98a8812eea1dfe47619ecb3fdf3016e6ca78a5de..71a102612048f37018bfcb97e035119b7fc09fa3 100644 --- a/tests/lbm/codegen/FluctuatingMRT.py +++ b/tests/lbm/codegen/FluctuatingMRT.py @@ -37,7 +37,7 @@ with CodeGeneration() as ctx: compressible=True, weighted=True, relaxation_rate_getter=rr_getter, - force_model=force_model_from_string('guo', force_field.center_vector) + force_model=force_model_from_string('schiller', force_field.center_vector) ) collision_rule = create_lb_collision_rule( method,