16#ifndef dealii_fe_base_h
17#define dealii_fe_base_h
489 const unsigned int degree,
500 const unsigned int degree,
513 const unsigned int degree,
599 template <
int structdim>
687 expand(
const unsigned int dim,
688 const std::vector<unsigned int> &dofs_per_object,
751 return reference_cell_kind;
760 return number_unique_quads;
769 return number_unique_faces;
778 return dofs_per_vertex;
787 return dofs_per_line;
796 return n_dofs_on_quad[n_dofs_on_quad.size() == 1 ? 0 : face_no];
805 return dofs_per_quad_max;
822 unsigned int child_no)
const
826 return n_dofs_on_face[n_dofs_on_face.size() == 1 ? 0 : face_no];
835 return dofs_per_face_max;
844 return dofs_per_cell;
850template <
int structdim>
857 return n_dofs_per_vertex();
859 return n_dofs_per_line();
861 return n_dofs_per_quad((structdim == 2 && dim == 3) ? i : 0);
863 return n_dofs_per_hex();
885 return block_indices_data;
894 return block_indices_data.
size();
911 return ((space & conforming_space) == space);
920 return first_line_index;
927 if (first_index_of_quads.size() == 1)
928 return first_index_of_quads[0] + quad_no * n_dofs_per_quad(0);
930 return first_index_of_quads[quad_no];
937 return first_hex_index;
943 const unsigned int face_no)
const
945 return first_line_index_of_faces[first_line_index_of_faces.size() == 1 ?
953 const unsigned int face_no)
const
955 return first_quad_index_of_faces[first_quad_index_of_faces.size() == 1 ?
unsigned int size() const
const unsigned int dofs_per_quad
unsigned int get_first_line_index() const
unsigned int n_dofs_per_vertex() const
const unsigned int first_face_quad_index
const std::vector< unsigned int > first_index_of_quads
bool conforms(const Conformity) const
const std::vector< unsigned int > first_line_index_of_faces
const unsigned int components
const unsigned int degree
const std::vector< unsigned int > n_dofs_on_face
unsigned int n_dofs_per_cell() const
const unsigned int dofs_per_face
unsigned int n_dofs_per_line() const
unsigned int get_first_quad_index(const unsigned int quad_no=0) const
bool operator==(const FiniteElementData &) const
const unsigned int dofs_per_line
unsigned int n_dofs_per_face(unsigned int face_no=0, unsigned int child=0) const
unsigned int n_blocks() const
unsigned int max_dofs_per_face() const
unsigned int tensor_degree() const
unsigned int n_components() const
unsigned int n_unique_quads() const
ReferenceCell reference_cell() const
const unsigned int first_hex_index
unsigned int n_dofs_per_object(const unsigned int i=0) const
const unsigned int first_face_line_index
const unsigned int dofs_per_quad_max
unsigned int get_first_face_line_index(const unsigned int face_no=0) const
const unsigned int first_line_index
const unsigned int dofs_per_hex
const BlockIndices block_indices_data
unsigned int get_first_face_quad_index(const unsigned int face_no=0) const
const unsigned int number_unique_faces
unsigned int max_dofs_per_quad() const
const BlockIndices & block_indices() const
const std::vector< unsigned int > first_quad_index_of_faces
const ReferenceCell reference_cell_kind
const unsigned int number_unique_quads
const std::vector< unsigned int > n_dofs_on_quad
const Conformity conforming_space
const unsigned int first_quad_index
unsigned int n_unique_faces() const
unsigned int n_dofs_per_quad(unsigned int face_no=0) const
const unsigned int dofs_per_vertex
const unsigned int dofs_per_cell
unsigned int n_dofs_per_hex() const
FiniteElementData(const std::vector< unsigned int > &dofs_per_object, const unsigned int n_components, const unsigned int degree, const Conformity conformity=unknown, const BlockIndices &block_indices=BlockIndices())
static const unsigned int dimension
const unsigned int dofs_per_face_max
unsigned int get_first_hex_index() const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcInternalError()
@ either_element_can_dominate
@ other_element_dominates
@ neither_element_dominates
Domination operator&(const Domination d1, const Domination d2)
void reference_cell(Triangulation< dim, spacedim > &tria, const ReferenceCell &reference_cell)
internal::GenericDoFsPerObject expand(const unsigned int dim, const std::vector< unsigned int > &dofs_per_object, const ::ReferenceCell reference_cell)
static const unsigned int invalid_unsigned_int
std::vector< std::vector< unsigned int > > object_index
std::vector< std::vector< unsigned int > > first_object_index_on_face
std::vector< std::vector< unsigned int > > dofs_per_object_inclusive
std::vector< std::vector< unsigned int > > dofs_per_object_exclusive