aboutsummaryrefslogtreecommitdiff
path: root/boltzgen.py
AgeCommit message (Collapse)Author
2019-11-09Implement basic version of the SSS pattern for C++ targetAdrian Kummerlaender
An interesting extension of the AA pattern. The main advantage of this is that updating pointers in a control structure is much more elegant than duplicating all function implementations as is required by the normal AA pattern. For more details see [1]. Only works for the SOA layout. On a pure memory access level this pattern is equivalent to the AA pattern. The difference is how the memory locations are calculated (by pointer swap & shift or by different indexing functions for odd and even time steps). [1]: "An auto-vectorization friendly parallel lattice Boltzmann streaming scheme for direct addressing" by Mohrhard et al. (2019)
2019-11-05Implement AA pattern for C++ targetAdrian Kummerlaender
Note that special care has to be taken to provide ghost cells around active cells so the algorithm has somewhere to stream to and from. This is also the case for the AB pattern but there they only have to be equilibrilized once instead of after every other time step. Even when such an equilibrilization is performed there is still a potential bug as inbound populations at the outer boundary are never streamed to (this is not a problem for AB using pull-only streaming). A vectorizable solution may require direction-specific ghost cell equilibrization.
2019-11-02Improve lattice, model selection error reportingv0.1.2Adrian Kummerlaender
2019-11-02Restructure LBM model / lattice distinctionAdrian 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-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-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 optional flag to disable CSEAdrian Kummerlaender
2019-10-26Add BGK relaxation time argumentAdrian Kummerlaender
Still thinking how various collision models (BGK, MRT and so on) may be nicely abstracted in this setting.
2019-10-26Add python shebangAdrian Kummerlaender
2019-10-26Add geometry argumentAdrian Kummerlaender
2019-10-26Add lattice argumentAdrian Kummerlaender
2019-10-26Generalize floating point precision argumentAdrian Kummerlaender
2019-10-24Extract offset helper into target and layout specific classesAdrian Kummerlaender
2019-10-24Handle missing memory layout argumentAdrian Kummerlaender
2019-10-24Add test template for C++, enable switching between AOS and SOAAdrian Kummerlaender
2019-10-22Add basic Generator classAdrian Kummerlaender
2019-10-21Add basic argument parsingAdrian Kummerlaender