Reference documentation for deal.II version 9.2.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, dim, dim > | |
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 () override=default |
Tensor< 1, 2 > | normal_vector (const Triangulation< 2, 2 >::face_iterator &face, const Point< 2 > &p) const |
Tensor< 1, 3 > | normal_vector (const Triangulation< 3, 3 >::face_iterator &face, const Point< 3 > &p) const |
void | get_normals_at_vertices (const Triangulation< 2, 2 >::face_iterator &face, FaceVertexNormals &n) const |
void | get_normals_at_vertices (const Triangulation< 3, 3 >::face_iterator &face, FaceVertexNormals &n) const |
Point< 1 > | get_new_point_on_face (const Triangulation< 1, 1 >::face_iterator &) const |
Point< 2 > | get_new_point_on_face (const Triangulation< 1, 2 >::face_iterator &) const |
Point< 3 > | get_new_point_on_face (const Triangulation< 1, 3 >::face_iterator &) const |
Point< 1 > | get_new_point_on_quad (const Triangulation< 1, 1 >::quad_iterator &) const |
Point< 2 > | get_new_point_on_quad (const Triangulation< 1, 2 >::quad_iterator &) const |
Point< 3 > | get_new_point_on_quad (const Triangulation< 1, 3 >::quad_iterator &) const |
Point< 3 > | get_new_point_on_hex (const Triangulation< 3, 3 >::hex_iterator &hex) 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 () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) 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 > | |
using | FaceVertexNormals = std::array< Tensor< 1, spacedim >, 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 74 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 141 of file composition_manifold.h.
|
overridevirtual |
Make a clone of this Manifold.
Implements Manifold< dim, spacedim >.
Definition at line 162 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, dim, dim >.
Definition at line 178 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, dim, dim >.
Definition at line 193 of file composition_manifold.h.
|
virtual |
Return the derivative of the composition of G after F.
Reimplemented from ChartManifold< dim, dim, dim >.
Definition at line 208 of file composition_manifold.h.
|
private |
The first ChartManifold.
Definition at line 119 of file composition_manifold.h.
|
private |
The second ChartManifold.
Definition at line 128 of file composition_manifold.h.