From cbe69c8306df4a6bb4bb0fec790ac5bcef9a4b51 Mon Sep 17 00:00:00 2001 From: Michael Kuron <m.kuron@gmx.de> Date: Thu, 15 Aug 2019 08:38:53 +0200 Subject: [PATCH] Only set block_offsets if it is actually needed --- lbmpy_walberla/templates/LatticeModel.tmpl.h | 8 +++++++- lbmpy_walberla/walberla_lbm_generation.py | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lbmpy_walberla/templates/LatticeModel.tmpl.h b/lbmpy_walberla/templates/LatticeModel.tmpl.h index b5f2d37..4224136 100644 --- a/lbmpy_walberla/templates/LatticeModel.tmpl.h +++ b/lbmpy_walberla/templates/LatticeModel.tmpl.h @@ -135,9 +135,15 @@ private: void configureBlock(IBlock * block, StructuredBlockStorage * storage) { {{stream_collide_kernel|generate_block_data_to_field_extraction(lmIgnores+lmOffsets, no_declarations=True)|indent(8)}} + {% if need_block_offsets[0] -%} block_offset_0 = uint32_c(storage->getBlockCellBB(*block).xMin()); + {% endif -%} + {%- if need_block_offsets[1] -%} block_offset_1 = uint32_c(storage->getBlockCellBB(*block).yMin()); + {% endif -%} + {%- if need_block_offsets[2] -%} block_offset_2 = uint32_c(storage->getBlockCellBB(*block).zMin()); + {% endif %} blockId = &block->getId(); {% if refinement_scaling -%} @@ -171,7 +177,7 @@ private: currentLevel = targetLevel; } - {% endif -%} + {% endif %} } // Updated by configureBlock: diff --git a/lbmpy_walberla/walberla_lbm_generation.py b/lbmpy_walberla/walberla_lbm_generation.py index 5a4f07a..66d5ae7 100644 --- a/lbmpy_walberla/walberla_lbm_generation.py +++ b/lbmpy_walberla/walberla_lbm_generation.py @@ -95,6 +95,7 @@ def __lattice_model(generation_context, class_name, lb_method, stream_collide_as 'target': 'cpu', 'namespace': 'lbm', 'headers': required_headers, + 'need_block_offsets': ['block_offset_{}'.format(i) in [param.symbol.name for param in stream_collide_ast.get_parameters()] for i in range(3)], } env = Environment(loader=PackageLoader('lbmpy_walberla')) -- GitLab