16 #ifndef __H2D_SPACE_HDIV_H
17 #define __H2D_SPACE_HDIV_H
34 template<
typename Scalar>
35 class HERMES_API HdivSpace :
public Space < Scalar >
39 HdivSpace(MeshSharedPtr mesh, EssentialBCs<Scalar>* boundary_conditions,
int p_init = 1,
40 Shapeset* shapeset =
nullptr);
42 HdivSpace(MeshSharedPtr mesh,
int p_init = 1,
43 Shapeset* shapeset =
nullptr);
47 virtual void set_shapeset(Shapeset* shapeset,
bool clone =
false);
49 virtual Scalar* get_bc_projection(SurfPos* surf_pos,
int order, EssentialBoundaryCondition<Scalar> *bc);
52 virtual void copy(SpaceSharedPtr<Scalar> space, MeshSharedPtr new_mesh);
55 void init(Shapeset* shapeset,
int p_init,
bool assign_dofs_init =
true);
57 virtual SpaceType
get_type()
const {
return HERMES_HDIV_SPACE; }
59 virtual void assign_vertex_dofs() {}
60 virtual void assign_edge_dofs();
61 virtual void assign_bubble_dofs();
63 virtual void get_vertex_assembly_list(Element* e,
int iv, AsmList<Scalar>* al)
const {}
64 virtual void get_boundary_assembly_list_internal(Element* e,
int surf_num, AsmList<Scalar>* al)
const;
65 virtual void get_bubble_assembly_list(Element* e, AsmList<Scalar>* al)
const;
67 void update_constrained_nodes(Element* e,
typename Space<Scalar>::EdgeInfo* ei0,
typename Space<Scalar>::EdgeInfo* ei1,
typename Space<Scalar>::EdgeInfo* ei2,
typename Space<Scalar>::EdgeInfo* ei3);
68 virtual void update_constraints();
virtual SpaceType get_type() const
Internal. Return type of this space. See enum SpaceType.