20 CHAPITRE 3. LES CLASSES TABLEAUX x=0 ; GradienConjugue(A,C,b,x,n,1e-10); s = A*x ; cout
Chapitre 4 Métho<strong>de</strong>s d’<strong>éléments</strong> <strong>finis</strong> P1 4.1 Le problème <strong>et</strong> l’algorithme Le problème est <strong>de</strong> résoudre numériquement l’équation <strong>de</strong> la chaleur dans un domaine Ω <strong>de</strong> IR 2 . ∆u = f, dans Ω, u = g sur ∂Ω, u = u0 au temps 0 (4.1) Nous utiliserons la discrétisation par <strong>de</strong>s <strong>éléments</strong> <strong>finis</strong> P 1 Lagrange construite sur un maillage Th <strong>de</strong> Ω. Notons Vh l’espace <strong>de</strong>s fonctions <strong>éléments</strong> <strong>finis</strong> <strong>et</strong> V0h les fonctions <strong>de</strong> Vh nulle sur bord <strong>de</strong> Ωh (ouvert obtenu comme l’intérieur <strong>de</strong> l’union <strong>de</strong>s triangles fermés <strong>de</strong> Th). Vh = {v ∈ C 0 (Ωh)/∀K ∈ Th, v|K ∈ P 1 (K)} (4.2) Après utilisation <strong>de</strong> la formule <strong>de</strong> Green, <strong>et</strong> en multipliant par δt, le problème peut alors s’écrire: medskip Calculer u n+1 h ∈ Vh à partir <strong>de</strong> u n h , où la donnée initiale u0 h est interpolé P 1 <strong>de</strong> u0. ∇uh∇vh = Ω Ω fvh, ∀vh ∈ V0h, (4.3) uh = g sur les somm<strong>et</strong>s <strong>de</strong> Th dans ∂Ω Nous nous proposons <strong>de</strong> programmer c<strong>et</strong>te métho<strong>de</strong> l’algorithme du gradient conjugue pour résoudre le problème linéaire car nous avons pas besoin <strong>de</strong> connaître explicitement la matrice, mais seulement, le produit matrice vecteur. On utilisera la formule l’intégration sur un triangle K qui est formé avec les 3 somm<strong>et</strong>s qi K , suivante: K f ≈ aireK 3 3 f(q i K) (4.4) Puis, notons, (wi )i=1,Ns les fonctions <strong>de</strong> base <strong>de</strong> Vh associées aux Ns somm<strong>et</strong>s <strong>de</strong> Th <strong>de</strong> coordonnées (qi )i=1,Ns, tel que wi (qj) = δij. Notons, U k i le vecteur <strong>de</strong> IR Ns associé à uk <strong>et</strong> tel que uk = i=1,Ns U k i wi . Sur un triangle K formé <strong>de</strong> somm<strong>et</strong>s i, j, k tournants dans le sens trigonométrique. Notons, H i K le vecteur hauteur pointant sur le somm<strong>et</strong> i du triangle K <strong>et</strong> <strong>de</strong> longueur l’inverse <strong>de</strong> la hauteur, alors on a: i=1 ∇w i |K = H i K = (qj − q k ) ⊥ 2 aireK où l’opérateur ⊥ <strong>de</strong> IR 2 est défini comme la rotation <strong>de</strong> π/2, ie. (a, b) ⊥ = (−b, a). Algorithme 2 Le plus simple <strong>de</strong>s programmes d’<strong>éléments</strong> <strong>finis</strong> 1. On peut calculer ui = Ω wi f en utilisant la formule 4.4, comme suit: (a) ∀i = 1, Ns; ui = 0; (b) ∀K ∈ Th; ∀i somm<strong>et</strong> <strong>de</strong> K; ui = σi + f(bK)aireK/3; où bK est le barycentre du triangle K. 21 (4.5)