SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Executables/Cce - KleinGordonCharacteristicExtract.hpp Hit Total Coverage
Commit: 107e15b340886ae54549b1baa4bfc92e676f667e Lines: 0 18 0.0 %
Date: 2026-09-17 16:38:56
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 "Evolution/Executables/Cce/CharacteristicExtractBase.hpp"
       7             : #include "Evolution/Systems/Cce/AnalyticSolutions/BouncingBlackHole.hpp"
       8             : #include "Evolution/Systems/Cce/AnalyticSolutions/GaugeWave.hpp"
       9             : #include "Evolution/Systems/Cce/AnalyticSolutions/LinearizedBondiSachs.hpp"
      10             : #include "Evolution/Systems/Cce/AnalyticSolutions/RobinsonTrautman.hpp"
      11             : #include "Evolution/Systems/Cce/AnalyticSolutions/RotatingSchwarzschild.hpp"
      12             : #include "Evolution/Systems/Cce/AnalyticSolutions/SphericalMetricData.hpp"
      13             : #include "Evolution/Systems/Cce/AnalyticSolutions/TeukolskyWave.hpp"
      14             : #include "Evolution/Systems/Cce/Components/KleinGordonCharacteristicEvolution.hpp"
      15             : #include "Evolution/Systems/Cce/Events/ObserveFields.hpp"
      16             : #include "Evolution/Systems/Cce/Events/ObserveTimeStep.hpp"
      17             : #include "Evolution/Systems/Cce/Initialize/ConformalFactor.hpp"
      18             : #include "Evolution/Systems/Cce/KleinGordonSystem.hpp"
      19             : #include "IO/Observer/ObserverComponent.hpp"
      20             : #include "Parallel/Algorithms/AlgorithmSingleton.hpp"
      21             : #include "ParallelAlgorithms/Events/Factory.hpp"
      22             : #include "ParallelAlgorithms/EventsAndTriggers/Event.hpp"
      23             : #include "ParallelAlgorithms/EventsAndTriggers/EventsAndTriggers.hpp"
      24             : #include "ParallelAlgorithms/EventsAndTriggers/LogicalTriggers.hpp"
      25             : #include "ParallelAlgorithms/EventsAndTriggers/Trigger.hpp"
      26             : #include "Time/TimeSteppers/Factory.hpp"
      27             : #include "Time/Triggers/TimeTriggers.hpp"
      28             : 
      29             : /// \cond
      30             : namespace PUP {
      31             : class er;
      32             : }  // namespace PUP
      33             : /// \endcond
      34             : 
      35             : template <template <typename> class BoundaryComponent>
      36             : struct EvolutionMetavars
      37             :     : CharacteristicExtractDefaults<Cce::KleinGordonSystem<false>> {
      38           0 :   using cce_boundary_component = BoundaryComponent<EvolutionMetavars>;
      39           0 :   using cce_base = CharacteristicExtractDefaults<Cce::KleinGordonSystem<false>>;
      40             : 
      41           0 :   using evolved_swsh_dt_tags =
      42             :       tmpl::append<cce_base::evolved_swsh_dt_tags,
      43             :                    tmpl::list<Cce::Tags::KleinGordonPi>>;
      44             : 
      45           0 :   using klein_gordon_boundary_communication_tags =
      46             :       Cce::Tags::klein_gordon_worldtube_boundary_tags;
      47             : 
      48           0 :   using klein_gordon_gauge_boundary_tags = tmpl::list<
      49             :       Cce::Tags::EvolutionGaugeBoundaryValue<Cce::Tags::KleinGordonPsi>,
      50             :       Cce::Tags::EvolutionGaugeBoundaryValue<Cce::Tags::KleinGordonPi>>;
      51             : 
      52           0 :   using klein_gordon_scri_tags =
      53             :       tmpl::list<Cce::Tags::ScriPlus<Cce::Tags::KleinGordonPi>>;
      54             : 
      55           0 :   using klein_gordon_pre_swsh_derivative_tags =
      56             :       tmpl::list<Cce::Tags::Dy<Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>>,
      57             :                  Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>>;
      58             : 
      59           0 :   using klein_gordon_swsh_derivative_tags = tmpl::list<
      60             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::KleinGordonPsi,
      61             :                                        Spectral::Swsh::Tags::Eth>,
      62             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::KleinGordonPsi,
      63             :                                        Spectral::Swsh::Tags::Ethbar>,
      64             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>,
      65             :                                        Spectral::Swsh::Tags::Eth>,
      66             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>,
      67             :                                        Spectral::Swsh::Tags::Ethbar>,
      68             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::KleinGordonPsi,
      69             :                                        Spectral::Swsh::Tags::EthEth>,
      70             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::KleinGordonPsi,
      71             :                                        Spectral::Swsh::Tags::EthEthbar>>;
      72           0 :   using klein_gordon_transform_buffer_tags = tmpl::list<
      73             :       Spectral::Swsh::Tags::SwshTransform<Cce::Tags::KleinGordonPsi>,
      74             :       Spectral::Swsh::Tags::SwshTransform<
      75             :           Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>>,
      76             :       Spectral::Swsh::Tags::SwshTransform<Spectral::Swsh::Tags::Derivative<
      77             :           Cce::Tags::KleinGordonPsi, Spectral::Swsh::Tags::Eth>>,
      78             :       Spectral::Swsh::Tags::SwshTransform<Spectral::Swsh::Tags::Derivative<
      79             :           Cce::Tags::KleinGordonPsi, Spectral::Swsh::Tags::Ethbar>>,
      80             :       Spectral::Swsh::Tags::SwshTransform<Spectral::Swsh::Tags::Derivative<
      81             :           Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>, Spectral::Swsh::Tags::Eth>>,
      82             :       Spectral::Swsh::Tags::SwshTransform<Spectral::Swsh::Tags::Derivative<
      83             :           Cce::Tags::Dy<Cce::Tags::KleinGordonPsi>,
      84             :           Spectral::Swsh::Tags::Ethbar>>,
      85             :       Spectral::Swsh::Tags::SwshTransform<Spectral::Swsh::Tags::Derivative<
      86             :           Cce::Tags::KleinGordonPsi, Spectral::Swsh::Tags::EthEth>>,
      87             :       Spectral::Swsh::Tags::SwshTransform<Spectral::Swsh::Tags::Derivative<
      88             :           Cce::Tags::KleinGordonPsi, Spectral::Swsh::Tags::EthEthbar>>>;
      89             : 
      90           0 :   using klein_gordon_source_tags = tmpl::flatten<
      91             :       tmpl::transform<Cce::bondi_hypersurface_step_tags,
      92             :                       tmpl::bind<Cce::Tags::KleinGordonSource, tmpl::_1>>>;
      93             : 
      94           0 :   using klein_gordon_cce_integrand_tags =
      95             :       tmpl::list<Cce::Tags::PoleOfIntegrand<Cce::Tags::KleinGordonPi>,
      96             :                  Cce::Tags::RegularIntegrand<Cce::Tags::KleinGordonPi>>;
      97             : 
      98           0 :   using scri_values_to_observe =
      99             :       tmpl::append<cce_base::scri_values_to_observe,
     100             :                    tmpl::list<Cce::Tags::ScriPlus<Cce::Tags::KleinGordonPsi>>>;
     101             : 
     102           0 :   using cce_scri_tags =
     103             :       tmpl::append<cce_base::cce_scri_tags,
     104             :                    tmpl::list<Cce::Tags::ScriPlus<Cce::Tags::KleinGordonPsi>>>;
     105             : 
     106           0 :   using component_list =
     107             :       tmpl::list<observers::ObserverWriter<EvolutionMetavars>,
     108             :                  cce_boundary_component,
     109             :                  Cce::KleinGordonCharacteristicEvolution<EvolutionMetavars>>;
     110             : 
     111             :   struct factory_creation
     112             :       : tt::ConformsTo<Options::protocols::FactoryCreation> {
     113           0 :     using factory_classes = tmpl::map<
     114             :         tmpl::pair<LtsTimeStepper, TimeSteppers::lts_time_steppers>,
     115             :         tmpl::pair<StepChooser<StepChooserUse::LtsStep>, cce_step_choosers>,
     116             :         tmpl::pair<StepChooser<StepChooserUse::Slab>, cce_slab_choosers>,
     117             :         tmpl::pair<TimeSequence<double>,
     118             :                    TimeSequences::all_time_sequences<double>>,
     119             :         tmpl::pair<TimeSequence<std::uint64_t>,
     120             :                    TimeSequences::all_time_sequences<std::uint64_t>>,
     121             :         tmpl::pair<Event, tmpl::list<Cce::Events::ObserveFields,
     122             :                                      Cce::Events::ObserveTimeStep>>,
     123             :         tmpl::pair<Trigger, tmpl::append<Triggers::logical_triggers,
     124             :                                          Triggers::time_triggers>>>;
     125             :   };
     126             : 
     127           0 :   using observed_reduction_data_tags = tmpl::list<>;
     128             : 
     129             :   static constexpr Options::String help{
     130             :       "Perform Cauchy Characteristic Extraction for the Klein-Gordon system "
     131             :       "coupled with General Relativity, using .h5 input data."};
     132             : 
     133             :   static constexpr std::array<Parallel::Phase, 4> default_phase_order{
     134             :       {Parallel::Phase::Initialization,
     135             :        Parallel::Phase::InitializeTimeStepperHistory, Parallel::Phase::Evolve,
     136             :        Parallel::Phase::Exit}};
     137             : 
     138             :   // NOLINTNEXTLINE(google-runtime-references)
     139           0 :   void pup(PUP::er& /*p*/) {}
     140             : };

Generated by: LCOV version 1.14