gsl_astep::gsl_ode_control Struct Reference

#include <gsl_astep.h>


Detailed Description

template<class param_t, class func_t = ode_funct<param_t>, class vec_t = ovector_view, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
struct gsl_astep< param_t, func_t, vec_t, alloc_vec_t, alloc_t >::gsl_ode_control

Control structure for gsl_astep [public typedef].

This next section is taken directly from the GSL manual:

The standard control object is a four parameter heuristic based on absolute and relative errors eps_abs and eps_rel, and scaling factors a_y and a_dydt for the system state y(t) and derivatives y'(t) respectively.

The step-size adjustment procedure for this method begins by computing the desired error level D_i for each component,

D_i = eps_abs + eps_rel * (a_y |y_i| + a_dydt h |y'_i|)

and comparing it with the observed error E_i = |yerr_i|. If the observed error E exceeds the desired error level D by more than 10% for any component then the method reduces the step-size by an appropriate factor,

h_new = h_old * S * (E/D)^(-1/q)

where q is the consistency order of the method (e.g. q=4 for 4(5) embedded RK), and S is a safety factor of 0.9. The ratio E/D is taken to be the maximum of the ratios E_i/D_i.

If the observed error E is less than 50% of the desired error level D for the maximum ratio E_i/D_i then the algorithm takes the opportunity to increase the step-size to bring the error in line with the desired level,

h_new = h_old * S * (E/D)^(-1/(q+1))

This encompasses all the standard error scaling methods. To avoid uncontrolled changes in the stepsize, the overall scaling factor is limited to the range 1/5 to 5.

Definition at line 280 of file gsl_astep.h.


Data Fields

double eps_abs
 Absolute precision.
double eps_rel
 Relative precision.
double a_y
 Function scaling factor.
double a_dydt
 Derivative scaling factor.
bool standard
 Use standard or scaled algorithm.

The documentation for this struct 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