ASPECT
Public Member Functions | Public Attributes | 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 std::shared_ptr< 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
 
- Public Member Functions inherited from ChartManifold< dim, 3, 3 >
 ChartManifold (const Tensor< 1, chartdim > &periodicity=Tensor< 1, chartdim >())
 
virtual ~ChartManifold () override=default
 
virtual Point< spacedim > get_intermediate_point (const Point< spacedim > &p1, const Point< spacedim > &p2, const double w) const override
 
virtual Point< spacedim > get_new_point (const ArrayView< const Point< spacedim > > &surrounding_points, const ArrayView< const double > &weights) const override
 
virtual void get_new_points (const ArrayView< const Point< spacedim > > &surrounding_points, const Table< 2, double > &weights, ArrayView< Point< spacedim > > new_points) const override
 
virtual Point< chartdim > pull_back (const Point< spacedim > &space_point) const =0
 
virtual Point< spacedim > push_forward (const Point< chartdim > &chart_point) const =0
 
virtual DerivativeForm< 1, chartdim, spacedim > push_forward_gradient (const Point< chartdim > &chart_point) const
 
virtual Tensor< 1, spacedim > get_tangent_vector (const Point< spacedim > &x1, const Point< spacedim > &x2) const override
 
const Tensor< 1, chartdim > & get_periodicity () const
 
void serialize (Archive &ar, const unsigned int version)
 
virtual Point< spacedim > project_to_manifold (const ArrayView< const Point< spacedim > > &surrounding_points, const Point< spacedim > &candidate) const
 
virtual Point< spacedim > project_to_manifold (const ArrayView< const Point< spacedim > > &surrounding_points, const Point< spacedim > &candidate) const
 
virtual Point< spacedim > get_new_point_on_line (const typename Triangulation< dim, spacedim >::line_iterator &line) const
 
virtual Point< spacedim > get_new_point_on_line (const typename Triangulation< dim, spacedim >::line_iterator &line) const
 
virtual Point< spacedim > get_new_point_on_quad (const typename Triangulation< dim, spacedim >::quad_iterator &quad) const
 
virtual Point< spacedim > get_new_point_on_quad (const typename Triangulation< dim, spacedim >::quad_iterator &quad) const
 
virtual Point< spacedim > get_new_point_on_hex (const typename Triangulation< dim, spacedim >::hex_iterator &hex) const
 
virtual Point< spacedim > get_new_point_on_hex (const typename Triangulation< dim, spacedim >::hex_iterator &hex) const
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
Point< spacedim > get_new_point_on_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
Point< spacedim > get_new_point_on_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
virtual Tensor< 1, spacedim > normal_vector (const typename Triangulation< dim, spacedim >::face_iterator &face, const Point< spacedim > &p) const
 
virtual Tensor< 1, spacedim > normal_vector (const typename Triangulation< dim, spacedim >::face_iterator &face, const Point< spacedim > &p) const
 
virtual void get_normals_at_vertices (const typename Triangulation< dim, spacedim >::face_iterator &face, FaceVertexNormals &face_vertex_normals) const
 
virtual void get_normals_at_vertices (const typename Triangulation< dim, spacedim >::face_iterator &face, FaceVertexNormals &face_vertex_normals) const
 
unsigned int n_subscriptions () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from Manifold< int dim, int spacedim >
virtual ~Manifold () override=default
 
void serialize (Archive &ar, const unsigned int version)
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
Point< spacedim > get_new_point_on_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
Point< spacedim > get_new_point_on_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from EnableObserverPointer
 EnableObserverPointer ()
 
 EnableObserverPointer (const EnableObserverPointer &)
 
 EnableObserverPointer (EnableObserverPointer &&) noexcept
 
virtual ~EnableObserverPointer ()
 
EnableObserverPointeroperator= (const EnableObserverPointer &)
 
EnableObserverPointeroperator= (EnableObserverPointer &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Public Attributes

const std::shared_ptr< const InitialTopographyModel::Interface< dim > > topography
 

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 double semi_major_axis_a
 
const double eccentricity
 
const double semi_minor_axis_b
 
const double bottom_depth
 
const std::vector< Point< 2 > > corners
 

Additional Inherited Members

- Public Types inherited from ChartManifold< dim, 3, 3 >
typedef std::array< Tensor< 1, spacedim >, GeometryInfo< dim >::vertices_per_face > FaceVertexNormals
 
- Public Types inherited from Manifold< int dim, int spacedim >
typedef std::array< Tensor< 1, spacedim >, GeometryInfo< dim >::vertices_per_face > FaceVertexNormals
 
- Static Public Member Functions inherited from ChartManifold< dim, 3, 3 >
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Static Public Member Functions inherited from Manifold< int dim, int spacedim >
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Static Public Member Functions inherited from EnableObserverPointer
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

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

A class which describes the manifold.

Definition at line 41 of file ellipsoidal_chunk.h.

Constructor & Destructor Documentation

◆ EllipsoidalChunkGeometry() [1/2]

template<int dim>
aspect::GeometryModel::internal::EllipsoidalChunkGeometry< dim >::EllipsoidalChunkGeometry ( const std::shared_ptr< 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
overridevirtual

Return a copy of this manifold.

Implements ChartManifold< dim, 3, 3 >.

◆ 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 std::shared_ptr<const InitialTopographyModel::Interface<dim> > aspect::GeometryModel::internal::EllipsoidalChunkGeometry< dim >::topography

A pointer to the topography model.

Definition at line 106 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 121 of file ellipsoidal_chunk.h.

◆ eccentricity

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

Definition at line 122 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 123 of file ellipsoidal_chunk.h.

◆ bottom_depth

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

Definition at line 124 of file ellipsoidal_chunk.h.

◆ corners

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

Definition at line 125 of file ellipsoidal_chunk.h.


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