Gravity on a circle of latitude. More...
#include <GravityCircle.hpp>
Public Member Functions | |
GravityCircle () | |
Compute the gravitational field | |
Math::real | Gravity (real lon, real &gx, real &gy, real &gz) const |
Math::real | Disturbance (real lon, real &deltax, real &deltay, real &deltaz) const |
Math::real | GeoidHeight (real lon) const |
void | SphericalAnomaly (real lon, real &Dg01, real &xi, real &eta) const |
Math::real | W (real lon, real &gX, real &gY, real &gZ) const |
Math::real | V (real lon, real &GX, real &GY, real &GZ) const |
Math::real | T (real lon, real &deltaX, real &deltaY, real &deltaZ) const |
Math::real | T (real lon) const |
Inspector functions | |
bool | Init () const |
Math::real | MajorRadius () const |
Math::real | Flattening () const |
Math::real | Latitude () const |
Math::real | Height () const |
unsigned | Capabilities () const |
bool | Capabilities (unsigned testcaps) const |
Private Types | |
enum | mask { NONE = GravityModel::NONE, GRAVITY = GravityModel::GRAVITY, DISTURBANCE = GravityModel::DISTURBANCE, DISTURBING_POTENTIAL = GravityModel::DISTURBING_POTENTIAL, GEOID_HEIGHT = GravityModel::GEOID_HEIGHT, SPHERICAL_ANOMALY = GravityModel::SPHERICAL_ANOMALY, ALL = GravityModel::ALL } |
typedef Math::real | real |
Private Member Functions | |
GravityCircle (mask caps, real a, real f, real lat, real h, real Z, real P, real cphi, real sphi, real amodel, real GMmodel, real dzonal0, real corrmult, real gamma0, real gamma, real frot, const CircularEngine &gravitational, const CircularEngine &disturbing, const CircularEngine &correction) | |
Math::real | InternalT (real slam, real clam, real &deltaX, real &deltaY, real &deltaZ, bool gradp, bool correct) const |
Math::real | V (real slam, real clam, real &gX, real &gY, real &gZ) const |
Math::real | W (real slam, real clam, real &gX, real &gY, real &gZ) const |
Private Attributes | |
real | _a |
real | _amodel |
unsigned | _caps |
CircularEngine | _correction |
real | _corrmult |
real | _cphi |
real | _cpsi |
CircularEngine | _disturbing |
real | _dzonal0 |
real | _f |
real | _frot |
real | _gamma |
real | _gamma0 |
real | _GMmodel |
CircularEngine | _gravitational |
real | _h |
real | _invR |
real | _lat |
real | _Px |
real | _sphi |
real | _spsi |
real | _Z |
Friends | |
class | GravityModel |
Gravity on a circle of latitude.
Evaluate the earth's gravity field on a circle of constant height and latitude. This uses a CircularEngine to pre-evaluate the inner sum of the spherical harmonic sum, allowing the values of the field at several different longitudes to be evaluated rapidly.
Use GravityModel::Circle to create a GravityCircle object. (The constructor for this class is private.)
See gravityparallel for an example of using GravityCircle (together with OpenMP) to speed up the computation of geoid heights.
Example of use:
Gravity is a command-line utility providing access to the functionality of GravityModel and GravityCircle.
Definition at line 41 of file GravityCircle.hpp.
|
private |
Definition at line 43 of file GravityCircle.hpp.
|
private |
Enumerator | |
---|---|
NONE | |
GRAVITY | |
DISTURBANCE | |
DISTURBING_POTENTIAL | |
GEOID_HEIGHT | |
SPHERICAL_ANOMALY | |
ALL |
Definition at line 44 of file GravityCircle.hpp.
|
inlineprivate |
Definition at line 60 of file GravityCircle.hpp.
|
inline |
A default constructor for the normal gravity. This sets up an uninitialized object which can be later replaced by the GravityModel::Circle.
Definition at line 105 of file GravityCircle.hpp.
|
inline |
Definition at line 289 of file GravityCircle.hpp.
|
inline |
[in] | testcaps | a set of bitor'ed GravityModel::mask values. |
Definition at line 295 of file GravityCircle.hpp.
Math::real GeographicLib::GravityCircle::Disturbance | ( | real | lon, |
real & | deltax, | ||
real & | deltay, | ||
real & | deltaz | ||
) | const |
Evaluate the gravity disturbance vector.
[in] | lon | the geographic longitude (degrees). |
[out] | deltax | the easterly component of the disturbance vector (m s−2). |
[out] | deltay | the northerly component of the disturbance vector (m s−2). |
[out] | deltaz | the upward component of the disturbance vector (m s−2). |
Definition at line 29 of file src/GravityCircle.cpp.
|
inline |
Definition at line 270 of file GravityCircle.hpp.
Math::real GeographicLib::GravityCircle::GeoidHeight | ( | real | lon | ) | const |
Evaluate the geoid height.
[in] | lon | the geographic longitude (degrees). |
Some approximations are made in computing the geoid height so that the results of the NGA codes are reproduced accurately. Details are given in gravitygeoid.
Definition at line 39 of file src/GravityCircle.cpp.
Math::real GeographicLib::GravityCircle::Gravity | ( | real | lon, |
real & | gx, | ||
real & | gy, | ||
real & | gz | ||
) | const |
Evaluate the gravity.
[in] | lon | the geographic longitude (degrees). |
[out] | gx | the easterly component of the acceleration (m s−2). |
[out] | gy | the northerly component of the acceleration (m s−2). |
[out] | gz | the upward component of the acceleration (m s−2); this is usually negative. |
The function includes the effects of the earth's rotation.
Definition at line 19 of file src/GravityCircle.cpp.
|
inline |
Definition at line 282 of file GravityCircle.hpp.
|
inline |
Definition at line 256 of file GravityCircle.hpp.
|
private |
Definition at line 94 of file src/GravityCircle.cpp.
|
inline |
Definition at line 276 of file GravityCircle.hpp.
|
inline |
Definition at line 263 of file GravityCircle.hpp.
void GeographicLib::GravityCircle::SphericalAnomaly | ( | real | lon, |
real & | Dg01, | ||
real & | xi, | ||
real & | eta | ||
) | const |
Evaluate the components of the gravity anomaly vector using the spherical approximation.
[in] | lon | the geographic longitude (degrees). |
[out] | Dg01 | the gravity anomaly (m s−2). |
[out] | xi | the northerly component of the deflection of the vertical (degrees). |
[out] | eta | the easterly component of the deflection of the vertical (degrees). |
The spherical approximation (see Heiskanen and Moritz, Sec 2-14) is used so that the results of the NGA codes are reproduced accurately. approximations used here. Details are given in gravitygeoid.
Definition at line 49 of file src/GravityCircle.cpp.
|
inline |
Evaluate disturbing potential in geocentric coordinates.
[in] | lon | the geographic longitude (degrees). |
Definition at line 242 of file GravityCircle.hpp.
|
inline |
Evaluate the components of the gravity disturbance in geocentric coordinates.
[in] | lon | the geographic longitude (degrees). |
[out] | deltaX | the X component of the gravity disturbance (m s−2). |
[out] | deltaY | the Y component of the gravity disturbance (m s−2). |
[out] | deltaZ | the Z component of the gravity disturbance (m s−2). |
Definition at line 228 of file GravityCircle.hpp.
|
inline |
Evaluate the components of the acceleration due to gravity in geocentric coordinates.
[in] | lon | the geographic longitude (degrees). |
[out] | GX | the X component of the acceleration (m s−2). |
[out] | GY | the Y component of the acceleration (m s−2). |
[out] | GZ | the Z component of the acceleration (m s−2). |
Definition at line 208 of file GravityCircle.hpp.
|
private |
Definition at line 78 of file src/GravityCircle.cpp.
|
inline |
Evaluate the components of the acceleration due to gravity and the centrifugal acceleration in geocentric coordinates.
[in] | lon | the geographic longitude (degrees). |
[out] | gX | the X component of the acceleration (m s−2). |
[out] | gY | the Y component of the acceleration (m s−2). |
[out] | gZ | the Z component of the acceleration (m s−2). |
Definition at line 188 of file GravityCircle.hpp.
|
private |
Definition at line 70 of file src/GravityCircle.cpp.
|
friend |
Definition at line 91 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 56 of file GravityCircle.hpp.
|
private |
Definition at line 54 of file GravityCircle.hpp.
|
private |
Definition at line 58 of file GravityCircle.hpp.
|
private |
Definition at line 57 of file GravityCircle.hpp.
|
private |
Definition at line 56 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 58 of file GravityCircle.hpp.
|
private |
Definition at line 56 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 57 of file GravityCircle.hpp.
|
private |
Definition at line 57 of file GravityCircle.hpp.
|
private |
Definition at line 57 of file GravityCircle.hpp.
|
private |
Definition at line 56 of file GravityCircle.hpp.
|
private |
Definition at line 58 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 56 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.
|
private |
Definition at line 55 of file GravityCircle.hpp.