aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/template/pattern
AgeCommit message (Collapse)Author
2019-11-08Rename OpenCL cell list wrapper functionsAdrian Kummerlaender
2019-11-05Implement AA pattern for OpenCL targetAdrian Kummerlaender
Works well but function naming is getting kind of clunky, e.g. "velocity_momenta_boundary_tick_cells" This could be hidden to a degree by proving branching wrappers for the odd and even time step implementations. However this would not vectorize when targeting Intel via OpenCL.
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-04Drop AB suffix from streaming pattern definition namesAdrian Kummerlaender
2019-11-04Extract streaming pattern into Mako definitionsAdrian Kummerlaender
This should allow for plugging in e.g. a AA pattern implementation without without touching any file but `AA.$target.mako`. OpenCL and C++ target templates now look basically the same and could potentially be merged. However this would decrease flexibility should more differences appear in the future. Maintaining separate template files is an acceptable overhead to preserve flexibility.