Gravity Engine 2 5.1
Loading...
Searching...
No Matches
GravityEngine2.Lambert Class Reference

Classes

struct  LambertOutput
 

Public Types

enum  EnergyType { LOW , HIGH }
 
enum  MotionDirection { SHORT , LONG }
 
enum  Status { OK , G_NOT_CONVERGED , HIT_PLANET , ERROR_OUT }
 

Static Public Member Functions

static LambertOutput Battin (double mu, double3 r1, double3 r2, double3 v1, MotionDirection dm, EnergyType de, int nrev, double t_xfer, double radius)
 
static bool CheckHitPlanet (double mu, double radius, double3 r1, double3 v1t, double3 r2, double3 v2t, int nrev)
 
static double ComputeTransferTime (double mu, double3 r1, double3 r2, ref LambertOutput lambertOutput)
 
static double double double tminenergy MinTimes (double mu, double3 r1, double3 r2, MotionDirection dm, int nrev)
 
static double double double tminenergy MinTimesPrograde (double mu, double3 r1, double3 r2, double3 v1, bool prograde=true)
 
static LambertOutput TransferProgradeToPoint (double mu, double3 r1, double3 r2, double3 v1, double timeXfer, double radius=0.0, bool prograde=true)
 Solve the Lambert problem for a prograde transfer and given timeXfer to a specific fixed destination point.
 
static LambertOutput TransferProgradeToPointWithFPA (double mu, double3 r1, double3 r2, double3 v1, double fpa, double radius=0)
 Determine the velocity change to transfer from r1 to r2 with a given flight path angle.
 
static LambertOutput TransferProgradeToTarget (double mu, double3 r1, double3 r2, double3 v1, double3 v2, double timeXfer, double radius=0.0, bool prograde=true)
 Solve the Lambert problem for a prograde transfer and given timeXfer to a target in motion. The position and velocity vectors of the target are computed at the time of arrival.
 
static LambertOutput Universal (double mu, double3 r1, double3 r2, double3 v1, MotionDirection motionDir, EnergyType energyType, int nrev, double t_xfer, double kbi=0, double radius=0.0)
 

Static Public Attributes

static double tmin
 Calculate the reference time of flight for a Lambert transfer.
 
static double double tminp
 

Member Function Documentation

◆ TransferProgradeToPoint()

static LambertOutput GravityEngine2.Lambert.TransferProgradeToPoint ( double mu,
double3 r1,
double3 r2,
double3 v1,
double timeXfer,
double radius = 0::0,
bool prograde = true )
static

Solve the Lambert problem for a prograde transfer and given timeXfer to a specific fixed destination point.

The default is prograde but this can be optionally over-ridden to force a retrograde transfer direction.

Parameters
mugravitational parameter of central body
r1position vector at departure
r2position vector at arrival
v1velocity vector at departure
timeXfertime of flight
radiusradius of central body
progradeif false, force retrograde transfer
Returns

◆ TransferProgradeToPointWithFPA()

static LambertOutput GravityEngine2.Lambert.TransferProgradeToPointWithFPA ( double mu,
double3 r1,
double3 r2,
double3 v1,
double fpa,
double radius = 0 )
static

Determine the velocity change to transfer from r1 to r2 with a given flight path angle.

This algorithm is very efficient (no inner iteration to root find) BUT it does not compute the transfer time. This can be done explicitly with ComputeXferTime.

If a radius is specified then a hit check will require that the orbit velocity at r2 is computed and this will result in additional computation.

Parameters
muGM of the central body
r1Initial position
r2Final position
v1Initial velocity
fpaFlight path angle
radiusRadius of the central body
Returns

◆ TransferProgradeToTarget()

static LambertOutput GravityEngine2.Lambert.TransferProgradeToTarget ( double mu,
double3 r1,
double3 r2,
double3 v1,
double3 v2,
double timeXfer,
double radius = 0::0,
bool prograde = true )
static

Solve the Lambert problem for a prograde transfer and given timeXfer to a target in motion. The position and velocity vectors of the target are computed at the time of arrival.

Parameters
mugravitational parameter of central body
r1position vector of interceptor at departure
r2position vector of target at departure
v1velocity vector of interceptor at departure
v2velocity vector of target at departure
timeXfertime of flight
radiusradius of central body
progradeif false, force retrograde transfer
Returns

Member Data Documentation

◆ tmin

static double GravityEngine2.Lambert.tmin
static

Calculate the reference time of flight for a Lambert transfer.

Calculate the minimum time of flight for a Lambert transfer.

By default, this is a prograde transfer but can be optionally over-ridden to force a retrograde transfer.

Parameters
mugravitational parameter of central body
r1position vector at departure
r2position vector at arrival
progradeif false, force retrograde transfer
Returns
tuple of minimum time of flight, minimum parabolic time of flight, and minimum energy time of flight

The purpose of tmin is not clear to me. Current code ignores this.

Parameters
mugravitational parameter of central body
r1position vector at departure
r2position vector at arrival
dmdirection of motion
nrevnumber of revolutions
Returns

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