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 (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
 

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]

template<int dim>
aspect::GeometryModel::internal::ChunkGeometry< dim >::ChunkGeometry ( const InitialTopographyModel::Interface< dim > &  topography,
const double  min_longitude,
const double  min_radius,
const double  max_depth 
)

Constructor

§ ChunkGeometry() [2/2]

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

Copy constructor

Member Function Documentation

§ 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.

§ clone()

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

Return a copy of this manifold.

§ 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

§ topo

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

A pointer to the topography model.

Definition at line 137 of file chunk.h.

§ point1_lon

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

The minimum longitude of the domain.

Definition at line 142 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 147 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 153 of file chunk.h.


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