Draft: Lagrangian MC particle pusher
This merge request implements the Lagrangian "Monte Carlo" particle pusher described in Genel+ 2013 (MNRAS.435.1426G).
Changes:
- Implementation of ParticlesPusher::lagrangian_mc
- Addition of new ParticleType::lagrangian_mc
As originally opened, this MR should not be approved until design decisions regarding (at least) the following are addressed:
- IPX, ... vs. IVX, ...
- Should restrictions be introduced/enforced for which pushers can be used with which particle types?
- Should the captures for the lambda in the pusher go outside of a switch statement or within an if block?
- What are best practices regarding creation of the Kokkos::Random_XorShift64_Pool?
- Is the default behavior for finding flx1(k,j,i) correct when not three_d?
- What are best practices for auto &flx3_ when not three_d?
- Are the right fluxes being used? Are the scalings with dx# and dt correct?
- Closely related to the above: what is the right way to handle the time ordering of the update and the time integrator?
- This code has not been tested.
- The particles may or may not be broken in AMR.