Skip to content

Class inertialsim::geodesy::EllipsoidalGravity

ClassList > inertialsim > geodesy > EllipsoidalGravity

Ellipsoidal gravity model. More...

  • #include <gravity.h>

Inherits the following classes: inertialsim::geodesy::Gravity

Public Static Attributes inherited from inertialsim::geodesy::Gravity

See inertialsim::geodesy::Gravity

Type Name
constexpr double standard_magnitude = STANDARD\_GRAVITY
Standard gravity magnitude.

Public Functions

Type Name
virtual Scalar1D Magnitude (const Coordinates & coordinates) override const
Return the magnitude of gravity at the given coordinates.
virtual Scalar1D Magnitude (const Coordinates & coordinates) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const Array3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::GEODETIC) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const geometry::Vector & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const Vector3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL) const
Return magnitude at the given coordinates.
Vector3D Vector (const Coordinates & coordinates, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const Array3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::GEODETIC, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const geometry::Vector & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const Vector3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.

Public Functions inherited from inertialsim::geodesy::Gravity

See inertialsim::geodesy::Gravity

Type Name
virtual Scalar1D Magnitude (const Coordinates & coordinates) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const Array3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::GEODETIC) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const geometry::Vector & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const Vector3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL) const
Return magnitude at the given coordinates.
Vector3D Vector (const Coordinates & coordinates, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const Array3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::GEODETIC, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const geometry::Vector & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const Vector3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.

Public Functions inherited from inertialsim::geodesy::Field

See inertialsim::geodesy::Field

Type Name
virtual Scalar1D Magnitude (const Coordinates & coordinates) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const Array3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::GEODETIC) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const geometry::Vector & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL) const
Return magnitude at the given coordinates.
Scalar1D Magnitude (const Vector3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL) const
Return magnitude at the given coordinates.
Vector3D Vector (const Coordinates & coordinates, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const Array3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::GEODETIC, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const geometry::Vector & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
Vector3D Vector (const Vector3D & coordinates, CoordinateSystem default_frame=CoordinateSystem::LOCAL, const std::optional< CoordinateSystem > & basis=std::nullopt) const
Return the vector field at the given coordinates.
virtual ~Field () = default
Virtual destructor.

Public Static Functions inherited from inertialsim::geodesy::Gravity

See inertialsim::geodesy::Gravity

Type Name
Vector3D StandardVector (TopocentricAxisOrder axis_order=TopocentricAxisOrder::NED)
Standard gravity in a topocentric frame.

Detailed Description

Analytic model based on an equipotential ellipsoid of revolution, as in the WGS84 model of Earth.

Gravity is the sum of gravitational acceleration from the mass of the ellipsoid plus the effect of centripetal acceleration from the rotation of the ellipsoid. This represents the total acceleration experienced in the Earth-fixed frame.

The implementation uses different approximations depending on the location:

  • For small positive altitudes: Normal gravity at the ellipsoid surface with altitude correction (see Standard [07])
  • For points inside the ellipsoid: Exact ellipsoidal harmonic coordinate model (see Standard [07] Section 4.3)
  • For negative altitudes: Approximate extension of the ellipsoidal model

Note

This model includes both gravitational and centripetal effects, representing the total acceleration experienced in the Earth-fixed frame.

Note

The default gravity model uses parameters from the associated GeodeticDatum (typically WGS84).

See also: Coordinates for supported coordinate systems

See also: GeodeticDatum for Earth ellipsoid parameters

Public Functions Documentation

function Magnitude [1/5]

Return the magnitude of gravity at the given coordinates.

virtual Scalar1D inertialsim::geodesy::EllipsoidalGravity::Magnitude (
    const  Coordinates & coordinates
) override const

Parameters:

  • coordinates Array of coordinates.

Returns:

Gravity magnitudes.

Implements inertialsim::geodesy::Field::Magnitude


function Magnitude [2/5]

Return magnitude at the given coordinates.

virtual Scalar1D inertialsim::geodesy::EllipsoidalGravity::Magnitude (
    const  Coordinates & coordinates
) const

Parameters:

  • coordinates Array of coordinates.

Returns:

Magnitudes.

Implements inertialsim::geodesy::Field::Magnitude


function Magnitude [3/5]

Return magnitude at the given coordinates.

Scalar1D inertialsim::geodesy::EllipsoidalGravity::Magnitude (
    const  Array3D & coordinates,
    CoordinateSystem default_frame=CoordinateSystem::GEODETIC
) const

Parameters:

  • coordinates Coordinates in raw form (e.g. geodetic).
  • default_frame Coordinate system corresponding to the coordinate input.

Returns:

Magnitudes.


function Magnitude [4/5]

Return magnitude at the given coordinates.

Scalar1D inertialsim::geodesy::EllipsoidalGravity::Magnitude (
    const  geometry::Vector & coordinates,
    CoordinateSystem default_frame=CoordinateSystem::LOCAL
) const

Parameters:

  • coordinates Coordinates.
  • default_frame Coordinate system corresponding to the coordinate input.

Returns:

Magnitudes.


function Magnitude [5/5]

Return magnitude at the given coordinates.

Scalar1D inertialsim::geodesy::EllipsoidalGravity::Magnitude (
    const  Vector3D & coordinates,
    CoordinateSystem default_frame=CoordinateSystem::LOCAL
) const

Parameters:

  • coordinates Coordinates in raw form (e.g. local xyz).
  • default_frame Coordinate system corresponding to the coordinate input.

Returns:

Magnitudes.


function Vector [1/4]

Return the vector field at the given coordinates.

inline Vector3D inertialsim::geodesy::EllipsoidalGravity::Vector (
    const  Coordinates & coordinates,
    const std::optional< CoordinateSystem > & basis=std::nullopt
) const

By default, the vector components will be expressed in the basis associated with the coordinates. For curvilinear systems (e.g. geodetic), the basis is the local basis at the given coordinates. If basis is supplied, it will be used instead.

Note

For curvilinear coordinate systems like geodetic coordinates, the default basis is the local tangent plane basis at each coordinate location. For Cartesian systems like ECEF, the basis is constant.

Parameters:

  • coordinates Array of coordinates.
  • basis Optional basis in which to return the vector. If not specified, uses the basis associated with the coordinates.

Returns:

Vectors.


function Vector [2/4]

Return the vector field at the given coordinates.

Vector3D inertialsim::geodesy::EllipsoidalGravity::Vector (
    const  Array3D & coordinates,
    CoordinateSystem default_frame=CoordinateSystem::GEODETIC,
    const std::optional< CoordinateSystem > & basis=std::nullopt
) const

Parameters:

  • coordinates Coordinates in raw form (e.g. geodetic).
  • default_frame Coordinate system corresponding to the coordinate input.
  • basis Optional basis in which to return the vector.

Returns:

Vectors.


function Vector [3/4]

Return the vector field at the given coordinates.

Vector3D inertialsim::geodesy::EllipsoidalGravity::Vector (
    const  geometry::Vector & coordinates,
    CoordinateSystem default_frame=CoordinateSystem::LOCAL,
    const std::optional< CoordinateSystem > & basis=std::nullopt
) const

Parameters:

  • coordinates Coordinates.
  • default_frame Coordinate system corresponding to the coordinate input.
  • basis Optional basis in which to return the vector.

Returns:

Vectors.


function Vector [4/4]

Return the vector field at the given coordinates.

Vector3D inertialsim::geodesy::EllipsoidalGravity::Vector (
    const  Vector3D & coordinates,
    CoordinateSystem default_frame=CoordinateSystem::LOCAL,
    const std::optional< CoordinateSystem > & basis=std::nullopt
) const

Parameters:

  • coordinates Coordinates in raw form (e.g. local xyz).
  • default_frame Coordinate system corresponding to the coordinate input.
  • basis Optional basis in which to return the vector.

Returns:

Vectors.



The documentation for this class was generated from the following file cpp/include/inertialsim/geodesy/gravity.h