Merger Tree Evolution Concurrency

Class providing logic that controls which nodes in a merger tree are evolved in each phase of a multi-phase evolution scheme. When halo and subhalo evolution are decoupled, different sets of nodes (e.g.isolated halos vs.satellite subhalos) can be evolved in separate phases to maintain consistency. Each implementation specifies how many phases to use and which nodes participate in each phase, enabling flexible parallelism and ordering of the ODE integration.

Default implementation: mergerTreeEvolveConcurrencyHalosSubhalos

Methods

initializeTreevoid

Initialize concurrency for a new tree.

countPhasesinteger

Return a count of the number of evolution phases.

includeInEvolutionlogical

Return true if the node should be included in the given phase of merger tree evolution.

  • integer , intent(in ) :: evolutionPhase

  • type (treeNode), intent(inout), target :: node

mergerTreeEvolveConcurrencyHalosSubhalos

A merger tree evolution concurrency class which separates evolution of halos and their subhalos.

(Default implementation)