SpECTRE Documentation Coverage Report
Current view: top level - Time - AdvanceTime.hpp Hit Total Coverage
Commit: 3ffcbc8ecf43797401b60bcca17d6040ee06f013 Lines: 1 5 20.0 %
Date: 2026-03-03 02:01:44
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 <cstdint>
       7             : #include <type_traits>
       8             : 
       9             : #include "Utilities/TMPL.hpp"
      10             : 
      11             : /// \cond
      12             : class AdaptiveSteppingDiagnostics;
      13             : class TimeDelta;
      14             : class TimeStepId;
      15             : class TimeStepper;
      16             : namespace Tags {
      17             : struct AdaptiveSteppingDiagnostics;
      18             : template <typename Tag>
      19             : struct Next;
      20             : struct StepperErrorEstimatesEnabled;
      21             : struct StepNumberWithinSlab;
      22             : struct Time;
      23             : struct TimeStep;
      24             : struct TimeStepId;
      25             : template <typename StepperInterface>
      26             : struct TimeStepper;
      27             : }  // namespace Tags
      28             : namespace gsl {
      29             : template <class T>
      30             : class not_null;
      31             : }  // namespace gsl
      32             : /// \endcond
      33             : 
      34             : namespace AdvanceTime_detail {
      35             : void apply(gsl::not_null<TimeStepId*> time_id,
      36             :            gsl::not_null<TimeStepId*> next_time_id,
      37             :            gsl::not_null<TimeDelta*> time_step, gsl::not_null<double*> time,
      38             :            gsl::not_null<uint64_t*> step_number_within_slab,
      39             :            gsl::not_null<AdaptiveSteppingDiagnostics*> diags,
      40             :            const TimeStepper& time_stepper, bool using_error_control);
      41             : }  // namespace AdvanceTime_detail
      42             : 
      43             : /// \ingroup TimeGroup
      44             : /// \brief Advance time one substep
      45             : ///
      46             : /// Replaces the time state with the `Tags::Next` values, advances the
      47             : /// `Tags::Next` values, and sets `Tags::Time` to the new substep time.
      48             : template <template <typename> typename CacheTagPrefix = std::type_identity_t>
      49           1 : struct AdvanceTime {
      50           0 :   using return_tags =
      51             :       tmpl::list<Tags::TimeStepId, Tags::Next<Tags::TimeStepId>, Tags::TimeStep,
      52             :                  Tags::Time, Tags::StepNumberWithinSlab,
      53             :                  Tags::AdaptiveSteppingDiagnostics>;
      54           0 :   using argument_tags =
      55             :       tmpl::list<CacheTagPrefix<Tags::TimeStepper<TimeStepper>>,
      56             :                  Tags::StepperErrorEstimatesEnabled>;
      57             : 
      58           0 :   static constexpr auto apply = &AdvanceTime_detail::apply;
      59             : };

Generated by: LCOV version 1.14