Class CylindricallyShadowedLightFluxModel

All Implemented Interfaces:
LightFluxModel

public class CylindricallyShadowedLightFluxModel extends AbstractSolarLightFluxModel
Class defining a flux model with a single occulting body, casting a shadow whose shape is a circular cylinder (equivalent to the light source being infinitely distant). It is less accurate but faster to evaluate than a conical model.
Since:
12.1
Author:
Romain Serra
See Also:
  • Constructor Details

    • CylindricallyShadowedLightFluxModel

      public CylindricallyShadowedLightFluxModel(double kRef, ExtendedPositionProvider occultedBody, double occultingBodyRadius, EventDetectionSettings eventDetectionSettings)
      Constructor.
      Parameters:
      kRef - reference flux
      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)
      Since:
      12.2
    • CylindricallyShadowedLightFluxModel

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

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

    • getDefaultEclipseDetectionSettings

      public static EventDetectionSettings getDefaultEclipseDetectionSettings()
      Define default detection settings for eclipses.
      Returns:
      default settings
      Since:
      12.2
    • 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