ASPECT
Enumerations | Functions
aspect::Utilities::Coordinates Namespace Reference

Enumerations

enum  CoordinateSystem {
  depth, cartesian, spherical, ellipsoidal,
  invalid
}
 

Functions

template<int dim>
std::array< double, dim > WGS84_coordinates (const Point< dim > &position)
 
template<int dim>
std::array< double, dim > cartesian_to_spherical_coordinates (const Point< dim > &position)
 
template<int dim>
Point< dim > spherical_to_cartesian_coordinates (const std::array< double, dim > &scoord)
 
template<int dim>
Tensor< 1, dim > spherical_to_cartesian_vector (const Tensor< 1, dim > &spherical_vector, const Point< dim > &position)
 
template<int dim>
std::array< double, 3 > cartesian_to_ellipsoidal_coordinates (const Point< 3 > &position, const double semi_major_axis_a, const double eccentricity)
 
template<int dim>
Point< 3 > ellipsoidal_to_cartesian_coordinates (const std::array< double, 3 > &phi_theta_d, const double semi_major_axis_a, const double eccentricity)
 
CoordinateSystem string_to_coordinate_system (const std::string &)
 

Enumeration Type Documentation

§ CoordinateSystem

This enum lists available coordinate systems that can be used for the function variables. Allowed values are 'cartesian', 'spherical', and 'depth'. 'spherical' coordinates follow: r, phi (2D) or r, phi, theta (3D); where r is radius, phi is longitude, and theta is the polar angle (colatitude). The 'depth' is a one-dimensional coordinate system in which only the distance below the 'top' surface (depth) as defined by each geometry model, is used.

Enumerator
depth 
cartesian 
spherical 
ellipsoidal 
invalid 

Definition at line 40 of file coordinate_systems.h.

Function Documentation

§ WGS84_coordinates()

template<int dim>
std::array<double,dim> aspect::Utilities::Coordinates::WGS84_coordinates ( const Point< dim > &  position)

Returns distance from the Earth's center, latitude and longitude from a given ECEF Cartesian coordinates that account for ellipsoidal shape of the Earth with WGS84 parameters.

§ cartesian_to_spherical_coordinates()

template<int dim>
std::array<double,dim> aspect::Utilities::Coordinates::cartesian_to_spherical_coordinates ( const Point< dim > &  position)

Returns spherical coordinates of a Cartesian point. The returned array is filled with radius, phi and theta (polar angle). If the dimension is set to 2 theta is omitted. Phi is always normalized to [0,2*pi].

§ spherical_to_cartesian_coordinates()

template<int dim>
Point<dim> aspect::Utilities::Coordinates::spherical_to_cartesian_coordinates ( const std::array< double, dim > &  scoord)

Return the Cartesian point of a spherical position defined by radius, phi and theta (polar angle). If the dimension is set to 2 theta is omitted.

§ spherical_to_cartesian_vector()

template<int dim>
Tensor<1,dim> aspect::Utilities::Coordinates::spherical_to_cartesian_vector ( const Tensor< 1, dim > &  spherical_vector,
const Point< dim > &  position 
)

Given a vector defined in the radius, phi and theta directions, return a vector defined in Cartesian coordinates. If the dimension is set to 2 theta is omitted. Position is given as a Point in Cartesian coordinates.

§ cartesian_to_ellipsoidal_coordinates()

template<int dim>
std::array<double,3> aspect::Utilities::Coordinates::cartesian_to_ellipsoidal_coordinates ( const Point< 3 > &  position,
const double  semi_major_axis_a,
const double  eccentricity 
)

Returns ellipsoidal coordinates of a Cartesian point. The returned array is filled with phi, theta and radius.

§ ellipsoidal_to_cartesian_coordinates()

template<int dim>
Point<3> aspect::Utilities::Coordinates::ellipsoidal_to_cartesian_coordinates ( const std::array< double, 3 > &  phi_theta_d,
const double  semi_major_axis_a,
const double  eccentricity 
)

Return the Cartesian point of a ellipsoidal position defined by phi, theta and radius.

§ string_to_coordinate_system()

CoordinateSystem aspect::Utilities::Coordinates::string_to_coordinate_system ( const std::string &  )

A function that takes a string representation of the name of a coordinate system (as represented by the CoordinateSystem enum) and returns the corresponding value.