scikits-odes-core¶
- class scikits_odes_core.DaeBase(Rfn, **options)[source]¶
The interface which DAE solvers must implement.
- Parameters:
Rfn (function) – residual function
options (mapping) – Additional options for initialization, solver dependent
- init_step(t0, y0, yp0, y_ic0_retn=None, yp_ic0_retn=None)[source]¶
Initializes the solver and allocates memory.
- Parameters:
t0 (number) – initial time
y0 (list/array) – initial condition for y
yp0 (list/array) – initial condition for yp
y_ic0 (numpy array) – (optional) returns the calculated consistent initial condition for y
yp_ic0 (numpy array) – (optional) returns the calculated consistent initial condition for y derivated.
- Returns:
old_api is False (namedtuple) – namedtuple with the following attributes
Field
Meaning
flag
An integer flag (StatusEnumXXX)
values
Named tuple with entries t and y and ydot. y will correspond to y_retn value and ydot to yp_retn!
errors
Named tuple with entries t and y and ydot
roots
Named tuple with entries t and y and ydot
tstop
Named tuple with entries t and y and ydot
message
String with message in case of an error
old_api is True (tuple) – tuple with the following elements in order
Field
Meaning
flag
status of the computation (successful or error occurred)
t_out
time, where the solver stopped (when no error occurred, t_out == t)
- set_options(**options)[source]¶
Set specific options for the solver.
Calling set_options a second time, normally resets the solver.
- solve(tspan, y0, yp0)[source]¶
Runs the solver.
- Parameters:
tspan (list/array) – A list of times at which the computed value will be returned. Must contain the start time as first entry.
y0 (list/array) – List of initial values
yp0 (list/array) – List of initial values of derivatives
- Returns:
old_api is False (namedtuple) – namedtuple with the following attributes
Field
Meaning
flag
An integer flag (StatusEnumXXX)
values
Named tuple with entries array t and array y and array ydot. y will correspond to y_retn value and ydot to yp_retn!
errors
Named tuple with entries t and y and ydot of error
roots
Named tuple with entries array t and array y and array ydot
tstop
Named tuple with entries array t and array y and array ydot
message
String with message in case of an error
old_api is True (tuple) – tuple with the following elements in order
Field
Meaning
flag
indicating return status of the solver
t
numpy array of times at which the computations were successful
y
numpy array of values corresponding to times t (values of y[i, :] ~ t[i])
yp
numpy array of derivatives corresponding to times t (values of yp[i, :] ~ t[i])
t_err
float or None - if recoverable error occurred (for example reached maximum number of allowed iterations), this is the time at which it happened
y_err
numpy array of values corresponding to time t_err
yp_err
numpy array of derivatives corresponding to time t_err
- step(t, y_retn=None, yp_retn=None)[source]¶
Method for calling successive next step of the IDA solver to allow more precise control over the IDA solver. The ‘init_step’ method has to be called before the ‘step’ method.
A step is done towards time t, and output at t returned. This time can be higher or lower than the previous time. If option ‘one_step_compute’==True, and the solver supports it, only one internal solver step is done in the direction of t starting at the current step.
If old_api=True, the old behavior is used: if t>0.0 then integration is performed until this time and results at this time are returned in y_retn; else if if t<0.0 only one internal step is performed towards time abs(t) and results after this one time step are returned.
- Parameters:
t (number)
y_retn (numpy array (ndim = 1) or None.) – (Needs to be preallocated) If not None, will be filled with y at time t. If None y_retn is not used.
yp_retn (numpy array (ndim = 1) or None.) – (Needs to be preallocated) If not None, will be filled with derivatives of y at time t. If None yp_retn is not used.
- Returns:
old_api is False (namedtuple) – namedtuple with the following attributes
Field
Meaning
flag
An integer flag (StatusEnumXXX)
values
Named tuple with entries t and y and ydot. y will correspond to y_retn value and ydot to yp_retn!
errors
Named tuple with entries t and y and ydot
roots
Named tuple with entries t and y and ydot
tstop
Named tuple with entries t and y and ydot
message
String with message in case of an error
old_api is True (tuple) – tuple with the following elements in order
Field
Meaning
flag
status of the computation (successful or error occurred)
t_out
time, where the solver stopped (when no error occurred, t_out == t)
- class scikits_odes_core.OdeBase(Rfn, **options)[source]¶
The interface which ODE solvers must implement.
- Parameters:
Rfn (function) – A function which computes the required derivatives. The signature should be
func(t, y, y_dot, *args, **kwargs)
. Note that*args
and**kwargs
handling are solver dependent.options (mapping) – Additional options for initialization, solver dependent
- init_step(t0, y0)[source]¶
Initializes the solver and allocates memory.
- Parameters:
t0 (number) – initial time
y0 (array) – initial condition for y (can be list or numpy array)
- Returns:
old_api is False (namedtuple) – namedtuple with the following attributes
Field
Meaning
flag
An integer flag (StatusEnum)
values
Named tuple with entries t and y
errors
Named tuple with entries t and y
roots
Named tuple with entries t and y
tstop
Named tuple with entries t and y
message
String with message in case of an error
old_api is True (tuple) – tuple with the following elements in order
Field
Meaning
flag
boolean status of the computation (successful or error occurred)
t_out
initial time
- set_options(**options)[source]¶
Set specific options for the solver.
Calling set_options a second time, normally resets the solver.
- solve(tspan, y0)[source]¶
Runs the solver.
- Parameters:
tspan (array (or similar)) – a list of times at which the computed value will be returned. Must contain the start time as first entry.
y0 (array (or similar)) – a list of initial values
- Returns:
old_api is False (namedtuple) – namedtuple with the following attributes
Field
Meaning
flag
An integer flag (StatusEnum)
values
Named tuple with entries t and y
errors
Named tuple with entries t and y
roots
Named tuple with entries t and y
tstop
Named tuple with entries t and y
message
String with message in case of an error
old_api is True (tuple) – tuple with the following elements in order
Field
Meaning
flag
indicating return status of the solver
t
numpy array of times at which the computations were successful
y
numpy array of values corresponding to times t (values of y[i, :] ~ t[i])
t_err
float or None - if recoverable error occurred (for example reached maximum number of allowed iterations), this is the time at which it happened
y_err
numpy array of values corresponding to time t_err
- step(t, y_retn=None)[source]¶
Method for calling successive next step of the ODE solver to allow more precise control over the solver. The ‘init_step’ method has to be called before the ‘step’ method.
A step is done towards time t, and output at t returned. This time can be higher or lower than the previous time. If option ‘one_step_compute’==True, and the solver supports it, only one internal solver step is done in the direction of t starting at the current step.
If old_api=True, the old behavior is used: if t>0.0 then integration is performed until this time and results at this time are returned in y_retn if t<0.0 only one internal step is performed towards time abs(t) and results after this one time step are returned
- Parameters:
t (number)
y_retn (numpy vector (ndim = 1)) – in which the computed value will be stored (needs to be preallocated). If None y_retn is not used.
- Returns:
old_api is False (namedtuple) – namedtuple with the following attributes
Field
Meaning
flag
An integer flag (StatusEnum)
values
Named tuple with entries t and y
errors
Named tuple with entries t and y
roots
Named tuple with entries t and y
tstop
Named tuple with entries t and y
message
String with message in case of an error
old_api is True (tuple) – tuple with the following elements in order
Field
Meaning
flag
status of the computation (successful or error occurred)
t_out
time, where the solver stopped (when no error occurred, t_out == t)