GetFem++

Fiche logiciel validé
  • Création ou MAJ importante : 05/03/13
  • Correction mineure : 05/03/13
  • Rédacteur de la fiche : Yves Renard - Institut Camille Jordan (INSA Lyon)
  • Relecteur(s) : Ronan Perrussel (LAPLACE)
    Thierry Dumont (Institut Camille Jordan)
  • Contributions importantes : Julien Pommier
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

GetFem++ : bibliothèque C++ d'éléments finis interfacée scilab-python-matlab

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : GetFem++
Description
Fonctionnalités générales

Getfem++ est à la base une bibliothèque d'éléments finis générique en C++ dont l'objectif est d'offrir la gamme d'éléments la plus large possible et un calcul de matrices élémentaires également le plus large possible pour l'approximation de problèmes linéaires ou non-linéaires, éventuellement en formulation mixte et éventuellement couplés. La dimension du problème est arbitraire et peut être un paramètre du problème. Getfem++ propose une description de modèles sous la forme de briques dont l'objectif est de permettre une réutilisabilité maximale des approximations réalisées. Le système de briques, maintenant arrivé à maturité, permet d'assembler des composantes telles que modèles standards (élasticité en petites et grandes déformations, problème de Helmholtz, problème elliptique scalaire ...) à des composantes représentant des conditions aux limites (Neumann, Dirichlet, Fourier-Robin, contact avec frottement ...), des composantes représentant des contraintes (incompressibilité, annulation de mouvements rigides ...) et des composantes de couplage de modèles.
Les deux points forts de Getfem++ sont la mécanique des structures (en particulier la mécanique du contact) et la prise en compte des discontinuités par des méthodes de domaines fictifs de type Xfem (fissuration par exemple).

Il est proposé trois interfaces (avec Scilab, Python et Matlab) qui permettent d'utiliser la quasi totalité des fonctionnalités du logiciel sans recourir à la programmation en c++ et qui permettent le post-traitement graphique.

Getfem++ offre une séparation complète entre les méthodes d'intégration (exactes ou approchées), les transformations géométriques (linéaires ou non) et les méthodes d'éléments finis de degré arbitraire. La bibliothèque peut faciliter l'écriture de codes éléments finis plus intégrés en la soulageant de la technicité des calculs élémentaires.

Des exemples de familles d'éléments finis disponibles sont : Pk sur des simplexes de degré et dimension arbitraire, Qk sur des parallélépipèdes, P1, P2 avec fonctions bulles, éléments d'Hermite, élément d'Argyris, HCT et FVS, les éléments avec base hiérarchique (pour méthodes multigrilles par exemple), Pk ou Qk discontinues, méthodes XFem, éléments vectoriels (RT0, Nédélec) ...

L'ajout d'une nouvelle méthode d'éléments finis est relativement facile. Une description sur l'élément de référence doit être fournie (dans la plupart des cas, il s'agit de la description des fonctions de base, et rien de plus). Des extensions sont prévues pour la description des éléments d'Hermite, polynomiaux par morceaux, non polynomiaux, les éléments vectoriels et XFem.

La bibliothèque comprend également les outils habituels pour les éléments finis tels que des procédures d'assemblage pour les équations aux dérivées partielles classiques, des méthodes d'interpolation, le calcul de normes, des opérations de maillage (y compris le raffinement automatique), gestion des conditions aux limites, le post-traitement avec des outils permettant de faire des coupes arbitraires ...

Getfem++ peut être utilisé pour construire des codes éléments finis très génériques, où les méthodes d'éléments finis, les méthodes d'intégration, la dimension du problème ne sont que des paramètres qui peuvent être modifiés très facilement, ce qui permet un large éventail d'expérimentations. De nombreux exemples sont fournis.

Getfem++ n'a qu'un mailleur expérimental intégré (maillages structurés et maillages de formes géométriques décrites à l'aide de primitives pré-définies). Il est donc souvent nécessaire d'importer des maillages. Les formats actuellement acceptés par getfem sont GID, GmSH et emc2.

Interopérabilité

Imports de maillages aux formats GID, GmSH et emc2.
Exports graphiques aux formats vtk et OpenDx.
Interfaces Python, Scilab et Matlab.

Contexte d'utilisation dans mon laboratoire/service

Getfem++ est tout d'abord un laboratoire de méthodes d'éléments finis qui permet de construire très rapidement de nouvelles méthodes et permet de les tester sur un champ vaste d'applications et de type d'éléments de base.

Limitations, difficultés, fonctionnalités importantes non couvertes

La génération de maillage pourrait être améliorée.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Debian, Ubuntu

Plates-formes

linux, MacOS X, windows (avec MinGW)

Logiciels connexes

Python (non obligatoire)
Scilab (non obligatoire)
Matlab (non obligatoire)
Gmm++, http://download.gna.org/getfem/html/homepage/gmm.html, licence LGPL, obligatoire (inclus dans la distribution).

Autres logiciels aux fonctionnalités équivalentes
  • Freefem++ (licence GPL)
  • getDP (licence GPL)
  • Elmer (licence GPL)
  • Deal II (Licence QPL) librairie C++ d'éléments finis, uniquement pour des maillages avec parallélépipèdes : http://www.dealii.org/

  • COMSOL (produit commercial) logiciel de simulation multi-physique utilisant les éléments finis : http://www.comsol.fr/

Environnement de développement
Type de structure associée au développement

Institut Mathématique de Toulouse, équipe MIP.
Institut Camille Jordan, INSA-Lyon, UCBL.

Eléments de pérennité

Une centaine d'utilisateurs.
Le logiciel est utilisé de manière continue pour la création et le test de méthodes numériques nouvelles par les équipes mmcs, ICJ INSA-Lyon (Yves Renard), mnsi, IMT UPS-Toulouse (Patrick Laborde, Michel Fournié ...), au laboratoire de mathématiques de Besançon (Patrick Hild, Vanessa Lleras).

Références d'utilisateurs institutionnels

Michelin France (interface Matlab)
Laboratoire Ampère, École centrale de Lyon/Université Lyon 1.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Contributions

Getfem++ est un projet "Open source" géré sur le site de développement collaboratif gna.org (voir http://gna.org/projects/getfem). Toute contribution via ce site est la bienvenue.