This adds a moving-mesh hydro scheme to SWIFT. To use it, SWIFT must be compiled with the option --with-hydro=shadowswift
and run with --hydro
. Most hydro-test work out of the box, but might need tweaking for optimal performance (see caveats).
The scheme uses a drift
-> geometry
-> flux
-> kick2
-> gradient
-> timestep
-> kick1
structure for it's time-step:
self
task with implicit grid-sync
pair
tasks ensuring the necessary synchronization with the neighboring cells whose particles are read during construction.self
and pair
tasks since it must be done on the construction level in the tree (we need the Voronoi faces). Flux exchange is also manifestly conservative/symmetric and therefore pair
tasks must be handled on both MPI nodes if necessary.self
, pair
, subself
and subpair
interactions on any desired level, independent of the grid construction. Alternatively, the older WLS gradient computation which uses the Voronoi cells is also available and that method uses the same task structure of the flux interaction loop.This is an overview of what is/isn't working (yet):