ASPECT
|
Public Member Functions | |
ChunkGeometry (const InitialTopographyModel::Interface< dim > &topography, const double min_longitude, const double min_radius, const double max_depth) | |
ChunkGeometry (const ChunkGeometry &other)=default | |
Point< dim > | pull_back (const Point< dim > &space_point) const override |
Point< dim > | push_forward (const Point< dim > &chart_point) const override |
DerivativeForm< 1, dim, dim > | push_forward_gradient (const Point< dim > &chart_point) const override |
Point< dim > | pull_back_sphere (const Point< dim > &space_point) const |
Point< dim > | push_forward_sphere (const Point< dim > &chart_point) const |
virtual Tensor< 1, dim > | normal_vector (const typename Triangulation< dim >::face_iterator &face, const Point< dim > &p) const override |
double | get_radius (const Point< dim > &space_point) const |
std::unique_ptr< Manifold< dim, dim > > | clone () const override |
Private Member Functions | |
virtual Point< dim > | pull_back_topo (const Point< dim > &space_point) const |
virtual Point< dim > | push_forward_topo (const Point< dim > &chart_point) const |
Private Attributes | |
const InitialTopographyModel::Interface< dim > * | topo |
double | point1_lon |
double | inner_radius |
double | max_depth |
ChunkGeometry is a class that implements the interface of ChartManifold. The function push_forward takes a point in the reference (radius,lon,lat) domain and transforms it into real space (cartesian). The inverse function pull_back reverses this operation. The push_forward_gradient provides derivatives of the reference coordinates to the real space coordinates, which are used in computing normal vectors. The transformations can include topography added to the initially radially symmetric mesh.
aspect::GeometryModel::internal::ChunkGeometry< dim >::ChunkGeometry | ( | const InitialTopographyModel::Interface< dim > & | topography, |
const double | min_longitude, | ||
const double | min_radius, | ||
const double | max_depth | ||
) |
Constructor
|
default |
Copy constructor
|
override |
This function receives a point in cartesian coordinates x, y and z, including initial prescribed topography and returns radius, longitude, latitude without topography.
|
override |
This function receives a point in spherical coordinates radius, longitude, latitude and returns cartesian coordinates x, y and z, including any initially prescribed topography.
|
override |
This function provides the derivatives of the push_forward function to the spherical coordinates, which are needed in the computation of vectors tangential to the domain boundaries.
Point<dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::pull_back_sphere | ( | const Point< dim > & | space_point | ) | const |
This function receives a point in cartesian coordinates x, y and z, and returns radius, longitude, latitude.
Point<dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::push_forward_sphere | ( | const Point< dim > & | chart_point | ) | const |
This function receives a point in spherical coordinates radius, longitude, latitude and returns cartesian coordinates x, y and z.
|
overridevirtual |
Return the (normalized) normal vector at the point p
.
double aspect::GeometryModel::internal::ChunkGeometry< dim >::get_radius | ( | const Point< dim > & | space_point | ) | const |
This function computes the outer radius of the domain at the longitude (and latitude) of the given point (given in cartesian coordinates), i.e. the unperturbed outer radius + the topography.
|
override |
Return a copy of this manifold.
|
privatevirtual |
This function removes the initial topography from a given point in spherical coordinates R+topo, lon, lat. I.e. it returns R, lon, lat.
|
privatevirtual |
This function adds the initial topography to a given point in spherical coordinates R, lon, lat. I.e. it returns R+topo, lon, lat.
|
private |
|
private |
|
private |
|
private |