From 1c7210285f6a25578be86682a307f072288de9ca Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Thu, 25 Jul 2024 15:22:06 +0200
Subject: [PATCH] Workaround as field duplication is broken

---
 src/lbmpy/creationfunctions.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/lbmpy/creationfunctions.py b/src/lbmpy/creationfunctions.py
index a633cd67..f3effdcb 100644
--- a/src/lbmpy/creationfunctions.py
+++ b/src/lbmpy/creationfunctions.py
@@ -626,8 +626,17 @@ def create_lb_update_rule(collision_rule=None, lbm_config=None, lbm_optimisation
 
     if lbm_optimisation.symbolic_temporary_field is not None:
         dst_field = lbm_optimisation.symbolic_temporary_field
+    # else:
+        #   FIXME: Field duplication is currently broken in pystencils.
+        # dst_field = src_field.new_field_with_different_name(lbm_config.temporary_field_name)
+    elif src_field.has_fixed_shape:
+        field_size = src_field.shape
+        dst_field = Field.create_fixed_size(lbm_config.temporary_field_name, field_size, index_dimensions=1,
+                                            layout=lbm_optimisation.field_layout, dtype=fallback_field_data_type)
     else:
-        dst_field = src_field.new_field_with_different_name(lbm_config.temporary_field_name)
+        dst_field = Field.create_generic(lbm_config.temporary_field_name, spatial_dimensions=collision_rule.method.dim,
+                                         index_shape=(q,), layout=lbm_optimisation.field_layout,
+                                         dtype=fallback_field_data_type)
 
     kernel_type = lbm_config.kernel_type
     if kernel_type == 'stream_pull_only':
-- 
GitLab