Class ClassicalRungeKuttaFieldStateInterpolator<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.ode.sampling.AbstractFieldODEStateInterpolator<T>
org.hipparchus.ode.nonstiff.interpolators.RungeKuttaFieldStateInterpolator<T>
org.hipparchus.ode.nonstiff.interpolators.ClassicalRungeKuttaFieldStateInterpolator<T>
- Type Parameters:
 T- the type of the field elements
- All Implemented Interfaces:
 FieldODEStateInterpolator<T>
public class ClassicalRungeKuttaFieldStateInterpolator<T extends CalculusFieldElement<T>>
extends RungeKuttaFieldStateInterpolator<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.
- See Also:
 
- 
Constructor Summary
ConstructorsConstructorDescriptionClassicalRungeKuttaFieldStateInterpolator(Field<T> field, boolean forward, T[][] yDotK, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldODEStateAndDerivative<T> softPreviousState, FieldODEStateAndDerivative<T> softCurrentState, FieldEquationsMapper<T> mapper) Simple constructor. - 
Method Summary
Modifier and TypeMethodDescriptionprotected FieldODEStateAndDerivative<T> computeInterpolatedStateAndDerivatives(FieldEquationsMapper<T> mapper, T time, T theta, T thetaH, T oneMinusThetaH) Compute the state and derivatives at the interpolated time.protected ClassicalRungeKuttaFieldStateInterpolator<T> create(Field<T> newField, boolean newForward, T[][] newYDotK, FieldODEStateAndDerivative<T> newGlobalPreviousState, FieldODEStateAndDerivative<T> newGlobalCurrentState, FieldODEStateAndDerivative<T> newSoftPreviousState, FieldODEStateAndDerivative<T> newSoftCurrentState, FieldEquationsMapper<T> newMapper) Create a new instance.Methods inherited from class org.hipparchus.ode.nonstiff.interpolators.RungeKuttaFieldStateInterpolator
create, currentStateLinearCombination, derivativeLinearCombination, previousStateLinearCombinationMethods inherited from class org.hipparchus.ode.sampling.AbstractFieldODEStateInterpolator
getCurrentState, getGlobalCurrentState, getGlobalPreviousState, getInterpolatedState, getMapper, getPreviousState, isCurrentStateInterpolated, isForward, isPreviousStateInterpolated, restrictStep 
- 
Constructor Details
- 
ClassicalRungeKuttaFieldStateInterpolator
public ClassicalRungeKuttaFieldStateInterpolator(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 belongforward- integration direction indicatoryDotK- slopes at the intermediate pointsglobalPreviousState- start of the global stepglobalCurrentState- end of the global stepsoftPreviousState- start of the restricted stepsoftCurrentState- end of the restricted stepmapper- equations mapper for the all equations
 
 - 
 - 
Method Details
- 
create
protected ClassicalRungeKuttaFieldStateInterpolator<T> create(Field<T> newField, boolean newForward, T[][] newYDotK, FieldODEStateAndDerivative<T> newGlobalPreviousState, FieldODEStateAndDerivative<T> newGlobalCurrentState, FieldODEStateAndDerivative<T> newSoftPreviousState, FieldODEStateAndDerivative<T> newSoftCurrentState, FieldEquationsMapper<T> newMapper) Create a new instance.- Specified by:
 createin classRungeKuttaFieldStateInterpolator<T extends CalculusFieldElement<T>>- Parameters:
 newField- field to which the time and state vector elements belongnewForward- integration direction indicatornewYDotK- slopes at the intermediate pointsnewGlobalPreviousState- start of the global stepnewGlobalCurrentState- end of the global stepnewSoftPreviousState- start of the restricted stepnewSoftCurrentState- end of the restricted stepnewMapper- equations mapper for the all equations- Returns:
 - a new instance
 
 - 
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:
 computeInterpolatedStateAndDerivativesin classAbstractFieldODEStateInterpolator<T extends CalculusFieldElement<T>>- Parameters:
 mapper- mapper for ODE equations primary and secondary componentstime- interpolation timetheta- 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 timeoneMinusThetaH- time gap between the interpolated time and the current time- Returns:
 - interpolated state and derivatives
 
 
 -