.. _physics-mergerTreeEvolveConcurrency: 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 ------- ``initializeTree`` → ``void`` Initialize concurrency for a new tree. ``countPhases`` → ``integer`` Return a count of the number of evolution phases. ``includeInEvolution`` → ``logical`` 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`` .. _physics-mergerTreeEvolveConcurrencyHalosSubhalos: ``mergerTreeEvolveConcurrencyHalosSubhalos`` -------------------------------------------- A merger tree evolution concurrency class which separates evolution of halos and their subhalos. **(Default implementation)**