Public Member Functions | |
MappingC1 () | |
virtual Mapping< dim, spacedim > * | clone () const |
Protected Member Functions | |
virtual void | add_line_support_points (const typename Triangulation< dim >::cell_iterator &cell, std::vector< Point< dim > > &a) const |
virtual void | add_quad_support_points (const typename Triangulation< dim >::cell_iterator &cell, std::vector< Point< dim > > &a) const |
Mapping class that uses C1 (continuously differentiable) cubic mappings of the boundary. This class is built atop of MappingQ by simply determining the interpolation points for a cubic mapping of the boundary differently: MappingQ chooses them such that they interpolate the boundary, while this class chooses them such that the discretized boundary is globally continuously differentiable.
To use this class, make sure that the Boundary::get_normals_at_vertices
function is implemented for the users boundary object.
For more information about the spacedim
template parameter check the documentation of FiniteElement or the one of Triangulation.
Constructor. Pass the fixed degree 3
down to the base class, as a cubic mapping suffices to generate a continuous mapping of the boundary.
virtual Mapping<dim,spacedim>* MappingC1< dim, spacedim >::clone | ( | ) | const [virtual] |
Return a pointer to a copy of the present object. The caller of this copy then assumes ownership of it.
Reimplemented from MappingQ< dim, spacedim >.
virtual void MappingC1< dim, spacedim >::add_line_support_points | ( | const typename Triangulation< dim >::cell_iterator & | cell, | |
std::vector< Point< dim > > & | a | |||
) | const [protected, virtual] |
For dim=2,3
. Append the support points of all shape functions located on bounding lines to the vector a
. Points located on the line but on vertices are not included.
Needed by the compute_support_points_simple(laplace)
functions. For dim=1
this function is empty.
This function chooses the respective points not such that they are interpolating the boundary (as does the base class), but rather such that the resulting cubic mapping is a continuous one.
virtual void MappingC1< dim, spacedim >::add_quad_support_points | ( | const typename Triangulation< dim >::cell_iterator & | cell, | |
std::vector< Point< dim > > & | a | |||
) | const [protected, virtual] |
For dim=3
. Append the support points of all shape functions located on bounding faces (quads in 3d) to the vector a
. Points located on the line but on vertices are not included.
Needed by the compute_support_points_laplace
function. For dim=1
and 2 this function is empty.
This function chooses the respective points not such that they are interpolating the boundary (as does the base class), but rather such that the resulting cubic mapping is a continuous one.