SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Executables/GeneralizedHarmonic - EvolveGhNoBlackHole.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 0.0 % 9 0
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 <cstdint>
       7              : #include <vector>
       8              : 
       9              : #include "Evolution/Actions/RunEventsAndTriggers.hpp"
      10              : #include "Evolution/DiscontinuousGalerkin/EqualRateLts/ChangeFixedLtsRatio.hpp"
      11              : #include "Evolution/DiscontinuousGalerkin/Initialization/ProjectSpectralFilters.hpp"
      12              : #include "Evolution/Executables/GeneralizedHarmonic/GeneralizedHarmonicBase.hpp"
      13              : #include "Options/Protocols/FactoryCreation.hpp"
      14              : #include "Options/String.hpp"
      15              : #include "Parallel/ArrayCollection/DgElementCollection.hpp"
      16              : #include "Parallel/MemoryMonitor/MemoryMonitor.hpp"
      17              : #include "Parallel/PhaseControl/PhaseControlTags.hpp"
      18              : #include "Parallel/Protocols/RegistrationMetavariables.hpp"
      19              : #include "ParallelAlgorithms/Actions/MutateApply.hpp"
      20              : #include "ParallelAlgorithms/Amr/Projectors/CopyFromCreatorOrLeaveAsIs.hpp"
      21              : #include "PointwiseFunctions/AnalyticSolutions/GeneralRelativity/GaugeWave.hpp"
      22              : #include "Time/Actions/SelfStartActions.hpp"
      23              : #include "Time/AdvanceTime.hpp"
      24              : #include "Time/ChangeSlabSize/Action.hpp"
      25              : #include "Time/ChangeSlabSize/Tags.hpp"
      26              : #include "Time/Tags/StepperErrors.hpp"
      27              : #include "Utilities/ErrorHandling/Error.hpp"
      28              : #include "Utilities/ProtocolHelpers.hpp"
      29              : 
      30              : template <size_t VolumeDim>
      31              : struct EvolutionMetavars : public GeneralizedHarmonicTemplateBase<VolumeDim> {
      32              :   static constexpr size_t volume_dim = VolumeDim;
      33            0 :   using gh_base = GeneralizedHarmonicTemplateBase<volume_dim>;
      34              :   using typename gh_base::const_global_cache_tags;
      35              :   using typename gh_base::dg_registration_list;
      36            0 :   using initialization_actions =
      37              :       typename gh_base::template initialization_actions<EvolutionMetavars,
      38              :                                                         false>;
      39              :   using typename gh_base::initialize_initial_data_dependent_quantities_actions;
      40              :   using typename gh_base::observed_reduction_data_tags;
      41              :   using typename gh_base::system;
      42              :   static constexpr bool use_dg_element_collection =
      43              :       gh_base::use_dg_element_collection;
      44              : 
      45            0 :   using step_actions =
      46              :       typename gh_base::template step_actions<EvolutionMetavars, tmpl::list<>>;
      47              : 
      48            0 :   using gh_dg_element_array = DgElementArray<
      49              :       EvolutionMetavars,
      50              :       tmpl::flatten<tmpl::list<
      51              :           Parallel::PhaseActions<Parallel::Phase::Initialization,
      52              :                                  initialization_actions>,
      53              :           Parallel::PhaseActions<
      54              :               Parallel::Phase::RegisterWithElementDataReader,
      55              :               tmpl::list<importers::Actions::RegisterWithElementDataReader,
      56              :                          Parallel::Actions::TerminatePhase>>,
      57              :           Parallel::PhaseActions<
      58              :               Parallel::Phase::ImportInitialData,
      59              :               tmpl::list<
      60              :                   gh::Actions::SetInitialData,
      61              :                   tmpl::conditional_t<VolumeDim == 3,
      62              :                                       gh::Actions::ReceiveNumericInitialData,
      63              :                                       tmpl::list<>>,
      64              :                   Parallel::Actions::TerminatePhase>>,
      65              :           Parallel::PhaseActions<
      66              :               Parallel::Phase::InitializeInitialDataDependentQuantities,
      67              :               initialize_initial_data_dependent_quantities_actions>,
      68              :           Parallel::PhaseActions<
      69              :               Parallel::Phase::InitializeTimeStepperHistory,
      70              :               SelfStart::self_start_procedure<step_actions, system>>,
      71              :           Parallel::PhaseActions<Parallel::Phase::Register,
      72              :                                  tmpl::list<dg_registration_list,
      73              :                                             Parallel::Actions::TerminatePhase>>,
      74              :           Parallel::PhaseActions<Parallel::Phase::Restart,
      75              :                                  tmpl::list<dg_registration_list,
      76              :                                             Parallel::Actions::TerminatePhase>>,
      77              :           Parallel::PhaseActions<
      78              :               Parallel::Phase::WriteCheckpoint,
      79              :               tmpl::list<evolution::Actions::RunEventsAndTriggers<
      80              :                              Triggers::WhenToCheck::AtCheckpoints>,
      81              :                          Parallel::Actions::TerminatePhase>>,
      82              :           Parallel::PhaseActions<Parallel::Phase::CheckDomain,
      83              :                                  tmpl::list<::amr::Actions::SendAmrDiagnostics,
      84              :                                             Parallel::Actions::TerminatePhase>>,
      85              :           Parallel::PhaseActions<
      86              :               Parallel::Phase::Evolve,
      87              :               tmpl::flatten<
      88              :                   tmpl::list<evolution::Actions::RunEventsAndTriggers<
      89              :                                  Triggers::WhenToCheck::AtSteps>,
      90              :                              ::evolution::Actions::RunEventsAndTriggers<
      91              :                                  Triggers::WhenToCheck::AtSlabs>,
      92              :                              Actions::ChangeSlabSize,
      93              :                              evolution::dg::Actions::ChangeFixedLtsRatio,
      94              :                              step_actions, Actions::MutateApply<AdvanceTime<>>,
      95              :                              PhaseControl::Actions::ExecutePhaseChange>>>>>>;
      96              : 
      97              :   struct amr : tt::ConformsTo<::amr::protocols::AmrMetavariables> {
      98            0 :     using element_array = gh_dg_element_array;
      99            0 :     using projectors = tmpl::list<
     100              :         Initialization::ProjectTimeStepping<volume_dim>,
     101              :         evolution::dg::Initialization::ProjectDomain<volume_dim>,
     102              :         ::amr::projectors::ProjectVariables<volume_dim,
     103              :                                             typename system::variables_tag>,
     104              :         evolution::dg::Initialization::ProjectMortars<volume_dim>,
     105              :         Initialization::ProjectTimeStepperHistory<EvolutionMetavars>,
     106              :         evolution::Actions::ProjectRunEventsAndDenseTriggers,
     107              :         evolution::dg::Initialization::ProjectSpectralFilters<
     108              :             volume_dim, typename system::variables_tag::tags_list>,
     109              :         ::amr::projectors::DefaultInitialize<
     110              :             Initialization::Tags::InitialTimeDelta,
     111              :             Initialization::Tags::InitialSlabSize,
     112              :             ::domain::Tags::InitialExtents<volume_dim>,
     113              :             ::domain::Tags::InitialRefinementLevels<volume_dim>,
     114              :             evolution::dg::Tags::Quadrature,
     115              :             Tags::StepperErrors<typename system::variables_tag>,
     116              :             SelfStart::Tags::InitialValue<typename system::variables_tag>,
     117              :             SelfStart::Tags::InitialValue<Tags::TimeStep>>,
     118              :         ::amr::projectors::CopyFromCreatorOrLeaveAsIs<
     119              :             evolution::dg::Tags::ChangeFixedLtsRatio::NumberOfExpectedMessages,
     120              :             evolution::dg::Tags::ChangeFixedLtsRatio::NewStepSize,
     121              :             Tags::FixedLtsRatio,
     122              :             Parallel::Tags::Section<gh_dg_element_array,
     123              :                                     evolution::dg::Tags::EqualRateRegionId>,
     124              :             Tags::ChangeSlabSize::NumberOfExpectedMessages,
     125              :             Tags::ChangeSlabSize::NewSlabSize>>;
     126              :     static constexpr bool keep_coarse_grids = false;
     127              :     static constexpr bool p_refine_only_in_event = true;
     128              :   };
     129              : 
     130              :   struct registration
     131              :       : tt::ConformsTo<Parallel::protocols::RegistrationMetavariables> {
     132            0 :     using element_registrars =
     133              :         tmpl::map<tmpl::pair<gh_dg_element_array, dg_registration_list>>;
     134              :   };
     135              : 
     136            0 :   using component_list =
     137              :       tmpl::flatten<tmpl::list<::amr::Component<EvolutionMetavars>,
     138              :                                observers::Observer<EvolutionMetavars>,
     139              :                                observers::ObserverWriter<EvolutionMetavars>,
     140              :                                mem_monitor::MemoryMonitor<EvolutionMetavars>,
     141              :                                importers::ElementDataReader<EvolutionMetavars>,
     142              :                                gh_dg_element_array>>;
     143              : 
     144              :   static constexpr Options::String help{
     145              :       "Evolve the Einstein field equations using the Generalized Harmonic "
     146              :       "formulation\n"};
     147              : };
        

Generated by: LCOV version 2.0-1