![]() |
ASPECT
|
Public Member Functions | |
ChunkGeometry (const std::shared_ptr< 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 |
std::unique_ptr< Manifold< dim, dim > > | clone () const override |
double | topography_for_point (const Point< dim > &x_y_z) const |
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 std::shared_ptr< 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 std::shared_ptr< 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
.
|
override |
Return a copy of this manifold.
double aspect::GeometryModel::internal::ChunkGeometry< dim >::topography_for_point | ( | const Point< dim > & | x_y_z | ) | const |
Return the topography at a given point
|
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 |