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