SpECTRE Documentation Coverage Report
Current view: top level - Time - StepperErrorEstimate.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 6 10 60.0 %
Date: 2025-12-05 05:03:31
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 <array>
       7             : #include <cstddef>
       8             : #include <optional>
       9             : 
      10             : #include "Time/Time.hpp"
      11             : 
      12             : /// \cond
      13             : namespace PUP {
      14             : class er;
      15             : }  // namespace PUP
      16             : /// \endcond
      17             : 
      18             : /// \ingroup TimeGroup
      19             : /// Estimate of the TimeStepper truncation error.
      20           1 : struct StepperErrorEstimate {
      21             :   /// Start of the step the estimate is for.
      22           1 :   Time step_time{};
      23             :   /// Size of the step the estimate is for.
      24           1 :   TimeDelta step_size{};
      25             :   /// Order of accuracy of the primary estimate.
      26           1 :   size_t order{};
      27             :   /// Error estimates.  The entry `errors[order]`, with `order` the
      28             :   /// previous member of this struct, is the estimated error of the
      29             :   /// time step, and has a convenience accessor `step_error()`.  Other
      30             :   /// entries are estimations of the error if the order of a
      31             :   /// variable-order stepper were to be changed.  The error
      32             :   /// `errors[i]` should scale approximately as $(\Delta t)^{i + 1}$.
      33           1 :   std::array<std::optional<double>, 8> errors{};
      34             : 
      35           0 :   StepperErrorEstimate() = default;
      36           0 :   StepperErrorEstimate(Time step_time_in, TimeDelta step_size_in,
      37             :                        size_t order_in, double step_error_in);
      38             : 
      39             :   /// Convenience accessor for `errors[order].value()`.
      40           1 :   double step_error() const;
      41             : 
      42           0 :   void pup(PUP::er& p);
      43             : };

Generated by: LCOV version 1.14