From 185a3cac1166255163512bbf68c4bde4e5020904 Mon Sep 17 00:00:00 2001
From: Philipp Suffa <philipp.suffa@fau.de>
Date: Tue, 6 May 2025 16:17:11 +0200
Subject: [PATCH] Add psm to collision rule at the end of creation function to
 enable simplifications

---
 src/lbmpy/creationfunctions.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/lbmpy/creationfunctions.py b/src/lbmpy/creationfunctions.py
index c1586d1f..76766af7 100644
--- a/src/lbmpy/creationfunctions.py
+++ b/src/lbmpy/creationfunctions.py
@@ -685,10 +685,6 @@ def create_lb_collision_rule(lb_method=None, lbm_config=None, lbm_optimisation=N
     else:
         collision_rule = lb_method.get_collision_rule(pre_simplification=pre_simplification)
 
-    if lbm_config.psm_config is not None:
-        if lbm_config.psm_config.fraction_field is None or lbm_config.psm_config.object_velocity_field is None:
-            raise ValueError("Specify a fraction and object velocity field in the PSM Config")
-        collision_rule = replace_by_psm_collision_rule(collision_rule, lbm_config.psm_config)
 
     if lbm_config.galilean_correction:
         from lbmpy.methods.cumulantbased import add_galilean_correction
@@ -761,6 +757,11 @@ def create_lb_collision_rule(lb_method=None, lbm_config=None, lbm_optimisation=N
     if lbm_config.fluctuating:
         add_fluctuations_to_collision_rule(collision_rule, **lbm_config.fluctuating)
 
+    if lbm_config.psm_config is not None:
+        if lbm_config.psm_config.fraction_field is None or lbm_config.psm_config.object_velocity_field is None:
+            raise ValueError("Specify a fraction and object velocity field in the PSM Config")
+        collision_rule = replace_by_psm_collision_rule(collision_rule, lbm_config.psm_config)
+
     if lbm_optimisation.cse_pdfs:
         from lbmpy.methods.momentbased.momentbasedsimplifications import cse_in_opposing_directions
         collision_rule = cse_in_opposing_directions(collision_rule)
@@ -882,6 +883,7 @@ def create_psm_update_rule(lbm_config, lbm_optimisation):
 
     node_collection = lb_update_rule.all_assignments
 
+
     if lbm_config.psm_config.individual_fraction_field is None:
         assert lbm_config.psm_config.max_particles_per_cell == 1
         fraction_field = lbm_config.psm_config.fraction_field
-- 
GitLab