naginterfaces.library.ode.dae_dassl_gen¶
- naginterfaces.library.ode.dae_dassl_gen(t, tout, y, ydot, rtol, atol, itask, res, comm, jac=None, data=None)[source]¶
dae_dassl_gen
is a function for integrating stiff systems of implicit ordinary differential equations coupled with algebraic equations.For full information please refer to the NAG Library document for d02ne
https://www.nag.com/numeric/nl/nagdoc_29.3/flhtml/d02/d02nef.html
- Parameters
- tfloat
On initial entry: the initial value of the independent variable, .
- toutfloat
The next value of at which a computed solution is desired.
On initial entry: is used to determine the direction of integration. Integration is permitted in either direction (see also ).
- yfloat, array-like, shape
On initial entry: the vector of initial values of the dependent variables .
- ydotfloat, array-like, shape
On initial entry: must contain approximations to the time derivatives of the vector evaluated at the initial value of the independent variable.
- rtolfloat, array-like, shape
Note: the required length for this argument is determined as follows: if : ; if : ; otherwise: .
The relative local error tolerance.
- atolfloat, array-like, shape
Note: the required length for this argument is determined as follows: if : ; if : ; otherwise: .
The absolute local error tolerance.
- itaskint
On initial entry: need not be set.
- rescallable (r, ires) = res(t, y, ydot, ires, data=None)
must evaluate the residual
- Parameters
- tfloat
, the current value of the independent variable.
- yfloat, ndarray, shape
, for , the current solution component.
- ydotfloat, ndarray, shape
The derivative of the solution at the current point .
- iresint
Is always equal to zero.
- dataarbitrary, optional, modifiable in place
User-communication data for callback functions.
- Returns
- rfloat, array-like, shape
must contain the th component of , for where
- iresint
should normally be left unchanged. However, if an illegal value of is encountered, should be set to ;
dae_dassl_gen
will then attempt to resolve the problem so that illegal values of are not encountered. should be set to if you wish to return control to the calling function; this will causedae_dassl_gen
to exit with = 23.
- commdict, communication object, modified in place
Communication structure.
This argument must have been initialized by a prior call to
dae_dassl_setup()
.- jacNone or callable pd = jac(t, y, ydot, pd, cj, data=None), optional
Note: if this argument is None then a NAG-supplied facility will be used.
Evaluates the matrix of partial derivatives, , where
If this option is not required, the actual argument for must be None. You must indicate to the integrator whether this option is to be used by setting the argument appropriately in a call to the setup function
dae_dassl_setup()
.- Parameters
- tfloat
, the current value of the independent variable.
- yfloat, ndarray, shape
, for , the current solution component.
- ydotfloat, ndarray, shape
The derivative of the solution at the current point .
- pdfloat, ndarray, shape
is preset to zero before the call to .
- cjfloat
is a scalar constant which will be defined in
dae_dassl_gen
.- dataarbitrary, optional, modifiable in place
User-communication data for callback functions.
- Returns
- pdfloat, array-like, shape
If the Jacobian is full then , for , for ; if the Jacobian is banded then , for .
- dataarbitrary, optional
User-communication data for callback functions.
- Returns
- tfloat
On intermediate exit: , the current value of the independent variable.
On final exit: the value of the independent variable at which the computed solution is returned (usually at ).
- yfloat, ndarray, shape
On intermediate exit: the computed solution vector, , evaluated at .
On final exit: the computed solution vector, evaluated at (usually ).
- ydotfloat, ndarray, shape
The time derivatives of the vector at the last integration point.
- rtolfloat, ndarray, shape
remains unchanged unless
dae_dassl_gen
exits with = 16 in which case the values may have been increased to values estimated to be appropriate for continuing the integration.- atolfloat, ndarray, shape
remains unchanged unless
dae_dassl_gen
exits with = 16 in which case the values may have been increased to values estimated to be appropriate for continuing the integration.- itaskint
The task performed by the integrator on successful completion or an indicator that a problem occurred during integration.
The integration to was successfully completed () by stepping exactly to .
The integration to was successfully completed () by stepping past . and are obtained by interpolation.
Different negative values of returned correspond to different failure exits. should always be checked in such cases and the corrective action taken where appropriate.
must remain unchanged between calls to
dae_dassl_gen
.
- Raises
- NagValueError
- (errno )
On entry, .
Constraint: .
- (errno )
On entry, .
Constraint: .
- (errno )
is too close to to start integration: : .
- (errno )
is behind in the direction of : , .
- (errno )
Some element of is less than zero.
- (errno )
Some element of is less than zero.
- (errno )
A previous call to this function returned with and no appropriate action was taken.
- (errno )
Either the initialization function has not been called prior to the first call of this function or a communication array has become corrupted.
- (errno )
Either the initialization function has not been called prior to the first call of this function or a communication array has become corrupted.
- (errno )
[‘com’] array is of insufficient length; length required ; actual length .
- (errno )
All elements of and are zero.
- (errno )
Maximum number of steps taken on this call before reaching : , maximum number of steps .
- (errno )
Too much accuracy requested for precision of machine. and were increased by scale factor . Try running again with these scaled tolerances. , .
- (errno )
A solution component has become zero when a purely relative tolerance (zero absolute tolerance) was selected for that component. , for component .
- (errno )
The error test failed repeatedly with . . Stepsize .
- (errno )
The corrector repeatedly failed to converge with . . Stepsize .
- (errno )
The iteration matrix is singular. . Stepsize .
- (errno )
The corrector could not converge and the error test failed repeatedly. . Stepsize .
- (errno )
was set to during a call to and could not be resolved. . Stepsize .
- (errno )
was set to during a call to . . Stepsize .
- (errno )
The initial could not be computed. . Stepsize .
- (errno )
Repeated occurrences of input constraint violations have been detected. This could result in a potential infinite loop: . Current violation corresponds to exit with .
- Notes
dae_dassl_gen
is a general purpose function for integrating the initial value problem for a stiff system of implicit ordinary differential equations with coupled algebraic equations written in the formdae_dassl_gen
uses the DASSL implementation of the Backward Differentiation Formulae (BDF) of orders one to five to solve a system of the above form for () and (). Values for and at the initial time must be given as input. These values must be consistent, (i.e., if , , are the given initial values, they must satisfy ). The function solves the system from to .A typical calling progrm for
dae_dassl_gen
would involve calling the DASSL implementation of the BDF integrator setup functiondae_dassl_setup()
and the banded matrix setup functiondae_dassl_linalg()
(if required), and, if the integration needs to proceed, callsdae_dassl_cont()
before continuing the integration.