Skip to content

Sink cell_unskip clean up

Changes

I simplified the cell_unskip.c for sinks. The code is now closer

  • to BHs for the swallow part
  • to stars for the sink_formation.

I removed the dependency on the synchronisation task, given that the sinks do not perform any feedback operations. I remember we had a conversation about this a few months ago in a previous merge request. However, the synchronisation was not fully cleaned.

Similarly, I removed the hydro sort logic. The dependency was removed months ago, but we kept the updating logic. Interestingly, seems to have prevented the recurring particle shift diff exceeds dx_max_sort in cell cj. error we have already discussed.

Tests

I tested these updates in my MPI branch with the examples/SinkpParticles/HomogeneousBox/ debugging ICs during 3 days without errors (of course, without MPI).

I'm currently running this fix with the current branch to ensure everything is working.

Notes

I encountered Invalid particle position Z.

Questions

Can anyone explain why cell_unskip_stars() has the following

if (t->type == task_type_self) {
        cell_activate_subcell_stars_tasks(ci, NULL, s, with_star_formation,
                                          with_star_formation_sink,
                                          with_timestep_sync);

        /*** These two lines of code ***/
        cell_activate_drift_spart(ci, s);
        cell_activate_drift_part(ci, s);
        if (with_timestep_sync) cell_activate_sync_part(ci, s);
}

And similarly for the pair task below.

Are these related to particle creation?

I need to understand why the stars need these lines and the BHs don't. Then, I can figure out if the sinks need them.

Merge request reports

Loading