Public Member Functions | Protected Attributes | List of all members
o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t > Class Template Reference

An non-adaptive stepper implementation of astep_base. More...

#include <astep_nonadapt.h>

Inheritance diagram for o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >:
o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >

Public Member Functions

virtual int astep (double &x, double xlimit, double &h, size_t n, vec_y_t &y, vec_dydx_t &dydx_out, vec_yerr_t &yerr, func_t &derivs)
 Make an adaptive integration step of the system derivs. More...
 
virtual int astep_derivs (double &x, double xlimit, double &h, size_t n, vec_y_t &y, vec_dydx_t &dydx, vec_yerr_t &yerr, func_t &derivs)
 Make an adaptive integration step of the system derivs with derivatives. More...
 
virtual int astep_full (double x, double xlimit, double &x_out, double &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)
 Make an adaptive integration step of the system derivs. More...
 
- Public Member Functions inherited from o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >
int set_step (ode_step< vec_y_t, vec_dydx_t, vec_yerr_t, func_t > &step)
 Set stepper. More...
 

Protected Attributes

size_t msize
 The allocated vector size.
 
vec_dydx_t dydx_int
 Internal storage for dydx. More...
 
- Protected Attributes inherited from o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >
ode_step< vec_y_t, vec_dydx_t, vec_yerr_t, func_t > * stepp
 Pointer to the stepper being used.
 

Additional Inherited Members

- Public Attributes inherited from o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >
int verbose
 Set output level.
 
ode_rkck_gsl< vec_y_t, vec_dydx_t, vec_yerr_t, func_t > def_step
 The default stepper.
 

Detailed Description

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_funct11>
class o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >

This class simply calls the specified ODE stepper without any attempt to modify the size of the step. It is primarily useful to allow for simple comparisons between adaptive and non-adaptive solution or to proceed with a solution in places where an adaptive stepper is failing.

To modify the ODE stepper which is used, use the function astep_base::set_step().

Definition at line 55 of file astep_nonadapt.h.

Member Function Documentation

◆ astep()

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_funct11>
virtual int o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >::astep ( double &  x,
double  xlimit,
double &  h,
size_t  n,
vec_y_t &  y,
vec_dydx_t &  dydx_out,
vec_yerr_t &  yerr,
func_t &  derivs 
)
inlinevirtual

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.

If the base stepper returns a non-zero value, that value is passed on as the return value of astep(), though the input y may still have been modified by the base stepper.

Implements o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >.

Definition at line 103 of file astep_nonadapt.h.

◆ astep_derivs()

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_funct11>
virtual int o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >::astep_derivs ( double &  x,
double  xlimit,
double &  h,
size_t  n,
vec_y_t &  y,
vec_dydx_t &  dydx,
vec_yerr_t &  yerr,
func_t &  derivs 
)
inlinevirtual

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.

If the base stepper returns a non-zero value, that value is passed on as the return value of astep(), though the inputs y and dydx may still have been modified by the base stepper.

Implements o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >.

Definition at line 139 of file astep_nonadapt.h.

◆ astep_full()

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_funct11>
virtual int o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >::astep_full ( double  x,
double  xlimit,
double &  x_out,
double &  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 
)
inlinevirtual

This function performs an adaptive integration step with the n-dimensional system derivs and parameter pa. It Begins at x with initial stepsize h, ensuring that the step goes no farther than xlimit. At the end of the step, the size of the step taken is h and the new value of x is in x_out. Initially, the function values and derivatives should be specified in y and dydx. The function values, derivatives, and the error at the end of the step are given in yout, yerr, and dydx_out. Unlike in ode_step objects, the objects y, yout, dydx, and dydx_out must all be distinct.

If the base stepper returns a non-zero value, that value is passed on as the return value of astep(), though the output parameters may still have been modified by the base stepper.

Implements o2scl::astep_base< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >.

Definition at line 174 of file astep_nonadapt.h.

Member Data Documentation

◆ dydx_int

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_funct11>
vec_dydx_t o2scl::astep_nonadapt< vec_y_t, vec_dydx_t, vec_yerr_t, func_t >::dydx_int
protected

Definition at line 72 of file astep_nonadapt.h.


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

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).