Reference documentation for deal.II version 9.0.0
|
#include <deal.II/grid/composition_manifold.h>
Public Member Functions | |
CompositionManifold (const ChartManifold< dim1, intermediate_dim, chartdim > &F, const ChartManifold< dim2, spacedim, intermediate_dim > &G) | |
virtual std::unique_ptr< Manifold< dim, spacedim > > | clone () const override |
virtual Point< chartdim > | pull_back (const Point< spacedim > &space_point) const |
virtual Point< spacedim > | push_forward (const Point< chartdim > &chart_point) const |
virtual DerivativeForm< 1, chartdim, spacedim > | push_forward_gradient (const Point< chartdim > &chart_point) const |
Public Member Functions inherited from ChartManifold< dim, spacedim, chartdim > | |
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 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 ()=default |
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 () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (const char *identifier=nullptr) const |
void | unsubscribe (const char *identifier=nullptr) const |
unsigned int | n_subscriptions () const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
SmartPointer< const ChartManifold< dim1, intermediate_dim, chartdim >, CompositionManifold< dim, spacedim, chartdim, dim1, dim2, intermediate_dim > > | F |
SmartPointer< const ChartManifold< dim2, spacedim, intermediate_dim >, CompositionManifold< dim, spacedim, chartdim, dim1, dim2, intermediate_dim > > | G |
Additional Inherited Members | |
Public Types inherited from Manifold< dim, spacedim > | |
typedef Tensor< 1, spacedim > | FaceVertexNormals[GeometryInfo< dim >::vertices_per_face] |
Static Public Member Functions inherited from Subscriptor | |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
CompositionManifold. Take two ChartManifold objects, and make their composition. The CompositionManifold object is a ChartManifold going from the chart of the first ChartManifold to the embedding space of the second ChartManifold. If the first ChartManifold is periodic, so is the resulting ChartManifold, with the same periodicity. Periodicity on the second ChartManifold is not allowed, and the constructor will throw an exception if the second Manifold is periodic.
This class only works for dim <= chartdim <= intermediate_spacedim <= spacedim. If you try to instantiate anything different, an Exception will be thrown in one of the ChartManifold classes that violates this condition.
Given the ChartManifold F and the ChartManifold G, this class represents the composition of G after F.
The template parameters have the following meaning:
dim | The dimension of the resulting ChartManifold |
spacedim | The space dimension of the resulting ChartManifold |
chartdim | The chart dimension of the resulting ChartManifold |
intermediate_dim | The space dimension of the first ChartManifold |
dim1 | The dimension of the first ChartManifold, which coincides also with the chart dimension of the second ChartManifold |
dim2 | The dimension of the second ChartManifold |
Definition at line 69 of file composition_manifold.h.
CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >::CompositionManifold | ( | const ChartManifold< dim1, intermediate_dim, chartdim > & | F, |
const ChartManifold< dim2, spacedim, intermediate_dim > & | G | ||
) |
Construct the composition of the two given manifolds.
Definition at line 131 of file composition_manifold.h.
|
overridevirtual |
Make a clone of this Manifold.
Implements Manifold< dim, spacedim >.
Definition at line 147 of file composition_manifold.h.
|
virtual |
Pull back the given point in spacedim to the Euclidean chartdim dimensional space. This function calls the pull_back() function of G, and then the pull_back() function of F.
Implements ChartManifold< dim, spacedim, chartdim >.
Definition at line 156 of file composition_manifold.h.
|
virtual |
Push forward the chartdim dimensional point to a spacedim Euclidean point. The function calls first the push_forward() of F, and then the push_forward() of G.
Implements ChartManifold< dim, spacedim, chartdim >.
Definition at line 166 of file composition_manifold.h.
|
virtual |
Return the derivative of the composition of G after F.
Reimplemented from ChartManifold< dim, spacedim, chartdim >.
Definition at line 176 of file composition_manifold.h.
|
private |
The first ChartManifold.
Definition at line 115 of file composition_manifold.h.
|
private |
The second ChartManifold.
Definition at line 122 of file composition_manifold.h.