Class TimeStampedFieldPVCoordinatesHermiteInterpolator<KK extends CalculusFieldElement<KK>>

java.lang.Object
org.orekit.time.AbstractFieldTimeInterpolator<TimeStampedFieldPVCoordinates<KK>,KK>
org.orekit.utils.TimeStampedFieldPVCoordinatesHermiteInterpolator<KK>
Type Parameters:
KK - type of the field element
All Implemented Interfaces:
FieldTimeInterpolator<TimeStampedFieldPVCoordinates<KK>,KK>

public class TimeStampedFieldPVCoordinatesHermiteInterpolator<KK extends CalculusFieldElement<KK>> extends AbstractFieldTimeInterpolator<TimeStampedFieldPVCoordinates<KK>,KK>
Class using a Hermite interpolator to interpolate time stamped position-velocity-acceleration coordinates.

As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).

Author:
Luc Maisonobe, Vincent Cucchietti
See Also:
  • Constructor Details

    • TimeStampedFieldPVCoordinatesHermiteInterpolator

      public TimeStampedFieldPVCoordinatesHermiteInterpolator()
      Constructor with :
      • Default number of interpolation points of DEFAULT_INTERPOLATION_POINTS
      • Default extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SEC s)
      • Use of angular and first time derivative for attitude interpolation
      As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
    • TimeStampedFieldPVCoordinatesHermiteInterpolator

      public TimeStampedFieldPVCoordinatesHermiteInterpolator(int interpolationPoints)
      Constructor with :
      • Default extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SEC s)
      • Use of position and both time derivatives for attitude interpolation
      As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
      Parameters:
      interpolationPoints - number of interpolation points
    • TimeStampedFieldPVCoordinatesHermiteInterpolator

      public TimeStampedFieldPVCoordinatesHermiteInterpolator(int interpolationPoints, CartesianDerivativesFilter filter)
      Constructor with :
      • Default extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SEC s)
      As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
      Parameters:
      interpolationPoints - number of interpolation points
      filter - filter for derivatives from the sample to use in interpolation
    • TimeStampedFieldPVCoordinatesHermiteInterpolator

      public TimeStampedFieldPVCoordinatesHermiteInterpolator(int interpolationPoints, double extrapolationThreshold, CartesianDerivativesFilter filter)
      Constructor.

      As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).

      Parameters:
      interpolationPoints - number of interpolation points
      extrapolationThreshold - extrapolation threshold beyond which the propagation will fail
      filter - filter for derivatives from the sample to use in interpolation
  • Method Details

    • getFilter

      public CartesianDerivativesFilter getFilter()
      filter for derivatives from the sample to use in interpolation.
      Returns:
      filter for derivatives from the sample to use in interpolation
    • interpolate

      Interpolate instance from given interpolation data.

      The interpolated instance is created by polynomial Hermite interpolation ensuring velocity remains the exact derivative of position.

      Note that even if first time derivatives (velocities) from sample can be ignored, the interpolated instance always includes interpolated derivatives. This feature can be used explicitly to compute these derivatives when it would be too complex to compute them from an analytical formula: just compute a few sample points from the explicit formula and set the derivatives to zero in these sample points, then use interpolation to add derivatives consistent with the positions.

      Specified by:
      interpolate in class AbstractFieldTimeInterpolator<TimeStampedFieldPVCoordinates<KK extends CalculusFieldElement<KK>>,KK extends CalculusFieldElement<KK>>
      Parameters:
      interpolationData - interpolation data
      Returns:
      interpolated instance from given interpolation data.