diff --git a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp
index 489961fb99f49117e9a1861eb4fc86a5de8e530e..8af6cbc794c035ceef595249b9a7e7cc3585fd09 100644
--- a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp
+++ b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.cpp
@@ -111,7 +111,7 @@ int main(int argc, char** argv)
    ////////////////////
 
    auto numBlocks = Vector3<uint_t> (1,1,1);
-   auto cellsPerBlock = Vector3<uint_t>(128, 128, 128);
+   auto cellsPerBlock = Vector3<uint_t>(256, 256, 256);
    auto domainAABB = AABB(0,0,0,1,1,1);
 
    auto blocks = walberla::blockforest::createUniformBlockGrid(domainAABB, numBlocks[0], numBlocks[1], numBlocks[2], cellsPerBlock[0], cellsPerBlock[1], cellsPerBlock[2], true);
@@ -128,6 +128,8 @@ int main(int argc, char** argv)
 #if defined(WALBERLA_BUILD_WITH_GPU_SUPPORT)
    const BlockDataID fractionFieldGPUId = gpu::addGPUFieldToStorage< FracField_T >(blocks, fractionFieldId, "fractionFieldGPU", true);
    const BlockDataID objectVelocitiesFieldGPUId = gpu::addGPUFieldToStorage< VectorField_T >(blocks, objectVelocitiesFieldId, "object velocity field on GPU", true);
+   const BlockDataID forceFieldGPUId = gpu::addGPUFieldToStorage< VectorField_T >(blocks, objectVelocitiesFieldId, "force field on GPU", true);
+
 #endif
 
 
@@ -154,8 +156,8 @@ int main(int argc, char** argv)
    /////////////
 
 #if defined(WALBERLA_BUILD_WITH_GPU_SUPPORT)
-   SweepCollection_T sweepCollection(blocks, fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, densityFieldGPUId, velocityFieldGPUId, omega);
-   pystencils::PSM_Conditional_Sweep psmConditionalSweep( fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, omega );
+   SweepCollection_T sweepCollection(blocks, forceFieldGPUId, fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, densityFieldGPUId, velocityFieldGPUId, omega);
+   pystencils::PSM_Conditional_Sweep psmConditionalSweep( forceFieldGPUId, fractionFieldGPUId, objectVelocitiesFieldGPUId, pdfFieldGPUId, omega );
 #else
    SweepCollection_T sweepCollection(blocks, fractionFieldId, objectVelocitiesFieldId, pdfFieldId, densityFieldId, velocityFieldId, omega);
    pystencils::PSM_Conditional_Sweep psmConditionalSweep( fractionFieldId, objectVelocitiesFieldId, pdfFieldId, omega );
diff --git a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py
index 136d29a2b5b96992c8a73f1f5aeb38537fc4d7e7..35e08828f7e4d21841310432de9f2144735ef22d 100644
--- a/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py
+++ b/apps/benchmarks/PSM_Benchmark_Test/PSM_Benchmark_Test.py
@@ -51,21 +51,26 @@ with CodeGeneration() as ctx:
     velocity = ps.fields(f"velocity({stencil.D}): {data_type}[3D]", layout=layout)
     density = ps.fields(f"density({1}): {data_type}[3D]", layout=layout)
     macroscopic_fields = {'density': density, 'velocity': velocity}
+    force_field = ps.fields(f"forec({stencil.D}): {data_type}[3D]", layout=layout,)
 
-    fraction_field = ps.fields(f"frac_field({1}): {data_type}[3D]", layout=layout,)
+
+    fraction_field = ps.fields(f"frac_field({2}): {data_type}[3D]", layout=layout,)
     object_velocity_field = ps.fields(f"obj_vel({stencil.D}): {data_type}[3D]", layout=layout,)
 
     psm_config = PSMConfig(
         fraction_field=fraction_field,
         object_velocity_field=object_velocity_field,
         SC=1,
+        particle_force_field=force_field,
+        MaxParticlesPerCell=1
     )
 
     lbm_config = LBMConfig(
         stencil=stencil,
-        method=Method.SRT,
+        method=Method.TRT,
         relaxation_rate=omega,
-        compressible=False,
+        smagorinsky=True,
+        compressible=True,
         zero_centered=True,
         psm_config=psm_config,
     )