GetFem++

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 12/02/10
  • Correction mineure : 09/01/13
  • Auteur de la fiche : Yves Renard (ICJ)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

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

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, MacOS X
  • Version actuelle : 4.2 - 02 aout 2012
  • Licence(s) : LGPL
  • Etat : validé (au sens PLUME), diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Yves Renard, Julien Pommier
  • Contact concepteur(s) : Yves.Renard@insa-lyon.fr
  • Laboratoire(s), service(s)... : ICJ, IMT, LaMCoS

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : GetFem++
Fonctionnalités générales du logiciel

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 petite 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 les principales 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 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.

Contexte d’utilisation du logiciel

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.

Publications liées au logiciel

Publications directement liées à Getfem :
http://math.univ-lyon1.fr/~renard/publis.html

Exemple de publication d'un utilisateur de Getfem :
A. Andreykiv, D. J. Rixen, Numerical modelling of electromechanical coupling using fictitious domain and level set methods. Int. J. Numer. Meth. Engng 2009 (http://www3.interscience.wiley.com/journal/1224409...).