SpECTRE Documentation Coverage Report
Current view: top level - ParallelAlgorithms/ApparentHorizonFinder - Component.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 1 10 10.0 %
Date: 2025-12-05 05:03:31
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 <string>
       7             : #include <tuple>
       8             : 
       9             : #include "Parallel/Algorithms/AlgorithmSingleton.hpp"
      10             : #include "Parallel/GlobalCache.hpp"
      11             : #include "Parallel/Local.hpp"
      12             : #include "Parallel/ParallelComponentHelpers.hpp"
      13             : #include "Parallel/Phase.hpp"
      14             : #include "ParallelAlgorithms/Actions/InitializeItems.hpp"
      15             : #include "ParallelAlgorithms/Actions/TerminatePhase.hpp"
      16             : #include "ParallelAlgorithms/ApparentHorizonFinder/Initialization.hpp"
      17             : #include "ParallelAlgorithms/ApparentHorizonFinder/Protocols/HorizonMetavars.hpp"
      18             : #include "Utilities/ProtocolHelpers.hpp"
      19             : #include "Utilities/TMPL.hpp"
      20             : 
      21             : namespace ah {
      22             : /*!
      23             :  * \brief The singleton parallel component responsible for finding horizons.
      24             :  */
      25             : template <class Metavariables, typename HorizonMetavars>
      26           1 : struct Component {
      27             :   static_assert(tt::assert_conforms_to_v<HorizonMetavars,
      28             :                                          ah::protocols::HorizonMetavars>);
      29           0 :   using horizon_metavars = HorizonMetavars;
      30           0 :   using chare_type = Parallel::Algorithms::Singleton;
      31           0 :   static constexpr bool checkpoint_data = true;
      32             : 
      33           0 :   static std::string name() { return HorizonMetavars::name(); }
      34             : 
      35           0 :   using metavariables = Metavariables;
      36             : 
      37           0 :   using phase_dependent_action_list = tmpl::list<Parallel::PhaseActions<
      38             :       Parallel::Phase::Initialization,
      39             :       tmpl::list<Initialization::Actions::InitializeItems<
      40             :                      ::ah::Initialize<HorizonMetavars>>,
      41             :                  Parallel::Actions::TerminatePhase>>>;
      42             : 
      43           0 :   using simple_tags_from_options = Parallel::get_simple_tags_from_options<
      44             :       Parallel::get_initialization_actions_list<phase_dependent_action_list>>;
      45             : 
      46           0 :   static void execute_next_phase(
      47             :       const Parallel::Phase next_phase,
      48             :       Parallel::CProxy_GlobalCache<Metavariables>& global_cache) {
      49             :     auto& local_cache = *Parallel::local_branch(global_cache);
      50             :     Parallel::get_parallel_component<Component>(local_cache)
      51             :         .start_phase(next_phase);
      52             :   }
      53             : };
      54             : }  // namespace ah

Generated by: LCOV version 1.14