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