This is a description of the objects found in GetFEM.
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
is issued at the matlab prompt, but instead the function
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
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')).
Y. Collette