• Aucun résultat trouvé

Élargissement des voisinages de reconstruction par des méthodes itératives

Étude de méthodes de reconstruction compactes

8.4. Élargissement des voisinages de reconstruction par des méthodes itératives

Les algorithmes présentés dans les sections 8.2 et 8.3 travaillent par itérations dans le but d’augmenter l’ordre de la reconstruction polynomiale. On peut noter que l’approche des itéra-tions peut simplement servir à élargir le voisinage de la reconstruction, sans augmentation de l’ordre de la reconstruction. L’étude du chapitre 10 montrera en effet que l’élargissement des voisinages de reconstruction fournit des schémas numériques plus robustes, ce qui rend cette technique intéressante. L’étude de cette section nécessite de façon explicite les définitions des voisinages de la section 5.4, et en particulier la définition (5.4.2) du premier voisinage augmenté

b

Vα et la définition (5.4.3) du deuxième voisinage augmenté bV(2)α .

Considérons d’abord le cas le plus simple, celui d’une reconstruction des polynômes de degré un, c’est-à-dire d’une reconstruction linéaire par morceaux. Le point de départ de la méthode est un gradient consistant (8.3.1), de précision à l’ordre un au sens de la définition 7.4.1,

σα[u] =X

β

σαβuβ =X

β

σαβ(uβ− uα) .

On suppose que le gradient σα[u] se calcule sur le premier voisinage augmenté bVα de la cellule, ce qui permet une implémentation rapide et efficace. Par convention, σαβ , 0 si β /∈ bVα, c’est-à-dire si la cellule Tβ n’est pas dans le voisinage de reconstruction de la cellule Tα.

L’opérateur (8.3.1) permet de reproduire les polynômes de degré un grâce aux identités (8.3.2) et (8.3.3) X β σαβ = 0 X β σαβ ⊗ hαβ = δ(2).

On se donne comme objectif de calculer un gradient sur un voisinage plus grand que le premier voisinage bVα, par un algorithme qui ne fait intervenir que bVα. Une idée simple consiste à utiliser une combinaison linéaire des gradients au premier voisinage de la cellule Tα

˘ σα[u],X β ξαβσβ[u] =X β ξαβ X γ σβγuγ ! (8.4.1) où les ξαβ sont des coefficients réels. Par convention, on définit ξαβ , 0 si β /∈ bVα, afin de simplifier l’écriture de (8.4.1).

Il résulte directement de la formule (8.4.1) que le gradient ˘σα[u] est consistant si X

β

ξαβ = 1 . (8.4.2)

Si tous les ξαβ sont positifs, le gradient ˘σα[u] est une combinaison convexe des gradients σβ[u], β ∈ bVα. Dans ce cas, il est possible d’interpréter le gradient (8.4.1) comme une moyenne pondérée des gradients sur le premier voisinage de la cellule Tα. Un choix naturel pour les coefficients ξαβ est une pondération par les volumes des cellules. Cela donne l’algorithme suivant.

Algorithme 8.4.1 (Reconstruction du gradient sur un voisinage élargi). Supposons donné

un gradient consistant σβ[u] calculé sur le premier voisinage. Il est possible d’implémenter une

reconstruction du gradient sur le deuxième voisinage qui fait intervenir uniquement des sommes sur les premiers voisinages bVα.

8.4. ÉLARGISSEMENT DES VOISINAGES DE RECONSTRUCTION PAR DES MÉTHODES ITÉRATIVES 125

(1) Dans une première étape, l’algorithme calcule un gradient consistant sur le premier

voisinage de chaque cellule Tα par la formule

σα[u] =X

β

σαβuβ.

Ce gradient est stocké dans un tableau de travail indexé par le numéro de cellule.

(2) Dans une deuxième étape, l’algorithme calcule le gradient (8.4.1) par la formule ˘

σα[u], X

β∈bVα

ξαβσβ[u]

où la somme est effectuée sur le premier voisinage. Les coefficients ξαβ sont données par

ξαβ = P |Tβ|

γ∈bVα|Tγ|.

Il est possible d’utiliser des formules différentes pour les coefficients ξαβ, ce qui donne des va-riantes de l’algorithme 8.4.1.

