Reference documentation for deal.II version Git aa2075a 2017-04-21 00:33:12 +0200
Public Member Functions | Private Attributes | List of all members
CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 > Class Template Reference

#include <deal.II/grid/composition_manifold.h>

Inheritance diagram for CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >:
[legend]

Public Member Functions

 CompositionManifold (const ChartManifold< dim1, intermediate_dim, chartdim > &F, const ChartManifold< dim2, spacedim, intermediate_dim > &G)
 
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 ()
 
virtual Point< spacedim > get_new_point (const Quadrature< spacedim > &quad) const 1
 
virtual Point< spacedim > get_new_point (const std::vector< Point< spacedim > > &surrounding_points, const std::vector< double > &weights) const
 
virtual void add_new_points (const std::vector< Point< spacedim > > &surrounding_points, const Table< 2, double > &weights, std::vector< Point< spacedim > > &new_points) const
 
virtual Tensor< 1, spacedim > get_tangent_vector (const Point< spacedim > &x1, const Point< spacedim > &x2) const
 
const Tensor< 1, chartdim > & get_periodicity () const
 
- Public Member Functions inherited from Manifold< dim, spacedim >
virtual ~Manifold ()
 
virtual Point< spacedim > get_intermediate_point (const Point< spacedim > &p1, const Point< spacedim > &p2, const double w) const
 
virtual Point< spacedim > project_to_manifold (const std::vector< 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 &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
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, char *arg2, std::string &arg3)
 
static::ExceptionBase & ExcNoSubscriber (char *arg1, char *arg2)
 

Detailed Description

template<int dim, int spacedim = dim, int chartdim = dim, int intermediate_dim = dim, int dim1 = dim, int dim2 = dim>
class CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >

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 axception 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:

Template Parameters
dimThe dimension of the resulting ChartManifold
spacedimThe space dimension of the resulting ChartManifold
chartdimThe chart dimension of the resulting ChartManifold
intermediate_dimThe space dimension of the first ChartManifold
dim1The dimension of the first ChartManifold, which coincides also with the chart dimension of the second ChartManifold
dim2The dimension of the second ChartManifold
Author
Luca Heltai, Timo Heister, 2016

Definition at line 68 of file composition_manifold.h.

Constructor & Destructor Documentation

template<int dim, int spacedim, int chartdim, int intermediate_dim, int dim1, int dim2>
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 125 of file composition_manifold.h.

Member Function Documentation

template<int dim, int spacedim, int chartdim, int intermediate_dim, int dim1, int dim2>
Point< chartdim > CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >::pull_back ( const Point< spacedim > &  space_point) const
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 142 of file composition_manifold.h.

template<int dim, int spacedim, int chartdim, int intermediate_dim, int dim1, int dim2>
Point< spacedim > CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >::push_forward ( const Point< chartdim > &  chart_point) const
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_foward() of G.

Implements ChartManifold< dim, spacedim, chartdim >.

Definition at line 152 of file composition_manifold.h.

template<int dim, int spacedim, int chartdim, int intermediate_dim, int dim1, int dim2>
DerivativeForm< 1, chartdim, spacedim > CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >::push_forward_gradient ( const Point< chartdim > &  chart_point) const
virtual

Return the derivative of the composition of G after F.

Reimplemented from ChartManifold< dim, spacedim, chartdim >.

Definition at line 162 of file composition_manifold.h.

Member Data Documentation

template<int dim, int spacedim = dim, int chartdim = dim, int intermediate_dim = dim, int dim1 = dim, int dim2 = dim>
SmartPointer<const ChartManifold<dim1, intermediate_dim, chartdim>, CompositionManifold<dim,spacedim,chartdim,dim1,dim2,intermediate_dim> > CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >::F
private

The first ChartManifold.

Definition at line 109 of file composition_manifold.h.

template<int dim, int spacedim = dim, int chartdim = dim, int intermediate_dim = dim, int dim1 = dim, int dim2 = dim>
SmartPointer<const ChartManifold<dim2, spacedim, intermediate_dim>, CompositionManifold<dim,spacedim,chartdim,dim1,dim2,intermediate_dim> > CompositionManifold< dim, spacedim, chartdim, intermediate_dim, dim1, dim2 >::G
private

The second ChartManifold.

Definition at line 116 of file composition_manifold.h.


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