#include <runge_kutta.h>
Public Types | |
enum | Method { RK12, RK23, Fehlberg34, DoPri45, DoPri78 } |
Public Member Functions | |
ExplicitRungeKuttaScheme (const Method method) | |
void | increment (const AbstractIVP< VECTOR > *ivp, const double t_m, const VECTOR &u_m, const double tau, VECTOR &u_mplus1, VECTOR &error_estimate, const double tolerance=1e-2) const |
int | order () const |
Protected Attributes | |
bool | fsal |
Vector< double > | c |
node vector | |
LowerTriangularMatrix< double > | A |
Butcher coefficients. | |
Vector< double > | b |
weight vectors | |
Vector< double > | bhat |
int | p |
consistency |
The following class models an s-stage explicit (embedded) Runge-Kutta method for the numerical solution of (abstract) nonautonomous initial value problems of the form
u'(t) = F(t, u(t)), u(0) = u_0.
enum MathTL::ExplicitRungeKuttaScheme::Method |
enum type for different builtin RK schemes
References: [DB] Deuflhard/Bornemann, Numerische Mathematik II, de Gruyter [S] B.A.Schmitt, Numerik IIb, Vorlesungsskript
MathTL::ExplicitRungeKuttaScheme< VECTOR >::ExplicitRungeKuttaScheme | ( | const Method | method | ) |
constructor from one of the builtin RK schemes
void MathTL::ExplicitRungeKuttaScheme< VECTOR >::increment | ( | const AbstractIVP< VECTOR > * | ivp, |
const double | t_m, | ||
const VECTOR & | u_m, | ||
const double | tau, | ||
VECTOR & | u_mplus1, | ||
VECTOR & | error_estimate, | ||
const double | tolerance = 1e-2 |
||
) | const [virtual] |
increment function + local error estimation
Implements MathTL::OneStepScheme< VECTOR >.
int MathTL::ExplicitRungeKuttaScheme< VECTOR >::order | ( | ) | const [inline, virtual] |
consistency/convergence order p
Implements MathTL::OneStepScheme< VECTOR >.
bool MathTL::ExplicitRungeKuttaScheme< VECTOR >::fsal [protected] |
"first same as last" flag (i.e., the first f-evaluation in the next time step is the last one of the current step)