* - Embedded explicit methods (see EmbeddedExplicitRungeKutta::initialize):
* - HEUN_EULER (second order)
* - BOGACKI_SHAMPINE (third order)
- * - DOPRI: Dormand-Prince (fifth order; this is the method used by ode45
- * in MATLAB)
+ * - DOPRI (Dormand-Prince method, fifth order; this is the method used by
+ * ode45 in MATLAB)
* - FEHLBERG (fifth order)
- * - CASH_KARP (firth order)
+ * - CASH_KARP (fifth order)
*/
enum runge_kutta_method
{
+ /**
+ * Forward Euler method, first order.
+ */
FORWARD_EULER,
+ /**
+ * Third order Runge-Kutta method.
+ */
RK_THIRD_ORDER,
+ /**
+ * Classical fourth order Runge-Kutta method.
+ */
RK_CLASSIC_FOURTH_ORDER,
+ /**
+ * Backward Euler method, first order.
+ */
BACKWARD_EULER,
+ /**
+ * Implicit midpoint method, second order.
+ */
IMPLICIT_MIDPOINT,
+ /**
+ * Crank-Nicolson method, second order.
+ */
CRANK_NICOLSON,
+ /**
+ * Two stage SDIRK method (short for "singly diagonally implicit
+ * Runge-Kutta"), second order.
+ */
SDIRK_TWO_STAGES,
+ /**
+ * Heun's method (improved Euler's method), second order.
+ */
HEUN_EULER,
+ /**
+ * Bogacki–Shampine method, third-order.
+ */
BOGACKI_SHAMPINE,
+ /**
+ * Dormand-Prince method, fifth order; this is the method used by
+ * ode45 in MATLAB.
+ */
DOPRI,
+ /**
+ * Fehlberg method, fifth order.
+ */
FEHLBERG,
+ /**
+ * Cash–Karp method, fifth order.
+ */
CASH_KARP,
+ /**
+ * Invalid.
+ */
invalid
};
/**
* Reason for exiting evolve_one_time_step when using an embedded method:
- * DELTA_T (the time step is in the valid range), MIN_DELTA_T (the time step
- * was increased to the minimum acceptable time step), MAX_DELTA_T (the time
- * step was reduced to the maximum acceptable time step).
+ * DELTA_T, MIN_DELTA_T, MAX_DELTA_T.
*/
enum embedded_runge_kutta_time_step
{
+ /**
+ * The time step is in the valid range.
+ */
DELTA_T,
+ /**
+ * The time step was increased to the minimum acceptable time step.
+ */
MIN_DELTA_T,
+ /**
+ * The time step was reduced to the maximum acceptable time step.
+ */
MAX_DELTA_T
};