16 #ifndef __H2D_SPACE_H1_H
17 #define __H2D_SPACE_H1_H
19 #include "../shapeset/shapeset_h1_all.h"
35 template<
typename Scalar>
36 class HERMES_API H1Space :
public Space<Scalar>
40 H1Space(
const Mesh* mesh, EssentialBCs<Scalar>* boundary_conditions,
int p_init = 1,
41 Shapeset* shapeset = NULL);
43 H1Space(
const Mesh* mesh,
int p_init = 1,
44 Shapeset* shapeset = NULL);
48 virtual void set_shapeset(Shapeset* shapeset);
56 void fix_vertex(
int id, Scalar value = 0.0);
58 virtual Scalar* get_bc_projection(SurfPos* surf_pos,
int order, EssentialBoundaryCondition<Scalar> *bc);
61 virtual void copy(
const Space<Scalar>* space, Mesh* new_mesh);
65 virtual SpaceType
get_type()
const {
return HERMES_H1_SPACE; }
68 void init(
Shapeset* shapeset,
int p_init);
70 virtual void assign_vertex_dofs();
71 virtual void assign_edge_dofs();
72 virtual void assign_bubble_dofs();
93 virtual void update_constraints();
101 Hermes::vector<FixedVertex> fixed_vertices;
103 inline bool is_fixed_vertex(
int id)
const;
105 virtual void post_assign();
106 friend class Space<Scalar>;