Eléments finis spectraux en maillage hexaédrique pour l équation de Helmholtz M. Duruflé, G. Cohen INRIA Rocquencourt Eléments finis spectraux p.1/19
Problème modèle ω 2 1 ρ(x) c 2 (x) u(x) div( 1 ρ(x) u(x)) = f(x) x Ω Eléments finis spectraux p.2/19
Problème modèle ω 2 1 ρ(x) c 2 (x) u(x) div( 1 ρ(x) u(x)) = f(x) x Ω u(x) = u inc (x) x Γ Eléments finis spectraux p.2/19
Problème modèle ω 2 1 ρ(x) c 2 (x) u(x) div( 1 ρ(x) u(x)) = f(x) x Ω u(x) = u inc (x) x Γ u (x) iω u(x) = 0 n x Σ Eléments finis spectraux p.2/19
Problème modèle ω 2 1 ρ(x) c 2 (x) u(x) div( 1 ρ(x) u(x)) = f(x) x Ω u(x) = u inc (x) x Γ u (x) iω u(x) = 0 n x Σ u inc (x) = exp(ik x) : onde plane incidente Eléments finis spectraux p.2/19
Problème modèle ω 2 1 ρ(x) c 2 (x) u(x) div( 1 ρ(x) u(x)) = f(x) x Ω u(x) = u inc (x) x Γ u (x) iω u(x) = 0 n x Σ u inc (x) = exp(ik x) : onde plane incidente c(x) : vitesse de propagation de l onde Eléments finis spectraux p.2/19
Approximation Maillage hexaédrique : M h = N e j=1 K j Eléments finis spectraux p.3/19
Approximation Maillage hexaédrique : M h = K = [0, 1] 3, N e j=1 K j K j : un hexaèdre j Eléments finis spectraux p.3/19
Approximation Maillage hexaédrique : M h = K = [0, 1] 3, N e j=1 K j K j : un hexaèdre j (0,0,1) (0,1,1) (1,0,1) (1,1,1) (0,0,0) (0,1,0) (1,0,0) (1,1,0) Eléments finis spectraux p.3/19
Approximation Maillage hexaédrique : M h = K = [0, 1] 3, N e j=1 K j K j : un hexaèdre j (0,0,1) (0,1,1) (1,0,1) (1,1,1) (0,0,0) (0,1,0) (1,0,0) (1,1,0) DF i est la matrice jacobienne de F i, J i = det DF i. Eléments finis spectraux p.3/19
Approximation Maillage hexaédrique : M h = K = [0, 1] 3, N e j=1 K j K j : un hexaèdre j (0,0,1) (0,1,1) (1,0,1) (1,1,1) (0,0,0) (0,1,0) (1,0,0) (1,1,0) DF i est la matrice jacobienne de F i, J i = det DF i. Q r est l espace des polynômes en ˆx ˆK de degré inférieur ou égal à r en chaque variable. Eléments finis spectraux p.3/19
Équation discrète ( ω 2 D h + K h )U h = F h Eléments finis spectraux p.4/19
Équation discrète ( ω 2 D h + K h )U h = F h (D h ) i,j = Ω ϕ i (x) ϕ j (x) dx Eléments finis spectraux p.4/19
Équation discrète ( ω 2 D h + K h )U h = F h (D h ) i,j = (K h ) i,j = Ω Ω ϕ i (x) ϕ j (x) dx ϕ i (x) ϕ j (x) dx Eléments finis spectraux p.4/19
Équation discrète ( ω 2 D h + K h )U h = F h (D h ) i,j = (K h ) i,j = (F h ) i = Ω Ω ϕ i (x) ϕ j (x) dx ϕ i (x) ϕ j (x) dx Ω ϕ i (x) f(x) dx Eléments finis spectraux p.4/19
Équation discrète ( ω 2 D h + K h )U h = F h (D h ) i,j = (K h ) i,j = (F h ) i = Ω Ω ϕ i (x) ϕ j (x) dx ϕ i (x) ϕ j (x) dx Ω ϕ i (x) f(x) dx u, ϕ U h = {v H 1 0(Ω) tel que v F i Q r } Eléments finis spectraux p.4/19
Degrés de liberté Degrés de liberté pour u (ronds) et v (flèches) Eléments finis spectraux p.5/19
Degrés de liberté Degrés de liberté pour u (ronds) et v (flèches) Degrés de liberté et points de quadrature coincident sur les points de Gauss-Lobatto Eléments finis spectraux p.5/19
Degrés de liberté Degrés de liberté pour u (ronds) et v (flèches) Degrés de liberté et points de quadrature coincident sur les points de Gauss-Lobatto Condensation de masse (cf P. Grob), D h matrice diagonale. Eléments finis spectraux p.5/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h Eléments finis spectraux p.6/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h (R h ) i,j = ˆK ˆ ˆϕ i (ˆx) ˆψj dˆx Eléments finis spectraux p.6/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h (R h ) i,j = (B h ) i,j = ˆK ˆK ˆ ˆϕ i (ˆx) ˆψj dˆx 1 J e DF t e DF e ˆψi ˆψj dˆx Eléments finis spectraux p.6/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h (R h ) i,j = (B h ) i,j = ˆK ˆK ˆ ˆϕ i (ˆx) ˆψj dˆx 1 J e DF t e DF e ˆψi ˆψj dˆx S obtient à l aide d une formulation mixte (cf P. Grob ) Eléments finis spectraux p.6/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h (R h ) i,j = (B h ) i,j = ˆK ˆK ˆ ˆϕ i (ˆx) ˆψj dˆx 1 J e DF t e DF e ˆψi ˆψj dˆx S obtient à l aide d une formulation mixte (cf P. Grob ) B h diagonale par blocs 3x3. Eléments finis spectraux p.6/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h (R h ) i,j = (B h ) i,j = ˆK ˆK ˆ ˆϕ i (ˆx) ˆψj dˆx 1 J e DF t e DF e ˆψi ˆψj dˆx S obtient à l aide d une formulation mixte (cf P. Grob ) B h diagonale par blocs 3x3. Matrice élémentaire de R h indépendante de la géométrie Eléments finis spectraux p.6/19
Factorisation de la matrice de rigidité K h = R h B 1 h Rt h (R h ) i,j = (B h ) i,j = ˆK ˆK ˆ ˆϕ i (ˆx) ˆψj dˆx 1 J e DF t e DF e ˆψi ˆψj dˆx S obtient à l aide d une formulation mixte (cf P. Grob ) B h diagonale par blocs 3x3. Matrice élémentaire de R h indépendante de la géométrie Stockage optimal Eléments finis spectraux p.6/19
Caractère creux de la matrice de rigidité élémentaire Tensorisation d ordre 3 des fonctions de base Eléments finis spectraux p.7/19
Caractère creux de la matrice de rigidité élémentaire Tensorisation d ordre 3 des fonctions de base ˆϕ i (ˆx) = ˆϕ i1 (ˆx) ˆϕ i2 (ŷ) ˆϕ i3 (ẑ) ˆψ j (ˆx) = ˆϕ j1 (ˆx) ˆϕ j2 (ŷ) ˆϕ j3 (ẑ) e 1 Eléments finis spectraux p.7/19
Caractère creux de la matrice de rigidité élémentaire Tensorisation d ordre 3 des fonctions de base ˆϕ i (ˆx) = ˆϕ i1 (ˆx) ˆϕ i2 (ŷ) ˆϕ i3 (ẑ) ˆψ j (ˆx) = ˆϕ j1 (ˆx) ˆϕ j2 (ŷ) ˆϕ j3 (ẑ) e 1 (R h ) i,j = ω j ˆϕ i 1 (ˆξ j1 ) δ i2,j 2 δ i3,j 3 Eléments finis spectraux p.7/19
Caractère creux de la matrice de rigidité élémentaire Tensorisation d ordre 3 des fonctions de base ˆϕ i (ˆx) = ˆϕ i1 (ˆx) ˆϕ i2 (ŷ) ˆϕ i3 (ẑ) ˆψ j (ˆx) = ˆϕ j1 (ˆx) ˆϕ j2 (ŷ) ˆϕ j3 (ẑ) e 1 (R h ) i,j = ω j ˆϕ i 1 (ˆξ j1 ) δ i2,j 2 δ i3,j 3 Présence de δ i2,j 2 δ i3,j 3 matrice élémentaire de R h creuse. Eléments finis spectraux p.7/19
Caractère creux de la matrice de rigidité élémentaire Tensorisation d ordre 3 des fonctions de base ˆϕ i (ˆx) = ˆϕ i1 (ˆx) ˆϕ i2 (ŷ) ˆϕ i3 (ẑ) ˆψ j (ˆx) = ˆϕ j1 (ˆx) ˆϕ j2 (ŷ) ˆϕ j3 (ẑ) e 1 (R h ) i,j = ω j ˆϕ i 1 (ˆξ j1 ) δ i2,j 2 δ i3,j 3 Présence de δ i2,j 2 δ i3,j 3 matrice élémentaire de R h creuse. Matrice R h pleine dans le cas des tétraèdres (pas de tensorisation) Gain en temps de calcul du produit matrice vecteur Y = K h X Eléments finis spectraux p.7/19
Calcul pratique Méthode de Newton-Fourier pour calculer les points de Gauss-Lobatto à n importe quel ordre cf P. N. Swarztrauber, SIAM (2002) Eléments finis spectraux p.8/19
Calcul pratique Méthode de Newton-Fourier pour calculer les points de Gauss-Lobatto à n importe quel ordre cf P. N. Swarztrauber, SIAM (2002) Utilisation des expressions analytiques des fonctions de base, expressions génériques selon l ordre Eléments finis spectraux p.8/19
Calcul pratique Méthode de Newton-Fourier pour calculer les points de Gauss-Lobatto à n importe quel ordre cf P. N. Swarztrauber, SIAM (2002) Utilisation des expressions analytiques des fonctions de base, expressions génériques selon l ordre Utilisation du stockage morse pour la matrice élémentaire R h Eléments finis spectraux p.8/19
Numérotation locale et globale Données du maillage : Sommets (coordonnées) Hexaèdres (numéros des 8 sommets pour chaque hexaèdre) Eléments finis spectraux p.9/19
Numérotation locale et globale Données du maillage : Sommets (coordonnées) Hexaèdres (numéros des 8 sommets pour chaque hexaèdre) Utilisation d algorithmes optimaux de recherche d arêtes et de faces (cf F. Hecht (*) ) Eléments finis spectraux p.9/19
Numérotation locale et globale Données du maillage : Sommets (coordonnées) Hexaèdres (numéros des 8 sommets pour chaque hexaèdre) Utilisation d algorithmes optimaux de recherche d arêtes et de faces (cf F. Hecht (*) ) Numérotation des ddl, dans l ordre : ddl sur les sommets Eléments finis spectraux p.9/19
Numérotation locale et globale Données du maillage : Sommets (coordonnées) Hexaèdres (numéros des 8 sommets pour chaque hexaèdre) Utilisation d algorithmes optimaux de recherche d arêtes et de faces (cf F. Hecht (*) ) Numérotation des ddl, dans l ordre : ddl sur les sommets ddl sur les arêtes, puis sur les faces (*) Eléments finis spectraux p.9/19
Numérotation locale et globale Données du maillage : Sommets (coordonnées) Hexaèdres (numéros des 8 sommets pour chaque hexaèdre) Utilisation d algorithmes optimaux de recherche d arêtes et de faces (cf F. Hecht (*) ) Numérotation des ddl, dans l ordre : ddl sur les sommets ddl sur les arêtes, puis sur les faces (*) ddl internes lg(e,i) associe au ième ddl de l élément e, le numéro global du ddl. Eléments finis spectraux p.9/19
Algorithme du produit matrice-vecteur Y = 0 Pour e = 1, nombre d hexaèdres du maillage Eléments finis spectraux p.10/19
Algorithme du produit matrice-vecteur Y = 0 Pour e = 1, nombre d hexaèdres du maillage Pour i = 1, (r + 1) 3 Ulocal(i) = Uglobal( lg(e,i) ) Fin Pour Eléments finis spectraux p.10/19
Algorithme du produit matrice-vecteur Y = 0 Pour e = 1, nombre d hexaèdres du maillage Pour i = 1, (r + 1) 3 Ulocal(i) = Uglobal( lg(e,i) ) Fin Pour // produit matrice-vecteur creux standard Vlocal = R h * Ulocal Eléments finis spectraux p.10/19
Algorithme du produit matrice-vecteur Y = 0 Pour e = 1, nombre d hexaèdres du maillage Pour i = 1, (r + 1) 3 Fin Pour Ulocal(i) = Uglobal( lg(e,i) ) // produit matrice-vecteur creux standard Vlocal = R h * Ulocal // produit par la matrice diagonale par blocs B 1 h Pour i = 1, (r + 1) 3 Pour j = 1,3 V(j) = Vlocal(3*(i-1) + j) Eléments finis spectraux p.10/19
Algorithme du produit matrice-vecteur // produit matrice-vecteur creux standard Vlocal = R h * Ulocal // produit par la matrice diagonale par blocs B 1 h Pour i = 1, (r + 1) 3 Pour j = 1,3 B 1 h Fin Pour V(j) = Vlocal(3*(i-1) + j) _V = B 1 (e, i) * V Pour j = 1,3 h Vlocal(3*(i-1) + j) = B 1 h _V(j) Eléments finis spectraux p.10/19
Algorithme du produit matrice-vecteur // produit par la matrice diagonale par blocs B 1 h Pour i = 1, (r + 1) 3 Pour j = 1,3 B 1 h Fin Pour V(j) = Vlocal(3*(i-1) + j) _V = B 1 (e, i) * V Pour j = 1,3 h Vlocal(3*(i-1) + j) = B 1 h _V(j) // produit matrice-vecteur creux standard Ulocal = R t h * Vlocal Eléments finis spectraux p.10/19
Algorithme du produit matrice-vecteur B 1 h Fin Pour _V = B 1 (e, i) * V Pour j = 1,3 h Vlocal(3*(i-1) + j) = B 1 h _V(j) // produit matrice-vecteur creux standard Ulocal = R t h * Vlocal Pour i = 1, (r + 1) 3 Fin Pour Fin boucle éléments Y( lg(e,i) ) += Ulocal(i) Eléments finis spectraux p.10/19
Application de l algorithme En régime transitoire, itérations en temps : D h ( U n+1 2 U n + U n 1 t 2 ) + K h U n = F n Eléments finis spectraux p.11/19
Application de l algorithme En régime transitoire, itérations en temps : ( U n+1 2 U n + U n 1 ) D h t 2 + K h U n = F n Utilisation du produit matrice-vecteur à chaque itération Eléments finis spectraux p.11/19
Application de l algorithme En régime transitoire, itérations en temps : ( U n+1 2 U n + U n 1 ) D h t 2 + K h U n = F n Utilisation du produit matrice-vecteur à chaque itération En régime harmonique, résolution d un système linéaire : ω 2 D h U + K h U = F Eléments finis spectraux p.11/19
Application de l algorithme En régime transitoire, itérations en temps : ( U n+1 2 U n + U n 1 ) D h t 2 + K h U n = F n Utilisation du produit matrice-vecteur à chaque itération En régime harmonique, résolution d un système linéaire : ω 2 D h U + K h U = F Solveur itératif : utilisation du produit matrice-vecteur Eléments finis spectraux p.11/19
Application de l algorithme En régime transitoire, itérations en temps : ( U n+1 2 U n + U n 1 ) D h t 2 + K h U n = F n Utilisation du produit matrice-vecteur à chaque itération En régime harmonique, résolution d un système linéaire : ω 2 D h U + K h U = F Solveur itératif : utilisation du produit matrice-vecteur Remarque : pour un solveur direct, assemblage classique Eléments finis spectraux p.11/19
Temps de calcul 240 220 Tetrahedra Hexahedra 200 180 time (in s) 160 140 120 100 80 60 2 3 4 5 6 7 8 order Temps de calcul pour 100 produits matrice vecteur Nombre de ddl constant (environ 1 million) Eléments finis spectraux p.12/19
Stockage 600 Tetrahedra Hexahedra 500 memory (in Mo) 400 300 200 100 0 2 3 4 5 6 7 8 order Mémoire utilisée pour stocker la matrice Nombre de ddl constant (environ 1 million) Eléments finis spectraux p.13/19
Validation sur le cas de la sphère Frontière intérieure Γ = sphère de rayon a Frontière extérieure Σ = sphère de rayon b Eléments finis spectraux p.14/19
Validation sur le cas de la sphère Frontière intérieure Γ = sphère de rayon a Frontière extérieure Σ = sphère de rayon b Partie réelle du champ diffracté a = 1.0 b = 1.5 Eléments finis spectraux p.14/19
Validation sur le cas de la sphère Frontière intérieure Γ = sphère de rayon a Frontière extérieure Σ = sphère de rayon b Partie réelle du champ total a = 1.0 b = 1.5 Eléments finis spectraux p.14/19
Convergence en fonction de l ordre 1 1.5 2 log 10 (error) 2.5 3 3.5 4 Q1 Q2 Q3 Q4 Q5 4.5 5 3 3.5 4 4.5 5 5.5 log 10 (dof) Evolution de l erreur L 2 en fonction du nombre de ddl, échelle log-log. Utilisation d éléments finis courbes. Eléments finis spectraux p.15/19
Choix du solveur itératif 2 1 0 COCG BICGCR QMR GMRES log(error) 1 2 3 4 5 6 0 2000 4000 6000 8000 10000 Number of iterations Evolution du résidu relatif en fonction du solveur utilisé Cas haute-fréquence a = 10 b = 12 Eléments finis spectraux p.16/19
Influence de la fréquence 5000 4500 4000 Number iterations 3500 3000 2500 2000 1500 1000 500 0.5 1 1.5 2 frequency (f) Nombre d itérations en fonction de la fréquence (solveur QMR) Nombre de ddl constant (environ 1,1 million) Eléments finis spectraux p.17/19
Préconditionneur utilisé Méthode de Schwarz additive sans recouvrement Eléments finis spectraux p.18/19
Préconditionneur utilisé Méthode de Schwarz additive sans recouvrement N s Décomposition en sous-domaines Ω = i=1 Ω i Eléments finis spectraux p.18/19
Préconditionneur utilisé Méthode de Schwarz additive sans recouvrement N s Décomposition en sous-domaines Ω = M 1 = N s i=1 i=1 P i A 1 i P t i Ω i Eléments finis spectraux p.18/19
Préconditionneur utilisé Méthode de Schwarz additive sans recouvrement N s Décomposition en sous-domaines Ω = M 1 = N s i=1 i=1 P i A 1 i P i, opérateur de projection de Ω i vers Ω A i matrice élément fini de Ω i P t i Ω i Eléments finis spectraux p.18/19
Préconditionneur utilisé Méthode de Schwarz additive sans recouvrement N s Décomposition en sous-domaines Ω = M 1 = N s i=1 i=1 P i A 1 i P i, opérateur de projection de Ω i vers Ω A i matrice élément fini de Ω i Condition absorbante d ordre 1 sur les frontières internes des sous-domaines P t i Ω i Eléments finis spectraux p.18/19
Préconditionneur utilisé Méthode de Schwarz additive sans recouvrement N s Décomposition en sous-domaines Ω = M 1 = N s i=1 i=1 P i A 1 i P i, opérateur de projection de Ω i vers Ω A i matrice élément fini de Ω i Condition absorbante d ordre 1 sur les frontières internes des sous-domaines Factorisation des matrices A i à l aide d un solveur direct (MUMPS) P t i Ω i Eléments finis spectraux p.18/19
Performances avec préconditionneur Cas moyenne fréquence a = 5 b = 6, 170 000 ddl environ Eléments finis spectraux p.19/19
Performances avec préconditionneur Cas moyenne fréquence a = 5 b = 6, 170 000 ddl environ QMR sans préconditionneur, tolérance de 10 6 Ordre Q3 Q5 Q7 Nombre itérations 585 826 1305 Temps 128s 154s 244s Eléments finis spectraux p.19/19
Performances avec préconditionneur Cas moyenne fréquence a = 5 b = 6, 170 000 ddl environ QMR sans préconditionneur, tolérance de 10 6 Ordre Q3 Q5 Q7 Nombre itérations 585 826 1305 Temps 128s 154s 244s COCG avec préconditionneur(n s = 26), tolérance de 10 5 Ordre Q3 Q5 Q7 Nombre itérations 91 110 199 Temps 75s 89s 230s Eléments finis spectraux p.19/19