From 67e5cd22c8fa62f2b749735fb4ce2c624d6a2ab1 Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Fri, 7 Feb 2020 16:03:43 +0100
Subject: [PATCH] Use StrictUndefined to raise errors upon undefined variables

---
 lbmpy_walberla/boundary.py                | 4 ++--
 lbmpy_walberla/walberla_lbm_generation.py | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lbmpy_walberla/boundary.py b/lbmpy_walberla/boundary.py
index 5f2dc6f..3217698 100644
--- a/lbmpy_walberla/boundary.py
+++ b/lbmpy_walberla/boundary.py
@@ -1,5 +1,5 @@
 import numpy as np
-from jinja2 import Environment, PackageLoader
+from jinja2 import Environment, PackageLoader, StrictUndefined
 
 from lbmpy.boundaries.boundaryhandling import create_lattice_boltzmann_boundary_kernel
 from lbmpy_walberla.walberla_lbm_generation import KernelInfo
@@ -54,7 +54,7 @@ def generate_boundary(generation_context, class_name, boundary_object, lb_method
         'namespace': 'lbm',
     }
 
-    env = Environment(loader=PackageLoader('lbmpy_walberla'))
+    env = Environment(loader=PackageLoader('lbmpy_walberla'), undefined=StrictUndefined)
     add_pystencils_filters_to_jinja_env(env)
 
     header = env.get_template('Boundary.tmpl.h').render(**context)
diff --git a/lbmpy_walberla/walberla_lbm_generation.py b/lbmpy_walberla/walberla_lbm_generation.py
index 66d5ae7..b78c84a 100644
--- a/lbmpy_walberla/walberla_lbm_generation.py
+++ b/lbmpy_walberla/walberla_lbm_generation.py
@@ -2,7 +2,7 @@ import warnings
 
 import numpy as np
 import sympy as sp
-from jinja2 import Environment, PackageLoader, Template
+from jinja2 import Environment, PackageLoader, StrictUndefined, Template
 from sympy.tensor import IndexedBase
 
 import pystencils as ps
@@ -98,7 +98,7 @@ def __lattice_model(generation_context, class_name, lb_method, stream_collide_as
         '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'))
+    env = Environment(loader=PackageLoader('lbmpy_walberla'), undefined=StrictUndefined)
     add_pystencils_filters_to_jinja_env(env)
 
     header = env.get_template('LatticeModel.tmpl.h').render(**jinja_context)
@@ -206,7 +206,7 @@ def stencil_switch_statement(stencil, values):
     """)
 
     dir_to_value_dict = {offset_to_direction_string(d): cpp_printer.doprint(v) for d, v in zip(stencil, values)}
-    return template.render(dir_to_value_dict=dir_to_value_dict)
+    return template.render(dir_to_value_dict=dir_to_value_dict, undefined=StrictUndefined)
 
 
 def field_and_symbol_substitute(expr, variable_prefix="lm.", variables_without_prefix=[]):
-- 
GitLab