Package org.orekit.forces.radiation
Class AbstractRadiationForceModel
- java.lang.Object
-
- org.orekit.forces.radiation.AbstractRadiationForceModel
-
- All Implemented Interfaces:
ForceModel
,RadiationForceModel
,EventDetectorsProvider
,ParameterDriversProvider
- Direct Known Subclasses:
ECOM2
,SolarRadiationPressure
public abstract class AbstractRadiationForceModel extends Object implements RadiationForceModel
Base class for radiation force models.- Since:
- 10.2
- See Also:
SolarRadiationPressure
,ECOM2
-
-
Field Summary
-
Fields inherited from interface org.orekit.propagation.events.EventDetectorsProvider
DATATION_ACCURACY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRadiationForceModel(ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, EventDetectionSettings eclipseDetectionSettings)
Default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addOccultingBody(OneAxisEllipsoid occulting)
Add a new occulting body.void
addOccultingBody(ExtendedPositionProvider provider, double radius)
Add a new occulting body.static EventDetectionSettings
getDefaultEclipseDetectionSettings()
Get the default eclipse detection settings.Stream<EventDetector>
getEventDetectors()
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventDetectors(Field<T> field)
Get the discrete events related to the model.protected <T extends CalculusFieldElement<T>>
T[]getGeneralEclipseAngles(FieldVector3D<T> position, FieldVector3D<T> occultingPosition, T occultingRadius, FieldVector3D<T> occultedPosition, T occultedRadius)
Get the useful angles for eclipse computation.protected double[]
getGeneralEclipseAngles(Vector3D position, Vector3D occultingPosition, double occultingRadius, Vector3D occultedPosition, double occultedRadius)
Get the useful angles for eclipse computation.List<OccultationEngine>
getOccultingBodies()
Get all occulting bodies to consider.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.events.EventDetectorsProvider
getEventDetectors, getFieldEventDetectors
-
Methods inherited from interface org.orekit.forces.ForceModel
acceleration, acceleration, addContribution, addContribution, dependsOnAttitudeRate, init, init
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupported
-
Methods inherited from interface org.orekit.forces.radiation.RadiationForceModel
dependsOnPositionOnly
-
-
-
-
Constructor Detail
-
AbstractRadiationForceModel
protected AbstractRadiationForceModel(ExtendedPositionProvider sun, OneAxisEllipsoid centralBody, EventDetectionSettings eclipseDetectionSettings)
Default constructor. Only central body is considered.- Parameters:
sun
- Sun modelcentralBody
- central body shape model (for umbra/penumbra computation)eclipseDetectionSettings
- eclipse detection settings (warning: poor settings will miss eclipses)- Since:
- 13.0
-
-
Method Detail
-
getEventDetectors
public 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:
getEventDetectors
in interfaceEventDetectorsProvider
- Specified by:
getEventDetectors
in interfaceForceModel
- Returns:
- stream of event detectors
-
getDefaultEclipseDetectionSettings
public static EventDetectionSettings getDefaultEclipseDetectionSettings()
Get the default eclipse detection settings.- Returns:
- detection settings
- Since:
- 13.0
-
getFieldEventDetectors
public <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:
getFieldEventDetectors
in interfaceEventDetectorsProvider
- Specified by:
getFieldEventDetectors
in interfaceForceModel
- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
field
- field to which the state belongs- Returns:
- stream of event detectors
-
getGeneralEclipseAngles
protected double[] getGeneralEclipseAngles(Vector3D position, Vector3D occultingPosition, double occultingRadius, Vector3D occultedPosition, double occultedRadius)
Get the useful angles for eclipse computation.- Parameters:
position
- the satellite's position in the selected frameoccultingPosition
- Oculting body position in the selected frameoccultingRadius
- Occulting body mean radiusoccultedPosition
- Occulted body position in the selected frameoccultedRadius
- Occulted body mean radius- Returns:
- the 3 angles {(satOcculting, satOcculted), Occulting body apparent radius, Occulted body apparent radius}
-
getGeneralEclipseAngles
protected <T extends CalculusFieldElement<T>> T[] getGeneralEclipseAngles(FieldVector3D<T> position, FieldVector3D<T> occultingPosition, T occultingRadius, FieldVector3D<T> occultedPosition, T occultedRadius)
Get the useful angles for eclipse computation.- Type Parameters:
T
- extends RealFieldElement- Parameters:
occultingPosition
- Oculting body position in the selected frameoccultingRadius
- Occulting body mean radiusoccultedPosition
- Occulted body position in the selected frameoccultedRadius
- Occulted body mean radiusposition
- the satellite's position in the selected frame- Returns:
- the 3 angles {(satOcculting, satOcculted), Occulting body apparent radius, Occulted body apparent radius}
-
addOccultingBody
public void addOccultingBody(ExtendedPositionProvider provider, double radius)
Add a new occulting body.Central body is already considered, it shall not be added this way.
- Parameters:
provider
- body PV providerradius
- body mean radius- See Also:
addOccultingBody(OneAxisEllipsoid)
-
addOccultingBody
public void addOccultingBody(OneAxisEllipsoid occulting)
Add a new occulting body.Central body is already considered, it shall not be added this way.
- Parameters:
occulting
- occulting body to add- Since:
- 12.0
- See Also:
addOccultingBody(ExtendedPositionProvider, double)
-
getOccultingBodies
public List<OccultationEngine> getOccultingBodies()
Get all occulting bodies to consider.The list always contains at least one element: the central body which is always the first one in the list.
- Returns:
- immutable list of all occulting bodies to consider, including the central body
- Since:
- 12.0
-
-