Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <limits> 7 : 8 : /// \cond 9 : namespace PUP { 10 : class er; 11 : } // namespace PUP 12 : /// \endcond 13 : 14 : /// \ingroup TimeGroup 15 : /// Tolerances used for time step error control 16 1 : struct StepperErrorTolerances { 17 0 : enum class Estimates { None, StepperOrder, AllOrders }; 18 : 19 : /// Which estimates the time stepper should generate. 20 1 : Estimates estimates = Estimates::None; 21 0 : double absolute = std::numeric_limits<double>::signaling_NaN(); 22 0 : double relative = std::numeric_limits<double>::signaling_NaN(); 23 : 24 0 : void pup(PUP::er& p); 25 : }; 26 : 27 0 : bool operator==(const StepperErrorTolerances& a, 28 : const StepperErrorTolerances& b); 29 0 : bool operator!=(const StepperErrorTolerances& a, 30 : const StepperErrorTolerances& b);