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

Public Member Functions

 EllipsoidalChunkGeometry ()
 
 EllipsoidalChunkGeometry (const EllipsoidalChunkGeometry &other)
 
void initialize (const InitialTopographyModel::Interface< dim > *topography)
 
void set_manifold_parameters (const double para_semi_major_axis_a, const double para_eccentricity, const double para_semi_minor_axis_b, const double para_bottom_depth, const std::vector< Point< 2 >> &para_corners)
 
Point< 3 > pull_back (const Point< 3 > &space_point) const override
 
virtual Point< 2 > pull_back (const Point< 2 > &space_point) const
 
Point< 3 > push_forward (const Point< 3 > &chart_point) const override
 
Point< 3 > pull_back_ellipsoid (const Point< 3 > &x, const double semi_major_axis_a, const double eccentricity) const
 
Point< 3 > push_forward_ellipsoid (const Point< 3 > &phi_theta_d, const double semi_major_axis_a, const double eccentricity) const
 
std::unique_ptr< Manifold< dim, 3 > > clone () const override
 

Private Member Functions

Point< 3 > push_forward_topography (const Point< 3 > &phi_theta_d_hat) const
 
Point< 3 > pull_back_topography (const Point< 3 > &phi_theta_d) const
 

Private Attributes

double semi_major_axis_a
 
double eccentricity
 
double semi_minor_axis_b
 
double bottom_depth
 
std::vector< Point< 2 > > corners
 
const InitialTopographyModel::Interface< dim > * topography
 

Detailed Description

template<int dim>
class aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry

A class which describes the manifold.

Definition at line 52 of file ellipsoidal_chunk.h.

Constructor & Destructor Documentation

§ EllipsoidalChunkGeometry() [1/2]

template<int dim>
aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::EllipsoidalChunkGeometry ( )

Constructor

§ EllipsoidalChunkGeometry() [2/2]

template<int dim>
aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::EllipsoidalChunkGeometry ( const EllipsoidalChunkGeometry other)

Copy constructor

Member Function Documentation

§ initialize()

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

An initialization function necessary to make sure that the manifold has access to the topography plugins.

§ set_manifold_parameters()

template<int dim>
void aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::set_manifold_parameters ( const double  para_semi_major_axis_a,
const double  para_eccentricity,
const double  para_semi_minor_axis_b,
const double  para_bottom_depth,
const std::vector< Point< 2 >> &  para_corners 
)

Sets several parameters for the ellipsoidal manifold object.

§ pull_back() [1/2]

template<int dim>
Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::pull_back ( const Point< 3 > &  space_point) const
override

The deal.ii pull back function in 3d. This function receives cartesian points x,y and z and returns spherical/ellipsoidal coordinates phi, theta and depth, also accounting for the topography.

§ pull_back() [2/2]

template<int dim>
virtual Point<2> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::pull_back ( const Point< 2 > &  space_point) const
virtual

The deal.ii pull back function in 2d. This function should not be used, until the TODO in the cc file has been fixed.

§ push_forward()

template<int dim>
Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::push_forward ( const Point< 3 > &  chart_point) const
override

The deal.ii push forward function in 3d. This function receives spherical/ellipsoidal coordinates phi, theta and depth and returns cartesian points x,y and z, also accounting for the topography.

§ pull_back_ellipsoid()

template<int dim>
Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::pull_back_ellipsoid ( const Point< 3 > &  x,
const double  semi_major_axis_a,
const double  eccentricity 
) const

This function does the actual pull back from the ellipsoid. For the equation details, please see deal.ii step 53.

§ push_forward_ellipsoid()

template<int dim>
Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::push_forward_ellipsoid ( const Point< 3 > &  phi_theta_d,
const double  semi_major_axis_a,
const double  eccentricity 
) const

This function does the actual push forward to the ellipsoid. For the equation details, please see deal.ii step 53.

§ clone()

template<int dim>
std::unique_ptr<Manifold<dim,3> > aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::clone ( ) const
override

Return a copy of this manifold.

§ push_forward_topography()

template<int dim>
Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::push_forward_topography ( const Point< 3 > &  phi_theta_d_hat) const
private

This function adds topography to the cartesian coordinates. For the equation details, please see deal.ii step 53.

§ pull_back_topography()

template<int dim>
Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::pull_back_topography ( const Point< 3 > &  phi_theta_d) const
private

This function removes topography from the cartesian coordinates. For the equation details, please see deal.ii step 53.

Member Data Documentation

§ semi_major_axis_a

template<int dim>
double aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::semi_major_axis_a
private

Definition at line 140 of file ellipsoidal_chunk.h.

§ eccentricity

template<int dim>
double aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::eccentricity
private

Definition at line 141 of file ellipsoidal_chunk.h.

§ semi_minor_axis_b

template<int dim>
double aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::semi_minor_axis_b
private

Definition at line 142 of file ellipsoidal_chunk.h.

§ bottom_depth

template<int dim>
double aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::bottom_depth
private

Definition at line 143 of file ellipsoidal_chunk.h.

§ corners

template<int dim>
std::vector<Point<2> > aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::corners
private

Definition at line 144 of file ellipsoidal_chunk.h.

§ topography

template<int dim>
const InitialTopographyModel::Interface<dim>* aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::topography
private

Definition at line 145 of file ellipsoidal_chunk.h.


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