Class AbstractPropagatorBuilder<T extends AbstractPropagator>
- java.lang.Object
-
- org.orekit.propagation.conversion.AbstractPropagatorBuilder<T>
-
- All Implemented Interfaces:
Cloneable
,PropagatorBuilder
- Direct Known Subclasses:
AbstractAnalyticalPropagatorBuilder
,AbstractIntegratedPropagatorBuilder
,EphemerisPropagatorBuilder
public abstract class AbstractPropagatorBuilder<T extends AbstractPropagator> extends Object implements PropagatorBuilder
Base class for propagator builders.- Since:
- 7.1
- Author:
- Pascal Parraud
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction)
Build a new instance.protected
AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction, AttitudeProvider attitudeProvider)
Build a new instance.protected
AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction, AttitudeProvider attitudeProvider, double initialMass)
Build a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addAdditionalDerivativesProvider(AdditionalDerivativesProvider provider)
Add a set of user-specified equations to be integrated along with the orbit propagation (author Shiva Iyer).protected void
addSupportedParameters(List<ParameterDriver> drivers)
Add supported parameters.T
buildPropagator()
Build a propagator from current value of selected normalized parameters.abstract T
buildPropagator(double[] normalizedParameters)
Build a propagator.AbstractPropagatorBuilder<T>
clone()
protected Orbit
createInitialOrbit()
Build an initial orbit using the current selected parameters.void
deselectDynamicParameters()
Deselects orbital and propagation drivers.protected List<AdditionalDerivativesProvider>
getAdditionalDerivativesProviders()
Get the list of additional equations.AttitudeProvider
getAttitudeProvider()
Get the attitude provider.Frame
getFrame()
Get the frame in which the orbit is propagated.AbsoluteDate
getInitialOrbitDate()
Get the date of the initial orbit.double
getMass()
Get the mass.double
getMu()
Get the central attraction coefficient (µ - m³/s²) value.ParameterDriversList
getOrbitalParametersDrivers()
Get the drivers for the configurable orbital parameters.OrbitType
getOrbitType()
Get the orbit type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.PositionAngleType
getPositionAngleType()
Get the position angle type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.double
getPositionScale()
Get the position scale.ParameterDriversList
getPropagationParametersDrivers()
Get the drivers for the configurable propagation parameters.double[]
getSelectedNormalizedParameters()
Get the current value of selected normalized parameters.void
resetOrbit(Orbit newOrbit)
Reset the orbit in the propagator builder.void
setAttitudeProvider(AttitudeProvider attitudeProvider)
Set the attitude provider.void
setMass(double mass)
Set the initial mass.protected void
setParameters(double[] normalizedParameters)
Set the selected parameters.-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.conversion.PropagatorBuilder
buildLeastSquaresModel
-
-
-
-
Constructor Detail
-
AbstractPropagatorBuilder
protected AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction)
Build a new instance.The template orbit is used as a model to
create initial orbit
. It defines the inertial frame, the central attraction coefficient, the orbit type, and is also used together with thepositionScale
to convert from thenormalized
parameters used by the callers of this builder to the real orbital parameters. The default attitude provider is aligned with the orbit's inertial frame.By default, all the
orbital parameters drivers
are selected, which means that if the builder is used for orbit determination or propagator conversion, all orbital parameters will be estimated. If only a subset of the orbital parameters must be estimated, caller must retrieve the orbital parameters by callinggetOrbitalParametersDrivers()
and then callsetSelected(false)
.- Parameters:
templateOrbit
- reference orbit from which real orbits will be builtpositionAngleType
- position angle type to usepositionScale
- scaling factor used for orbital parameters normalization (typically set to the expected standard deviation of the position)addDriverForCentralAttraction
- if true, aParameterDriver
should be set up for central attraction coefficient- Since:
- 8.0
- See Also:
AbstractPropagatorBuilder(Orbit, PositionAngleType, double, boolean, AttitudeProvider)
-
AbstractPropagatorBuilder
protected AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction, AttitudeProvider attitudeProvider)
Build a new instance.The template orbit is used as a model to
create initial orbit
. It defines the inertial frame, the central attraction coefficient, the orbit type, and is also used together with thepositionScale
to convert from thenormalized
parameters used by the callers of this builder to the real orbital parameters.By default, all the
orbital parameters drivers
are selected, which means that if the builder is used for orbit determination or propagator conversion, all orbital parameters will be estimated. If only a subset of the orbital parameters must be estimated, caller must retrieve the orbital parameters by callinggetOrbitalParametersDrivers()
and then callsetSelected(false)
.- Parameters:
templateOrbit
- reference orbit from which real orbits will be builtpositionAngleType
- position angle type to usepositionScale
- scaling factor used for orbital parameters normalization (typically set to the expected standard deviation of the position)addDriverForCentralAttraction
- if true, aParameterDriver
should be set up for central attraction coefficientattitudeProvider
- for the propagator.- Since:
- 10.1
- See Also:
AbstractPropagatorBuilder(Orbit, PositionAngleType, double, boolean)
-
AbstractPropagatorBuilder
protected AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction, AttitudeProvider attitudeProvider, double initialMass)
Build a new instance.The template orbit is used as a model to
create initial orbit
. It defines the inertial frame, the central attraction coefficient, the orbit type, and is also used together with thepositionScale
to convert from thenormalized
parameters used by the callers of this builder to the real orbital parameters.By default, all the
orbital parameters drivers
are selected, which means that if the builder is used for orbit determination or propagator conversion, all orbital parameters will be estimated. If only a subset of the orbital parameters must be estimated, caller must retrieve the orbital parameters by callinggetOrbitalParametersDrivers()
and then callsetSelected(false)
.- Parameters:
templateOrbit
- reference orbit from which real orbits will be builtpositionAngleType
- position angle type to usepositionScale
- scaling factor used for orbital parameters normalization (typically set to the expected standard deviation of the position)addDriverForCentralAttraction
- if true, aParameterDriver
should be set up for central attraction coefficientattitudeProvider
- for the propagator.initialMass
- mass- Since:
- 12.2
- See Also:
AbstractPropagatorBuilder(Orbit, PositionAngleType, double, boolean)
-
-
Method Detail
-
getMass
public double getMass()
Get the mass.- Specified by:
getMass
in interfacePropagatorBuilder
- Returns:
- the mass (kg)
- Since:
- 9.2
-
setMass
public void setMass(double mass)
Set the initial mass.- Parameters:
mass
- the mass (kg)
-
getOrbitType
public OrbitType getOrbitType()
Get the orbit type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.- Specified by:
getOrbitType
in interfacePropagatorBuilder
- Returns:
- orbit type to use in
PropagatorBuilder.buildPropagator(double[])
- See Also:
PropagatorBuilder.buildPropagator(double[])
,PropagatorBuilder.getPositionAngleType()
-
getPositionAngleType
public PositionAngleType getPositionAngleType()
Get the position angle type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.- Specified by:
getPositionAngleType
in interfacePropagatorBuilder
- Returns:
- position angle type to use in
PropagatorBuilder.buildPropagator(double[])
- See Also:
PropagatorBuilder.buildPropagator(double[])
,PropagatorBuilder.getOrbitType()
-
getInitialOrbitDate
public AbsoluteDate getInitialOrbitDate()
Get the date of the initial orbit.- Specified by:
getInitialOrbitDate
in interfacePropagatorBuilder
- Returns:
- date of the initial orbit
-
getFrame
public Frame getFrame()
Get the frame in which the orbit is propagated.- Specified by:
getFrame
in interfacePropagatorBuilder
- Returns:
- frame in which the orbit is propagated
-
getOrbitalParametersDrivers
public ParameterDriversList getOrbitalParametersDrivers()
Get the drivers for the configurable orbital parameters. Orbital drivers should have only 1 value estimated (1 span)- Specified by:
getOrbitalParametersDrivers
in interfacePropagatorBuilder
- Returns:
- drivers for the configurable orbital parameters
-
getPropagationParametersDrivers
public ParameterDriversList getPropagationParametersDrivers()
Get the drivers for the configurable propagation parameters.The parameters typically correspond to force models.
- Specified by:
getPropagationParametersDrivers
in interfacePropagatorBuilder
- Returns:
- drivers for the configurable propagation parameters
-
clone
public AbstractPropagatorBuilder<T> clone()
-
getAttitudeProvider
public AttitudeProvider getAttitudeProvider()
Get the attitude provider.- Specified by:
getAttitudeProvider
in interfacePropagatorBuilder
- Returns:
- the attitude provider
- Since:
- 10.1
-
setAttitudeProvider
public void setAttitudeProvider(AttitudeProvider attitudeProvider)
Set the attitude provider.- Parameters:
attitudeProvider
- attitude provider- Since:
- 10.1
-
getPositionScale
public double getPositionScale()
Get the position scale.- Returns:
- the position scale used to scale the orbital drivers
-
getMu
public double getMu()
Get the central attraction coefficient (µ - m³/s²) value.- Specified by:
getMu
in interfacePropagatorBuilder
- Returns:
- the central attraction coefficient (µ - m³/s²) value
-
getSelectedNormalizedParameters
public double[] getSelectedNormalizedParameters()
Get the current value of selected normalized parameters.- Specified by:
getSelectedNormalizedParameters
in interfacePropagatorBuilder
- Returns:
- current value of selected normalized parameters
-
buildPropagator
public abstract T buildPropagator(double[] normalizedParameters)
Build a propagator.- Specified by:
buildPropagator
in interfacePropagatorBuilder
- Parameters:
normalizedParameters
- normalized values for the selected parameters- Returns:
- an initialized propagator
-
buildPropagator
public T buildPropagator()
Build a propagator from current value of selected normalized parameters.- Specified by:
buildPropagator
in interfacePropagatorBuilder
- Returns:
- an initialized propagator
-
createInitialOrbit
protected Orbit createInitialOrbit()
Build an initial orbit using the current selected parameters.This method is a stripped down version of
buildPropagator(double[])
that only builds the initial orbit and not the full propagator.- Returns:
- an initial orbit
- Since:
- 8.0
-
setParameters
protected void setParameters(double[] normalizedParameters)
Set the selected parameters.- Parameters:
normalizedParameters
- normalized values for the selected parameters
-
addSupportedParameters
protected void addSupportedParameters(List<ParameterDriver> drivers)
Add supported parameters.- Parameters:
drivers
- drivers for the parameters
-
resetOrbit
public void resetOrbit(Orbit newOrbit)
Reset the orbit in the propagator builder.- Specified by:
resetOrbit
in interfacePropagatorBuilder
- Parameters:
newOrbit
- New orbit to set in the propagator builder
-
addAdditionalDerivativesProvider
public void addAdditionalDerivativesProvider(AdditionalDerivativesProvider provider)
Add a set of user-specified equations to be integrated along with the orbit propagation (author Shiva Iyer).- Parameters:
provider
- provider for additional derivatives- Since:
- 11.1
-
getAdditionalDerivativesProviders
protected List<AdditionalDerivativesProvider> getAdditionalDerivativesProviders()
Get the list of additional equations.- Returns:
- the list of additional equations
- Since:
- 11.1
-
deselectDynamicParameters
public void deselectDynamicParameters()
Deselects orbital and propagation drivers.
-
-