Class template Dune::GDT::ExplicitRungeKuttaTimeStepper¶
Inherits from Dune::GDT::TimeStepperInterface.
-
template<class OperatorImp, class DiscreteFunctionImp, TimeStepperMethods method = TimeStepperMethods::explicit_euler>
class Dune::GDT::ExplicitRungeKuttaTimeStepper : public TimeStepperInterface<DiscreteFunctionImp>¶ Time stepper using Runge Kutta methods
Timestepper using explicit Runge Kutta methods to solve equations of the form u_t = r * L(u, t) where u is a discrete function, L an operator acting on u and r a scalar factor (e.g. -1). The specific Runge Kutta method can be chosen as the third template argument. If your desired Runge Kutta method is not contained in ExplicitRungeKuttaMethods, choose ExplicitRungeKuttaMethods::other and supply a DynamicMatrix < RangeFieldType > A and vectors (DynamicVector < RangeFieldType >) b and c in the constructor. Here, A, b and c form the butcher tableau (see https://en.wikipedia.org/wiki/List_of_Runge%E2%80%93Kutta_methods, A is composed of the coefficients a_{ij}, b of b_j and c of c_j). The default is a forward euler method.
Notation: For an s-stage method, mathbf {u}^{n+1} = mathbf {u}^n + dt sum_ {i=0}^{s-1} b_i mathbf {k}_i mathbf {k}_i = L( mathbf {u}i, t^n + dt c_i) mathbf {u}i = mathbf {u}^n + dt sum {j=0}^{i-1} a{ij} mathbf {k}_j,
-
RangeFieldType Dune::GDT::ExplicitRungeKuttaTimeStepper::step(const RangeFieldType dt, const RangeFieldType max_dt) final override¶
No documentation provided.
-
const std::pair<bool, RangeFieldType> Dune::GDT::ExplicitRungeKuttaTimeStepper::find_suitable_dt(const RangeFieldType initial_dt, const RangeFieldType dt_refinement_factor = 2, const RangeFieldType treshold = 0.90000000000000002 * std::numeric_limits<RangeFieldType>::max(), const size_t max_steps_per_dt = 20, const size_t max_refinements = 20)¶
No documentation provided.
-
template<>
Dune::GDT::ExplicitRungeKuttaTimeStepper::ExplicitRungeKuttaTimeStepper<OperatorImp, DiscreteFunctionImp, method>(const OperatorType &op, DiscreteFunctionType &initial_values, const RangeFieldType r = 1., const double t_0 = 0., const int &A = ButcherArrayProviderType::A(), const int &b = ButcherArrayProviderType::b(), const int &c = ButcherArrayProviderType::c())¶ Constructor for RungeKutta time stepper
:param op: Operator L :param initial_values: Discrete function containing initial values for u at time t_0. :param r: Scalar factor (see above, default is 1) :param t_0: Initial time (default is 0) :param A: Coefficient matrix (only provide if you use ExplicitRungeKuttaMethods::other) :param b: Coefficient vector (only provide if you use ExplicitRungeKuttaMethods::other) :param c: Coefficients for time steps (only provide if you use ExplicitRungeKuttaMethods::other)
-
template<>
Dune::GDT::ExplicitRungeKuttaTimeStepper::ExplicitRungeKuttaTimeStepper<OperatorImp, DiscreteFunctionImp, method>(const OperatorType &op, DiscreteFunctionType &initial_values, const RangeFieldType r, const double t_0, const RangeFieldType)¶ Constructor ignoring the tol argument for compatibility with AdaptiveRungeKuttaTimeStepper
-
const OperatorType &Dune::GDT::ExplicitRungeKuttaTimeStepper::op_¶
No documentation provided.
-
const RangeFieldType Dune::GDT::ExplicitRungeKuttaTimeStepper::r_¶
No documentation provided.
-
int Dune::GDT::ExplicitRungeKuttaTimeStepper::u_i_¶
No documentation provided.
-
const int Dune::GDT::ExplicitRungeKuttaTimeStepper::A_¶
No documentation provided.
-
const int Dune::GDT::ExplicitRungeKuttaTimeStepper::b_¶
No documentation provided.
-
const int Dune::GDT::ExplicitRungeKuttaTimeStepper::c_¶
No documentation provided.
-
int Dune::GDT::ExplicitRungeKuttaTimeStepper::stages_k_¶
No documentation provided.
-
const size_t Dune::GDT::ExplicitRungeKuttaTimeStepper::num_stages_¶
No documentation provided.
-
type Dune::GDT::ExplicitRungeKuttaTimeStepper::BaseType¶
No documentation provided.
-
type Dune::GDT::ExplicitRungeKuttaTimeStepper::ButcherArrayProviderType¶
No documentation provided.
-
type Dune::GDT::ExplicitRungeKuttaTimeStepper::OperatorType¶
No documentation provided.