Fiche logiciel validé
  • Création ou MAJ importante : 18/06/08
  • Correction mineure : 18/06/08
Auteur :
  • Yves Renard - Institut Camille Jordan (INSA Lyon)
Relecteur(s) :
Contributions importantes :
  • Julien Pommier
Responsable thématique :
Mots-clés

GetFem++ : librairie C++ d'éléments finis

Description
Fonctionnalités générales :

Le projet Getfem++ se concentre sur le développement d’une bibliothèque d’éléments finis générique et efficace en C++. L’objectif est de fournir une bibliothèque qui permet le calcul de toute matrice élémentaire (y compris pour des méthodes mixtes) sur la plus grande classe possible de méthodes et d’éléments, et en dimension arbitraire (c’est-à-dire pas seulement en 2D et 3D).

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, 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 pas de mailleur intégré (à l’exception de la génération de maillages réguliers et aussi d’une petite tentative pas encore exploitable). Il est donc 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 Matlab et Python.

Contexte d'utilisation :

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 de pouvoir les tester sur un champ vaste d’applications et de type d’éléments de base.

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

Pas de génération (sérieuse) de maillage.

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

Debian

Plates-formes :

linux, MacOS X, windows (avec MinGW)

Logiciels connexes :

Python (non obligatoire)
Matlab (non obligatoire)
Gmm++, http://home.gna.org/getfem/gmm_intro.html, licence LGPL, obligatoire (inclus dans la distribution).

Autres logiciels aux fonctionnalités équivalentes :

Freefem++ (Licence GPL) : http://www.projet-plume.org/freefem
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 cinquantaine 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 :

La participation au projet se fait via le site http://gna.org/projects/getfem à partir duquel chacun peut proposer des modifications.