Correct integration in time of the mesh forces
Complete rewrite of the time integration of the gravity mesh forces. This fixes the accuracy issues seen in the large-scale power-spectrum in cosmological runs.
This includes:
- Removing the mesh_force task.
- Introduce a global time-step for the mesh calculation.
- Compute the mesh forces when that time-step happens and not when we rebuild.
- Rewrite the operations in the kick tasks to simplify the with/without cosmology logic.
- Add the mesh accelerations to the gpart, remove the gravity acceleration from the xpart.
- Remove the alignment constraint on the gparts to reduce the memory footprint.
- Add an option to not compute the potentials.
- Remove the option to dither the particles at tree rebuilds. This was not the solution to the problem and was not implemented in an efficient way.
Todo:
-
Clean-up the mesh time-step calculation. -
Deal with exact gravity force checks. -
Interpolation of the hydro velocities in snapshot. -
Deal with the time-step limiter. -
Deal with the time-step synchronization. -
Deal with the potential. -
Deal with star formation. -
Fix statistics. -
Documentation of the whole gravity scheme parameters.
Edited by Matthieu Schaller