16 #ifndef __H2D_SPACE_HCURL_H
17 #define __H2D_SPACE_HCURL_H
34 template<
typename Scalar>
35 class HERMES_API HcurlSpace :
public Space<Scalar>
39 HcurlSpace(
const Mesh* mesh, EssentialBCs<Scalar>* boundary_conditions,
int p_init = 1,
40 Shapeset* shapeset = NULL);
42 HcurlSpace(
const Mesh* mesh,
int p_init = 1,
43 Shapeset* shapeset = NULL);
45 virtual ~HcurlSpace();
47 virtual void set_shapeset(Shapeset* shapeset);
49 virtual Scalar* get_bc_projection(SurfPos* surf_pos,
int order, EssentialBoundaryCondition<Scalar> *bc);
52 virtual void copy(
const Space<Scalar>* space, Mesh* new_mesh);
55 virtual SpaceType
get_type()
const {
return HERMES_HCURL_SPACE; }
58 void init(
Shapeset* shapeset,
int p_init);
60 virtual void assign_vertex_dofs() {}
61 virtual void assign_edge_dofs();
62 virtual void assign_bubble_dofs();
64 virtual void get_vertex_assembly_list(Element* e,
int iv, AsmList<Scalar>* al)
const {}
65 virtual void get_boundary_assembly_list_internal(Element* e,
int surf_num, AsmList<Scalar>* al)
const;
76 virtual void update_constraints();
77 friend class Space<Scalar>;