Gizmo: zeroed density remains zero on a particle despite non-zero mass
While masses get exchanged and updated during the flux exchanges and kick2, the particle densities don't. This leads to the scenario where a particle keeps its density zero while interacting with other particles, whereas I think it shouldn't be.
An option would be to re-compute the updated density in kick2, or pretty much equivalently kick1.
Alternatively, we could re-write the hydro_get_physical_density
function (which oddly enough is currently written in hydro_setters.h
for some reason) to always return p->conserved.mass / p->geometry.volume
rather than p->rho
.
Concrete example can be found when running the low z EAGLE_12 example with hydro and gravity only (no feedback, cooling, etc.), i.e.
--hydro --threads=16 --stars --self-gravity
Particle 6370758347517
gets corrected for unphysical density in step zooms, and doesn't get re-set to proper values until 196.