public class NordsieckStepInterpolator extends AbstractStepInterpolator
This interpolator computes dense output around the current point. The interpolation equation is based on Taylor series formulas.
AdamsBashforthIntegrator
,
AdamsMoultonIntegrator
,
Serialized FormModifier and Type | Field and Description |
---|---|
protected double[] |
stateVariation
State variation.
|
currentState, h, interpolatedDerivatives, interpolatedPrimaryDerivatives, interpolatedPrimaryState, interpolatedSecondaryDerivatives, interpolatedSecondaryState, interpolatedState, interpolatedTime
Constructor and Description |
---|
NordsieckStepInterpolator()
Simple constructor.
|
NordsieckStepInterpolator(NordsieckStepInterpolator interpolator)
Copy constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
computeInterpolatedStateAndDerivatives(double theta,
double oneMinusThetaH)
Compute the state and derivatives at the interpolated time.
|
protected StepInterpolator |
doCopy()
Really copy the finalized instance.
|
double[] |
getInterpolatedStateVariation()
Get the state vector variation from current to interpolated state.
|
void |
readExternal(ObjectInput oi) |
void |
reinitialize(double[] y,
boolean forward,
EquationsMapper primaryMapper,
EquationsMapper[] secondaryMappers)
Reinitialize the instance.
|
void |
reinitialize(double time,
double stepSize,
double[] scaledDerivative,
Array2DRowRealMatrix nordsieckVector)
Reinitialize the instance.
|
void |
rescale(double stepSize)
Rescale the instance.
|
void |
writeExternal(ObjectOutput oo) |
copy, doFinalize, finalizeStep, getCurrentTime, getGlobalCurrentTime, getGlobalPreviousTime, getInterpolatedDerivatives, getInterpolatedSecondaryDerivatives, getInterpolatedSecondaryState, getInterpolatedState, getInterpolatedTime, getPreviousTime, isForward, readBaseExternal, setInterpolatedTime, setSoftCurrentTime, setSoftPreviousTime, shift, storeTime, writeBaseExternal
public NordsieckStepInterpolator()
AbstractStepInterpolator.reinitialize(double[], boolean, fr.cnes.sirius.patrius.math.ode.EquationsMapper, fr.cnes.sirius.patrius.math.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.public NordsieckStepInterpolator(NordsieckStepInterpolator interpolator)
interpolator
- interpolator to copy from. The copy is a deep
copy: its arrays are separated from the original arrays of the
instanceprotected StepInterpolator doCopy()
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.
doCopy
in class AbstractStepInterpolator
public void reinitialize(double[] y, boolean forward, EquationsMapper primaryMapper, EquationsMapper[] secondaryMappers)
Beware that all arrays must be references to integrator arrays, in order to ensure proper update without copy.
reinitialize
in class AbstractStepInterpolator
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 setspublic void reinitialize(double time, double stepSize, double[] scaledDerivative, Array2DRowRealMatrix nordsieckVector)
Beware that all arrays must be references to integrator arrays, in order to ensure proper update without copy.
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 vectorpublic void rescale(double stepSize)
Since the scaled and Nordiseck arrays are shared with the caller, this method has the side effect of rescaling this arrays in the caller too.
stepSize
- new step size to use in the scaled and nordsieck arrayspublic double[] getInterpolatedStateVariation()
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.
AbstractStepInterpolator.getInterpolatedTime()
MaxCountExceededException
- if the number of functions evaluations is exceededAbstractStepInterpolator.getInterpolatedDerivatives()
protected void computeInterpolatedStateAndDerivatives(double theta, double oneMinusThetaH)
computeInterpolatedStateAndDerivatives
in class AbstractStepInterpolator
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 timepublic void writeExternal(ObjectOutput oo) throws IOException
writeExternal
in interface Externalizable
writeExternal
in class AbstractStepInterpolator
IOException
public void readExternal(ObjectInput oi) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
readExternal
in class AbstractStepInterpolator
IOException
ClassNotFoundException
Copyright © 2021 CNES. All rights reserved.