![]() |
Reference documentation for deal.II version 8.1.0
|
#include <fe_base.h>
Public Types | |
enum | Conformity { unknown = 0x00, L2 = 0x01, Hcurl = 0x02, Hdiv = 0x04, H1 = Hcurl | Hdiv, H2 = 0x0e } |
Public Member Functions | |
FiniteElementData () | |
FiniteElementData (const std::vector< unsigned int > &dofs_per_object, const unsigned int n_components, const unsigned int degree, const Conformity conformity=unknown, const unsigned int n_blocks=numbers::invalid_unsigned_int) | |
unsigned int | n_dofs_per_vertex () const |
unsigned int | n_dofs_per_line () const |
unsigned int | n_dofs_per_quad () const |
unsigned int | n_dofs_per_hex () const |
unsigned int | n_dofs_per_face () const |
unsigned int | n_dofs_per_cell () const |
template<int structdim> | |
unsigned int | n_dofs_per_object () const |
unsigned int | n_components () const |
unsigned int | n_blocks () const |
const BlockIndices & | block_indices () const |
bool | is_primitive () const |
unsigned int | tensor_degree () const |
bool | conforms (const Conformity) const |
bool | operator== (const FiniteElementData &) const |
Public Attributes | |
const unsigned int | dofs_per_vertex |
const unsigned int | dofs_per_line |
const unsigned int | dofs_per_quad |
const unsigned int | dofs_per_hex |
const unsigned int | first_line_index |
const unsigned int | first_quad_index |
const unsigned int | first_hex_index |
const unsigned int | first_face_line_index |
const unsigned int | first_face_quad_index |
const unsigned int | dofs_per_face |
const unsigned int | dofs_per_cell |
const unsigned int | components |
const unsigned int | degree |
const Conformity | conforming_space |
BlockIndices | block_indices_data |
Static Public Attributes | |
static const unsigned int | dimension = dim |
Protected Member Functions | |
void | set_primitivity (const bool value) |
Private Attributes | |
bool | cached_primitivity |
Dimension independent data for finite elements. See the derived class FiniteElement class for information on its use. All its data are available to the implementation in a concrete finite element class.
FiniteElementData< dim >::FiniteElementData | ( | ) |
Default constructor. Constructs an element with no dofs. Checking n_dofs_per_cell() is therefore a good way to check if something went wrong.
FiniteElementData< dim >::FiniteElementData | ( | const std::vector< unsigned int > & | dofs_per_object, |
const unsigned int | n_components, | ||
const unsigned int | degree, | ||
const Conformity | conformity = unknown , |
||
const unsigned int | n_blocks = numbers::invalid_unsigned_int |
||
) |
Constructor, computing all necessary values from the distribution of dofs to geometrical objects.
dofs_per_object | Number of dofs on geometrical objects for each dimension. In this vector, entry 0 refers to dofs on vertices, entry 1 on lines and so on. Its length must be dim+1. |
n_components | Number of vector components of the element. |
degree | Maximal polynomial degree in a single direction. |
conformity | The finite element space has continuity of this Sobolev space. |
n_blocks | obsolete and ignored. |
unsigned int FiniteElementData< dim >::n_dofs_per_vertex | ( | ) | const |
Number of dofs per vertex.
unsigned int FiniteElementData< dim >::n_dofs_per_line | ( | ) | const |
Number of dofs per line. Not including dofs on lower dimensional objects.
unsigned int FiniteElementData< dim >::n_dofs_per_quad | ( | ) | const |
Number of dofs per quad. Not including dofs on lower dimensional objects.
unsigned int FiniteElementData< dim >::n_dofs_per_hex | ( | ) | const |
Number of dofs per hex. Not including dofs on lower dimensional objects.
unsigned int FiniteElementData< dim >::n_dofs_per_face | ( | ) | const |
Number of dofs per face, accumulating degrees of freedom of all lower dimensional objects.
unsigned int FiniteElementData< dim >::n_dofs_per_cell | ( | ) | const |
Number of dofs per cell, accumulating degrees of freedom of all lower dimensional objects.
unsigned int FiniteElementData< dim >::n_dofs_per_object | ( | ) | const |
Return the number of degrees per structdim-dimensional object. For structdim==0, the function therefore returns dofs_per_vertex, for structdim==1 dofs_per_line, etc. This function is mostly used to allow some template trickery for functions that should work on all sorts of objects without wanting to use the different names (vertex, line, ...) associated with these objects.
unsigned int FiniteElementData< dim >::n_components | ( | ) | const |
Number of components. See the glossary for more information.
unsigned int FiniteElementData< dim >::n_blocks | ( | ) | const |
Number of blocks. See the glossary for more information.
const BlockIndices& FiniteElementData< dim >::block_indices | ( | ) | const |
Detailed information on block sizes.
bool FiniteElementData< dim >::is_primitive | ( | ) | const |
Return whether the entire finite element is primitive, in the sense that all its shape functions are primitive. If the finite element is scalar, then this is always the case.
Since this is an extremely common operation, the result is cached in the cached_primitivity variable which is computed in the constructor.
unsigned int FiniteElementData< dim >::tensor_degree | ( | ) | const |
Maximal polynomial degree of a shape function in a single coordinate direction.
This function can be used to determine the optimal quadrature rule.
bool FiniteElementData< dim >::conforms | ( | const Conformity | ) | const |
Test whether a finite element space conforms to a certain Sobolev space.
bool FiniteElementData< dim >::operator== | ( | const FiniteElementData< dim > & | ) | const |
Comparison operator.
|
protected |
Set the primitivity of the element. This is usually done by the constructor of a derived class. See primitive for details.
|
static |
const unsigned int FiniteElementData< dim >::dofs_per_vertex |
const unsigned int FiniteElementData< dim >::dofs_per_line |
const unsigned int FiniteElementData< dim >::dofs_per_quad |
const unsigned int FiniteElementData< dim >::dofs_per_hex |
const unsigned int FiniteElementData< dim >::first_line_index |
const unsigned int FiniteElementData< dim >::first_quad_index |
const unsigned int FiniteElementData< dim >::first_hex_index |
const unsigned int FiniteElementData< dim >::first_face_line_index |
const unsigned int FiniteElementData< dim >::first_face_quad_index |
const unsigned int FiniteElementData< dim >::dofs_per_face |
const unsigned int FiniteElementData< dim >::dofs_per_cell |
const unsigned int FiniteElementData< dim >::components |
Number of vector components of this finite element, and dimension of the image space. For vector-valued finite elements (i.e. when this number is greater than one), the number of vector components is in many cases equal to the number of base elements glued together with the help of the FESystem class. However, for elements like the Nedelec element, the number is greater than one even though we only have one base element.
const unsigned int FiniteElementData< dim >::degree |
const Conformity FiniteElementData< dim >::conforming_space |
BlockIndices FiniteElementData< dim >::block_indices_data |
Storage for an object describing the sizes of each block of a compound element. For an element which is not an FESystem, this contains only a single block with length dofs_per_cell.
|
private |