parthenon-hpc-lab / athenapk

AthenaPK: a performance portable version of Athena++ built on Parthenon and Kokkos
BSD 3-Clause "New" or "Revised" License
55 stars 13 forks source link

tracer particles #99

Open BenWibking opened 9 months ago

BenWibking commented 9 months ago

It would be useful to have tracer particles, following the Parthenon example.

We could even use the marker particle advection algorithm using the time-centered, face-centered velocities: https://ui.adsabs.harvard.edu/abs/1965PhFl....8.2182H/abstract

pgrete commented 9 months ago

This is actually on my list right are OpenPMD/Adios output (as we need those for another project). I already went a bit through the literature as there are some gotchas, see https://doi.org/10.1093/mnras/stt1383 and https://doi.org/10.1111/j.1365-2966.2010.16810.x with follow up work by https://doi.org/10.1051/0004-6361/201834496 and potentially also of interest (as more simple mitigation strategy compared to MC particles): https://doi.org/10.1016/j.jcp.2019.109054 and https://doi.org/10.3847/1538-4357/ac6c2b

BenWibking commented 9 months ago

Yes, I'm aware of this issue. I think it is solved by using the face-centered velocity from the Riemann solver (see equation 7b: https://ui.adsabs.harvard.edu/abs/2008ASPC..385..273L/abstract). I implemented this in Quokka, and it seems to work well.