Skip to content

Particle splitting "a la EAGLE"

Matthieu Schaller requested to merge particle_splitting into master

This implements a new small physics module: overly-massive particle splitting.

At a rebuild time that does not coincide with a repartition (to avoid creating unnecessary trouble), we loop over all the gas particles and identify which ones are above a given mass threshold. These are then split into two equivalent pieces and slightly offset from each other. We create a companion gpart as well and relink the particle. All this is done on a node-by-node basis and just before rebuild such that the reorganisation and possible exchange of particles is done correctly.

Additional subgrid-related fields that also need splitting are offset to the respective subgrid implementation.

The only bit that needs to be properly taken care of is the reallocation of the arrays in case we run out of space.

Merge request reports