SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Executables/Cce - CharacteristicExtractBase.hpp Hit Total Coverage
Commit: 107e15b340886ae54549b1baa4bfc92e676f667e Lines: 0 20 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 <string>
       7             : #include <type_traits>
       8             : 
       9             : #include "DataStructures/VariablesTag.hpp"
      10             : #include "Evolution/Systems/Cce/BoundaryData.hpp"
      11             : #include "Evolution/Systems/Cce/IntegrandInputSteps.hpp"
      12             : #include "Evolution/Systems/Cce/Tags.hpp"
      13             : #include "NumericalAlgorithms/SpinWeightedSphericalHarmonics/SwshTags.hpp"
      14             : #include "Time/StepChoosers/Constant.hpp"
      15             : #include "Time/StepChoosers/ErrorControl.hpp"
      16             : #include "Time/StepChoosers/LimitIncrease.hpp"
      17             : #include "Time/StepChoosers/Maximum.hpp"
      18             : #include "Time/StepChoosers/StepToTimes.hpp"
      19             : #include "Utilities/TMPL.hpp"
      20             : 
      21             : template <typename System>
      22           0 : struct CharacteristicExtractDefaults {
      23           0 :   using system = System;
      24           0 :   static constexpr bool evolve_ccm = system::evolve_ccm;
      25           0 :   using evolved_swsh_dt_tags = tmpl::list<Cce::Tags::BondiH>;
      26             : 
      27           0 :   using cce_boundary_communication_tags =
      28             :       Cce::Tags::characteristic_worldtube_boundary_tags<
      29             :           Cce::Tags::BoundaryValue>;
      30             : 
      31           0 :   using cce_gauge_boundary_tags = tmpl::flatten<tmpl::list<
      32             :       tmpl::transform<
      33             :           tmpl::list<Cce::Tags::BondiR, Cce::Tags::DuRDividedByR,
      34             :                      Cce::Tags::BondiJ, Cce::Tags::Dr<Cce::Tags::BondiJ>,
      35             :                      Cce::Tags::BondiBeta, Cce::Tags::BondiQ, Cce::Tags::BondiU,
      36             :                      Cce::Tags::BondiW, Cce::Tags::BondiH>,
      37             :           tmpl::bind<Cce::Tags::EvolutionGaugeBoundaryValue, tmpl::_1>>,
      38             :       Cce::Tags::BondiUAtScri, Cce::Tags::PartiallyFlatGaugeC,
      39             :       Cce::Tags::PartiallyFlatGaugeD, Cce::Tags::PartiallyFlatGaugeOmega,
      40             :       Cce::Tags::Du<Cce::Tags::PartiallyFlatGaugeOmega>,
      41             :       tmpl::conditional_t<
      42             :           evolve_ccm,
      43             :           tmpl::list<
      44             :               Cce::Tags::CauchyGaugeC, Cce::Tags::CauchyGaugeD,
      45             :               Cce::Tags::CauchyGaugeOmega,
      46             :               Spectral::Swsh::Tags::Derivative<Cce::Tags::CauchyGaugeOmega,
      47             :                                                Spectral::Swsh::Tags::Eth>>,
      48             :           tmpl::list<>>,
      49             :       Spectral::Swsh::Tags::Derivative<Cce::Tags::PartiallyFlatGaugeOmega,
      50             :                                        Spectral::Swsh::Tags::Eth>,
      51             :       Cce::all_boundary_pre_swsh_derivative_tags_for_scri,
      52             :       Cce::all_boundary_swsh_derivative_tags_for_scri>>;
      53             : 
      54           0 :   using scri_values_to_observe =
      55             :       tmpl::list<Cce::Tags::News, Cce::Tags::ScriPlus<Cce::Tags::Strain>,
      56             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi3>,
      57             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi2>,
      58             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi1>,
      59             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi0>,
      60             :                  Cce::Tags::Du<Cce::Tags::TimeIntegral<
      61             :                      Cce::Tags::ScriPlus<Cce::Tags::Psi4>>>,
      62             :                  Cce::Tags::EthInertialRetardedTime>;
      63             : 
      64           0 :   using cce_scri_tags =
      65             :       tmpl::list<Cce::Tags::News, Cce::Tags::ScriPlus<Cce::Tags::Strain>,
      66             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi3>,
      67             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi2>,
      68             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi1>,
      69             :                  Cce::Tags::ScriPlus<Cce::Tags::Psi0>,
      70             :                  Cce::Tags::TimeIntegral<Cce::Tags::ScriPlus<Cce::Tags::Psi4>>,
      71             :                  Cce::Tags::EthInertialRetardedTime>;
      72           0 :   using cce_integrand_tags = tmpl::flatten<tmpl::transform<
      73             :       Cce::bondi_hypersurface_step_tags,
      74             :       tmpl::bind<Cce::integrand_terms_to_compute_for_bondi_variable,
      75             :                  tmpl::_1>>>;
      76           0 :   using ccm_matching_tags = tmpl::list<
      77             :       Cce::Tags::BondiJCauchyView, Cce::Tags::Psi0Match,
      78             :       Cce::Tags::Dy<Cce::Tags::Psi0Match>,
      79             :       Cce::Tags::Psi0, Cce::Tags::Dy<Cce::Tags::BondiJCauchyView>,
      80             :       Cce::Tags::Dy<Cce::Tags::Dy<Cce::Tags::BondiJCauchyView>>>;
      81             : 
      82           0 :   using cce_integration_independent_tags = tmpl::conditional_t<
      83             :       evolve_ccm,
      84             :       tmpl::append<Cce::pre_computation_tags, ccm_matching_tags,
      85             :                    tmpl::list<Cce::Tags::DuRDividedByR>>,
      86             :       tmpl::push_back<Cce::pre_computation_tags, Cce::Tags::DuRDividedByR>>;
      87             : 
      88           0 :   using cce_temporary_equations_tags = tmpl::remove_duplicates<tmpl::flatten<
      89             :       tmpl::transform<cce_integrand_tags,
      90             :                       tmpl::bind<Cce::integrand_temporary_tags, tmpl::_1>>>>;
      91           0 :   using cce_pre_swsh_derivatives_tags = Cce::all_pre_swsh_derivative_tags;
      92           0 :   using cce_transform_buffer_tags = Cce::all_transform_buffer_tags;
      93           0 :   using cce_swsh_derivative_tags = Cce::all_swsh_derivative_tags;
      94           0 :   using cce_angular_coordinate_tags =
      95             :       tmpl::conditional_t<evolve_ccm,
      96             :                           tmpl::list<Cce::Tags::CauchyAngularCoords,
      97             :                                      Cce::Tags::PartiallyFlatAngularCoords>,
      98             :                           tmpl::list<Cce::Tags::CauchyAngularCoords>>;
      99           0 :   using cce_step_choosers =
     100             :       tmpl::list<StepChoosers::Constant, StepChoosers::LimitIncrease,
     101             :                  StepChoosers::Maximum,
     102             :                  StepChoosers::ErrorControl<StepChooserUse::LtsStep, system>>;
     103           0 :   using cce_slab_choosers =
     104             :       tmpl::list<StepChoosers::Constant, StepChoosers::LimitIncrease,
     105             :                  StepChoosers::Maximum, StepChoosers::StepToTimes>;
     106             : 
     107           0 :   using ccm_psi0 = tmpl::list<
     108             :       Cce::Tags::BoundaryValue<Cce::Tags::Psi0Match>,
     109             :       Cce::Tags::BoundaryValue<Cce::Tags::Dlambda<Cce::Tags::Psi0Match>>>;
     110             : };

Generated by: LCOV version 1.14