Name

Objects — This is a description of the objects found in GetFEM.

Description

Getfem-interface objects hierarchy

  • GEOTRANS : geometric transformations (defines the shape/position of the convexes), created with gf_geotrans

  • MESH: mesh structure (nodes, convexes, geometric transformations for each convex), created with gf_mesh

  • INTEG: integration method (exact, quadrature formula...). Although not linked directly to GEOTRANS, an integration method is usually specific to a given convex structure. Created with gf_integ

  • FEM: the finite element method (one per convex, can be PK, QK, HERMITE, etc...). Created with gf_fem

  • CVSTRUCT: stores formal information convex structures (nb. of points, nb. of faces which are themselves convex structures).

  • MESHFEM: object linked to a mesh, where each convex has been assigned a FEM. Created with gf_mesh_fem.

  • MESHIM: object linked to a mesh, where each convex has been assigned an integration method. Created with gf_mesh_im.

  • MESHSLICE: object linked to a mesh, very similar to a P1-discontinuous mesh fem. Used for fast interpolation and plotting.

  • MDBRICK: "model brick" , an abstraction of a part of solver (for example, the part which build the tangent matrix, the part which handles the dirichlet conditions, etc.). These objects are stacked to build a complete solver for a wide variety of problems. They typically use a number of mesh fem, mesh im etc.

  • MDSTATE: "model state", holds the global data for a stack of mdbricks (global tangent matrix, right hand side etc.).

  • MODEL: "model", holds the global data, variables and description of a model. Evolution of "model state" object for 4.0 version of getfem++.

Various "objects" can be manipulated by the getfem-matlab toolbox, see fig. *. The MESH and MESHFEM objects are the two most important objects.

The getfem-matlab toolbox uses its own memory management. Hence getfem++ objects are not cleared when a

 
--> clear all
 

is issued at the matlab prompt, but instead the function

 
--> gf_workspace('clear all')
 

should be used. The various getfem-matlab object can be accessed via handles (or descriptors), which are just matlab structures containing 32-bits integer identifiers to the real objects. Hence the matlab command

 
--> whos
 

does not report the memory consumption of getfem++ objects (except the marginal space used by the handle). Instead, you should use

 
--> gf_workspace('stats')
 

There are two kinds of getfem-matlab objects:

  • static ones, which can not be deleted: ELTM, FEM, INTEG, GEOTRANS and CVSTRUCT. Hopefully their memory consumption is very low.

  • dynamic ones, which can be destroyed, and are handled by the gf_workspace function: MESH, MESHFEM, MESHIM, SLICE, SPMAT, PRECOND.

The objects MESH and MESHFEM are not independent: a MESHFEM object is always linked to a MESH object, and a MESH object can be used by several MESHFEM objects. Hence when you request the destruction of a MESH object, its destruction might be delayed until it is not used anymore by any MESHFEM (these objects waiting for deletion are listed in the anonymous workspace section of gf_workspace('stats')).

See Also

gf_workspace, gf_mesh, gf_fem, gf_plot

Authors

Y. Collette