Skip to content
Snippets Groups Projects
Commit 400d2b96 authored by Michael Kuron's avatar Michael Kuron :mortar_board: Committed by Markus Holzer
Browse files

Switch codegen MRT tests to Schiller force model

parent 2b929050
Branches
No related merge requests found
......@@ -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
......
if ( NOT WALBERLA_BUILD_WITH_CUDA)
add_subdirectory( CPU )
endif()
if ( WALBERLA_BUILD_WITH_CUDA)
add_subdirectory( GPU )
......
......@@ -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)
......
......@@ -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)
......
......@@ -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)
......
......@@ -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},
......
......@@ -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)
......
......@@ -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,
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment