![]() |
ASPECT
|
Public Member Functions | |
ChunkGeometry () | |
ChunkGeometry (const ChunkGeometry &other) | |
void | initialize (const InitialTopographyModel::Interface< dim > *topography) |
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 |
virtual void | set_min_longitude (const double p1_lon) |
std::unique_ptr< Manifold< dim, dim > > | clone () const override |
void | set_min_radius (const double p1_rad) |
void | set_max_depth (const double p2_rad_minus_p1_rad) |
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 | |
double | point1_lon |
double | inner_radius |
double | max_depth |
const InitialTopographyModel::Interface< dim > * | topo |
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 | ( | ) |
Constructor
aspect::GeometryModel::internal::ChunkGeometry< dim >::ChunkGeometry | ( | const ChunkGeometry< dim > & | other | ) |
Copy constructor
void aspect::GeometryModel::internal::ChunkGeometry< dim >::initialize | ( | const InitialTopographyModel::Interface< dim > * | topography | ) |
|
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.
|
virtual |
Set the minimum longitude of the domain, which is used in pulling back cartesian coordinates to spherical to get the longitude in the correct quarter.
|
override |
Return a copy of this manifold.
void aspect::GeometryModel::internal::ChunkGeometry< dim >::set_min_radius | ( | const double | p1_rad | ) |
Set the minimal radius of the domain.
void aspect::GeometryModel::internal::ChunkGeometry< dim >::set_max_depth | ( | const double | p2_rad_minus_p1_rad | ) |
Set the maximum depth of the domain.
|
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 |