Package org.orekit.forces
Interface ForceModelModifier
-
- All Superinterfaces:
EventDetectorsProvider,ForceModel,ParameterDriversProvider
- All Known Implementing Classes:
OceanTides,SolidTides
public interface ForceModelModifier extends ForceModel
Interface to wrap another force model. By default, methods do not modify anything.- Since:
- 13.0
- Author:
- Romain Serra
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <T extends CalculusFieldElement<T>>
FieldVector3D<T>acceleration(FieldSpacecraftState<T> s, T[] parameters)Compute acceleration.default Vector3Dacceleration(SpacecraftState s, double[] parameters)Compute acceleration.default booleandependsOnAttitudeRate()Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date.default booleandependsOnPositionOnly()Check if force model depends on position only at a given, fixed date.default Stream<EventDetector>getEventDetectors()Get the discrete events related to the model.default <T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventDetectors(Field<T> field)Get the discrete events related to the model.default List<ParameterDriver>getParametersDrivers()Get the drivers for parameters.ForceModelgetUnderlyingModel()Get the underlying force model.default <T extends CalculusFieldElement<T>>
voidinit(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)Initialize the force model at the start of propagation.default voidinit(SpacecraftState initialState, AbsoluteDate target)Initialize the force model at the start of propagation.-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getDateDetector, getEventDetectors, getFieldDateDetector, getFieldEventDetectors
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Method Detail
-
getUnderlyingModel
ForceModel getUnderlyingModel()
Get the underlying force model.- Returns:
- underlying model
-
init
default void init(SpacecraftState initialState, AbsoluteDate target)
Initialize the force model at the start of propagation. This method will be called before any calls toForceModel.addContribution(SpacecraftState, TimeDerivativesEquations),ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations),ForceModel.acceleration(SpacecraftState, double[])orForceModel.acceleration(FieldSpacecraftState, CalculusFieldElement[])The default implementation of this method does nothing.
- Specified by:
initin interfaceForceModel- Parameters:
initialState- spacecraft state at the start of propagation.target- date of propagation. Not equal toinitialState.getDate().
-
init
default <T extends CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
Initialize the force model at the start of propagation. This method will be called before any calls toForceModel.addContribution(SpacecraftState, TimeDerivativesEquations),ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations),ForceModel.acceleration(SpacecraftState, double[])orForceModel.acceleration(FieldSpacecraftState, CalculusFieldElement[])The default implementation of this method does nothing.
- Specified by:
initin interfaceForceModel- Type Parameters:
T- type of the elements- Parameters:
initialState- spacecraft state at the start of propagation.target- date of propagation. Not equal toinitialState.getDate().
-
acceleration
default Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Specified by:
accelerationin interfaceForceModel- Parameters:
s- current state information: date, kinematics, attitudeparameters- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
acceleration
default <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.- Specified by:
accelerationin interfaceForceModel- Type Parameters:
T- type of the elements- Parameters:
s- current state information: date, kinematics, attitudeparameters- values of the force model parameters at state date, only 1 value for each parameterDriver- Returns:
- acceleration in same frame as state
-
dependsOnPositionOnly
default boolean dependsOnPositionOnly()
Check if force model depends on position only at a given, fixed date.- Specified by:
dependsOnPositionOnlyin interfaceForceModel- Returns:
- true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
-
dependsOnAttitudeRate
default boolean dependsOnAttitudeRate()
Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date. If false, it essentially means that at most the attitude's rotation is used when computing the acceleration vector. The default implementation returns false as common forces do not.- Specified by:
dependsOnAttitudeRatein interfaceForceModel- Returns:
- true if force model depends on attitude derivatives
-
getEventDetectors
default Stream<EventDetector> getEventDetectors()
Get the discrete events related to the model.This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.
- Specified by:
getEventDetectorsin interfaceEventDetectorsProvider- Specified by:
getEventDetectorsin interfaceForceModel- Returns:
- stream of event detectors
-
getFieldEventDetectors
default <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(Field<T> field)
Get the discrete events related to the model.This method is not intended to be called several time, only once by a propagator, as it has the side effect of rebuilding the events detectors when called.
- Specified by:
getFieldEventDetectorsin interfaceEventDetectorsProvider- Specified by:
getFieldEventDetectorsin interfaceForceModel- Type Parameters:
T- extends CalculusFieldElement<T>- Parameters:
field- field to which the state belongs- Returns:
- stream of event detectors
-
getParametersDrivers
default List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDriversin interfaceParameterDriversProvider- Returns:
- drivers for parameters
-
-