SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Executables/GrMhd/GhValenciaDivClean - EvolveGhValenciaDivCleanWithHorizon.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 0.0 % 26 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 <vector>
       7              : 
       8              : #include "Evolution/Executables/GrMhd/GhValenciaDivClean/GhValenciaDivCleanBase.hpp"
       9              : #include "Evolution/Systems/GeneralizedHarmonic/Tags.hpp"
      10              : #include "Evolution/Systems/GrMhd/GhValenciaDivClean/TimeDerivativeTerms.hpp"
      11              : #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp"
      12              : #include "Evolution/VariableFixing/Tags.hpp"
      13              : #include "NumericalAlgorithms/Strahlkorper/IO/InitialShapeFromFile.hpp"
      14              : #include "NumericalAlgorithms/Strahlkorper/InitialShape.hpp"
      15              : #include "Options/FactoryHelpers.hpp"
      16              : #include "Options/Protocols/FactoryCreation.hpp"
      17              : #include "Options/String.hpp"
      18              : #include "ParallelAlgorithms/ApparentHorizonFinder/Callbacks/FailedHorizonFind.hpp"
      19              : #include "ParallelAlgorithms/ApparentHorizonFinder/Callbacks/ObserveFieldsOnHorizon.hpp"
      20              : #include "ParallelAlgorithms/ApparentHorizonFinder/Callbacks/ObserveTimeSeriesOnHorizon.hpp"
      21              : #include "ParallelAlgorithms/ApparentHorizonFinder/Component.hpp"
      22              : #include "ParallelAlgorithms/ApparentHorizonFinder/Criteria/Criterion.hpp"
      23              : #include "ParallelAlgorithms/ApparentHorizonFinder/Criteria/Factory.hpp"
      24              : #include "ParallelAlgorithms/ApparentHorizonFinder/Events/FindApparentHorizon.hpp"
      25              : #include "ParallelAlgorithms/ApparentHorizonFinder/HorizonAliases.hpp"
      26              : #include "ParallelAlgorithms/ApparentHorizonFinder/KerrSchild.hpp"
      27              : #include "ParallelAlgorithms/ApparentHorizonFinder/Protocols/HorizonMetavars.hpp"
      28              : #include "PointwiseFunctions/GeneralRelativity/Surfaces/Tags.hpp"
      29              : #include "PointwiseFunctions/Hydro/EquationsOfState/Factory.hpp"
      30              : #include "Time/Tags/Time.hpp"
      31              : #include "Utilities/ErrorHandling/Error.hpp"
      32              : #include "Utilities/ProtocolHelpers.hpp"
      33              : #include "Utilities/TMPL.hpp"
      34              : 
      35              : template <bool UseControlSystems, bool UseParametrizedDeleptonization,
      36              :           typename... InterpolationTargetTags>
      37              : struct EvolutionMetavars
      38              :     : public GhValenciaDivCleanTemplateBase<
      39              :           EvolutionMetavars<UseControlSystems, UseParametrizedDeleptonization,
      40              :                             InterpolationTargetTags...>,
      41              :           false, false, UseParametrizedDeleptonization> {
      42              :   static_assert(not UseControlSystems,
      43              :                 "GhValenciaWithHorizon doesn't support control systems yet.");
      44              :   static constexpr bool use_dg_subcell = false;
      45              : 
      46            0 :   using defaults = GhValenciaDivCleanDefaults<use_dg_subcell>;
      47            0 :   using base = GhValenciaDivCleanTemplateBase<EvolutionMetavars, use_dg_subcell,
      48              :                                               UseControlSystems,
      49              :                                               UseParametrizedDeleptonization>;
      50              :   static constexpr size_t volume_dim = defaults::volume_dim;
      51            0 :   using domain_frame = typename defaults::domain_frame;
      52              :   static constexpr bool use_damped_harmonic_rollon =
      53              :       defaults::use_damped_harmonic_rollon;
      54            0 :   using temporal_id = typename defaults::temporal_id;
      55            0 :   using system = typename defaults::system;
      56            0 :   using analytic_variables_tags = typename defaults::analytic_variables_tags;
      57            0 :   using analytic_solution_fields = typename defaults::analytic_solution_fields;
      58            0 :   using ordered_list_of_primitive_recovery_schemes =
      59              :       typename defaults::ordered_list_of_primitive_recovery_schemes;
      60            0 :   using initialize_initial_data_dependent_quantities_actions =
      61              :       typename defaults::initialize_initial_data_dependent_quantities_actions;
      62              : 
      63              :   static constexpr Options::String help{
      64              :       "Evolve the Valencia formulation of the GRMHD system with divergence "
      65              :       "cleaning, coupled to a dynamic spacetime evolved with the Generalized "
      66              :       "Harmonic formulation\n"
      67              :       "on a domain with a single horizon and corresponding excised region"};
      68              : 
      69            0 :   struct AhA : tt::ConformsTo<ah::protocols::HorizonMetavars> {
      70            0 :     using time_tag = ah::Tags::ObservationTime<0>;
      71              : 
      72            0 :     using frame = domain_frame;
      73              : 
      74            0 :     using horizon_find_callbacks =
      75              :         tmpl::list<ah::callbacks::ObserveTimeSeriesOnHorizon<
      76              :             ::ah::tags_for_observing<domain_frame>, AhA>>;
      77            0 :     using horizon_find_failure_callbacks =
      78              :         tmpl::list<ah::callbacks::FailedHorizonFind<AhA, false>>;
      79              : 
      80            0 :     using compute_tags_on_element =
      81              :         tmpl::list<ah::Tags::ObservationTimeCompute<0>>;
      82              : 
      83            0 :     static constexpr ah::Destination destination = ah::Destination::Observation;
      84              : 
      85            0 :     static std::string name() { return "AhA"; }
      86              :   };
      87              : 
      88            0 :   using interpolation_target_tags = tmpl::list<InterpolationTargetTags...>;
      89              : 
      90            0 :   using observe_fields = typename base::observe_fields;
      91              : 
      92              :   struct factory_creation
      93              :       : tt::ConformsTo<Options::protocols::FactoryCreation> {
      94            0 :     using factory_classes = Options::add_factory_classes<
      95              :         typename base::factory_creation::factory_classes,
      96              :         tmpl::pair<Event, tmpl::list<ah::Events::FindApparentHorizon<AhA>>>,
      97              :         tmpl::pair<ah::Criterion, ah::Criteria::standard_criteria>,
      98              :         tmpl::pair<ylm::InitialShape<domain_frame>,
      99              :                    tmpl::list<ylm::InitialShapes::Sphere<domain_frame>,
     100              :                               ylm::InitialShapes::FromFile<domain_frame>,
     101              :                               ah::InitialShapes::KerrSchild<domain_frame>>>>;
     102              :   };
     103              : 
     104            0 :   using initial_data_tag = typename base::initial_data_tag;
     105              : 
     106            0 :   using const_global_cache_tags = tmpl::flatten<tmpl::list<
     107              :       grmhd::ValenciaDivClean::Tags::PrimitiveFromConservativeOptions,
     108              :       gh::gauges::Tags::GaugeCondition, initial_data_tag,
     109              :       grmhd::ValenciaDivClean::Tags::ConstraintDampingParameter,
     110              :       typename base::equation_of_state_tag,
     111              :       gh::Tags::DampingFunctionGamma0<volume_dim, Frame::Grid>,
     112              :       gh::Tags::DampingFunctionGamma1<volume_dim, Frame::Grid>,
     113              :       gh::Tags::DampingFunctionGamma2<volume_dim, Frame::Grid>,
     114              :       ah::Tags::LMax>>;
     115              : 
     116            0 :   using observed_reduction_data_tags = observers::collect_reduction_data_tags<
     117              :       tmpl::at<typename factory_creation::factory_classes, Event>>;
     118              : 
     119            0 :   using registration = typename base::registration;
     120              : 
     121            0 :   using component_list = tmpl::push_back<typename base::component_list,
     122              :                                          ah::Component<EvolutionMetavars, AhA>>;
     123              : };
        

Generated by: LCOV version 2.0-1