14 c2 = 1.0/5; a21 = 1.0/5;
15 c3 = 3.0/10; a31 = 3.0/40; a32 = 9.0/40;
16 c4 = 3.0/5; a41 = 3.0/10; a42 = -9.0/10; a43 = 6.0/5;
17 c5 = 1.0; a51 = -11.0/54; a52 = 5.0/2; a53 = -70.0/27; a54 = 35.0/27;
18 c6 = 7.0/8; a61 = 1631.0/55296; a62 = 175.0/512; a63 = 575.0/13824; a64 = 44275.0/110592; a65 = 253.0/4096;
19 b1 = 37.0/378; b3 = 250.0/621; b4 = 125.0/594; b6 = 512.0/1771;
20 d1 = 2825.0/27648; d3 = 18575.0/48384; d4 = 13525.0/55296; d5 = 277.0/14336; d6 = 1.0/4;
21 e1 = 19.0/54; e3 = -10.0/27; e4 = 55.0/54;
22 f1 = -3.0/2; f2 = 5.0/2;
26void OdeRKCK::step_ (
double dt) {
64 for (i=0; i<
neq_; i++) {
unsigned long neq_
number of equations in the system of ODEs
std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * sol_
array for the solution, changing over time
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
double * soltemp_
temporary solution vector
Base clase implementing methods for embedded Runge-Kutta error estimation.
double * solemb_
embedded solution array
OdeRKCK(unsigned long neq)
constructs
Provides space for stage slope values, an array of arrays for k values.
double ** k_
stage evaluations