From 3962799b9dcae6ce0580d6a2a3548de48d80ac0f Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Mon, 28 Oct 2024 12:45:49 +0100 Subject: [PATCH] Fix field duplication in create_lb_update_rule. Fix API in legacy custom_code_nodes. --- src/lbmpy/creationfunctions.py | 13 ++----------- src/lbmpy/custom_code_nodes.py | 2 +- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/lbmpy/creationfunctions.py b/src/lbmpy/creationfunctions.py index f3effdcb..dcdbdd1c 100644 --- a/src/lbmpy/creationfunctions.py +++ b/src/lbmpy/creationfunctions.py @@ -626,18 +626,9 @@ 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 = 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) - + dst_field = src_field.new_field_with_different_name(lbm_config.temporary_field_name) + kernel_type = lbm_config.kernel_type if kernel_type == 'stream_pull_only': update_rule = create_stream_pull_with_output_kernel(lb_method, src_field, dst_field, lbm_config.output) diff --git a/src/lbmpy/custom_code_nodes.py b/src/lbmpy/custom_code_nodes.py index cf90a26b..d1475367 100644 --- a/src/lbmpy/custom_code_nodes.py +++ b/src/lbmpy/custom_code_nodes.py @@ -56,7 +56,7 @@ class MirroredStencilDirections(CustomCodeNode): def __init__(self, stencil, mirror_axis, dtype=np.int32): offsets_dtype = create_type(dtype) - mirrored_stencil_symbol = MirroredStencilDirections._mirrored_symbol(mirror_axis) + mirrored_stencil_symbol = MirroredStencilDirections._mirrored_symbol(mirror_axis, stencil) mirrored_directions = [stencil.index(MirroredStencilDirections.mirror_stencil(direction, mirror_axis)) for direction in stencil] code = "\n" -- GitLab