16 #ifndef __H2D_SPACE_HCURL_H
17 #define __H2D_SPACE_HCURL_H
33 template<
typename Scalar>
34 class HERMES_API HcurlSpace :
public Space < Scalar >
38 HcurlSpace(MeshSharedPtr mesh, EssentialBCs<Scalar>* boundary_conditions,
int p_init = 1,
39 Shapeset* shapeset =
nullptr);
41 HcurlSpace(MeshSharedPtr mesh,
int p_init = 1,
42 Shapeset* shapeset =
nullptr);
44 virtual ~HcurlSpace();
46 virtual void set_shapeset(Shapeset* shapeset,
bool clone =
false);
48 virtual Scalar* get_bc_projection(SurfPos* surf_pos,
int order, EssentialBoundaryCondition<Scalar> *bc);
51 virtual void copy(SpaceSharedPtr<Scalar> space, MeshSharedPtr new_mesh);
54 virtual SpaceType
get_type()
const {
return HERMES_HCURL_SPACE; }
57 void init(
Shapeset* shapeset,
int p_init,
bool assign_dofs_init =
true);
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;
66 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);
67 virtual void update_constraints();
Should be exactly the same as is the count of enum ShapesetType.
virtual SpaceType get_type() const
Internal. Return type of this space. See enum SpaceType.