Class PolynomialClockModel

java.lang.Object
org.orekit.time.clocks.PolynomialClockModel
All Implemented Interfaces:
ClockModel, ParameterDriversProvider

public class PolynomialClockModel extends Object implements ClockModel
Polynomial clock model.
Since:
12.1
Author:
Luc Maisonobe
  • Constructor Details

    • PolynomialClockModel

      public PolynomialClockModel(AbsoluteDate referenceDate, String prefix)
      Simple constructor.
      Parameters:
      referenceDate - reference date (may be null)
      prefix - prefix for the parameter names
    • PolynomialClockModel

      public PolynomialClockModel(AbsoluteDate referenceDate, String prefix, double... terms)
      Simple constructor.
      Parameters:
      referenceDate - reference date (may be null if there is only one term)
      prefix - prefix for the parameter names
      terms - the polynomial terms in order.
    • PolynomialClockModel

      public PolynomialClockModel(ParameterDriver... terms)
      Simple constructor.

      The reference date for computing the polynom is the reference date of the first parameter driver.

      Parameters:
      terms - the parameter driver terms (they must have names that end with the accepted suffixes)
    • PolynomialClockModel

      public PolynomialClockModel(List<ParameterDriver> terms)
      Simple constructor.
      Parameters:
      terms - the parameter driver terms
  • Method Details

    • getValidityStart

      public AbsoluteDate getValidityStart()
      Get validity start.

      Validity is extracted from the first parameter driver.

      Specified by:
      getValidityStart in interface ClockModel
      Returns:
      model validity start
    • getValidityEnd

      public AbsoluteDate getValidityEnd()
      Get validity end.

      Validity is extracted from the first parameter driver.

      Specified by:
      getValidityEnd in interface ClockModel
      Returns:
      model validity end
    • getParametersDrivers

      public List<ParameterDriver> getParametersDrivers()
      Get the drivers for parameters.
      Specified by:
      getParametersDrivers in interface ParameterDriversProvider
      Returns:
      drivers for parameters
    • addParameterDriver

      public void addParameterDriver(int index, ParameterDriver driver)
      Add a parameter driver term in a given index to the list of parameters. If parameters prior to the one requested don't exist, it will create empty ones. This allows adding a velocity, acceleration, or above without explicitly defining the terms below.
      Parameters:
      index - the index at which to add the parameter driver
      driver - the parameter driver to add
    • getOffset

      public ClockOffset getOffset(AbsoluteDate date)
      Get the clock offset at date.
      Specified by:
      getOffset in interface ClockModel
      Parameters:
      date - date at which offset is requested
      Returns:
      clock offset at specified date
    • toField

      public <T extends CalculusFieldElement<T>> PolynomialFieldClockModel<T> toField(DoubleFunction<T> converter)
      Convert to field model.
      Specified by:
      toField in interface ClockModel
      Type Parameters:
      T - type of the field elements
      Parameters:
      converter - converter to field elements
      Returns:
      field version of the instance
    • toGradient

      public PolynomialFieldClockModel<Gradient> toGradient(int freeParameters, Map<String,Integer> indices)
      Convert to gradient model.
      Specified by:
      toGradient in interface ClockModel
      Parameters:
      freeParameters - total number of free parameters in the gradient
      indices - indices of the differentiation parameters in derivatives computations, must be span name and not driver name
      Returns:
      converted clock model