diff options
author | Adrian Kummerlaender | 2019-10-24 21:52:45 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2019-10-24 21:52:45 +0200 |
commit | 73de5f16efc696cf0c88beec086eb9a4df9098dd (patch) | |
tree | 543f1eee6f9ae8391838635268a83177dc5c1c2e /boltzgen/kernel/generator.py | |
parent | b3d131b94f9417c0c4cd6733433c86ca780dde5e (diff) | |
download | boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.tar boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.tar.gz boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.tar.bz2 boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.tar.lz boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.tar.xz boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.tar.zst boltzgen-73de5f16efc696cf0c88beec086eb9a4df9098dd.zip |
Extract offset helper into target and layout specific classes
Diffstat (limited to 'boltzgen/kernel/generator.py')
-rw-r--r-- | boltzgen/kernel/generator.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/boltzgen/kernel/generator.py b/boltzgen/kernel/generator.py index c9fdb27..e897325 100644 --- a/boltzgen/kernel/generator.py +++ b/boltzgen/kernel/generator.py @@ -1,9 +1,11 @@ import sympy from mako.template import Template - from pathlib import Path +import kernel.target.cl +import kernel.target.cpp + class Generator: def __init__(self, descriptor, moments, collision, boundary = ''): self.descriptor = descriptor @@ -16,10 +18,16 @@ class Generator: if not template_path.exists(): raise Exception("Target '%s' not supported" % target) + layout_impl = eval("kernel.target.%s.%s" % (target, layout)) + if layout_impl is None: + raise Exception("Target '%s' doesn't support layout '%s'" % (target, layout)) + else: + layout_impl = layout_impl(self.descriptor, geometry) + return Template(filename = str(template_path)).render( descriptor = self.descriptor, geometry = geometry, - layout = layout, + layout = layout_impl, moments_subexpr = self.moments[0], moments_assignment = self.moments[1], |