Earth gravity model. More...
Public Member Functions | |
gravity_earth (void) | |
Constructor. | |
void | initialize (char *filename) |
Initialize with a filename. | |
void | initialize (void) |
Initialize with GEMT1. | |
ml_matrix | compute_accel (const ml_matrix &r_eci, double julian_date) |
Update the model with the input position in ECI (Earth Centered Inertial) coordinates. | |
ml_matrix | compute_accel_ef (const ml_matrix &r_ef, double julian_date) |
Update the model with the input position in EF (earth fixed) coordinates. | |
void | set_order (int n) |
Set the order (See description) | |
void | set_degree (int n) |
Set the degree (See description) | |
void | include_moon_accel (void) |
Include the lunar gravitational perturbations. | |
void | include_sun_accel (void) |
Include the solar gravitational perturbations. | |
ml_matrix | get_point_accel (void) |
Get the point source acceleration. | |
ml_matrix | get_tesseral_accel (void) |
Get the tesseral acceleration. | |
ml_matrix | get_zonal_accel (void) |
Get the zonal acceleration. |
Gravity model. This uses a table of data passed in from a file. This model supports GEMT1, JGM-2 and JGM-3. The SCControl project copies these models into your Library. You can initialize(filename) or initialize() which automatically gives you GEMT1. If you don't initialize you get a point mass model. There are accessors to set the order and to set the degree. You can include solar and lunar perturbations.
The subscript n is the degree of the model and m is the order. The harmonic terms are classified as zonal, sectorial and tesseral. Terms having m = 0 are zonals and depend only on latitude. Terms have m = n are call sectorials and depend on longitude. Tesseral terms depend on latitude and longitude and are terms where n > m and m != 0
The class outputs the total acceleration and has methods for the point mass, tesseral and zonal harmonic contributions.
void gravity_earth::initialize | ( | void | ) |
Initialize the model from an ASCII text file.
ml_matrix gravity_earth::compute_accel | ( | const ml_matrix & | r_eci, |
double | julian_date | ||
) |
ml_matrix gravity_earth::compute_accel_ef | ( | const ml_matrix & | r_ef, |
double | julian_date | ||
) |
Update the gravitational acceleration given the ECI position vector and the Julian date.
r_ef | EF position vector |
julian_date | Julian day number |