Reference documentation for deal.II version Git 6eca4763ef 2021-01-16 21:10:54 -0500
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Namespaces | Classes | Functions
ReferenceCell Namespace Reference

Namespaces

 internal
 

Classes

class  Type
 

Functions

unsigned int get_dimension (const Type &type)
 
std::string to_string (const Type &type)
 
Type get_simplex (const unsigned int dim)
 
Type get_hypercube (const unsigned int dim)
 
Type n_vertices_to_type (const int dim, const unsigned int n_vertices)
 
template<int dim>
double d_linear_shape_function (const Type &reference_cell, const Point< dim > &xi, const unsigned int i)
 
template<int dim>
Tensor< 1, dim > d_linear_shape_function_gradient (const Type &reference_cell, const Point< dim > &xi, const unsigned int i)
 
template<int dim>
Tensor< 1, dim > unit_tangential_vectors (const Type &reference_cell, const unsigned int face_no, const unsigned int i)
 
template<int dim>
Tensor< 1, dim > unit_normal_vectors (const Type &reference_cell, const unsigned int face_no)
 
template<int dim, int spacedim>
void make_triangulation (const Type &reference_cell, Triangulation< dim, spacedim > &tria)
 
template<int dim, int spacedim>
const Mapping< dim, spacedim > & get_default_linear_mapping (const Type &reference_cell)
 
template<int dim, int spacedim>
const Mapping< dim, spacedim > & get_default_linear_mapping (const Triangulation< dim, spacedim > &triangulation)
 
template<int dim>
Quadrature< dim > get_gauss_type_quadrature (const Type &reference_cell, const unsigned n_points_1D)
 
template<typename T , std::size_t N>
unsigned char compute_orientation (const ReferenceCell::Type entity_type, const std::array< T, N > &vertices_0, const std::array< T, N > &vertices_1)
 
template<typename T , std::size_t N>
std::array< T, N > permute_according_orientation (const ReferenceCell::Type entity_type, const std::array< T, N > &vertices, const unsigned int orientation)
 
template void make_triangulation (const Type &reference_cell, Triangulation< 1, 1 > &tria)
 
template const Mapping< 1, 1 > & get_default_linear_mapping (const Triangulation< 1, 1 > &triangulation)
 
template void make_triangulation (const Type &reference_cell, Triangulation< 1, 2 > &tria)
 
template const Mapping< 1, 2 > & get_default_linear_mapping (const Triangulation< 1, 2 > &triangulation)
 
template void make_triangulation (const Type &reference_cell, Triangulation< 1, 3 > &tria)
 
template const Mapping< 1, 3 > & get_default_linear_mapping (const Triangulation< 1, 3 > &triangulation)
 
template void make_triangulation (const Type &reference_cell, Triangulation< 2, 2 > &tria)
 
template const Mapping< 2, 2 > & get_default_linear_mapping (const Triangulation< 2, 2 > &triangulation)
 
template void make_triangulation (const Type &reference_cell, Triangulation< 2, 3 > &tria)
 
template const Mapping< 2, 3 > & get_default_linear_mapping (const Triangulation< 2, 3 > &triangulation)
 
template void make_triangulation (const Type &reference_cell, Triangulation< 3, 3 > &tria)
 
template const Mapping< 3, 3 > & get_default_linear_mapping (const Triangulation< 3, 3 > &triangulation)
 

Detailed Description

A namespace for reference cells.

Function Documentation

◆ get_dimension()

unsigned int ReferenceCell::get_dimension ( const Type type)
inline

Return the dimension of the given reference-cell type type.

Definition at line 189 of file reference_cell.h.

◆ to_string()

std::string ReferenceCell::to_string ( const Type type)
inline

Convert the given reference cell type to a string.

Definition at line 214 of file reference_cell.h.

◆ get_simplex()

Type ReferenceCell::get_simplex ( const unsigned int  dim)
inline

Return the correct simplex reference cell type for the given dimension dim.

Definition at line 248 of file reference_cell.h.

◆ get_hypercube()

Type ReferenceCell::get_hypercube ( const unsigned int  dim)
inline

Return the correct hypercube reference cell type for the given dimension dim.

Definition at line 271 of file reference_cell.h.

◆ n_vertices_to_type()

Type ReferenceCell::n_vertices_to_type ( const int  dim,
const unsigned int  n_vertices 
)
inline

Retrieve the correct ReferenceCell::Type for a given structural dimension and number of vertices.

Definition at line 294 of file reference_cell.h.

◆ d_linear_shape_function()

template<int dim>
double ReferenceCell::d_linear_shape_function ( const Type reference_cell,
const Point< dim > &  xi,
const unsigned int  i 
)
inline

Compute the value of the \(i\)-th linear shape function at location \(\xi\) for a given reference-cell type.

Definition at line 325 of file reference_cell.h.

◆ d_linear_shape_function_gradient()

template<int dim>
Tensor<1, dim> ReferenceCell::d_linear_shape_function_gradient ( const Type reference_cell,
const Point< dim > &  xi,
const unsigned int  i 
)
inline

Compute the gradient of the \(i\)-th linear shape function at location \(\xi\) for a given reference-cell type.

Definition at line 357 of file reference_cell.h.

