Class ConicallyShadowedLightFluxModel

  • All Implemented Interfaces:
    LightFluxModel

    public class ConicallyShadowedLightFluxModel
    extends AbstractSolarLightFluxModel
    Class defining a flux model from a single occulted body, casting a shadow on a spherical occulting body. It cannot model oblate bodies or multiple occulting objects (for this, see SolarRadiationPressure).
    Since:
    12.2
    Author:
    Romain Serra
    See Also:
    AbstractSolarLightFluxModel, LightFluxModel, "Montenbruck, Oliver, and Gill, Eberhard. Satellite orbits : models, methods, and * applications. Berlin New York: Springer, 2000."
    • Constructor Detail

      • ConicallyShadowedLightFluxModel

        public ConicallyShadowedLightFluxModel​(double kRef,
                                               double occultedBodyRadius,
                                               ExtendedPositionProvider occultedBody,
                                               double occultingBodyRadius,
                                               EventDetectionSettings eventDetectionSettings)
        Constructor.
        Parameters:
        kRef - reference flux
        occultedBodyRadius - radius of occulted body (light source)
        occultedBody - position provider for light source
        occultingBodyRadius - radius of central, occulting body
        eventDetectionSettings - user-defined detection settings for eclipses (if ill-tuned, events might be missed or performance might drop)
      • ConicallyShadowedLightFluxModel

        public ConicallyShadowedLightFluxModel​(double kRef,
                                               double occultedBodyRadius,
                                               ExtendedPositionProvider occultedBody,
                                               double occultingBodyRadius)
        Constructor with default event detection settings.
        Parameters:
        kRef - reference flux
        occultedBodyRadius - radius of occulted body (light source)
        occultedBody - position provider for light source
        occultingBodyRadius - radius of central, occulting body
      • ConicallyShadowedLightFluxModel

        public ConicallyShadowedLightFluxModel​(double occultedBodyRadius,
                                               ExtendedPositionProvider occultedBody,
                                               double occultingBodyRadius)
        Constructor with default value for reference flux.
        Parameters:
        occultedBodyRadius - radius of occulted body (light source)
        occultedBody - position provider for light source
        occultingBodyRadius - radius of central, occulting body
    • Method Detail

      • getDefaultEclipseDetectionSettings

        public static EventDetectionSettings getDefaultEclipseDetectionSettings()
        Define default detection settings for eclipses.
        Returns:
        default settings
      • init

        public void init​(SpacecraftState initialState,
                         AbsoluteDate targetDate)
        Perform initialization steps before starting propagation.
        Parameters:
        initialState - initial state
        targetDate - target date for propagation
      • init

        public <T extends CalculusFieldElement<T>> void init​(FieldSpacecraftState<T> initialState,
                                                             FieldAbsoluteDate<T> targetDate)
        Perform initialization steps before starting propagation.
        Type Parameters:
        T - field type
        Parameters:
        initialState - initial state
        targetDate - target date for propagation
      • getLightingRatio

        protected double getLightingRatio​(Vector3D position,
                                          Vector3D occultedBodyPosition)
        Get the lighting ratio ([0-1]).
        Specified by:
        getLightingRatio in class AbstractLightFluxModel
        Parameters:
        position - object's position
        occultedBodyPosition - occulted body position in same frame
        Returns:
        lighting ratio
      • getLightingRatio

        protected <T extends CalculusFieldElement<T>> T getLightingRatio​(FieldVector3D<T> position,
                                                                         FieldVector3D<T> occultedBodyPosition)
        Get the lighting ratio ([0-1]). Field version.
        Specified by:
        getLightingRatio in class AbstractLightFluxModel
        Type Parameters:
        T - field type
        Parameters:
        position - object's position
        occultedBodyPosition - occulted body position in same frame
        Returns:
        lighting ratio
      • getEclipseConditionsDetector

        public List<EventDetector> getEclipseConditionsDetector()
        Retrieve detectors finding entries and exits in different eclipse zones.
        Returns:
        list of event detectors
      • getFieldEclipseConditionsDetector

        public <T extends CalculusFieldElement<T>> List<FieldEventDetector<T>> getFieldEclipseConditionsDetector​(Field<T> field)
        Retrieve Field detectors finding entries and exits in different eclipse zones.
        Type Parameters:
        T - field type
        Parameters:
        field - calculus field
        Returns:
        list of event detectors