19 #ifndef DISCRETE_SPACE_HH_ 20 #define DISCRETE_SPACE_HH_ 42 virtual unsigned int n_node_dofs(
unsigned int nid)
const = 0;
48 template<
unsigned int dim>
51 ASSERT(
false).error(
"Not implemented.");
56 template<
unsigned int dim>
87 :
DiscreteSpace(mesh), fe0_(fe0), fe1_(fe1), fe2_(fe2), fe3_(fe3) {}
91 unsigned int n_node_dofs(
unsigned int nid)
const override;
unsigned int n_face_dofs(unsigned int face_id)
Number of dofs associated to generalized n-face (node, line, triangle or tetrahedron).
FiniteElement< 2 > * fe2_
virtual FiniteElement< 1 > * fe1d(const ElementAccessor< 3 > &) const =0
FiniteElement< 1 > * fe1_
virtual unsigned int n_node_dofs(unsigned int nid) const =0
Number of dofs associated to node. nid is the node index in the mesh tree.
#define ASSERT(expr)
Allow use shorter versions of macro names if these names is not used with external library...
FiniteElement< dim > * fe(const ElementAccessor< 3 > &) const
Return finite element object for given element.
FiniteElement< 1 > * fe1d(const ElementAccessor< 3 > &cell) const override
EqualOrderDiscreteSpace(Mesh *mesh, FiniteElement< 0 > *fe0, FiniteElement< 1 > *fe1, FiniteElement< 2 > *fe2, FiniteElement< 3 > *fe3)
virtual FiniteElement< 0 > * fe0d(const ElementAccessor< 3 > &) const =0
virtual FiniteElement< 3 > * fe3d(const ElementAccessor< 3 > &) const =0
virtual ~DiscreteSpace()
Destructor.
FiniteElement< 2 > * fe2d(const ElementAccessor< 3 > &cell) const override
FiniteElement< 0 > * fe0d(const ElementAccessor< 3 > &cell) const override
DiscreteSpace(Mesh *mesh)
Constructor.
FiniteElement< 3 > * fe3_
FiniteElement< 3 > * fe3d(const ElementAccessor< 3 > &cell) const override
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
FiniteElement< 0 > * fe0_
virtual unsigned int n_elem_dofs(const ElementAccessor< 3 > &cell) const =0
Number of dofs associated to element (not shared by adjacent elements).
virtual FiniteElement< 2 > * fe2d(const ElementAccessor< 3 > &) const =0