SpECTRE Documentation Coverage Report
Current view: top level - Time/Tags - StepperErrorTolerancesCompute.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 18.2 % 11 2
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 <memory>
       7              : #include <type_traits>
       8              : #include <typeindex>
       9              : #include <vector>
      10              : 
      11              : #include "DataStructures/DataBox/Tag.hpp"
      12              : #include "ParallelAlgorithms/EventsAndTriggers/WhenToCheck.hpp"
      13              : #include "Time/Tags/StepperErrorEstimatesEnabled.hpp"
      14              : #include "Time/Tags/StepperErrorTolerances.hpp"
      15              : #include "Utilities/Gsl.hpp"
      16              : #include "Utilities/TMPL.hpp"
      17              : 
      18              : /// \cond
      19              : class EventsAndTriggers;
      20              : template <typename StepChooserUse>
      21              : class StepChooser;
      22              : struct StepperErrorTolerances;
      23              : class TimeStepper;
      24              : class VariableOrderAlgorithm;
      25              : namespace StepChooserUse {
      26              : struct LtsStep;
      27              : }  // namespace StepChooserUse
      28              : namespace Tags {
      29              : template <Triggers::WhenToCheck WhenToCheck>
      30              : struct EventsAndTriggers;
      31              : struct LtsStepChoosers;
      32              : template <typename StepperInterface>
      33              : struct TimeStepper;
      34              : struct VariableOrderAlgorithm;
      35              : }  // namespace Tags
      36              : /// \endcond
      37              : 
      38              : namespace Tags {
      39              : namespace StepperErrorEstimatesEnabledCompute_detail {
      40              : void function(
      41              :     gsl::not_null<bool*> error_estimates_enabled,
      42              :     const ::EventsAndTriggers& events_and_triggers,
      43              :     const std::vector<std::unique_ptr<::StepChooser<StepChooserUse::LtsStep>>>&
      44              :         step_choosers);
      45              : }  // namespace StepperErrorEstimatesEnabledCompute_detail
      46              : 
      47              : /// \ingroup TimeGroup
      48              : /// \brief Searches the StepChoosers for any requesting error estimates.
      49              : template <template <typename> typename CacheTagPrefix = std::type_identity_t>
      50            1 : struct StepperErrorEstimatesEnabledCompute : db::ComputeTag,
      51              :                                              StepperErrorEstimatesEnabled {
      52            0 :   using base = StepperErrorEstimatesEnabled;
      53            0 :   using return_type = type;
      54            0 :   using argument_tags =
      55              :       tmpl::list<::Tags::EventsAndTriggers<Triggers::WhenToCheck::AtSlabs>,
      56              :                  CacheTagPrefix<::Tags::LtsStepChoosers>>;
      57              : 
      58            0 :   static constexpr auto function =
      59              :       &StepperErrorEstimatesEnabledCompute_detail::function;
      60              : };
      61              : 
      62              : namespace StepperErrorTolerancesCompute_detail {
      63              : void function(
      64              :     gsl::not_null<::StepperErrorTolerances*> tolerances,
      65              :     const ::EventsAndTriggers& events_and_triggers,
      66              :     const std::vector<std::unique_ptr<::StepChooser<StepChooserUse::LtsStep>>>&
      67              :         step_choosers,
      68              :     const ::TimeStepper& time_stepper,
      69              :     const ::VariableOrderAlgorithm& variable_order_algorithm,
      70              :     const std::type_index& tag_type);
      71              : }  // namespace StepperErrorTolerancesCompute_detail
      72              : 
      73              : /// \ingroup TimeGroup
      74              : /// \brief A tag that contains the error tolerances if any StepChooser
      75              : /// requests an error estimate for the variable.
      76              : template <typename EvolvedVariableTag,
      77              :           template <typename> typename CacheTagPrefix = std::type_identity_t>
      78            1 : struct StepperErrorTolerancesCompute
      79              :     : db::ComputeTag,
      80              :       StepperErrorTolerances<EvolvedVariableTag> {
      81            0 :   using base = StepperErrorTolerances<EvolvedVariableTag>;
      82            0 :   using return_type = typename base::type;
      83            0 :   using argument_tags =
      84              :       tmpl::list<::Tags::EventsAndTriggers<Triggers::WhenToCheck::AtSlabs>,
      85              :                  CacheTagPrefix<::Tags::LtsStepChoosers>,
      86              :                  CacheTagPrefix<::Tags::TimeStepper<::TimeStepper>>,
      87              :                  CacheTagPrefix<::Tags::VariableOrderAlgorithm>>;
      88              : 
      89            0 :   static void function(
      90              :       const gsl::not_null<::StepperErrorTolerances*> tolerances,
      91              :       const ::EventsAndTriggers& events_and_triggers,
      92              :       const std::vector<
      93              :           std::unique_ptr<::StepChooser<StepChooserUse::LtsStep>>>&
      94              :           step_choosers,
      95              :       const ::TimeStepper& time_stepper,
      96              :       const ::VariableOrderAlgorithm& variable_order_algorithm) {
      97              :     StepperErrorTolerancesCompute_detail::function(
      98              :         tolerances, events_and_triggers, step_choosers, time_stepper,
      99              :         variable_order_algorithm, typeid(EvolvedVariableTag));
     100              :   }
     101              : };
     102              : }  // namespace Tags
        

Generated by: LCOV version 2.0-1