The ERK class for all the ERK methods available to the user. It inherits FLINT_class.
More...
|
procedure, public | init erk_init |
|
procedure, public | integrate erk_int |
|
procedure, public | interpolate erk_interp |
|
procedure, public | info erk_info |
|
final | erk_destroy erk_destroy |
| destructor
|
|
procedure(init), deferred | init (me, de, maxsteps, method, atol, rtol, interpon, interpstates, minstepsize, maxstepsize, stepszparams, eventson, eventstepsz, eventoptions, eventtol) |
| Init is called once and only to specify new differential equaions, events, and a few integrator options.
|
|
procedure(integrate), deferred | integrate (me, x0, y0, xf, yf, stepsz, useconststepsz, stepadvance, intstepson, xint, yint, eventmask, eventstates, stifftest, params) |
| Integrate the solution from the initial to final value of the independent variable.
|
|
procedure(interpolate), deferred | interpolate (me, xarr, yarr, saveinterpcoeffs) |
| If interpolation is enabled, then it outputs the solution at the user-specified grid points.
|
|
procedure(info), deferred | info (me, laststatus, statusmsg, nsteps, naccept, nreject, nfcalls, interpready, h0, x0, y0, hf, xf, yf) |
| Current FLINT object query function.
|
|
|
integer(kind(erk_dop853)), public | method = ERK_DOP853 |
| Type of ERK method to use for integration, DOP853 by default.
|
|
integer | p = DOP853_p |
|
integer | phat = DOP853_phat |
|
integer | q = DOP853_q |
|
integer | pstar = DOP853_pstar |
|
integer | s |
| Total number of stages.
|
|
integer | sint |
| Number of Integration stages (including the FSAL stage)
|
|
real(wp), dimension(:, :), allocatable | k |
|
integer, dimension(1:erk_maxstages+1) | dinz |
| Stages that gets multiplied by non-zero dij, in other words the stages specified by dinz are the ones that contribute to the interpolating polynomial coefficients. Specify the stages in dinz and terminate the list by -1.
|
|
real(wp), dimension(1:erk_maxstages, 1:erk_maxipdegree) | d |
| d_ij coefficients for interpolation
|
|
logical | isfsalmethod |
| If true then the last stage is reused as the first for the new step.
|
|
integer(kind(flint_success)), public | status = FLINT_SUCCESS |
| Status of the last operation completed.
|
|
class(diffeqsys), pointer, public | pdiffeqsys => null() |
| Pointer to the user-supplied Differential Equation object.
|
|
logical | isscalartol = .TRUE. |
| Tolerance related constants: rtol and atol Dimension can be either 1 or n (dimension of the initial condition vector). These are used to compute the scale factor (SC) needed for error computations using the following formula:
|
|
real(wp), dimension(:), allocatable | rtol |
|
real(wp), dimension(:), allocatable | atol |
|
integer | totalsteps = 0 |
| Total number of integrator steps.
|
|
integer | acceptedsteps = 0 |
| Number of accepted integrator steps.
|
|
integer | rejectedsteps = 0 |
| Number of rejected integrator steps.
|
|
integer | fcalls = 0 |
| Total number of Diff Eq. function calls made.
|
|
integer | maxsteps = INT_MAXSTEPS |
| Maximum number of steps integrator is allowed to take.
|
|
logical | interpon = .FALSE. |
| True for dense output.
|
|
integer, dimension(:), allocatable | interpstates |
| States between 1 and n for dense output.
|
|
real(wp), dimension(:), allocatable | xint |
| Array of the natural integrator steps.
|
|
real(wp), dimension(:,:,:), allocatable | bip |
| Array to store interpolation coefficients at integrator steps.
|
|
real(wp) | minstepsize |
| Minimum step size of the integrator. It is always a positive number. Default value is used if user do not specifify it.
|
|
real(wp) | maxstepsize |
| Maximum step-size of the integrator. It is always a positive number. Default value is the difference between the initial and final value of the independent variable.
|
|
real(wp) | initialstepsize |
| Initial step size.
|
|
real(wp), dimension(6) | stepszparams |
| Step size method-specific tuning parameters.
|
|
logical | eventson = .FALSE. |
| Events checking off by default.
|
|
real(wp), dimension(:), allocatable | eventstepsz |
| This specifies the maximum time after which the event function must be called for each event detection. A 0 value in EventStepSz means that event will be checked after the integrator takes a natural step always. Otherwise, events will be checked after the interval specified by EventStepSz if that interval size is smaller than the length of the current step size. In case it is bigger, then event will be checked at the integrator's natural step boundary. Setting is for each event spearately.
|
|
integer, dimension(:), allocatable | eventoptions |
| Event options for each event separately. Must be initialized by the Init Function. Specifies what event related info to return to the user.
|
|
real(wp), dimension(:), allocatable | etol |
| Event tolerance value for each event in case of root-finding is used for event loation.
|
|
real(wp) | x0 |
| Initial value of the independent variable.
|
|
real(wp) | xf |
| Final value of the independent variable.
|
|
real(wp) | h0 |
| Initial step-size that was accepted.
|
|
real(wp) | hf |
| The accepted step-size that was used at the last step.
|
|
real(wp), dimension(:), allocatable | y0 |
| Initial condition.
|
|
real(wp), dimension(:), allocatable | yf |
| Final solution.
|
|
The ERK class for all the ERK methods available to the user. It inherits FLINT_class.
Definition at line 72 of file ERK.f90.