Class MidpointStateInterpolator

All Implemented Interfaces:
Serializable, ODEStateInterpolator

public class MidpointStateInterpolator extends RungeKuttaStateInterpolator
This class implements a step interpolator for second order Runge-Kutta integrator.

This interpolator computes 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 [(1 - θ) y'1 + θ y'2]
  • Using reference point at step end:
    y(tn + θ h) = y (tn + h) + (1-θ) h [θ y'1 - (1+θ) y'2]

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

See Also:
  • Constructor Details Link icon

    • MidpointStateInterpolator Link icon

      public MidpointStateInterpolator(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 Details Link icon

    • create Link icon

      protected MidpointStateInterpolator create(boolean newForward, double[][] newYDotK, ODEStateAndDerivative newGlobalPreviousState, ODEStateAndDerivative newGlobalCurrentState, ODEStateAndDerivative newSoftPreviousState, ODEStateAndDerivative newSoftCurrentState, EquationsMapper newMapper)
      Create a new instance.
      Specified by:
      create in class RungeKuttaStateInterpolator
      Parameters:
      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
    • computeInterpolatedStateAndDerivatives Link icon

      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