Gravity Engine 2 3.0
Loading...
Searching...
No Matches
GravityEngine2.CR3BP Class Reference

Circular Restricted Three Body Problem. More...

Classes

class  CR3BPSystemData
 

Public Types

enum  ReferencePoint {
  NONE , PRIMARY , SECONDARY , L1 ,
  L2 , L3 , L4 , L5
}
 
enum  TB_System {
  EARTH_MOON , SUN_EARTH , SUN_MARS , MARS_PHOBIS ,
  JUPITER_EUROPA , SATURN_ENCELADUS , SATURN_TITAN , CUSTOM
}
 

Static Public Member Functions

static double3 double3 v FrameInertialToRotating (double3 r, double3 v, double t)
 
static double3 double3 v FrameRotatingToInertial (double3 r, double3 v, double t)
 
static void GSBodiesSetup (TB_System cr3bp, GSBody primary, GSBody secondary)
 Configure the parameters for the GSBodies for a CR3BP system based on the default units of the GSController.
 
static void InertialToRotatingVec3 (ref UnityEngine.Vector3[] r, double t)
 
static void NormToSIkm (ref GEBodyState bodyState, CR3BPSystemData sysData)
 Convert normalized CR3BP state value to SI_km.
 
static double RK4Step (ref GEPhysicsCore.GEPhysicsJob geJob)
 
static void SIkmToNorm (ref GEBodyState bodyState, CR3BPSystemData sysData)
 Convert SIkm to normalized CR3BP dimensionless units.
 
static CR3BPSystemData SystemData (TB_System cr3bpType)
 

Static Public Attributes

static double3 r
 Transform rotating NORMALIZED R, V to inertial R, V.
 

Detailed Description

Circular Restricted Three Body Problem.

Utility functions to assist in converting from the inertial coordinates into the co-rotating coordinates.

The CR3BP integrator follows the usual convention of normalizing the separation between the bodies to 1 and the total mass to one, with a mass fraction of the secondary body being mu. (Hence the primary is 1-mu).

In the corotating coordinates the CM of the system is at zero and the position of the primary is (-mu, 0, 0) and the secondary is (1-mu, 0, 0).

Unit of mass: m1 + m2 Unit of Length: d(m1, m2) Unit of Time: 2 Pi for one orbit of the secondary This results in G=1.

A good reference is 2.2 of Koon, Lo, Marsden & Ross (KLMR). Available as a free PDF at https://ross.aoe.vt.edu/books/Ross_3BodyProblem_Book_2022.pdf

Member Function Documentation

◆ GSBodiesSetup()

static void GravityEngine2.CR3BP.GSBodiesSetup ( TB_System cr3bp,
GSBody primary,
GSBody secondary )
static

Configure the parameters for the GSBodies for a CR3BP system based on the default units of the GSController.

Parameters
cr3bp
primary
secondary

◆ NormToSIkm()

static void GravityEngine2.CR3BP.NormToSIkm ( ref GEBodyState bodyState,
CR3BPSystemData sysData )
static

Convert normalized CR3BP state value to SI_km.

Parameters
bodyState
fromUnits
sysData

◆ SIkmToNorm()

static void GravityEngine2.CR3BP.SIkmToNorm ( ref GEBodyState bodyState,
CR3BPSystemData sysData )
static

Convert SIkm to normalized CR3BP dimensionless units.

Parameters
bodyState
toUnits
sysData

Member Data Documentation

◆ r

static double3 GravityEngine2.CR3BP.r
static

Transform rotating NORMALIZED R, V to inertial R, V.

See KLMR

This assumes CR3BP scaling in which the period of orbit for the secondary is 2 Pi

Parameters
r
v
t
Returns

See KLMR and then do the inversion.

This assumes CR3BP scaling in which the period of orbit for the secondary is 2 Pi

A(t)^-1 R = r

Parameters
r
v
t
Returns

The documentation for this class was generated from the following file: