Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
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.
|
|
|
|
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.
|