Class KnockeRediffusedForceModel
- java.lang.Object
-
- org.orekit.forces.AbstractForceModel
-
- org.orekit.forces.radiation.KnockeRediffusedForceModel
-
- All Implemented Interfaces:
ForceModel
,ParametersDriversProvider
public class KnockeRediffusedForceModel extends AbstractForceModel
The Knocke Earth Albedo and IR emission force model.This model is based on "EARTH RADIATION PRESSURE EFFECTS ON SATELLITES", 1988, by P. C. Knocke, J. C. Ries, and B. D. Tapley.
This model represents the effects of radiation pressure coming from the Earth. It considers Solar radiation which has been reflected by Earth (albedo) and Earth infrared emissions. The planet is considered as a sphere and is divided into elementary areas. Each elementary area is considered as a plane and emits radiation according to Lambert's law. The flux the satellite receives is then equal to the sum of the elementary fluxes coming from Earth.
The radiative model of the satellite, and its ability to diffuse, reflect or absorb radiation is handled by a
radiation sensitive model
.Caution: This model is only suitable for Earth. Using it with another central body is prone to error..
- Since:
- 10.3
- Author:
- Thomas Paulet
-
-
Constructor Summary
Constructors Constructor Description KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution)
Default Constructor.KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution, TimeScale utc)
General constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldVector3D<T>acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.Vector3D
acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.boolean
dependsOnPositionOnly()
Check if force models depends on position only.Stream<EventDetector>
getEventsDetectors()
Get the discrete events related to the model.<T extends CalculusFieldElement<T>>
Stream<FieldEventDetector<T>>getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.-
Methods inherited from class org.orekit.forces.AbstractForceModel
complainIfNotSupported, getParameterDriver, isSupported
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.forces.ForceModel
addContribution, addContribution, getParameters, getParameters, init, init
-
-
-
-
Constructor Detail
-
KnockeRediffusedForceModel
@DefaultDataContext public KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution)
Default Constructor.This constructor uses the
.default data context
- Parameters:
sun
- Sun modelspacecraft
- the object physical and geometrical informationequatorialRadius
- the Earth equatorial radius in mangularResolution
- angular resolution in rad
-
KnockeRediffusedForceModel
public KnockeRediffusedForceModel(ExtendedPVCoordinatesProvider sun, RadiationSensitive spacecraft, double equatorialRadius, double angularResolution, TimeScale utc)
General constructor.- Parameters:
sun
- Sun modelspacecraft
- the object physical and geometrical informationequatorialRadius
- the Earth equatorial radius in mangularResolution
- angular resolution in radutc
- the UTC time scale to define reference epoch
-
-
Method Detail
-
dependsOnPositionOnly
public boolean dependsOnPositionOnly()
Check if force models depends on position only.- Returns:
- true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on attitude
-
getEventsDetectors
public Stream<EventDetector> getEventsDetectors()
Get the discrete events related to the model.- Returns:
- stream of events detectors
-
getFieldEventsDetectors
public <T extends CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventsDetectors(Field<T> field)
Get the discrete events related to the model.- Type Parameters:
T
- extends CalculusFieldElement<T>- Parameters:
field
- field to which the state belongs- Returns:
- stream of events detectors
-
acceleration
public Vector3D acceleration(SpacecraftState s, double[] parameters)
Compute acceleration.- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters- Returns:
- acceleration in same frame as state
-
acceleration
public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
Compute acceleration.- Type Parameters:
T
- type of the elements- Parameters:
s
- current state information: date, kinematics, attitudeparameters
- values of the force model parameters- Returns:
- acceleration in same frame as state
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Returns:
- drivers for parameters
-
-