SpECTRE Documentation Coverage Report
Current view: top level - IO/Observer - ObserverComponent.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 12.5 % 16 2
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 "IO/Observer/Initialize.hpp"
       7              : #include "IO/Observer/Tags.hpp"
       8              : #include "Parallel/Algorithms/AlgorithmGroup.hpp"
       9              : #include "Parallel/Algorithms/AlgorithmNodegroup.hpp"
      10              : #include "Parallel/ArrayComponentId.hpp"
      11              : #include "Parallel/GlobalCache.hpp"
      12              : #include "Parallel/ParallelComponentHelpers.hpp"
      13              : #include "Parallel/Phase.hpp"
      14              : #include "Parallel/PhaseDependentActionList.hpp"
      15              : #include "Parallel/Tags/InputSource.hpp"
      16              : #include "ParallelAlgorithms/Actions/TerminatePhase.hpp"
      17              : #include "Utilities/TMPL.hpp"
      18              : 
      19              : namespace observers {
      20              : /*!
      21              :  * \ingroup ObserversGroup
      22              :  * \brief The group parallel component that is responsible for reducing data
      23              :  * to be observed.
      24              :  *
      25              :  * Once the data from all elements on the processing element (usually a core)
      26              :  * has been collected, it is copied (not sent over the network) to the local
      27              :  * nodegroup parallel component, `ObserverWriter`, for writing to disk.
      28              :  */
      29              : template <class Metavariables>
      30            1 : struct Observer {
      31            0 :   using chare_type = Parallel::Algorithms::Group;
      32            0 :   static constexpr bool checkpoint_data = false;
      33            0 :   using metavariables = Metavariables;
      34            0 :   using phase_dependent_action_list = tmpl::list<
      35              :       Parallel::PhaseActions<Parallel::Phase::Initialization,
      36              :                              tmpl::list<Actions::Initialize<Metavariables>,
      37              :                                         Parallel::Actions::TerminatePhase>>>;
      38            0 :   using simple_tags_from_options = Parallel::get_simple_tags_from_options<
      39              :       Parallel::get_initialization_actions_list<phase_dependent_action_list>>;
      40              : 
      41            0 :   static void execute_next_phase(
      42              :       const Parallel::Phase /*next_phase*/,
      43              :       Parallel::CProxy_GlobalCache<Metavariables>& /*global_cache*/) {}
      44              : };
      45              : 
      46              : /*!
      47              :  * \ingroup ObserversGroup
      48              :  * \brief The nodegroup parallel component that is responsible for writing data
      49              :  * to disk.
      50              :  */
      51              : template <class Metavariables>
      52            1 : struct ObserverWriter {
      53            0 :   using chare_type = Parallel::Algorithms::Nodegroup;
      54            0 :   static constexpr bool checkpoint_data = false;
      55            0 :   using const_global_cache_tags =
      56              :       tmpl::list<Tags::ReductionFileName, Tags::VolumeFileName,
      57              :                  ::Parallel::Tags::InputSource>;
      58            0 :   using metavariables = Metavariables;
      59            0 :   using phase_dependent_action_list = tmpl::list<Parallel::PhaseActions<
      60              :       Parallel::Phase::Initialization,
      61              :       tmpl::list<Actions::InitializeWriter<Metavariables>,
      62              :                  Parallel::Actions::TerminatePhase>>>;
      63            0 :   using simple_tags_from_options = Parallel::get_simple_tags_from_options<
      64              :       Parallel::get_initialization_actions_list<phase_dependent_action_list>>;
      65              : 
      66            0 :   static void execute_next_phase(
      67              :       const Parallel::Phase /*next_phase*/,
      68              :       Parallel::CProxy_GlobalCache<Metavariables>& /*global_cache*/) {}
      69              : };
      70              : }  // namespace observers
        

Generated by: LCOV version 2.0-1