16 #ifndef __H2D_SPACE_L2
17 #define __H2D_SPACE_L2
32 template<
typename Scalar>
33 class HERMES_API L2Space :
public Space < Scalar >
37 L2Space(MeshSharedPtr mesh,
int p_init = 0,
38 Shapeset* shapeset =
nullptr);
42 virtual Scalar* get_bc_projection(SurfPos* surf_pos,
int order, EssentialBoundaryCondition<Scalar> *bc);
44 virtual void get_element_assembly_list(Element* e, AsmList<Scalar>* al)
const;
47 virtual void copy(SpaceSharedPtr<Scalar> space, MeshSharedPtr new_mesh);
50 return H2D_MAKE_EDGE_ORDER(e->get_mode(), edge, this->edata[e->
id].order);
53 virtual void set_shapeset(
Shapeset* shapeset,
bool clone =
false);
55 virtual SpaceType
get_type()
const {
return HERMES_L2_SPACE; }
58 void init(
Shapeset* shapeset,
int p_init,
bool assign_dofs_init =
true);
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;
66 virtual void get_bubble_assembly_list(Element* e, AsmList<Scalar>* al)
const;
67 template<
typename T>
friend class Space<T>::ReferenceSpaceCreator;
72 template<typename Scalar>
79 virtual SpaceType
get_type()
const {
return HERMES_L2_MARKERWISE_CONST_SPACE; }
80 virtual void assign_bubble_dofs();
Stores one element of a mesh.
virtual int get_edge_order(Element *e, int edge) const
Internal. Obtains the order of an edge, according to the minimum rule.
virtual SpaceType get_type() const
Internal. Return type of this space. See enum SpaceType.
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.