Hermes2D  2.0
Hermes::Hermes2D::L2Space< Scalar > Class Template Reference

#include <space_l2.h>

+ Inheritance diagram for Hermes::Hermes2D::L2Space< Scalar >:

Classes

struct  L2Data
 

Public Member Functions

 L2Space (const Mesh *mesh, int p_init=0, Shapeset *shapeset=NULL)
 
virtual Scalar * get_bc_projection (SurfPos *surf_pos, int order, EssentialBoundaryCondition< Scalar > *bc)
 
virtual void get_element_assembly_list (Element *e, AsmList< Scalar > *al, unsigned int first_dof=0) const
 Obtains an assembly list for the given element.
 
virtual void copy (const Space< Scalar > *space, Mesh *new_mesh)
 Copy from Space instance 'space'.
 
- Public Member Functions inherited from Hermes::Hermes2D::Space< Scalar >
 Space (const Mesh *mesh, Shapeset *shapeset, EssentialBCs< Scalar > *essential_bcs)
 
void init ()
 Common code for constructors.
 
virtual bool isOkay () const
 State querying helpers.
 
std::string getClassName () const
 Get class name, for the purpose of messaging.
 
virtual ~Space ()
 Destructor.
 
virtual void set_element_order (int id, int order)
 
virtual void set_element_orders (int *elem_orders)
 Sets polynomial order to all elements.
 
int get_element_order (int id) const
 Returns element polynomial order.
 
void set_uniform_order (int order, std::string marker=HERMES_ANY)
 
void adjust_element_order (int order_change, int min_order)
 
void adjust_element_order (int horizontal_order_change, int vertical_order_change, unsigned int horizontal_min_order, unsigned int vertical_min_order)
 Version for quads.
 
void unrefine_all_mesh_elements (bool keep_initial_refinements=true)
 
void update_element_orders_after_refinement ()
 Updates element orders when the underlying mesh has been refined.
 
int get_num_dofs () const
 Returns the number of basis functions contained in the space.
 
Meshget_mesh () const
 
void set_mesh (Mesh *mesh)
 Sets a (new) mesh and calls assign_dofs().
 
void set_mesh_seq (int seq)
 Sets a (new) mesh seq, and mesh_seq.
 
void set_essential_bcs (EssentialBCs< Scalar > *essential_bcs)
 Sets the boundary condition.
 
EssentialBCs< Scalar > * get_essential_bcs () const
 Obtains an boundary conditions.
 
void update_essential_bc_values ()
 
Shapesetget_shapeset () const
 
bool save (const char *filename) const
 Saves this space into a file.
 
virtual void set_element_order_internal (int id, int order)
 
virtual int assign_dofs (int first_dof=0, int stride=1)
 Builds basis functions and assigns DOF numbers to them. More...
 
void distribute_orders (Mesh *mesh, int *parents)
 Sets polynomial orders to elements created by Mesh::regularize() using "parents".
 
int get_max_dof () const
 Returns the DOF number of the last basis function.
 
bool is_up_to_date () const
 Returns true if the space is ready for computation, false otherwise.
 
void get_boundary_assembly_list (Element *e, int surf_num, AsmList< Scalar > *al, unsigned int first_dof=0) const
 Obtains an edge assembly list (contains shape functions that are nonzero on the specified edge).
 
void set_uniform_order_internal (int order, int marker)
 
void free ()
 
int get_vertex_functions_count ()
 
int get_edge_functions_count ()
 Returns the total (global) number of edge functions.
 
int get_bubble_functions_count ()
 Returns the total (global) number of bubble functions.
 
template<>
void init ()
 
template<>
void init ()
 
template<>
void free ()
 
template<>
void free ()
 
template<>
 Space (const Mesh *mesh, Shapeset *shapeset, EssentialBCs< double > *essential_bcs)
 
template<>
 Space (const Mesh *mesh, Shapeset *shapeset, EssentialBCs< std::complex< double > > *essential_bcs)
 
- Public Member Functions inherited from Hermes::Hermes2D::Mixins::StateQueryable
void check () const
 Method to handle the state.
 
- Public Member Functions inherited from Hermes::Hermes2D::Mixins::XMLParsing
 XMLParsing ()
 Constructor.
 
void set_validation (bool to_set)
 Set to validate / not to validate.
 

Protected Member Functions

virtual int get_edge_order (Element *e, int edge) const
 Internal. Obtains the order of an edge, according to the minimum rule.
 
virtual void set_shapeset (Shapeset *shapeset)
 Sets the shapeset.
 
virtual SpaceType get_type () const
 
void init (Shapeset *shapeset, int p_init)
 Common code for the constructors.
 
virtual void resize_tables ()
 Updates internal node and element tables. More...
 
virtual void assign_vertex_dofs ()
 
virtual void assign_edge_dofs ()
 
virtual void assign_bubble_dofs ()
 
virtual void get_vertex_assembly_list (Element *e, int iv, AsmList< Scalar > *al) const
 
virtual void get_boundary_assembly_list_internal (Element *e, int surf_num, AsmList< Scalar > *al) const
 
