SpECTRE Documentation Coverage Report
Current view: top level - Parallel/PhaseControl - InitializePhaseChangeDecisionData.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 50.0 % 2 1
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            Line data    Source code
       1            0 : // Distributed under the MIT License.
       2              : // See LICENSE.txt for details.
       3              : 
       4              : #pragma once
       5              : 
       6              : #include "DataStructures/TaggedTuple.hpp"
       7              : #include "Parallel/GlobalCache.hpp"
       8              : #include "Parallel/ParallelComponentHelpers.hpp"
       9              : #include "Parallel/PhaseControl/PhaseControlTags.hpp"
      10              : #include "Utilities/Gsl.hpp"
      11              : 
      12              : namespace PhaseControl {
      13              : /*!
      14              :  * \brief Initialize the Main chare's `phase_change_decision_data` for the
      15              :  * option-selected `PhaseChange`s.
      16              :  */
      17              : template <typename... DecisionTags, typename Metavariables>
      18            1 : void initialize_phase_change_decision_data(
      19              :     const gsl::not_null<tuples::TaggedTuple<DecisionTags...>*>
      20              :         phase_change_decision_data,
      21              :     const Parallel::GlobalCache<Metavariables>& cache) {
      22              :   tuples::get<TagsAndCombines::UsePhaseChangeArbitration>(
      23              :       *phase_change_decision_data) = false;
      24              :   if constexpr (Parallel::is_in_global_cache<Metavariables,
      25              :                                              Tags::PhaseChangeAndTriggers>) {
      26              :     const auto& phase_change_and_triggers =
      27              :         Parallel::get<Tags::PhaseChangeAndTriggers>(cache);
      28              :     for (const auto& trigger_and_phase_changes : phase_change_and_triggers) {
      29              :       for (const auto& phase_change : trigger_and_phase_changes.phase_changes) {
      30              :         phase_change->template initialize_phase_data<Metavariables>(
      31              :             phase_change_decision_data);
      32              :       }
      33              :     }
      34              :   }
      35              : }
      36              : }  // namespace PhaseControl
        

Generated by: LCOV version 2.0-1