An open-source finite element library
Parts of the documentation:
What is GetFEM++?
what is GetFEM++?
Begin with GetFEM++
GetFEM++ in action
What's new in GetFEM++ 5.1?
or all "What's new" documents since 1.0
Using the Library
keep this under your pillow
Description of the project
documentation for Python programmers
documentation for Matlab programmers
documentation for SciLab programmers
guide for documentation authors
Gmm++ template matrix library
What is Gmm++?
Indices and tables:
all functions, classes, terms
the most important terms explained
search this documentation
Complete Table of Contents
lists all sections and subsections
What is GetFEM++
GetFEM++ is an open source library based on collaborative development. It aims to offer a framework for solving potentially coupled systems of linear and nonlinear partial differential equations with the finite element method. GetFEM++ is interfaced with some script languages (Python, Scilab and Matlab) so that almost all of the functionalities can be used just writing scripts. It works in arbitrary dimension and allow to couple 1D, 2D and 3D problems. The strong points of GetFEM++ can be summarized as follows:
- A generic assembly language (in terms of operators) that allows to rapidly translate quite arbitrary weak formulations. A symbolic derivation that allows to automatically obtain the tangent system for nonlinear problems. A compilation of assembly terms into optimized basic instructions.
- A model description that gather the variables, data and terms of a problem and some predefined bricks representing classical models : elasticity in small and large deformations, Helmholtz problem, scalar elliptic problem, Dirichlet, contact and Neumann boundary conditions, incompressibility constraint, ...
- A complete separation between geometric transformation, finite element method, integration methods and partial differential term description, which allows to easily switch from a method to another.
- A large set of predefined methods : isoparametric elements, Pk on simplices of arbitrary degree and dimension, Qk on parallelepipeds, P1, P2 with bubble functions, Hermite elements, Argyris element, HCT and FVS, elements with hierarchical basis (for multigrid methods for instance), discontinuous Pk and Qk, vector elements (RT0, Nedelec) ...
- A large set of predefined integration methods.
- Structural mechanics terms (elasticity, contact with friction, plasticity ...)
- Level-set and finite element cut by one or several level-set (Xfem)
- Computation of terms between to meshes with an arbitrary transformation: this is a very powerful tool of the generic assembly that allows to use a parameterized transformation. The derivative of the transformation with respect to the potential dependance with respect of the variables is taken into account. Possible use : contact problems, fluid-structure interaction, special boundary conditions ...
- Post-processing directly with Scilab or Matlab interfaces or with the export of vtk or pos files. Many possibility to interpolate arbitrary quantities, make slices, projections ...
GetFEM++ can be used to construct very generic finite element codes,
where finite element methods, integration methods and the dimension
of the problem are the parameters that can be
changed very easily. This allows a wide range of experiments. Many examples and demos are provided.
GetFEM++ has only an experimental meshing procedure (and produces regular meshes). It is therefore often necessary to import meshes. The formats
currently supported are GID, GMSH and EMC2.
GetFEM++ has been awarded by the second price at the
"Trophees du Libre 2007" in the category of scientific softwares.