Class NordsieckStepInterpolator
- All Implemented Interfaces:
Externalizable,Serializable,StepInterpolator
This interpolator computes dense output around the current point. The interpolation equation is based on Taylor series formulas.
- Since:
- 2.0
- See Also:
-
Field Summary
FieldsFields inherited from class org.apache.commons.math3.ode.sampling.AbstractStepInterpolator
currentState, h, interpolatedDerivatives, interpolatedPrimaryDerivatives, interpolatedPrimaryState, interpolatedSecondaryDerivatives, interpolatedSecondaryState, interpolatedState, interpolatedTime -
Constructor Summary
ConstructorsConstructorDescriptionSimple constructor.NordsieckStepInterpolator(NordsieckStepInterpolator interpolator) Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcomputeInterpolatedStateAndDerivatives(double theta, double oneMinusThetaH) Compute the state and derivatives at the interpolated time.protected StepInterpolatordoCopy()Really copy the finalized instance.double[]Get the state vector variation from current to interpolated state.voidvoidreinitialize(double[] y, boolean forward, EquationsMapper primaryMapper, EquationsMapper[] secondaryMappers) Reinitialize the instance.voidreinitialize(double time, double stepSize, double[] scaledDerivative, Array2DRowRealMatrix nordsieckVector) Reinitialize the instance.voidrescale(double stepSize) Rescale the instance.voidMethods inherited from class org.apache.commons.math3.ode.sampling.AbstractStepInterpolator
copy, doFinalize, finalizeStep, getCurrentTime, getGlobalCurrentTime, getGlobalPreviousTime, getInterpolatedDerivatives, getInterpolatedSecondaryDerivatives, getInterpolatedSecondaryState, getInterpolatedState, getInterpolatedTime, getPreviousTime, isForward, readBaseExternal, setInterpolatedTime, setSoftCurrentTime, setSoftPreviousTime, shift, storeTime, writeBaseExternal
-
Field Details
-
stateVariation
State variation.
-
-
Constructor Details
-
NordsieckStepInterpolator
public NordsieckStepInterpolator()Simple constructor. This constructor builds an instance that is not usable yet, theAbstractStepInterpolator.reinitialize(double[], boolean, org.apache.commons.math3.ode.EquationsMapper, org.apache.commons.math3.ode.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. -
NordsieckStepInterpolator
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
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:
doCopyin classAbstractStepInterpolator- Returns:
- a copy of the finalized instance
-
reinitialize
public void reinitialize(double[] y, boolean forward, EquationsMapper primaryMapper, EquationsMapper[] secondaryMappers) Reinitialize the instance.Beware that all arrays must be references to integrator arrays, in order to ensure proper update without copy.
- Overrides:
reinitializein classAbstractStepInterpolator- Parameters:
y- reference to the integrator array holding the state at the end of the stepforward- integration direction indicatorprimaryMapper- equations mapper for the primary equations setsecondaryMappers- equations mappers for the secondary equations sets
-
reinitialize
public void reinitialize(double time, double stepSize, double[] scaledDerivative, Array2DRowRealMatrix nordsieckVector) Reinitialize the instance.Beware that all arrays must be references to integrator arrays, in order to ensure proper update without copy.
- Parameters:
time- time at which all arrays are definedstepSize- step size used in the scaled and Nordsieck arraysscaledDerivative- reference to the integrator array holding the first scaled derivativenordsieckVector- reference to the integrator matrix holding the Nordsieck vector
-
rescale
Rescale the instance.Since the scaled and Nordsieck arrays are shared with the caller, this method has the side effect of rescaling this arrays in the caller too.
- Parameters:
stepSize- new step size to use in the scaled and Nordsieck arrays
-
getInterpolatedStateVariation
Get the state vector variation from current to interpolated state.This method is aimed at computing y(tinterpolation) -y(tcurrent) accurately by avoiding the cancellation errors that would occur if the subtraction were performed explicitly.
The returned vector is a reference to a reused array, so it should not be modified and it should be copied if it needs to be preserved across several calls.
- Returns:
- state vector at time
AbstractStepInterpolator.getInterpolatedTime() - Throws:
MaxCountExceededException- if the number of functions evaluations is exceeded- See Also:
-
computeInterpolatedStateAndDerivatives
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 classAbstractStepInterpolator- 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
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Specified by:
writeExternalin classAbstractStepInterpolator- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Specified by:
readExternalin classAbstractStepInterpolator- Throws:
IOExceptionClassNotFoundException
-