NAG Toolbox: nag_ode_ivp_stiff_dassl (d02mv)

Purpose

nag_ode_ivp_stiff_dassl (d02mv) is an integration method specific setup function which must be called prior to linear algebra setup functions and integrators from the SPRINT suite of functions, if the DASSL implementation of Backward Differentiation Formulae (BDF) is to be used. Note that this method is also available, independent from the SPRINT suite, using nag_ode_dae_dassl_gen (d02ne)

Description

An integrator setup function must be called before the call to any linear algebra setup function or integrator from the SPRINT suite of functions in this sub-chapter. This setup function, nag_ode_ivp_stiff_dassl (d02mv), makes the choice of the DASSL integrator and permits you to define options appropriate to this choice.
Alternative choices of integrator from this suite are the BDF method and the BLEND method which can be chosen by initial calls to nag_ode_ivp_stiff_bdf (d02nv) or nag_ode_ivp_stiff_blend (d02nw) respectively.

Values to be used to control step size choice during integration. If any con(i) = 0.0coni=0.0 on entry, it is replaced by its default value described below. In most cases this is the recommended setting.

con(1)con1, con(2)con2, and con(3)con3 are factors used to bound step size changes. If the current step size hh fails, then the modulus of the next step size is bounded by con(1) × |h|con1×|h|. The default value of con(1)con1 is 2.02.0. Note that the new step size may be used with a method of different order to the failed step. If the initial step size is hh, then the modulus of the step size on the second step is bounded by con(3) × |h|con3×|h|. At any other stage in the integration, if the current step size is hh, then the modulus of the next step size is bounded by con(2) × |h|con2×|h|. The default values are 10.010.0 for con(2)con2 and 1000.01000.0 for con(3)con3.

Constraints:

These constraints must be satisfied after any zero values have been replaced by default values.

A point beyond which integration must not be attempted. The use of tcrit is described under the parameter itask in the specification for the integrator (e.g., see nag_ode_ivp_stiff_exp_fulljac (d02nb)). A value, 0.00.0 say, must be specified even if itask subsequently specifies that tcrit will not be used.

6:
hmin – double scalar

The minimum absolute step size to be allowed. Set hmin = 0.0hmin=0.0 if this option is not required.

7:
hmax – double scalar

The maximum absolute step size to be allowed. Set hmax = 0.0hmax=0.0 if this option is not required.

8:
h0 – double scalar

The step size to be attempted on the first step. Set h0 = 0.0h0=0.0 if the initial step size is calculated internally.

If vnormvnorm denotes the norm of the vector vv of length nn, then for the averaged L2 norm

vnormB = sqrt(1/n ∑ i = 1n((vi)/(wi))2),

vnormB=1n∑i=1n(viwi)2,

while for the maximum norm

vnorm =

max

|(vi)/(wi)|.

1 ≤ i ≤ n

vnorm=max1≤i≤n|viwi|.

If you wish to weight the maximum norm or the L2 norm, then rtol and atol should be scaled appropriately on input to the integrator (see under itol in the specification of the integrator for the formulation of the weight vector wiwi from rtol and atol, e.g., see nag_ode_ivp_stiff_exp_fulljac (d02nb)).

Only the first character to the actual parameter norm_p is passed to nag_ode_ivp_stiff_dassl (d02mv); hence it is permissible for the actual argument to be more descriptive, e.g., ‘Maximum’, ‘Average L2’ or ‘Default’ in a call to nag_ode_ivp_stiff_dassl (d02mv).

This must be the same workspace array as the array rwork supplied to the integrator. It is used to pass information from the setup function to the integrator and therefore the contents of this array must not be changed before calling the integrator.