ASPECT
Public Member Functions | Private Member Functions | Private Attributes | List of all members
aspect::GeometryModel::internal::ChunkGeometry< dim > Class Template Reference
Inheritance diagram for aspect::GeometryModel::internal::ChunkGeometry< dim >:
Inheritance graph
[legend]

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
 

Detailed Description

template<int dim>
class aspect::GeometryModel::internal::ChunkGeometry< dim >

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.

Definition at line 54 of file chunk.h.

Constructor & Destructor Documentation

§ ChunkGeometry() [1/2]

Constructor

§ ChunkGeometry() [2/2]

template<int dim>
aspect::GeometryModel::internal::ChunkGeometry< dim >::ChunkGeometry ( const ChunkGeometry< dim > &  other)

Copy constructor

Member Function Documentation

§ initialize()

template<int dim>
void aspect::GeometryModel::internal::ChunkGeometry< dim >::initialize ( const InitialTopographyModel::Interface< dim > *  topography)

§ pull_back()

template<int dim>
Point<dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::pull_back ( const Point< dim > &  space_point) const
override

This function receives a point in cartesian coordinates x, y and z, including initial prescribed topography and returns radius, longitude, latitude without topography.

§ push_forward()

template<int dim>
Point<dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::push_forward ( const Point< dim > &  chart_point) const
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.

§ push_forward_gradient()

template<int dim>
DerivativeForm<1, dim, dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::push_forward_gradient ( const Point< dim > &  chart_point) const
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.

§ pull_back_sphere()

template<int dim>
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.

§ push_forward_sphere()

template<int dim>
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.

§ normal_vector()

template<int dim>
virtual Tensor<1, dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::normal_vector ( const typename Triangulation< dim >::face_iterator &  face,
const Point< dim > &  p 
) const
overridevirtual

Return the (normalized) normal vector at the point p.

§ get_radius()

template<int dim>
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.

§ set_min_longitude()

template<int dim>
virtual void aspect::GeometryModel::internal::ChunkGeometry< dim >::set_min_longitude ( const double  p1_lon)
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.

§ clone()

template<int dim>
std::unique_ptr<Manifold<dim,dim> > aspect::GeometryModel::internal::ChunkGeometry< dim >::clone ( ) const
override

Return a copy of this manifold.

§ set_min_radius()

template<int dim>
void aspect::GeometryModel::internal::ChunkGeometry< dim >::set_min_radius ( const double  p1_rad)

Set the minimal radius of the domain.

§ set_max_depth()

template<int dim>
void aspect::GeometryModel::internal::ChunkGeometry< dim >::set_max_depth ( const double  p2_rad_minus_p1_rad)

Set the maximum depth of the domain.

§ pull_back_topo()

template<int dim>
virtual Point<dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::pull_back_topo ( const Point< dim > &  space_point) const
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.

§ push_forward_topo()

template<int dim>
virtual Point<dim> aspect::GeometryModel::internal::ChunkGeometry< dim >::push_forward_topo ( const Point< dim > &  chart_point) const
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.

Member Data Documentation

§ point1_lon

template<int dim>
double aspect::GeometryModel::internal::ChunkGeometry< dim >::point1_lon
private

The minimum longitude of the domain.

Definition at line 163 of file chunk.h.

§ inner_radius

template<int dim>
double aspect::GeometryModel::internal::ChunkGeometry< dim >::inner_radius
private

The inner radius of the domain.

Definition at line 168 of file chunk.h.

§ max_depth

template<int dim>
double aspect::GeometryModel::internal::ChunkGeometry< dim >::max_depth
private

The maximum depth not taking into account topography (outer radius minus inner radius).

Definition at line 174 of file chunk.h.

§ topo

template<int dim>
const InitialTopographyModel::Interface<dim>* aspect::GeometryModel::internal::ChunkGeometry< dim >::topo
private

A pointer to the topography model.

Definition at line 197 of file chunk.h.


The documentation for this class was generated from the following file: