From e2b00f4ec963060be98939c7b0d12d6c00e50a02 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Thu, 31 Oct 2019 13:13:00 +0100 Subject: Call symbolic generator inside code templates This paves the way for dropping in other LBM collision models. As a side benefit the default momenta calulcation is now fully inlined where possible. --- boltzgen/kernel/generator.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'boltzgen/kernel/generator.py') diff --git a/boltzgen/kernel/generator.py b/boltzgen/kernel/generator.py index 92ceb72..4fd3c25 100644 --- a/boltzgen/kernel/generator.py +++ b/boltzgen/kernel/generator.py @@ -6,10 +6,9 @@ from pathlib import Path from . import memory class Generator: - def __init__(self, descriptor, moments, collision, target, precision, index, layout): - self.descriptor = descriptor - self.moments = moments - self.collision = collision + def __init__(self, model, target, precision, index, layout): + self.model = model + self.descriptor = self.model.descriptor self.target = target self.float_type = eval("memory.precision.%s" % target).get_float_type(precision) @@ -30,14 +29,11 @@ class Generator: return Template(filename = str(template_path)).render( descriptor = self.descriptor, + model = self.model, geometry = geometry, index = self.index_impl(geometry), layout = self.layout_impl(self.descriptor, self.index_impl, geometry), - moments_subexpr = self.moments[0], - moments_assignment = self.moments[1], - collision_subexpr = self.collision[0], - collision_assignment = self.collision[1], ccode = sympy.ccode, float_type = self.float_type, @@ -54,14 +50,11 @@ class Generator: def custom(self, geometry, source): return Template(text = source).render( descriptor = self.descriptor, + model = self.model, geometry = geometry, index = self.index_impl(geometry), layout = self.layout_impl(self.descriptor, self.index_impl, geometry), - moments_subexpr = self.moments[0], - moments_assignment = self.moments[1], - collision_subexpr = self.collision[0], - collision_assignment = self.collision[1], ccode = sympy.ccode, float_type = self.float_type, -- cgit v1.2.3