Class ClassicalRungeKuttaFieldStepInterpolator<T extends RealFieldElement<T>>

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

    class ClassicalRungeKuttaFieldStepInterpolator<T extends RealFieldElement<T>>
    extends RungeKuttaFieldStepInterpolator<T>
    This class implements a step interpolator for the classical fourth order Runge-Kutta integrator.

    This interpolator allows to compute dense output inside the last step computed. The interpolation equation is consistent with the integration scheme :

    • Using reference point at step start:
      y(tn + θ h) = y (tn) + θ (h/6) [ (6 - 9 θ + 4 θ2) y'1 + ( 6 θ - 4 θ2) (y'2 + y'3) + ( -3 θ + 4 θ2) y'4 ]
    • Using reference point at step end:
      y(tn + θ h) = y (tn + h) + (1 - θ) (h/6) [ (-4 θ^2 + 5 θ - 1) y'1 +(4 θ^2 - 2 θ - 2) (y'2 + y'3) -(4 θ^2 + θ + 1) y'4 ]

    where θ belongs to [0 ; 1] and where y'1 to y'4 are the four evaluations of the derivatives already computed during the step.

    Since:
    3.6
    See Also:
    ClassicalRungeKuttaFieldIntegrator
    • Constructor Detail

      • ClassicalRungeKuttaFieldStepInterpolator

        ClassicalRungeKuttaFieldStepInterpolator​(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 Detail

      • computeInterpolatedStateAndDerivatives

        protected FieldODEStateAndDerivative<T> computeInterpolatedStateAndDerivatives​(FieldEquationsMapper<T> mapper,
                                                                                       T time,
                                                                                       T theta,
                                                                                       T thetaH,
                                                                                       T oneMinusThetaH)
        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