Skip to content

Upgraded neighbour finding matching the COLIBRE fork

Matthieu Schaller requested to merge subtask_speedup_merge into master

Import the hydro and stars neighbour finding implemented in the colibre fast branch minus the task multiplexing capability. A very similar version is currently running on 20k cores of a galaxy formation test so that should be doing fine.

This introduces significantly faster neighbour finding in particle distributions with strong density gradients. For instance planetary applications or problematic feedback-disturbed galaxies.

Changes:

  • Rewrite the recursion logic in the hydro and stars sub-task:
    • The interaction functions have extra parameters to optionally consider particles only between 0.5 * width and width
    • The subtask recursion now continues to lower levels if we reach a level where h is too large. From that level on, we will use the newly introduced feature of only considering particles in the appropriate range of h.
    • When recursing, only the h_max of active particles is considered, not all particles.

Note that this makes use of the functionality whereby every particle carries its own depth in the tree and the cells have information about the min/max allowed h in them. These two things have been merged in the main code already (but do nothing there besides correctly tracking the values).

Supersedes !1353 (closed).

Edited by Matthieu Schaller

Merge request reports

Loading