adapt_step Class Template Reference

Adaptive stepper [abstract base]. More...

#include <adapt_step.h>

Inheritance diagram for adapt_step:

gsl_astep nonadapt_step

Detailed Description

template<class param_t, class func_t = ode_funct<param_t>, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
class adapt_step< param_t, func_t, vec_t, alloc_vec_t, alloc_t >

Adaptive stepper [abstract base].

The adaptive stepper routines are based on several applications of ordinary ODE steppers (implemented in odestep). Each adaptive stepper (gsl_astep or nonadapt_step) can be used with any of the ODE stepper classes (e.g. gsl_rkck). By default, gsl_rkck is used. To modify the ODE stepper which is used, use the member function set_step() documented below.

Note:
If you use gsl_rkck_fast or gsl_rk8pd_fast, you'll need to make sure that the argument n to astep() or astep_derivs() below matches the template size parameter given in the ODE stepper.

Definition at line 52 of file adapt_step.h.


Public Member Functions

virtual int astep (double &x, double &h, double xmax, size_t n, vec_t &y, vec_t &dydx_out, vec_t &yerr, param_t &pa, func_t &derivs)=0
 Make an adaptive integration step of the system derivs.
virtual int astep_derivs (double &x, double &h, double xmax, size_t n, vec_t &y, vec_t &dydx, vec_t &yerr, param_t &pa, func_t &derivs)=0
 Make an adaptive integration step of the system derivs with derivatives.
int set_step (odestep< param_t, func_t, vec_t > &step)
 Set stepper.

Data Fields

int verbose
 Set output level.
gsl_rkck< param_t, func_t,
vec_t, alloc_vec_t, alloc_t > 
def_step
 The default stepper.

Protected Attributes

odestep< param_t, func_t, vec_t > * stepp
 Pointer to the stepper being used.

Member Function Documentation

virtual int astep ( double &  x,
double &  h,
double  xmax,
size_t  n,
vec_t &  y,
vec_t &  dydx_out,
vec_t &  yerr,
param_t &  pa,
func_t &  derivs 
) [pure virtual]

Make an adaptive integration step of the system derivs.

This attempts to take a step of size h from the point x of an n-dimensional system derivs starting with y. On exit, x and y contain the new values at the end of the step, h contains the size of the step, dydx_out contains the derivative at the end of the step, and yerr contains the estimated error at the end of the step.

Implemented in gsl_astep, and nonadapt_step.

virtual int astep_derivs ( double &  x,
double &  h,
double  xmax,
size_t  n,
vec_t &  y,
vec_t &  dydx,
vec_t &  yerr,
param_t &  pa,
func_t &  derivs 
) [pure virtual]

Make an adaptive integration step of the system derivs with derivatives.

This attempts to take a step of size h from the point x of an n-dimensional system derivs starting with y and given the initial derivatives dydx. On exit, x, y and dydx contain the new values at the end of the step, h contains the size of the step, dydx contains the derivative at the end of the step, and yerr contains the estimated error at the end of the step.

Implemented in gsl_astep, and nonadapt_step.

int set_step ( odestep< param_t, func_t, vec_t > &  step  )  [inline]

Set stepper.

This sets the stepper for use in the adaptive step routine. If no stepper is specified, then the default (gsl_rkck) is used.

Definition at line 106 of file adapt_step.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page