aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/generator.py
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-10-31 13:13:00 +0100
committerAdrian Kummerlaender2019-10-31 13:13:00 +0100
commite2b00f4ec963060be98939c7b0d12d6c00e50a02 (patch)
tree9b8729d491a2d9cb2b5fafe8284bc807ad21665a /boltzgen/kernel/generator.py
parentc82b38122cc3ab7717cb0ba9ec530b4658bd03e4 (diff)
downloadboltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.tar
boltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.tar.gz
boltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.tar.bz2
boltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.tar.lz
boltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.tar.xz
boltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.tar.zst
boltzgen-e2b00f4ec963060be98939c7b0d12d6c00e50a02.zip
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.
Diffstat (limited to 'boltzgen/kernel/generator.py')
-rw-r--r--boltzgen/kernel/generator.py17
1 files changed, 5 insertions, 12 deletions
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,