SpECTRE Documentation Coverage Report
Current view: top level - Time/TimeSteppers - Rk5Tsitouras.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 17.6 % 17 3
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 <cstddef>
       7              : 
       8              : #include "DataStructures/TaggedVariant.hpp"
       9              : #include "Options/String.hpp"
      10              : #include "Time/TimeSteppers/RungeKutta.hpp"
      11              : #include "Utilities/Serialization/CharmPupable.hpp"
      12              : #include "Utilities/TMPL.hpp"
      13              : 
      14              : namespace TimeSteppers {
      15              : /*!
      16              :  * \ingroup TimeSteppersGroup
      17              :  * \brief A fifth order RK method constructed with fewer restrictions
      18              :  * on its coefficients than is common.  On a standard test suite, it
      19              :  * was found to be roughly 10% more efficient than
      20              :  * DormandPrince5.\cite Tsitouras2011.
      21              :  *
      22              :  * The CFL stable step size is 1.7534234969024887.
      23              :  */
      24            1 : class Rk5Tsitouras : public RungeKutta {
      25              :  public:
      26            0 :   using options = tmpl::list<>;
      27            0 :   static constexpr Options::String help = {
      28              :       "An efficient 5th-order Runge-Kutta time stepper."};
      29              : 
      30            0 :   Rk5Tsitouras() = default;
      31            0 :   Rk5Tsitouras(const Rk5Tsitouras&) = default;
      32            0 :   Rk5Tsitouras& operator=(const Rk5Tsitouras&) = default;
      33            0 :   Rk5Tsitouras(Rk5Tsitouras&&) = default;
      34            0 :   Rk5Tsitouras& operator=(Rk5Tsitouras&&) = default;
      35            0 :   ~Rk5Tsitouras() override = default;
      36              : 
      37            1 :   variants::TaggedVariant<Tags::FixedOrder, Tags::VariableOrder> order()
      38              :       const override;
      39              : 
      40            1 :   double stable_step() const override;
      41              : 
      42            0 :   WRAPPED_PUPable_decl_template(Rk5Tsitouras);  // NOLINT
      43              : 
      44            0 :   explicit Rk5Tsitouras(CkMigrateMessage* /*msg*/);
      45              : 
      46            0 :   const ButcherTableau& butcher_tableau() const override;
      47              : };
      48              : 
      49            0 : inline bool constexpr operator==(const Rk5Tsitouras& /*lhs*/,
      50              :                                  const Rk5Tsitouras& /*rhs*/) {
      51              :   return true;
      52              : }
      53              : 
      54            0 : inline bool constexpr operator!=(const Rk5Tsitouras& /*lhs*/,
      55              :                                  const Rk5Tsitouras& /*rhs*/) {
      56              :   return false;
      57              : }
      58              : }  // namespace TimeSteppers
        

Generated by: LCOV version 2.0-1