Skip to content
Snippets Groups Projects
Commit 67e5cd22 authored by Stephan Seitz's avatar Stephan Seitz
Browse files

Use StrictUndefined to raise errors upon undefined variables

parent c15c61f3
1 merge request!7Use StrictUndefined to raise errors upon undefined variables
import numpy as np 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.boundaries.boundaryhandling import create_lattice_boltzmann_boundary_kernel
from lbmpy_walberla.walberla_lbm_generation import KernelInfo from lbmpy_walberla.walberla_lbm_generation import KernelInfo
...@@ -54,7 +54,7 @@ def generate_boundary(generation_context, class_name, boundary_object, lb_method ...@@ -54,7 +54,7 @@ def generate_boundary(generation_context, class_name, boundary_object, lb_method
'namespace': 'lbm', 'namespace': 'lbm',
} }
env = Environment(loader=PackageLoader('lbmpy_walberla')) env = Environment(loader=PackageLoader('lbmpy_walberla'), undefined=StrictUndefined)
add_pystencils_filters_to_jinja_env(env) add_pystencils_filters_to_jinja_env(env)
header = env.get_template('Boundary.tmpl.h').render(**context) header = env.get_template('Boundary.tmpl.h').render(**context)
......
...@@ -2,7 +2,7 @@ import warnings ...@@ -2,7 +2,7 @@ import warnings
import numpy as np import numpy as np
import sympy as sp import sympy as sp
from jinja2 import Environment, PackageLoader, Template from jinja2 import Environment, PackageLoader, StrictUndefined, Template
from sympy.tensor import IndexedBase from sympy.tensor import IndexedBase
import pystencils as ps import pystencils as ps
...@@ -98,7 +98,7 @@ def __lattice_model(generation_context, class_name, lb_method, stream_collide_as ...@@ -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)], '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) add_pystencils_filters_to_jinja_env(env)
header = env.get_template('LatticeModel.tmpl.h').render(**jinja_context) header = env.get_template('LatticeModel.tmpl.h').render(**jinja_context)
...@@ -206,7 +206,7 @@ def stencil_switch_statement(stencil, values): ...@@ -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)} 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=[]): def field_and_symbol_substitute(expr, variable_prefix="lm.", variables_without_prefix=[]):
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment