16 #ifndef __H2D_SPACE_L2
17 #define __H2D_SPACE_L2
33 template<
typename Scalar>
34 class HERMES_API L2Space :
public Space<Scalar>
38 L2Space(
const Mesh* mesh,
int p_init = 0,
39 Shapeset* shapeset = NULL);
43 virtual Scalar* get_bc_projection(SurfPos* surf_pos,
int order, EssentialBoundaryCondition<Scalar> *bc);
45 virtual void get_element_assembly_list(Element* e, AsmList<Scalar>* al,
unsigned int first_dof = 0)
const;
48 virtual void copy(
const Space<Scalar>* space, Mesh* new_mesh);
51 return H2D_MAKE_EDGE_ORDER(e->get_mode(), edge, this->edata[e->
id].order);
54 virtual void set_shapeset(
Shapeset* shapeset);
56 virtual SpaceType
get_type()
const {
return HERMES_L2_SPACE; }
59 void init(
Shapeset* shapeset,
int p_init);
70 virtual void resize_tables();
72 virtual void assign_vertex_dofs() {}
73 virtual void assign_edge_dofs() {}
74 virtual void assign_bubble_dofs();
76 virtual void get_vertex_assembly_list(Element* e,
int iv, AsmList<Scalar>* al)
const;
77 virtual void get_boundary_assembly_list_internal(Element* e,
int surf_num, AsmList<Scalar>* al)
const;
78 virtual void get_bubble_assembly_list(Element* e, AsmList<Scalar>* al)
const;
79 template<
typename T>
friend class Space<T>::ReferenceSpaceCreator;
80 friend class Space<Scalar>;