This integrator is an embedded Runge-Kutta integrator of order 5(4) used in local extrapolation mode (i.e. the solution is computed using the high order formula) with stepsize control (and automatic step initialization) and continuous output. This method uses 7 functions evaluations per step. However, since this is an fsal, the last evaluation of one step is the same as the first evaluation of the next step and hence can be avoided. So the cost is really 6 functions evaluations per step.
This method has been published (whithout the continuous output that was added by Shampine in 1986) in the following article :
A family of embedded Runge-Kutta formulae J. R. Dormand and P. J. Prince Journal of Computational and Applied Mathematics volume 6, no 1, 1980, pp. 19-26
| Modifier and Type | Field and Description |
|---|---|
| private final T | e1
Error array, element 1. |
| private final T | e3
Error array, element 3. |
| private final T | e4
Error array, element 4. |
| private final T | e5
Error array, element 5. |
| private final T | e6
Error array, element 6. |
| private final T | e7
Error array, element 7. |
| private static final String | METHOD_NAME
Integrator method name. |
| Access | Constructor and Description |
|---|---|
| public | DormandPrince54FieldIntegrator(final Field<T>
field to which the time and state vector elements belong field, final double minimal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than this minStep, final double maximal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than this maxStep, final double allowed absolute error scalAbsoluteTolerance, final double allowed relative error scalRelativeTolerance)Simple constructor. |
| public | DormandPrince54FieldIntegrator(final Field<T>
field to which the time and state vector elements belong field, final double minimal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than this minStep, final double maximal step (sign is irrelevant, regardless of
integration direction, forward or backward), the last step can
be smaller than this maxStep, final double[] allowed absolute error vecAbsoluteTolerance, final double[] allowed relative error vecRelativeTolerance)Simple constructor. |
| Modifier and Type | Method and Description |
|---|---|
| protected DormandPrince54FieldStepInterpolator | createInterpolator(final boolean
integration direction indicator forward, T[][] slopes at the intermediate points yDotK, final FieldODEStateAndDerivative<T> start of the global step globalPreviousState, final FieldODEStateAndDerivative<T> end of the global step globalCurrentState, final FieldEquationsMapper<T> equations mapper for the all equations mapper)Implements abstract org. Create an interpolator. |
| protected T | estimateError(final T[][]
derivatives computed during the first stages yDotK, final T[] estimate of the step at the start of the step y0, final T[] estimate of the step at the end of the step y1, final T current step h)Implements abstract org. Compute the error ratio. |
| public T[][] | getA()
Implements org. Get the internal weights from Butcher array (without the first empty row). |
| public T[] | getB()
Implements org. Get the external weights for the high order method from Butcher array. |
| public T[] | getC()
Implements org. Get the time steps from Butcher array (without the first zero). |
| public int | getOrder()
Implements abstract org. Get the order of the method. |
| e1 | back to summary |
|---|---|
| private final T e1 Error array, element 1. | |
| e3 | back to summary |
|---|---|
| private final T e3 Error array, element 3. | |
| e4 | back to summary |
|---|---|
| private final T e4 Error array, element 4. | |
| e5 | back to summary |
|---|---|
| private final T e5 Error array, element 5. | |
| e6 | back to summary |
|---|---|
| private final T e6 Error array, element 6. | |
| e7 | back to summary |
|---|---|
| private final T e7 Error array, element 7. | |
| METHOD_NAME | back to summary |
|---|---|
| private static final String METHOD_NAME Integrator method name. | |
| DormandPrince54FieldIntegrator | back to summary |
|---|---|
| public DormandPrince54FieldIntegrator(final Field<T> field, final double minStep, final double maxStep, final double scalAbsoluteTolerance, final double scalRelativeTolerance) Simple constructor. Build a fifth order Dormand-Prince integrator with the given step bounds
| |
| DormandPrince54FieldIntegrator | back to summary |
|---|---|
| public DormandPrince54FieldIntegrator(final Field<T> field, final double minStep, final double maxStep, final double[] vecAbsoluteTolerance, final double[] vecRelativeTolerance) Simple constructor. Build a fifth order Dormand-Prince integrator with the given step bounds
| |
| createInterpolator | back to summary |
|---|---|
| protected DormandPrince54FieldStepInterpolator Implements abstract org. Doc from org. Create an interpolator.
| |
| estimateError | back to summary |
|---|---|
| protected T estimateError(final T[][] yDotK, final T[] y0, final T[] y1, final T h) Implements abstract org. Doc from org. Compute the error ratio.
| |
| getA | back to summary |
|---|---|
| public T[][] getA() Implements org. Doc from org. Get the internal weights from Butcher array (without the first empty row).
| |
| getB | back to summary |
|---|---|
| public T[] getB() Implements org. Doc from org. Get the external weights for the high order method from Butcher array.
| |
| getC | back to summary |
|---|---|
| public T[] getC() Implements org. Doc from org. Get the time steps from Butcher array (without the first zero).
| |
| getOrder | back to summary |
|---|---|
| public int getOrder() Implements abstract org. Doc from org. Get the order of the method.
| |