12.07.2015 Views

Quelques aspects pratiques de la méthode des Eléments Finis - Inria

Quelques aspects pratiques de la méthode des Eléments Finis - Inria

Quelques aspects pratiques de la méthode des Eléments Finis - Inria

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Quelques</strong> <strong>aspects</strong> <strong>pratiques</strong> <strong>de</strong> <strong>la</strong> métho<strong>de</strong> <strong>de</strong>s <strong>Eléments</strong><strong>Finis</strong>Houssem HaddarENSTA 2006Cours <strong>Eléments</strong> <strong>Finis</strong>H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 1 / 28


Mail<strong>la</strong>geCréation <strong>de</strong> mail<strong>la</strong>ges triangu<strong>la</strong>ires : on peut utiliser le logiciel emc2Structure d’un fichier toto.amdba généré par emc221 28 -- nbs,nbt1 1.8462181E-02 -3.8533497E+00 02 -3.8346165E-01 -2.3533497E+00 13 -1.4815379E+00 -1.2552733E+00 1....20 -1.8798810E+00 -3.8135126E+00 021 -2.4839835E+00 -2.4373295E+00 01 10 14 9 12 15 20 14 13 18 13 17 1....27 21 3 4 128 18 21 19 1H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 3 / 28


Mail<strong>la</strong>geStructure d’un fichier toto.amdba généré par emc2Nbre_noeudsNbre_trianglesPour i = 1, ..., Nbre_noeudsi Coor_Noeud(i,1) Coor_Noeud(i,2) Ref_noeud(i)Pour l = 1, ..., Nbre_trianglesl Num_Sommet(l,1) Num_Sommet(l,2) Num_Sommet(l,3) Ref_triangle(l)Ref_noeud(i)Ref_triangle(l): référence du noeud i: référence du triangle lH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 5 / 28


Mail<strong>la</strong>geStructure d’un fichier toto.msh généré par emc221 28 121.846218E-02 -3.853350E+00 0-3.834617E-01 -2.353350E+00 1-1.481538E+00 -1.255273E+00 1...-1.879881E+00 -3.813513E+00 0-2.483984E+00 -2.437330E+00 010 14 9 115 20 14 118 13 17 1...21 3 4 118 21 19 11 2 12 3 1....11 12 112 1 1H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 7 / 28


Mail<strong>la</strong>geStructure d’un fichier toto.msh généré par emc2Nbre_noeuds Nbre_triangles Nbre_aretes_interfacesPour i = 1, ..., Nbre_noeudsCoor_Noeud(i,1) Coor_Noeud(i,2) Ref_noeud(i)Pour l = 1, ..., Nbre_trianglesNum_Sommet(l,1) Num_Sommet(l,2) Num_Sommet(l,3) Ref_triangle(l)Pour k = 1, ..., Nbre_aretes_interfacesNum_Sommet_A(k,1) Num_Sommet_A(k,2) Ref_arete(k)H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 9 / 28


Structure d’un programme <strong>Eléments</strong> <strong>Finis</strong>Etape 1 Lecture du mail<strong>la</strong>ge.a - Lecture <strong>de</strong>s tableaux :Coor_Noeud(1:Nbre_noeuds, 1:2)Num_Sommet(1:Nbre_triangles, 1:3)Ref_noeud(1:Nbre_noeuds)...b - Création <strong>de</strong>s <strong>de</strong>grés <strong>de</strong> libertés (ddls)Coor_ddl(1:Nbre_ddls, 1:2)Num_ddl(1:Nbre_triangles, 1:N_ddls_triangle)(numérotation globale <strong>de</strong>s ddls par triangles)Remarque : Pour les éléments finis P 1 1 :Coor_ddl = Coor_Noeud ; Num_ddl = Num_SommetH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 11 / 28


Structure d’un programme <strong>Eléments</strong> <strong>Finis</strong>Etape 2 : Calcul et assemb<strong>la</strong>ge <strong>de</strong> <strong>la</strong> matrice : A I,J = a(w J , w I )Déc<strong>la</strong>ration d’une dmatrice creuse sous mat<strong>la</strong>b :A = sparse(Nbre_ddls, Nbre_ddls)Pour l = 1, Nbre_triangles (boucle sur les triangles)Pour i = 1, Nbre_ddls_trianglePour j = 1, Nbre_ddls_triangleCalcul <strong>de</strong>s A l (i, j) = a(τ l i , τ l j )I = Num_ddl(l, i)J = Num_ddl(l, j)A I,J = A I,J + A l (i, j)Fin boucle jFin boucle iFin boucle lH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 13 / 28


