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

Public Member Functions

 SphericalManifoldWithTopography (const InitialTopographyModel::Interface< dim > &topography, const double inner_radius, const double outer_radius)
 
 SphericalManifoldWithTopography (const SphericalManifoldWithTopography< dim > &)=default
 
virtual std::unique_ptr< Manifold< dim, dim > > clone () const override
 
Point< dim > push_forward_from_sphere (const Point< dim > &p) const
 
Point< dim > pull_back_to_sphere (const Point< dim > &p) const
 
virtual Point< dim > get_intermediate_point (const Point< dim > &p1, const Point< dim > &p2, const double w) const override
 
virtual Tensor< 1, dim > get_tangent_vector (const Point< dim > &x1, const Point< dim > &x2) const override
 
virtual Tensor< 1, dim > normal_vector (const typename Triangulation< dim, dim >::face_iterator &face, const Point< dim > &p) const override
 
virtual void get_normals_at_vertices (const typename Triangulation< dim, dim >::face_iterator &face, typename Manifold< dim, dim >::FaceVertexNormals &face_vertex_normals) const override
 
virtual void get_new_points (const ArrayView< const Point< dim >> &surrounding_points, const Table< 2, double > &weights, ArrayView< Point< dim >> new_points) const override
 
virtual Point< dim > get_new_point (const ArrayView< const Point< dim >> &vertices, const ArrayView< const double > &weights) const override
 
- Public Member Functions inherited from aspect::SphericalManifold< dim >
 SphericalManifold (const Point< dim > center=Point< dim >())
 

Private Member Functions

double topography_for_point (const Point< dim > &x_y_z) const
 

Private Attributes

const InitialTopographyModel::Interface< dim > * topo
 
const double R0
 
const double R1
 

Additional Inherited Members

- Public Attributes inherited from aspect::SphericalManifold< dim >
const Point< dim > center
 

Detailed Description

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

A description of a manifold that describes a spherical shell with overlaid topography.

Definition at line 41 of file spherical_shell.h.

Constructor & Destructor Documentation

§ SphericalManifoldWithTopography() [1/2]

template<int dim>
aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::SphericalManifoldWithTopography ( const InitialTopographyModel::Interface< dim > &  topography,
const double  inner_radius,
const double  outer_radius 
)

Constructor.

§ SphericalManifoldWithTopography() [2/2]

Copy constructor.

Member Function Documentation

§ clone()

template<int dim>
virtual std::unique_ptr<Manifold<dim, dim> > aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::clone ( ) const
overridevirtual

Make a clone of this Manifold object.

Reimplemented from aspect::SphericalManifold< dim >.

§ push_forward_from_sphere()

template<int dim>
Point<dim> aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::push_forward_from_sphere ( const Point< dim > &  p) const

Given a point in the undeformed spherical geometry, push it forward to the corresponding point in the sphere with surface topography.

§ pull_back_to_sphere()

template<int dim>
Point<dim> aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::pull_back_to_sphere ( const Point< dim > &  p) const

Given a point in the deformed spherical geometry with topography, pull it back to the corresponding point in the undeformed sphere.

§ get_intermediate_point()

template<int dim>
virtual Point<dim> aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::get_intermediate_point ( const Point< dim > &  p1,
const Point< dim > &  p2,
const double  w 
) const
overridevirtual

Given any two points in space, first project them on the surface of a sphere with unit radius, then connect them with a geodesic and find the intermediate point, and finally rescale the final radius so that the resulting one is the convex combination of the starting radii.

Reimplemented from aspect::SphericalManifold< dim >.

§ get_tangent_vector()

template<int dim>
virtual Tensor<1, dim> aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::get_tangent_vector ( const Point< dim > &  x1,
const Point< dim > &  x2 
) const
overridevirtual

Compute the derivative of the get_intermediate_point() function with parameter w equal to zero.

Reimplemented from aspect::SphericalManifold< dim >.

§ normal_vector()

template<int dim>
virtual Tensor<1, dim> aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::normal_vector ( const typename Triangulation< dim, dim >::face_iterator &  face,
const Point< dim > &  p 
) const
overridevirtual

Reimplemented from aspect::SphericalManifold< dim >.

§ get_normals_at_vertices()

template<int dim>
virtual void aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::get_normals_at_vertices ( const typename Triangulation< dim, dim >::face_iterator &  face,
typename Manifold< dim, dim >::FaceVertexNormals &  face_vertex_normals 
) const
overridevirtual

Compute the normal vectors to the boundary at each vertex.

Reimplemented from aspect::SphericalManifold< dim >.

§ get_new_points()

template<int dim>
virtual void aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::get_new_points ( const ArrayView< const Point< dim >> &  surrounding_points,
const Table< 2, double > &  weights,
ArrayView< Point< dim >>  new_points 
) const
overridevirtual

Compute a new set of points that interpolate between the given points surrounding_points. weights is a table with as many columns as surrounding_points.size(). The number of rows in weights must match the length of new_points.

This function is optimized to perform on a collection of new points, by collecting operations that are not dependent on the weights outside of the loop over all new points.

The implementation does not allow for surrounding_points and new_points to point to the same array, so make sure to pass different objects into the function.

Reimplemented from aspect::SphericalManifold< dim >.

§ get_new_point()

template<int dim>
virtual Point<dim> aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::get_new_point ( const ArrayView< const Point< dim >> &  vertices,
const ArrayView< const double > &  weights 
) const
overridevirtual

Return a point on the spherical manifold which is intermediate with respect to the surrounding points.

Reimplemented from aspect::SphericalManifold< dim >.

§ topography_for_point()

template<int dim>
double aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::topography_for_point ( const Point< dim > &  x_y_z) const
private

Return the topography of the surface directly above the point given by the coordinates stored in the argument.

Member Data Documentation

§ topo

A pointer to the topography model.

Definition at line 145 of file spherical_shell.h.

§ R0

template<int dim>
const double aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::R0
private

Inner and outer radii of the spherical shell.

Definition at line 150 of file spherical_shell.h.

§ R1

template<int dim>
const double aspect::GeometryModel::internal::SphericalManifoldWithTopography< dim >::R1
private

Definition at line 150 of file spherical_shell.h.


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