FEEL++
Fonctionnalités générales du logiciel
Description générale
FEEL++ est une bibliothèque C++ pour la résolution des EDP par des méthodes de Galerkin généralisées telles que les méthodes des éléments finis simples et étendues (FEM et hp-FEM) et les méthodes spéctrales.
Fonctionnalités principales :
- permet de résoudre des problèmes en 1D, 2D, 3D.
- supporte différents types d'objets géométriques pour la discrétisation (simplexes et hypercubes).
- supporte différents types de polynômes pour l'interpolation (Lagrange, Dubiner, Legendre)
- permet l'utilisation de concepts mathématiques fonctionnels forts (opérateurs, espaces de fonctions, éléments d'espaces de fonctions..).
- utilise aussi bien les méthodes continues que discontinues de Galerkin./li>
- utilise son propre langage intégré au C++ ( DSEL : domain specific embedded language) à l'aide de FEEL++
Exemples
1. Calcul de $\int_\Omega x^2+y^2+z^2$ :
/*
* Compute \int f where f= x^2 + y^2 + z^2 with a quadrature that integrates exactely second order polynomials
*/
double local_intf = integrate( elements(mesh), _Q<2>(), Px()*Px() + Py()*Py() + Pz()*Pz() ).evaluate()(0,0);
2. Assemblage du laplacien, conditions aux limites de Dirichlet (formulation faible ou forte)
space_ptrtype Xh = space_type::New( mesh );
element_type u( Xh, "u" );
element_type v( Xh, "v" );
sparse_matrix_ptrtype D( M_backend->newMatrix( Xh, Xh ) );
form2( Xh, Xh, D, _init=true ) = integrate( elements(mesh), _Q<2*(Order-1)>(),
nu*gradt(u)*trans(grad(v)) );
// weak Dirichlet (Nitsche formulation)
form2( Xh, Xh, D ) +=
integrate( markedfaces(mesh,1), _Q<2*Order>(),
-(gradt(u)*N())*id(v) -(grad(v)*N())*idt(u) +penaldir*id(v)*idt(u)/hFace()) +
integrate( markedfaces(mesh,3), _Q<2*Order>(),
-(gradt(u)*N())*id(v) -(grad(v)*N())*idt(u) +penaldir*id(v)*idt(u)/hFace());
D->close();
Prérequis
Logiciels
Bibliothèques
- Boost >= 1.37
- Mpi (optional)
- Petsc >= 2.3.3 (optional)
- Trilinos (optional)
Pre/Post-Traitement
Formats de Pre-Processing
- GAMBIT neutral
- Gmsh
Formats supportés pour le Post-processing
- EnSight (use then ensight and/or paraview for visualisation)
- Gmsh