Class ClassicalRungeKuttaStepInterpolator

All Implemented Interfaces:
Externalizable, Serializable, StepInterpolator

class ClassicalRungeKuttaStepInterpolator extends RungeKuttaStepInterpolator
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:
1.2
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serializable version identifier.
      See Also:
  • Constructor Details

    • ClassicalRungeKuttaStepInterpolator

      public ClassicalRungeKuttaStepInterpolator()
      Simple constructor. This constructor builds an instance that is not usable yet, the RungeKuttaStepInterpolator.reinitialize(AbstractIntegrator, double[], double[][], boolean, EquationsMapper, EquationsMapper[]) method should be called before using the instance in order to initialize the internal arrays. This constructor is used only in order to delay the initialization in some cases. The RungeKuttaIntegrator class uses the prototyping design pattern to create the step interpolators by cloning an uninitialized model and latter initializing the copy.
    • ClassicalRungeKuttaStepInterpolator

      ClassicalRungeKuttaStepInterpolator(ClassicalRungeKuttaStepInterpolator interpolator)
      Copy constructor.
      Parameters:
      interpolator - interpolator to copy from. The copy is a deep copy: its arrays are separated from the original arrays of the instance
  • Method Details

    • doCopy

      protected StepInterpolator doCopy()
      Really copy the finalized instance.

      This method is called by AbstractStepInterpolator.copy() after the step has been finalized. It must perform a deep copy to have an new instance completely independent for the original instance.

      Specified by:
      doCopy in class AbstractStepInterpolator
      Returns:
      a copy of the finalized instance
    • computeInterpolatedStateAndDerivatives

      protected void computeInterpolatedStateAndDerivatives(double theta, 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 AbstractStepInterpolator
      Parameters:
      theta - normalized interpolation abscissa within the step (theta is zero at the previous time step and one at the current time step)
      oneMinusThetaH - time gap between the interpolated time and the current time