◆ unit_tangential_vectors()

template<int dim>
Tensor<1, dim> ReferenceCell::unit_tangential_vectors ( const Type reference_cell,
const unsigned int  face_no,
const unsigned int  i 
)
inline

Return i-th unit tangential vector of a face of the reference cell. The vectors are arranged such that the cross product between the two vectors returns the unit normal vector.

Definition at line 390 of file reference_cell.h.

◆ unit_normal_vectors()

template<int dim>
Tensor<1, dim> ReferenceCell::unit_normal_vectors ( const Type reference_cell,
const unsigned int  face_no 
)
inline

Return the unit normal vector of a face of the reference cell.

Definition at line 468 of file reference_cell.h.

◆ make_triangulation() [1/7]

template<int dim, int spacedim>
void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< dim, spacedim > &  tria 
)

Definition at line 34 of file reference_cell.cc.

◆ get_default_linear_mapping() [1/8]

template<int dim, int spacedim>
template const Mapping< 3, 3 > & ReferenceCell::get_default_linear_mapping ( const Type reference_cell)

Return a default linear mapping matching the given reference cell. If this reference cell is a hypercube, then the returned mapping is a MappingQ1; otherwise, it is an object of type MappingFE initialized with Simplex::FE_P (if the reference cell is a triangle and tetrahedron), with Simplex::FE_PyramidP (if the reference cell is a pyramid), or with Simplex::FE_WedgeP (if the reference cell is a wedge). In other words, the term "linear" in the name of the function has to be understood as \(d\)-linear (i.e., bilinear or trilinear) for some of the coordinate directions.

Definition at line 107 of file reference_cell.cc.

◆ get_default_linear_mapping() [2/8]

template<int dim, int spacedim>
const Mapping< dim, spacedim > & ReferenceCell::get_default_linear_mapping ( const Triangulation< dim, spacedim > &  triangulation)

Return a default linear mapping that works for the given triangulation. Internally, this function calls the function above for the reference cell used by the given triangulation, assuming that the triangulation uses only a single cell type. If the triangulation uses mixed cell types, then this function will trigger an exception.

Definition at line 145 of file reference_cell.cc.

◆ get_gauss_type_quadrature()

template<int dim>
template Quadrature< 3 > ReferenceCell::get_gauss_type_quadrature ( const Type reference_cell,
const unsigned  n_points_1D 
)

Return a Gauss-type quadrature matching the given reference cell(QGauss, Simplex::QGauss, Simplex::QGaussPyramid, Simplex::QGaussWedge) and n_points_1D the number of quadrature points in each direction (QGuass) or the indication of what polynomial degree to be integrated exactly.

Definition at line 165 of file reference_cell.cc.

◆ compute_orientation()

template<typename T , std::size_t N>
unsigned char ReferenceCell::compute_orientation ( const ReferenceCell::Type  entity_type,
const std::array< T, N > &  vertices_0,
const std::array< T, N > &  vertices_1 
)
inline

Determine the orientation of an entity of type described by its vertices var_1 relative to an entity described by var_0.

Definition at line 1794 of file reference_cell.h.

◆ permute_according_orientation()

template<typename T , std::size_t N>
std::array<T, N> ReferenceCell::permute_according_orientation ( const ReferenceCell::Type  entity_type,
const std::array< T, N > &  vertices,
const unsigned int  orientation 
)
inline

Inverse function of compute_orientation().

Definition at line 1894 of file reference_cell.h.

◆ make_triangulation() [2/7]

template void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< 1, 1 > &  tria 
)

◆ get_default_linear_mapping() [3/8]

template const Mapping< 1 , 1 >& ReferenceCell::get_default_linear_mapping ( const Triangulation< 1, 1 > &  triangulation)

◆ make_triangulation() [3/7]

template void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< 1, 2 > &  tria 
)

◆ get_default_linear_mapping() [4/8]

template const Mapping< 1 , 2 >& ReferenceCell::get_default_linear_mapping ( const Triangulation< 1, 2 > &  triangulation)

◆ make_triangulation() [4/7]

template void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< 1, 3 > &  tria 
)

◆ get_default_linear_mapping() [5/8]

template const Mapping< 1 , 3 >& ReferenceCell::get_default_linear_mapping ( const Triangulation< 1, 3 > &  triangulation)

◆ make_triangulation() [5/7]

template void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< 2, 2 > &  tria 
)

◆ get_default_linear_mapping() [6/8]

template const Mapping< 2 , 2 >& ReferenceCell::get_default_linear_mapping ( const Triangulation< 2, 2 > &  triangulation)

◆ make_triangulation() [6/7]

template void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< 2, 3 > &  tria 
)

◆ get_default_linear_mapping() [7/8]

template const Mapping< 2 , 3 >& ReferenceCell::get_default_linear_mapping ( const Triangulation< 2, 3 > &  triangulation)

◆ make_triangulation() [7/7]

template void ReferenceCell::make_triangulation ( const Type reference_cell,
Triangulation< 3, 3 > &  tria 
)

◆ get_default_linear_mapping() [8/8]

template const Mapping< 3 , 3 >& ReferenceCell::get_default_linear_mapping ( const Triangulation< 3, 3 > &  triangulation)