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

Public Member Functions

 EllipsoidalChunkGeometry (const InitialTopographyModel::Interface< dim > &topography, 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)
 
 EllipsoidalChunkGeometry (const EllipsoidalChunkGeometry &other)=default
 
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

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

Detailed Description

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

A class which describes the manifold.

Definition at line 43 of file ellipsoidal_chunk.h.

Constructor & Destructor Documentation

§ EllipsoidalChunkGeometry() [1/2]

template<int dim>
aspect::GeometryModel::internal::EllipsoidalChunkGeometry< dim >::EllipsoidalChunkGeometry ( const InitialTopographyModel::Interface< dim > &  topography,
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 
)

Constructor

§ EllipsoidalChunkGeometry() [2/2]

Copy constructor

Member Function Documentation

§ pull_back() [1/2]

template<int dim>
Point<3> aspect::GeometryModel::internal::EllipsoidalChunkGeometry< dim >::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::internal::EllipsoidalChunkGeometry< dim >::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::internal::EllipsoidalChunkGeometry< dim >::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::internal::EllipsoidalChunkGeometry< dim >::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::internal::EllipsoidalChunkGeometry< dim >::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::internal::EllipsoidalChunkGeometry< dim >::clone ( ) const
override

Return a copy of this manifold.

§ push_forward_topography()

template<int dim>
Point<3> aspect::GeometryModel::internal::EllipsoidalChunkGeometry< dim >::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::internal::EllipsoidalChunkGeometry< dim >::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

§ topography

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

A pointer to the topography model.

Definition at line 121 of file ellipsoidal_chunk.h.

§ semi_major_axis_a

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

Definition at line 123 of file ellipsoidal_chunk.h.

§ eccentricity

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

Definition at line 124 of file ellipsoidal_chunk.h.

§ semi_minor_axis_b

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

Definition at line 125 of file ellipsoidal_chunk.h.

§ bottom_depth

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

Definition at line 126 of file ellipsoidal_chunk.h.

§ corners

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

Definition at line 127 of file ellipsoidal_chunk.h.


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