Class DormandPrince853FieldStepInterpolator<T extends RealFieldElement<T>>

Type Parameters:
T - the type of the field elements
All Implemented Interfaces:
FieldStepInterpolator<T>

class DormandPrince853FieldStepInterpolator<T extends RealFieldElement<T>> extends RungeKuttaFieldStepInterpolator<T>
This class represents an interpolator over the last step during an ODE integration for the 8(5,3) Dormand-Prince integrator.
Since:
3.6
See Also:
  • Field Details

    • d

      private final T extends RealFieldElement<T>[][] d
      Interpolation weights. (beware that only the non-null values are in the table)
  • Constructor Details

    • DormandPrince853FieldStepInterpolator

      DormandPrince853FieldStepInterpolator(Field<T> field, boolean forward, T[][] yDotK, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldODEStateAndDerivative<T> softPreviousState, FieldODEStateAndDerivative<T> softCurrentState, FieldEquationsMapper<T> mapper)
      Simple constructor.
      Parameters:
      field - field to which the time and state vector elements belong
      forward - integration direction indicator
      yDotK - slopes at the intermediate points
      globalPreviousState - start of the global step
      globalCurrentState - end of the global step
      softPreviousState - start of the restricted step
      softCurrentState - end of the restricted step
      mapper - equations mapper for the all equations
  • Method Details

    • create

      protected DormandPrince853FieldStepInterpolator<T> create(Field<T> newField, boolean newForward, T[][] newYDotK, FieldODEStateAndDerivative<T> newGlobalPreviousState, FieldODEStateAndDerivative<T> newGlobalCurrentState, FieldODEStateAndDerivative<T> newSoftPreviousState, FieldODEStateAndDerivative<T> newSoftCurrentState, FieldEquationsMapper<T> newMapper)
      Create a new instance.
      Specified by:
      create in class RungeKuttaFieldStepInterpolator<T extends RealFieldElement<T>>
      Parameters:
      newField - field to which the time and state vector elements belong
      newForward - integration direction indicator
      newYDotK - slopes at the intermediate points
      newGlobalPreviousState - start of the global step
      newGlobalCurrentState - end of the global step
      newSoftPreviousState - start of the restricted step
      newSoftCurrentState - end of the restricted step
      newMapper - equations mapper for the all equations
      Returns:
      a new instance
    • fraction

      private T fraction(Field<T> field, double p, double q)
      Create a fraction.
      Parameters:
      field - field to which the elements belong
      p - numerator
      q - denominator
      Returns:
      p/q computed in the instance field
    • computeInterpolatedStateAndDerivatives

      protected FieldODEStateAndDerivative<T> computeInterpolatedStateAndDerivatives(FieldEquationsMapper<T> mapper, T time, T theta, T thetaH, T oneMinusThetaH) throws MaxCountExceededException
      Compute the state and derivatives at the interpolated time. This is the main processing method that should be implemented by the derived classes to perform the interpolation.
      Specified by:
      computeInterpolatedStateAndDerivatives in class AbstractFieldStepInterpolator<T extends RealFieldElement<T>>
      Parameters:
      mapper - mapper for ODE equations primary and secondary components
      time - interpolation time
      theta - normalized interpolation abscissa within the step (theta is zero at the previous time step and one at the current time step)
      thetaH - time gap between the previous time and the interpolated time
      oneMinusThetaH - time gap between the interpolated time and the current time
      Returns:
      interpolated state and derivatives
      Throws:
      MaxCountExceededException - if the number of functions evaluations is exceeded