Class CR3BPSystem

java.lang.Object
org.orekit.bodies.CR3BPSystem

public class CR3BPSystem extends Object
Class creating, from two different celestial bodies, the corresponding system with respect to the Circular Restricted Three Body problem hypotheses.
Since:
10.2
Author:
Vincent Mouraux, William Desprats
See Also:
  • "Dynamical systems, the three-body problem, and space mission design, Koon, Lo, Marsden, Ross"
  • Constructor Details

    • CR3BPSystem

      public CR3BPSystem(CelestialBody primaryBody, CelestialBody secondaryBody, double a)
      Simple constructor.

      Standard constructor to use to define a CR3BP System. Mass ratio is calculated from JPL data.

      Parameters:
      primaryBody - Primary Body in the CR3BP System
      secondaryBody - Secondary Body in the CR3BP System
      a - Semi-Major Axis of the secondary body
    • CR3BPSystem

      public CR3BPSystem(CelestialBody primaryBody, CelestialBody secondaryBody, double a, double mu)
      Simple constructor.

      This constructor can be used to define a CR3BP System if the user wants to use a specified mass ratio.

      Parameters:
      primaryBody - Primary Body in the CR3BP System
      secondaryBody - Secondary Body in the CR3BP System
      a - Semi-Major Axis of the secondary body
      mu - Mass ratio of the CR3BPSystem
  • Method Details

    • getMassRatio

      public double getMassRatio()
      Get the CR3BP mass ratio of the system mu2/(mu1+mu2).
      Returns:
      CR3BP mass ratio of the system mu2/(mu1+mu2)
    • getDdim

      public double getDdim()
      Get the CR3BP distance between the two bodies.
      Returns:
      CR3BP distance between the two bodies(m)
    • getVdim

      public double getVdim()
      Get the CR3BP orbital velocity of m2.
      Returns:
      CR3BP orbital velocity of m2(m/s)
    • getTdim

      public double getTdim()
      Get the CR3BP orbital period of m2 around m1.
      Returns:
      CR3BP orbital period of m2 around m1(s)
    • getName

      public String getName()
      Get the name of the CR3BP system.
      Returns:
      name of the CR3BP system
    • getPrimary

      public CelestialBody getPrimary()
      Get the primary CelestialBody.
      Returns:
      primary CelestialBody
    • getSecondary

      public CelestialBody getSecondary()
      Get the secondary CelestialBody.
      Returns:
      secondary CelestialBody
    • getRotatingFrame

      public Frame getRotatingFrame()
      Get the CR3BP Rotating Frame.
      Returns:
      CR3BP Rotating Frame
    • getLPosition

      public Vector3D getLPosition(LagrangianPoints lagrangianPoint)
      Get the position of the Lagrangian point in the CR3BP Rotating frame.
      Parameters:
      lagrangianPoint - Lagrangian Point to consider
      Returns:
      position of the Lagrangian point in the CR3BP Rotating frame (-)
    • getGamma

      public double getGamma(LagrangianPoints lagrangianPoint)
      Get the position of the Lagrangian point in the CR3BP Rotating frame.
      Parameters:
      lagrangianPoint - Lagrangian Point to consider
      Returns:
      Distance between a Lagrangian Point and its closest primary.
    • getRealAPV

      public AbsolutePVCoordinates getRealAPV(AbsolutePVCoordinates apv0, AbsoluteDate initialDate, Frame outputFrame)
      Get the AbsolutePVCoordinates from normalized units to standard units in an output frame. This method ensure the constituency of the date of returned AbsolutePVCoordinate, especially when apv0 is the result of a propagation in CR3BP normalized model.
      Parameters:
      apv0 - Normalized AbsolutePVCoordinates in the rotating frame
      initialDate - Date of the at the beginning of the propagation
      outputFrame - Frame in which the output AbsolutePVCoordinates will be
      Returns:
      AbsolutePVCoordinates in the output frame [m,m/s]