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.
Imports de maillages aux formats GID, GmSH et emc2.
Exports graphiques aux formats vtk et OpenDx.
Interfaces Matlab et Python.
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.
Pas de génération (sérieuse) de maillage.