virtual void get_bubble_assembly_list (Element *e, AsmList< Scalar > *al) const
 
- Protected Member Functions inherited from Hermes::Hermes2D::Space< Scalar >
virtual int get_edge_order_internal (Node *en) const
 
void update_orders_recurrent (Element *e, int order)
 
virtual void reset_dof_assignment ()
 Resets assignment of DOF to an unassigned state.
 
void precalculate_projection_matrix (int nv, double **&mat, double *&p)
 
void update_edge_bc (Element *e, SurfPos *surf_pos)
 
virtual void update_constraints ()
 
virtual void post_assign ()
 
void free_bc_data ()
 
int get_seq () const
 Internal. Used by DiscreteProblem to detect changes in the space.
 

Protected Attributes

L2Dataldata
 
int lsize
 
- Protected Attributes inherited from Hermes::Hermes2D::Space< Scalar >
int ndof
 Number of degrees of freedom (dimension of the space).
 
Shapesetshapeset
 
bool own_shapeset
 true if default shapeset is created in the constructor, false if shapeset is supplied by user.
 
EssentialBCs< Scalar > * essential_bcs
 Boundary conditions.
 
const Meshmesh
 FE mesh.
 
int default_tri_order
 
int default_quad_order
 
int vertex_functions_count
 
int edge_functions_count
 
int bubble_functions_count
 
int first_dof
 
int next_dof
 
int stride
 
int seq
 
int mesh_seq
 
int was_assigned
 
NodeDatandata
 node data table
 
ElementDataedata
 element data table
 
int nsize
 
int ndata_allocated
 number of items in ndata, allocated space
 
int esize
 
double ** proj_mat
 
double * chol_p
 
Hermes::vector< void * > bc_data
 Used for bc projection.
 
- Protected Attributes inherited from Hermes::Hermes2D::Mixins::XMLParsing
bool validate
 Internal.
 

Friends

template<typename T >
class Space< T >::ReferenceSpaceCreator
 
class Space< Scalar >
 

Additional Inherited Members

- Static Public Member Functions inherited from Hermes::Hermes2D::Space< Scalar >
static int get_num_dofs (Hermes::vector< const Space< Scalar > * > spaces)
 Returns the number of basis functions contained in the spaces.
 
static int get_num_dofs (Hermes::vector< Space< Scalar > * > spaces)
 
static int get_num_dofs (const Space< Scalar > *space)
 Returns the number of basis functions contained in the space.
 
static int get_num_dofs (Space< Scalar > *space)
 
static Space< Scalar > * load (const char *filename, Mesh *mesh, bool validate, EssentialBCs< Scalar > *essential_bcs=NULL, Shapeset *shapeset=NULL)
 Loads a space from a file.
 
static int assign_dofs (Hermes::vector< Space< Scalar > * > spaces)
 Assings the degrees of freedom to all Spaces in the Hermes::vector.
 
static void update_essential_bc_values (Hermes::vector< Space< Scalar > * > spaces, double time)
 
static void update_essential_bc_values (Space< Scalar > *s, double time)
 
static Nodeget_mid_edge_vertex_node (Element *e, int i, int j)
 
- Static Protected Attributes inherited from Hermes::Hermes2D::Space< Scalar >
static const int H2D_UNASSIGNED_DOF = -2
 DOF which was not assigned yet.
 
static const int H2D_CONSTRAINED_DOF = -1
 DOF which is constrained.
 

Detailed Description

template<typename Scalar>
class Hermes::Hermes2D::L2Space< Scalar >

L2Space represents a space of Scalar functions with discontinuities along mesh edges.
Typical usage:
...

// Initialize space.
int globalPolynomialOrder = 4;
Hermes::Hermes2D::L2Space<double> space(&mesh, &bcs, globalPolynomialOrder);

Definition at line 43 of file space.h.

Member Function Documentation

template<typename Scalar>
virtual SpaceType Hermes::Hermes2D::L2Space< Scalar >::get_type ( ) const
inlineprotectedvirtual

Internal. Return type of this space (H1 = HERMES_H1_SPACE, Hcurl = HERMES_HCURL_SPACE, Hdiv = HERMES_HDIV_SPACE, L2 = HERMES_L2_SPACE)

Implements Hermes::Hermes2D::Space< Scalar >.

Definition at line 56 of file space_l2.h.

template<typename Scalar >
void Hermes::Hermes2D::L2Space< Scalar >::resize_tables ( )
protectedvirtual

Updates internal node and element tables.

Since meshes only contain geometric information, the Space class keeps two tables with FEM-related information. The first one, 'ndata', contains DOF numbers and other things for each node. The second table, 'edata', holds element orders and bubble DOF numbers. Both tables are directly indexed by the node and element IDs. The function resize_tables() is called to check whether the tables are large enough to contain all node and element id's, and to reallocate them if not.

Reimplemented from Hermes::Hermes2D::Space< Scalar >.

Definition at line 88 of file space_l2.cpp.


The documentation for this class was generated from the following files: