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)
 
virtual Point< 3 > pull_back (const Point< 3 > &space_point) const
 
virtual Point< 2 > pull_back (const Point< 2 > &space_point) const
 
virtual Point< 3 > push_forward (const Point< 3 > &chart_point) const
 
- 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
 
- Public Member Functions inherited from Manifold< dim, spacedim >
virtual ~Manifold () override=default
 
virtual std::unique_ptr< Manifold< dim, spacedim > > clone () const=0
 
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_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
 
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
 
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 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_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
 
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
 
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
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
std::enable_if< std::is_same< ConstCharStar, const char *>::value >::type subscribe (std::atomic< bool > *const validity, ConstCharStar identifier=nullptr) const
 
void subscribe (std::atomic< bool > *const validity, const char *&&identifier) const=delete
 
void unsubscribe (std::atomic< bool > *const validity, const char *identifier=nullptr) const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
void serialize (Archive &ar, const unsigned int version)
 

Private Member Functions

Point< 3 > push_forward_ellipsoid (const Point< 3 > &phi_theta_d, const double semi_major_axis_a, const double eccentricity) const
 
Point< 3 > pull_back_ellipsoid (const Point< 3 > &x, const double semi_major_axis_a, const double eccentricity) const
 
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
 

Additional Inherited Members

- Public Types inherited from Manifold< dim, spacedim >
typedef std::array< Tensor< 1, spacedim >, GeometryInfo< dim >::vertices_per_face > FaceVertexNormals
 
- Static Public Member Functions inherited from Subscriptor
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::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>
virtual Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::pull_back ( const Point< 3 > &  space_point) const
virtual

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>
virtual Point<3> aspect::GeometryModel::EllipsoidalChunk< dim >::EllipsoidalChunkGeometry::push_forward ( const Point< 3 > &  chart_point) const
virtual

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.

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

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

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

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

§ 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 145 of file ellipsoidal_chunk.h.

§ eccentricity

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

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

§ bottom_depth

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

Definition at line 148 of file ellipsoidal_chunk.h.

§ corners

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

Definition at line 149 of file ellipsoidal_chunk.h.

§ topography

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

Definition at line 150 of file ellipsoidal_chunk.h.


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