aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/generator.py
AgeCommit message (Collapse)Author
2019-11-02Import `sympy.ccode` inside templates instead of as argumentAdrian Kummerlaender
2019-10-31Call symbolic generator inside code templatesAdrian Kummerlaender
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.
2019-10-29Add support for generating custom templates in boltzgen's contextAdrian Kummerlaender
2019-10-29Rename target module to memoryAdrian Kummerlaender
2019-10-29Move further generator arguments into its constructorAdrian Kummerlaender
2019-10-29Extract cell indexing functionAdrian Kummerlaender
2019-10-28Add basic setup.pyAdrian Kummerlaender
No guarantee for correctness - I mostly fiddled this together in order to use common nixpkgs python package functions for including boltzgen in other shell environments.
2019-10-27Extract target-dependent floating point type nameAdrian Kummerlaender
2019-10-27Move layout implementations into separate folderAdrian Kummerlaender
2019-10-27Separate functions into separate template filesAdrian Kummerlaender
Selection of the desired templates is possible via a new `functions` parameter.
2019-10-26Support passing additional string arguments to the generatorAdrian Kummerlaender
2019-10-26Add geometry argumentAdrian Kummerlaender
2019-10-26Generalize floating point precision argumentAdrian Kummerlaender
2019-10-24Extract offset helper into target and layout specific classesAdrian Kummerlaender
2019-10-24Add test template for C++, enable switching between AOS and SOAAdrian Kummerlaender
2019-10-22Return error for unavailable templatesAdrian Kummerlaender
2019-10-22Add basic Generator classAdrian Kummerlaender
2019-10-21Pull in C++ template from symlbm_playground's standalone branchAdrian Kummerlaender
2019-10-21Pull in basics from symlbm_playgroundAdrian Kummerlaender
It's time to extract the generator-part of my GPU LBM playground and turn it into a nice reusable library. The goal is to produce a framework that can be used to generate collision and streaming programs from symbolic descriptions. i.e. it should be possible to select a LB model, the desired boundary conditions as well as a data structure / streaming model and use this information to automatically generate matching OpenCL / CUDA / C++ programs.