L’algorithme 8.4.1 s’étend facilement à la reconstruction des polynômes de degré deux. Sup-posons donnés une dérivée seconde consistante

θα[u] =X

β

θαβuβ =X

β

θαβ(uβ− uα)

et un gradient consistant de précision à l’ordre deux σα[u] =X

β

σαβuβ =X

β

σαβ(uβ− uα) .

Il est alors possible de calculer une dérivée seconde moyennée par la formule ˘ θα[u],X β ξαβθβ[u] =X β ξαβ X γ θβγuγ ! . (8.4.3)

Pour moyenner correctement le gradient de précision à l’ordre deux, il faut tenir compte de la dérivée seconde. Le gradient moyenné ˘σα[u] doit donc être calculé par la formule

˘ σα[u],X β ηαβ σβ[u] − ˘θα[u] · hαβ  (8.4.4) pour qu’il soit de précision à l’ordre deux. Dans (8.4.4), les ηαβ sont des coefficients réels qui satisfont également (8.4.2).

Soit p un polynôme de degré deux dont les moyennes de cellule sont p = (p1, . . . , pN). Il vient, par la consistance de θβ,

θα[p] = D(2)p

et, par la consistance de σβ,

σβ[p] = D(1)p = D(1)p + D(2)p · hαβ.

Les formules (8.4.3), (8.4.4) ainsi que la condition (8.4.2) pour les coefficients ξαβ et ηαβ en-traînent alors ˘ θα[p] = D(2)p ˘ σα[p] = D(1)p ,

ce qui prouve que ˘θα et ˘σα reconstruisent correctement la dérivée seconde et le gradient de tout polynôme de degré deux.

Algorithme 8.4.2 (Reconstruction de la dérivée seconde et du gradient sur un voisinage élargi). Supposons donnés une dérivée seconde consistante θα[u] et un gradient consistant σα[u]

de précision à l’ordre deux, calculés sur un voisinage arbitraire cWα. Il est possible d’implémenter

une reconstruction du gradient et de la dérivée seconde sur le voisinage S

β∈bVαcWβ qui fait

intervenir uniquement des sommes sur les premiers voisinages bVα et les voisinages cWα. (1) Dans une première étape, l’algorithme calcule la dérivée seconde consistante θα[u] et

le gradient consistant σα[u] sur le voisinage cWα de chaque cellule Tα par les formules

θα[u] = X β∈ bWα θαβuβ σα[u] = X β∈ bWα σαβuβ.

Le gradient et la dérivée seconde sont stockés dans un tableau de travail indexé par le numéro de cellule.

(2) Dans une deuxième étape, l’algorithme calcule la dérivée seconde (8.4.3) et le gradient

(8.4.4) par les formules

˘ θα[u], X β∈bVα ξαβθβ[u] ˘ σα[u], X β∈bVα ηαβ σβ[u] − ˘θα[u] · hαβ 

où la somme est effectuée sur le premier voisinage bVα. Les coefficients ξαβ et ηαβ sont données par

ηαβ = ξαβ = P |Tβ|

γ∈bVα|Tγ|.

Il est possible d’utiliser des formules différentes pour les coefficients ξαβ et ηαβ, ce qui donne des variantes de l’algorithme 8.4.2.

Les algorithmes 8.4.1 et 8.4.2 permettent de définir des variantes de la méthode des moindres carrés couplés et de la méthode des corrections successives.

Dans le cas de la méthode des moindres carrés couplés, l’algorithme 8.4.2 peut être utilisé pour moyenner les dérivées reconstruites par l’algorithme 8.2.2. Cela donne l’algorithme suivant, appelé méthode MCCIE.

Algorithme 8.4.3 (Reconstruction des polynômes de degré deux par la méthode itérative des moindres carrés couplés sur un voisinage élargi ou méthode MCCIE). Il est possible de

reconstruire les polynômes de degré deux sur un voisinage élargi de la façon suivante :

(1) Dans une première étape, l’algorithme 8.2.2 calcule dans chaque cellule une dérivée

seconde consistante θα[u] et un gradient consistant σα[u] de précision à l’ordre deux. (2) Dans une deuxième étape, l’algorithme 8.4.2 calcule une dérivée seconde consistante

