aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'boltzgen/kernel/generator.py')
-rw-r--r--boltzgen/kernel/generator.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/boltzgen/kernel/generator.py b/boltzgen/kernel/generator.py
new file mode 100644
index 0000000..bd1bb86
--- /dev/null
+++ b/boltzgen/kernel/generator.py
@@ -0,0 +1,25 @@
+import sympy
+
+from mako.template import Template
+from pathlib import Path
+
+def source(descriptor, moments, collide, boundary_src, float_type, geometry):
+ return Template(filename = str(Path(__file__).parent/'template/kernel.mako')).render(
+ descriptor = descriptor,
+ geometry = geometry,
+
+ moments_subexpr = moments[0],
+ moments_assignment = moments[1],
+ collide_subexpr = collide[0],
+ collide_assignment = collide[1],
+
+ float_type = float_type,
+
+ boundary_src = Template(boundary_src).render(
+ descriptor = descriptor,
+ geometry = geometry,
+ float_type = float_type
+ ),
+
+ ccode = sympy.ccode
+ )