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,