moyennée ˘θα[u] et un gradient consistant moyenné ˘σα[u] de précision à l’ordre deux. Il est également possible d’élargir le voisinage effectif de l’algorithme 8.3.8 de la méthode des corrections successives. Pour cela, on peut utiliser l’opérateur de gradient ˘σα[u], défini par (8.4.1) et calculé par l’algorithme 8.4.1, à la place de l’opérateur de gradient σα[u] utilisé par la méthode des corrections successives.

Pour expliciter l’algorithme, il est utile d’introduire quelques notations. On définit les vec-teurs ˘ σαβ , (P γ∈bVαξαγσγβ si β ∈ bV(2)α 0 sinon ,

8.4. ÉLARGISSEMENT DES VOISINAGES DE RECONSTRUCTION PAR DES MÉTHODES ITÉRATIVES 127

ce qui permet d’exprimer l’opérateur de gradient (8.4.1) sous la forme simple ˘ σα[u],Xσ˘αβuβ = X β∈bVγ X γ∈bVα ξαγσγβuβ = X γ∈bVα ξαγσγ[u] .

Le gradient ˘σα[u] permet de calculer le tenseur ˘τ(4)α , l’équivalent du tenseur (8.3.17), par la formule ˘ τ(4)α , 1 2 X β,γ ( ˘σαβ ⊙ ˘σβγ) ⊗ z(2)αγ. (8.4.5)

Le tenseur (8.4.5) permet de définir l’application de Brenner ˘ T(2)α :  Sd 2 −→ Sd 2 a(2) 7−→ ˘τ(4)α · a(2) (8.4.6)

dont l’application inverse, si elle existe, sera notée ˘

C(2)α : Sd

2 −→ Sd 2

a(2) 7−→ ˘C(2)α a(2) . (8.4.7)

Si l’application inverse (8.4.7) existe, il est possible d’implémenter l’algorithme suivant, ap-pelé méthode CSE.

Algorithme 8.4.4 (Reconstruction quadratique par la méthode des corrections successives sur un voisinage élargi ou méthode CSE). L’algorithme travaille de la même manière que

l’al-gorithme 8.3.8 :

(1) Dans une première étape, l’algorithme 8.4.1 calcule le gradient (8.4.1) par la formule ˘

σα[u],X

β

˘ σαβuβ.

Les gradients ˘σα[u] sont stockés dans un tableau indexé par le numéro de cellule. (2) Dans une deuxième étape, l’algorithme calcule l’opérateur approché b˘θα[u] par la formule

b˘θα[u] =X β ˘ σαβ ⊙ ˘σβ[u] =X β ˘ σαβX γ ˘ σβγuγ ! .

(3) Dans une troisième étape, l’application ˘C(2)α (8.4.7) permet de déterminer à partir de

b˘θα[u] une dérivée seconde consistante au sens de la définition 7.4.1 par la formule ˘

θα[u] = ˘C(2)α · b˘θα[u] .

(4) Finalement, l’application ˘C(2)α permet de calculer un gradient consistant ˇσ˘α[u] de

préci-sion à l’ordre deux par la formule (8.3.31). Il suffit pour cela de remplacer les vecteurs

σαβ par les vecteurs ˘σαβ, ce qui donne

ˇ ˘ σα[u],X β ˘ σαβuβ1 2! X β ˘ σαβ  ˘ C(2)α · b˘θα[u]  • z(2)αβ 

L’application ˘C(2)α peut être réalisée par une matrice qui est déterminée avant le début du calcul.

Les algorithmes 8.4.1, 8.4.2, 8.4.3 et 8.4.4 ont été implémentés et testés pour l’équation de la convection linéaire sur des maillages non structurés, cf. section 8.5. L’algorithme 8.4.1 a également été implémenté dans Cedre et utilisé pour les calculs décrits dans les chapitres 13 et 14.

8.5. Étude numérique

Le chapitre présente deux méthodes itératives de reconstruction de degré élevé dont l’étude théorique n’a pas permis d’éclaircir tous les aspects. Il faut donc recourir à des expériences numériques pour vérifier la faisabilité de ces méthodes. Les points suivants restent ouverts :

(1) Pour la méthode des moindres carrés couplés, introduite dans la section 8.2, il reste à prouver la précision des algorithmes itératifs 8.2.2 (MCCI) et 8.4.3 (MCCIE) en maillage non structuré. En maillage cartésien, l’algorithme calcule la bonne solution à la première itération.

(2) Pour la méthode des corrections successives CS, introduite dans la section 8.3, il reste à démontrer l’inversibilité des applications de Brenner, introduites par les définitions 8.3.3 et 8.3.12. En maillage cartésien, les applications de Brenner sont inversibles car elles sont égales à l’application identité.

Cela signifie que des expériences numériques sont indispensables pour s’assurer du bon fonction-nement des deux méthodes en maillage non structuré. Les tests numériques de cette section sont restreints à la reconstruction des polynômes de degré deux. Pour des raisons de simplicité, ces tests s’effectuent en même temps que les tests de stabilité et précision des chapitres 10 et 11.

Les reconstructions suivantes ont été testées :

(1) La reconstruction par la méthode MCCI, définie par l’algorithme 8.2.2. (2) La reconstruction par la méthode MCCIE, définie par l’algorithme 8.4.3. (3) La reconstruction par la méthode CS, définie par l’algorithme 8.3.8. (4) La reconstruction par la méthode CSE, définie par l’algorithme 8.4.4. Ces méthodes ont été testées sur les maillages suivants :

(1) Des maillages de tétraèdres en dimension trois et des maillages de triangles en dimension deux.

(2) Des maillages hybrides constitués de tétraèdres et de prismes en dimension trois. (3) Des maillages hybrides constitués de triangles et de quadrilatères en dimension deux. (4) Des maillages cartésiens et des maillages cartésiens déformés en dimensions deux et

trois.

Pour les méthodes CS et CSE, il faut résoudre le système linéaire b

θα[u] = τ(4)α · θα[u] (8.5.1)

pour l’inconnue θα[u]. Dans (8.5.1), bθα[u] est l’opérateur (8.3.9), τ(4)α est le tenseur (8.3.17) qui exprime l’application de Brenner et θα[u] est la dérivée seconde consistante qu’on souhaite calculer. Il est important d’étudier le nombre de conditionnement des matrices associées au système (8.5.1). Notons Tα(2) la matrice de l’application de Brenner T(2)α dans la base canonique de Sd

2, l’espace des tenseurs symétriques d’ordre deux dans Rd. Le nombre de conditionnement de Tα(2), défini par κ Tα(2) , Tα(2) 2  Tα(2)−1 2 , (8.5.2)

mesure la dépendance de la solution θα[u] du problème numérique (8.5.1) par rapport à la donnée bθα[u]. Si (8.5.2) est grand, de petites fluctuations de bθα[u] peuvent entraîner de grandes fluctuations de θα[u], ce qui n’est pas souhaitable.

Les tableaux 8.5.1 et 8.5.2 montrent les statistiques du nombre de conditionnement (8.5.2) pour les méthodes CS et CSE sur quatre maillages de tétraèdres. Les données indiquent claire-ment que le nombre de conditionneclaire-ment des matrices Tα(2) peut devenir très grand en maillage de tétraèdres dans le cas de la méthode CS, alors que la méthode CSE fournit des nombres de conditionnement beaucoup plus petits.

Pour vérifier l’ordre de la reconstruction, on effectue une étude des taux de convergence de l’erreur numérique comme dans la section 7.10. Cette étude est restreinte à la dimension deux

8.5. ÉTUDE NUMÉRIQUE 129

N° de maillage Minimum Moyenne Écart type Maximum 1 3.285911833 21.09174648 142.1172384 3821.921630 2 3.431990220 15.12346084 22.07730547 523.5432088 3 2.836825741 18.87527358 82.85973253 2099.992411 4 2.867492427 20.35547288 166.5128024 7960.788417

Tab.8.5.1: Nombre de conditionnement (8.5.2) de l’application de Brenner pour la méthode CS (algorithme 8.3.8) en maillage de tétraèdres.

N° de maillage Minimum Moyenne Écart type Maximum 1 1.188013434 1.673177682 0.2991381013 3.570445351 2 1.216102652 1.712074288 0.2845642871 3.400043570 3 1.194822559 1.600451133 0.2567874414 4.761886966 4 1.167254242 1.688491073 0.2710019992 4.158304507

Tab. 8.5.2: Nombre de conditionnement (8.5.2) de l’application de Brenner pour la méthode CSE (algorithme 8.4.4) en maillage de tétraèdres.

car les tests en maillage de tétraèdres demandent un nombre élevé de cellules pour obtenir une précision suffisante. L’outil de test n’était pas suffisamment performant pour faire des tests en dimension trois dans des conditions satisfaisantes.

On se place donc sur un carré Ω =

(x, y) ∈ R2 0 ≤ x ≤ 1 , 0 ≤ y ≤ 1

avec des conditions de périodicité au bord. La fonction test est la fonction périodique (7.10.1) u0(x, y) = sin (2πx) sin (2πy)

dont les moyennes de cellule sont notées u = (u1, . . . , uN). A partir de ces moyennes, on recons-truit dans chaque cellule un polynôme wα[u] (x) et on calcule l’erreur d’approximation (7.10.2)

ε = qPN α=1 R |wα[u] (x) − u0(x)|2 dx qPN α=1 R |u0(x)|2 dx par des formules d’intégration numérique d’une précision suffisante.

La figure 7.10.1 sur la page 98 montre deux exemples de maillages non structurés. Ces maillages ont été générés avec le logiciel Gmsh. Pour le maillage le plus grossier, soit ε0 l’erreur (7.10.2) et h0 le diamètre du maillage. Lorsqu’on dessine log (ε/ε0) en fonction de log (h/h0) pour les différents maillages testés, on obtient une courbe dont la pente est une mesure pour le taux de convergence de l’erreur d’approximation en fonction du diamètre des mailles.

La figure 8.5.1 montre les courbes pour des maillages triangulaires et des maillages hybrides composés de triangles et de quadrangles. La courbe appelée Degré 2 Vois. 2 correspond à la reconstruction par la méthode des moindres carrés, introduite par la définition 7.7.1, sur le deuxième voisinage. Cette courbe permet de comparer les taux de convergence des méthodes itératives avec celui de la méthode des moindres carrés. On constate que les pentes sont effec-tivement de −3 pour toutes les méthodes testées, ce qui montre que les reconstructions itéra-tives satisfont une estimation du type (6.3.3). Cependant, lorsque h diminue, la méthode MCCI montre un taux de convergence légèrement plus faible que les autres méthodes en maillage trian-gulaire. L’étude du chapitre 10 montre que la méthode MCCI s’avère instable sur des maillages de triangles et de tétraèdres et doit donc être remplacée par la méthode MCCIE. Pour cette raison, la question du taux de convergence de la méthode MCCI n’a pas été analysée de façon plus approfondie.

log(h/h0) lo g ( ε/ ε0 ) -1.5 -1 -0.5 0 -6 -5 -4 -3 -2 -1 0 Degré 2 Vois. 2 Degré 2 CS Degré 2 MCCI Degré 2 CSE Degré 2 MCCIE Maillages triangulaires log(h/h0) lo g ( ε/ ε0 ) -1.5 -1 -0.5 0 -6 -5 -4 -3 -2 -1 0 Degré 2 Vois. 2 Degré 2 CS Degré 2 MCCI Degré 2 CSE Degré 2 MCCIE Maillages hybrides

Fig. 8.5.1: Taux de convergence des méthodes de reconstruction itératives en dimension deux. Les méthodes MCCI et MCCIE utilisent ici 3 itérations.

(1) Les algorithmes 8.2.2 (MCCI) et 8.4.3 (MCCIE) de la méthode des moindres carrés couplés permettent de reconstruire les polynômes de degré deux en dimension deux et dimension trois. Comme ces méthodes dépendent de la convergence des itérations, l’erreur sur les dérivées reconstruites est légèrement plus grande que pour la méthode des corrections successives.

(2) Les tests de la méthode des corrections successives montrent que l’application de Bren-ner est inversible sur tous les maillages testés. En dimension trois, par contre, l’al-gorithme 8.3.8 (CS) produit des matrices de correction très mal conditionnées, cf. le tableau 8.5.1. Il faut par conséquent remplacer l’algorithme 8.3.8 (CS) par l’algorithme 8.4.4 (CSE) qui n’a pas ce problème.

Il est donc possible d’utiliser les méthodes de reconstruction présentées dans ce chapitre. Cepen-dant, il faut noter que l’étude de stabilité du chapitre 10 montre clairement que les algorithmes 8.2.2 et 8.3.8 conduisent à des schémas instables, en particulier en maillage de tétraèdres mais aussi en maillage de triangles. Il est donc nécessaire de les remplacer par les algorithmes 8.4.3 et 8.4.4.

8.6. Bilan du chapitre

L’étude a permis de concevoir des méthodes de reconstruction particulièrement adaptées à une implémentation rapide et facile dans des logiciels de grand calcul comme Cedre. L’avantage principal de ces méthodes est d’éviter des voisinages de reconstruction trop larges et d’échan-ger des données uniquement entre cellules adjacentes. Cela permet de réduire les données de connectivité entre les cellules à un minimum et facilite l’échange des données entre les diffé-rentes partitions du maillage dans le cas du calcul parallèle.

L’étude de ce chapitre a d’abord permis d’analyser deux méthodes de reconstruction de polynômes de degré élevé :

(1) La section 8.2 a présenté la méthode des moindres carrés couplés. L’algorithme 8.2.2 (MCCI) permet, à partir d’un gradient consistant, de calculer une dérivée seconde consistante et un gradient consistant de précision à l’ordre deux. Cela permet de re-construire les polynômes de degré deux. Il manque cependant encore une preuve ma-thématique rigoureuse de la précision de l’algorithme 8.2.2. L’extension de l’algorithme 8.2.2 aux polynômes de degré k > 2 paraît possible mais ce travail supplémentaire est trop important pour rentrer dans le cadre de cette thèse.

8.6. BILAN DU CHAPITRE 131

(2) La section 8.3 a introduit la méthode des corrections successives. L’algorithme 8.3.8 (CS) permet, à partir d’un gradient consistant, de calculer une dérivée seconde consis-tante et un gradient de précision à l’ordre deux, ce qui permet de reconstruire les polynômes de degré deux. Il manque encore une preuve mathématique rigoureuse de l’inversibilité de l’application de Brenner (8.3.20). Finalement, l’algorithme 8.3.17 per-met en principe de reconstruire les polynômes de degré k > 2, mais cette méthode n’a pas été testée dans le cadre de cette thèse car le travail aurait été trop important. L’étude a également servi à concevoir des méthodes qui permettent d’élargir les voisinages de re-construction sans engendrer des coûts de calcul informatique exorbitants. La section 8.4 présente les algorithmes suivants :

(1) Les algorithmes 8.4.1 et 8.4.2 permettent tout simplement d’élargir le voisinage de reconstruction sans augmenter l’ordre de la reconstruction.

(2) L’algorithme 8.4.3, appelé méthode MCCIE, est une variante de l’algorithme 8.2.2, basée sur un voisinage élargi.

(3) L’algorithme 8.4.4, appelé méthode CSE, est une variante de l’algorithme 8.3.8, basée sur un voisinage élargi.

Les tests numériques des chapitres 10 et 11 ont permis de vérifier que les algorithmes 8.2.2, 8.4.3, 8.3.8 et 8.4.4 reconstruisent correctement les polynômes de degré deux sur tous les maillages tes-tés en dimension deux et trois, voir les sections 10.9.3 et 11.3. L’étude de stabilité du chapitre 10 montre toutefois que les algorithmes 8.2.2 et 8.3.8 ne donnent pas de schémas stables, en parti-culier sur des maillages de tétraèdres. Il est donc nécessaire de les remplacer par les algorithmes 8.4.3 et 8.4.4.

Il reste maintenant à vérifier en détail la stabilité et la précision des schémas volumes finis qui utilisent ces méthodes de reconstruction. Ces questions font l’objet des chapitres 10 et 11.

CHAPITRE 9