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