Class GillFieldStepInterpolator<T extends RealFieldElement<T>>

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

    class GillFieldStepInterpolator<T extends RealFieldElement<T>>
    extends RungeKuttaFieldStepInterpolator<T>
    This class implements a step interpolator for the Gill 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) ((1-1/√2) y'2 + (1+1/√2)) y'3) + ( - 3 θ + 4 θ2) y'4 ]
    • Using reference point at step start:
      y(tn + θ h) = y (tn + h) - (1 - θ) (h/6) [ (1 - 5 θ + 4 θ2) y'1 + (2 + 2 θ - 4 θ2) ((1-1/√2) y'2 + (1+1/√2)) 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.

    Since:
    3.6
    See Also:
    GillFieldIntegrator
    • Field Detail

      • one_minus_inv_sqrt_2

        private final T extends RealFieldElement<T> one_minus_inv_sqrt_2
        First Gill coefficient.
      • one_plus_inv_sqrt_2

        private final T extends RealFieldElement<T> one_plus_inv_sqrt_2
        Second Gill coefficient.
    • Constructor Detail

      • GillFieldStepInterpolator

        GillFieldStepInterpolator​(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