PLUTO
4.4-patch2
|
Integration methods for cooling netowrk ODEs. More...
Functions | |
double | SolveODE_CK45 (double *v0, double *k1, double *v5th, double dt, double tol, intList *vars) |
double | SolveODE_RK4 (double *v0, double *k1, double *v4th, double dt, intList *var_list) |
double | SolveODE_RKF12 (double *v0, double *k1, double *v2nd, double dt, intList *vars) |
double | SolveODE_RKF23 (double *v0, double *k1, double *v3rd, double dt, intList *vars) |
Solve the system of ordinary differential equations describing optically thin cooling and ionization network (if any).
References
double SolveODE_CK45 | ( | double * | v0, |
double * | k1, | ||
double * | v5th, | ||
double | dt, | ||
double | tol, | ||
intList * | vars | ||
) |
Explicit 5th order adaptive step size Cash-Karp integrator. Attempt to integrate the cooling network with a single step if the error is within the given tolerance. Otherwise, reduce the time step and repeat the integration as many times as necessary.
[in] | v_in | initial condition array |
[in] | k_in | right hand side, R(v_in) |
[out] | v5th | final solution array |
[in] | dt | the time step we want to achieve |
[in] | tol | the relative tolerance |
[in] | *vars | the list of dependent variables |
double SolveODE_RK4 | ( | double * | v0, |
double * | k1, | ||
double * | v4th, | ||
double | dt, | ||
intList * | var_list | ||
) |
Solve the system of ODE with a standard RK4 integrator (no adaptive step).
double SolveODE_RKF12 | ( | double * | v0, |
double * | k1, | ||
double * | v2nd, | ||
double | dt, | ||
intList * | vars | ||
) |
Explicit 2nd order integrator with 1st-order embedded solution. Attempt to integrate the cooling network with a single step if the error is within the given tolerance. The error is computed from the difference between 1st and 2nd order solutions.
[in] | v0 | initial condition array |
[in] | k1 | right hand side, R(v0) |
[out] | v2nd | final solution array |
[in] | dt | the time step we want to achieve |
[in] | *vars | the list of dependent variables |
double SolveODE_RKF23 | ( | double * | v0, |
double * | k1, | ||
double * | v3rd, | ||
double | dt, | ||
intList * | vars | ||
) |
Explicit 3rd order integrator with 2nd-order embedded solution. Attempt to integrate the cooling network with a single step if the error is within the given tolerance.
The error is computed from the difference between 1st and 2nd order solutions.
[in] | v0 | initial condition array |
[in] | k1 | right hand side, R(v0) |
[out] | v2nd | final solution array |
[in] | dt | the time step we want to achieve |
[in] | *vars | the list of dependent variables |