Package org.orekit.forces.radiation
Class AbstractLightFluxModel
- java.lang.Object
-
- org.orekit.forces.radiation.AbstractLightFluxModel
-
- All Implemented Interfaces:
LightFluxModel
- Direct Known Subclasses:
CylindricallyShadowedLightFluxModel
public abstract class AbstractLightFluxModel extends Object implements LightFluxModel
Abstract class for light flux models. Via the definition of the lighting ratio and the unocculted flux vector, derives the final value.- Since:
- 12.1
- Author:
- Romain Serra
- See Also:
LightFluxModel
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractLightFluxModel(ExtendedPositionProvider occultedBody)
Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description <T extends CalculusFieldElement<T>>
FieldVector3D<T>getLightFluxVector(FieldSpacecraftState<T> state)
Get the light flux vector in the state's frame.Vector3D
getLightFluxVector(SpacecraftState state)
Get the light flux vector in the state's frame.protected abstract <T extends CalculusFieldElement<T>>
TgetLightingRatio(FieldVector3D<T> position, FieldVector3D<T> occultedBodyPosition)
Get the lighting ratio ([0-1]).protected abstract double
getLightingRatio(Vector3D position, Vector3D occultedBodyPosition)
Get the lighting ratio ([0-1]).<T extends CalculusFieldElement<T>>
TgetLightingRatio(FieldSpacecraftState<T> state)
Get the lighting ratio ([0-1]).double
getLightingRatio(SpacecraftState state)
Get the lighting ratio ([0-1]).ExtendedPositionProvider
getOccultedBody()
Getter for the occulted body's position provider.protected Vector3D
getOccultedBodyPosition(AbsoluteDate date, Frame frame)
Method computing the occulted body's position at a given date and frame.protected <T extends CalculusFieldElement<T>>
FieldVector3D<T>getOccultedBodyPosition(FieldAbsoluteDate<T> date, Frame frame)
Method computing the occulted body's position at a given date and frame.protected abstract <T extends CalculusFieldElement<T>>
FieldVector3D<T>getUnoccultedFluxVector(FieldVector3D<T> relativePosition)
Get the light flux vector, not considering any shadowing effect.protected abstract Vector3D
getUnoccultedFluxVector(Vector3D relativePosition)
Get the light flux vector, not considering any shadowing effect.-
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.radiation.LightFluxModel
getEclipseConditionsDetector, getFieldEclipseConditionsDetector
-
-
-
-
Constructor Detail
-
AbstractLightFluxModel
protected AbstractLightFluxModel(ExtendedPositionProvider occultedBody)
Constructor.- Parameters:
occultedBody
- position provider for light source
-
-
Method Detail
-
getOccultedBody
public ExtendedPositionProvider getOccultedBody()
Getter for the occulted body's position provider.- Returns:
- occulted body
-
getLightFluxVector
public Vector3D getLightFluxVector(SpacecraftState state)
Get the light flux vector in the state's frame.- Specified by:
getLightFluxVector
in interfaceLightFluxModel
- Parameters:
state
- state- Returns:
- light flux
-
getLightFluxVector
public <T extends CalculusFieldElement<T>> FieldVector3D<T> getLightFluxVector(FieldSpacecraftState<T> state)
Get the light flux vector in the state's frame. Field version.- Specified by:
getLightFluxVector
in interfaceLightFluxModel
- Type Parameters:
T
- field type- Parameters:
state
- state- Returns:
- light flux
-
getOccultedBodyPosition
protected Vector3D getOccultedBodyPosition(AbsoluteDate date, Frame frame)
Method computing the occulted body's position at a given date and frame.- Parameters:
date
- dateframe
- frame- Returns:
- position
-
getOccultedBodyPosition
protected <T extends CalculusFieldElement<T>> FieldVector3D<T> getOccultedBodyPosition(FieldAbsoluteDate<T> date, Frame frame)
Method computing the occulted body's position at a given date and frame. Field version.- Type Parameters:
T
- field type- Parameters:
date
- dateframe
- frame- Returns:
- position
-
getUnoccultedFluxVector
protected abstract Vector3D getUnoccultedFluxVector(Vector3D relativePosition)
Get the light flux vector, not considering any shadowing effect.- Parameters:
relativePosition
- relative position w.r.t. light source- Returns:
- unocculted flux
-
getUnoccultedFluxVector
protected abstract <T extends CalculusFieldElement<T>> FieldVector3D<T> getUnoccultedFluxVector(FieldVector3D<T> relativePosition)
Get the light flux vector, not considering any shadowing effect. Field version.- Type Parameters:
T
- field type- Parameters:
relativePosition
- relative position w.r.t. light source- Returns:
- unocculted flux
-
getLightingRatio
public double getLightingRatio(SpacecraftState state)
Get the lighting ratio ([0-1]).- Parameters:
state
- state- Returns:
- lighting ratio
-
getLightingRatio
protected abstract double getLightingRatio(Vector3D position, Vector3D occultedBodyPosition)
Get the lighting ratio ([0-1]).- Parameters:
position
- object's positionoccultedBodyPosition
- occulted body position in same frame- Returns:
- lighting ratio
-
getLightingRatio
public <T extends CalculusFieldElement<T>> T getLightingRatio(FieldSpacecraftState<T> state)
Get the lighting ratio ([0-1]).- Type Parameters:
T
- field type- Parameters:
state
- state- Returns:
- lighting ratio
-
getLightingRatio
protected abstract <T extends CalculusFieldElement<T>> T getLightingRatio(FieldVector3D<T> position, FieldVector3D<T> occultedBodyPosition)
Get the lighting ratio ([0-1]). Field version.- Type Parameters:
T
- field type- Parameters:
position
- object's positionoccultedBodyPosition
- occulted body position in same frame- Returns:
- lighting ratio
-
-