Class ThreeEighthesStateInterpolator

  • All Implemented Interfaces:
    Serializable, ODEStateInterpolator

    public class ThreeEighthesStateInterpolator
    extends RungeKuttaStateInterpolator
    This class implements a step interpolator for the 3/8 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/8) [ (8 - 15 θ + 8 θ2) y'1 + 3 * (15 θ - 12 θ2) y'2 + 3 θ y'3 + (-3 θ + 4 θ2) y'4 ]
    • Using reference point at step end:
      y(tn + θ h) = y (tn + h) - (1 - θ) (h/8) [(1 - 7 θ + 8 θ2) y'1 + 3 (1 + θ - 4 θ2) y'2 + 3 (1 + θ) y'3 + (1 + θ + 4 θ2) 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.

    See Also:
    ThreeEighthesIntegrator, Serialized Form
    • Constructor Detail

      • ThreeEighthesStateInterpolator

        public ThreeEighthesStateInterpolator​(boolean forward,
                                              double[][] yDotK,
                                              ODEStateAndDerivative globalPreviousState,
                                              ODEStateAndDerivative globalCurrentState,
                                              ODEStateAndDerivative softPreviousState,
                                              ODEStateAndDerivative softCurrentState,
                                              EquationsMapper mapper)
        Simple constructor.
        Parameters:
        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 ODEStateAndDerivative computeInterpolatedStateAndDerivatives​(EquationsMapper mapper,
                                                                               double time,
                                                                               double theta,
                                                                               double thetaH,
                                                                               double 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 AbstractODEStateInterpolator
        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