Class ode_step (o2scl)¶
-
template<class vec_y_t = boost::numeric::ublas::vector<double>, class vec_dydx_t = vec_y_t, class vec_yerr_t = vec_y_t, class func_t = ode_funct, class fp_t = double>
class ode_step¶ ODE stepper base [abstract base].
Subclassed by o2scl::ode_rkck_gsl< boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< double >, ode_funct, double >, o2scl::ode_rkck_gsl< boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< double >, boost::numeric::ublas::vector< double >, ode_funct<>, double >, o2scl::ode_rkck_gsl< ubvector, ubvector, ubvector, ode_funct<>, double >, o2scl::ode_rkck_gsl< vector< double >, vector< double >, vector< double >, ode_funct, double >, o2scl::ode_rkck_gsl< solve_grid_mat_row, solve_grid_mat_row, solve_grid_mat_row, ode_funct_solve_grid, double >, o2scl::ode_rkck_gsl< std::vector< double >, std::vector< double >, std::vector< double >, ode_funct2, double >, o2scl::ode_boost< step_t, vec_y_t, vec_dydx_t, vec_yerr_t, func_t, fp_t >, o2scl::ode_rk8pd_gsl< vec_y_t, vec_dydx_t, vec_yerr_t, func_t, fp_t >, o2scl::ode_rkck_gsl< vec_y_t, vec_dydx_t, vec_yerr_t, func_t, fp_t >, o2scl::ode_rkf45_gsl< vec_y_t, vec_dydx_t, vec_yerr_t, func_t, fp_t >
Public Functions
-
inline ode_step()¶
-
inline virtual ~ode_step()¶
-
inline virtual int get_order()¶
Return the order of the ODE stepper.
This is used, for example, by astep_gsl to adaptively adjust the stepsize.
-
virtual int step(fp_t x, fp_t h, size_t n, vec_y_t &y, vec_dydx_t &dydx, vec_y_t &yout, vec_yerr_t &yerr, vec_dydx_t &dydx_out, func_t &derivs) = 0¶
Perform an integration step.
Given initial value of the n-dimensional function in
y
and the derivative indydx
(which must generally be computed beforehand) at the pointx
, take a step of sizeh
giving the result inyout
, the uncertainty at \( x+h \) inyerr
, and the new derivative at \( x+h \) indydx_out
using functionderivs
to calculate derivatives. Implementations which do not calculateyerr
and/ordydx_out
do not reference these variables so that a blankvec_t
can be given. All of the current implementations allowyout=y
anddydx_out=dydx
if necessary
Protected Attributes
-
int order¶
The order of the ODE stepper.
-
inline ode_step()¶