SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Executables/Cce - KleinGordonCharacteristicExtract.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 0.0 % 18 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 "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 2.0-1