From d540b701836dbcdef727947f52a0ca01430968a6 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Wed, 30 Oct 2019 19:45:39 +0100 Subject: Rename folder, add basic README.md --- lid_driven_cavity/cpp/generate.py | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 lid_driven_cavity/cpp/generate.py (limited to 'lid_driven_cavity/cpp/generate.py') diff --git a/lid_driven_cavity/cpp/generate.py b/lid_driven_cavity/cpp/generate.py new file mode 100755 index 0000000..4222e98 --- /dev/null +++ b/lid_driven_cavity/cpp/generate.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +import argparse + +from boltzgen import LBM, Generator, Geometry +from boltzgen.lbm.model import D2Q9 + +import config + +argparser = argparse.ArgumentParser( + description = 'Generate a C++ implementation of a lid driven cavity simulation using LBM') +argparser.add_argument( + '--output', required = False, help = 'Target directory for the generated sources') + +args = argparser.parse_args() + +lbm = LBM(config.descriptor) +generator = Generator( + descriptor = config.descriptor, + moments = lbm.moments(), + collision = lbm.bgk(f_eq = lbm.equilibrium(), tau = config.tau), + target = 'cpp', + precision = config.precision, + index = 'XYZ', + layout = 'AOS') + +if args.output is None: + args.output = '.' + +functions = ['collide_and_stream', 'equilibrilize', 'collect_moments', 'momenta_boundary'] + +with open('%s/kernel.h' % args.output, 'w') as kernel: + kernel.write(generator.kernel(config.geometry, functions)) + +ldc_src = '' +with open('ldc.cpp.mako', 'r') as template: + ldc_src = template.read() + +with open('%s/ldc.cpp' % args.output, 'w') as app: + app.write(generator.custom(config.geometry, ldc_src)) -- cgit v1.2.3