Structure d’un programme <strong>Eléments</strong> <strong>Finis</strong>Etape 3 : Calcul et assemb<strong>la</strong>ge du second membre : F I = l(w I )F = 0Pour l = 1, Nbre_triangles (boucle sur les triangles)Pour i = 1, Nbre_ddls_triangleCalcul <strong>de</strong> F li = l(τ l i )I = Num_ddl(l, i)F I = F I + F liFin boucle iFin boucle lRemarque : Il existe une métho<strong>de</strong> plus simple (cf. TP) lorsque∫l(v) = f(x) v(x) dxΩH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 15 / 28


Structure d’un programme <strong>Eléments</strong> <strong>Finis</strong>Etape 4 : Prise en compte <strong>de</strong>s conditions aux limites <strong>de</strong> DirichletPseudo-élimination : pour les ddls I qui sont sur un bord <strong>de</strong> Dirichlet- on met à zéro le second membre F I- on met à zéro les termes extra-diagonaux <strong>de</strong>s I èmes ligneset colonnes <strong>de</strong> A.Pour I = 1, Nbre_ddlsIF (ref_ddl(I) == ref bord <strong>de</strong> Dirichlet) THENF I = 0A I,J = A J,I = 0 pour I ≠ JENDFin boucle IH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 17 / 28


Structure d’un programme <strong>Eléments</strong> <strong>Finis</strong>Etape 5 : Résolution du système linéaire :A U = FRemarque : On résout le système sans calculer l’inverse <strong>de</strong> <strong>la</strong> matrice !Par exemple via <strong>la</strong> procédure d’élimination <strong>de</strong> Gauss (factorisation LU)U = A \ F ; (dans mat<strong>la</strong>b)Etape 6 : Ecriture (et visualisation) <strong>de</strong> <strong>la</strong> solutionExemple dans mat<strong>la</strong>btrisurf(Num_Sommet(:,1:3),Coor_Noeud(:,1),Coor_Noeud(:,2), U);view(2);shading interp;H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 19 / 28


Une démo !Résolution d’un problème <strong>de</strong>diffraction d’on<strong>de</strong>s acoustiquesen régime harmoniqueH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 20 / 28


Mise en équation du problème <strong>de</strong> diffractionVariations <strong>de</strong> pression harmoniques : P (x, t) = p(x)e iωt{∆p + ω 2 p = 0 dans R 2 \ Dp = 0sur ∂Dp = p i + p sdomaine <strong>de</strong> calculD ΓOn décompose <strong>la</strong> solution en :p i⃗dΩp i : on<strong>de</strong> inci<strong>de</strong>nte, p s : on<strong>de</strong> diffractéeExemple d’on<strong>de</strong> inci<strong>de</strong>nte, une on<strong>de</strong> p<strong>la</strong>ne : p i (x) = e iω x·⃗d ; | ⃗ d| = 1.On borne le domaine <strong>de</strong> calcul par une frontière fictive Γ.Condition d’on<strong>de</strong> sortante :∂p s∂n − iωp s = 0sur ΓH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 21 / 28


Exemple <strong>de</strong> géométries régulièresPartie réelle <strong>de</strong> <strong>la</strong> solutionDDΓΓE.F. P1E.F. P2H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 22 / 28


Courbes <strong>de</strong> convergence en géométries régulièresRappel : si p k h est <strong>la</strong> solution approchée calculée avec les E.F. P k,‖p − p k h ‖ H 1 (Ω)()log ‖p − p k h ‖ H 1 (Ω)()log(h) ↦→ log ‖p − p k h ‖ H 1 (Ω)∼h→0C h k ‖p‖ H k (Ω)∼h→0 k log(h) + log(C‖p‖ H k (Ω))∼h→0droite <strong>de</strong> pente kH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 23 / 28


Courbes <strong>de</strong> convergence pour <strong>de</strong>s géométries régulièresE.F. <strong>de</strong> Lagrange P kL’erreur d’approximation géométrique empèche l’obtention d’une convergence enO(h k )H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 24 / 28


E.F. isoparamétriquesˆF (x) ∈ P kE.F. <strong>de</strong> référenceE.F. isoparamétriqueH. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 25 / 28


Courbes <strong>de</strong> convergence pour les E.F. iso.E.F. courbes (isoparamétriques)On récupère un odre <strong>de</strong> convergence en O(h k )H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 26 / 28


Exemple <strong>de</strong> géométries non régulièresDΓModule du champ diffracté (E.F. P2)H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 27 / 28


Courbes <strong>de</strong> convergence en présence <strong>de</strong> coinsE.F. courbes (isoparamétriques)La solution /∈ H s , s ≥ 2 ⇒ même vitesse <strong>de</strong> convergence pour les E.F, P k , k > 1.H. Haddar (ENSTA) Cours MA201, Séance 5 ENSTA 2006 28 / 28

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!