15.07.2013 Views

Approximations multiéchelles - Laboratoire Jacques-Louis Lions ...

Approximations multiéchelles - Laboratoire Jacques-Louis Lions ...

Approximations multiéchelles - Laboratoire Jacques-Louis Lions ...

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>Approximations</strong> <strong>multiéchelles</strong><br />

Marie Postel<br />

<strong>Laboratoire</strong> <strong>Jacques</strong>-<strong>Louis</strong> <strong>Lions</strong><br />

Université Pierre et Marie Curie<br />

Boˆte courier 187<br />

75252 Paris Cedex 05<br />

http://www.ann.jussieu.fr/˜postel<br />

1


Table des matières<br />

1 Introduction 4<br />

2 Transformation multiéchelle 6<br />

2.1 La Transformée de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2 La transformation multiéchelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2.1 Décomposition multiéchelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.2.2 Algorithmes de transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.3 Intérêt de la représentation multiéchelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.3.1 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.3.2 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.4 Codage par valeurs ponctuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

3 Multirésolution par valeurs moyennes 14<br />

3.1 Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3.2 Prédiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3.3 Décomposition Multiéchelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3.4 Ondelettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

3.5 Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.6 Précision polynômiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.7 Stabilité multiéchelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

3.8 Compression et arborescence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

4 Schémas Volumes Finis pour les systèmes de lois de conservation 29<br />

5 Le schéma de Harten et le schéma adaptatif 36<br />

5.1 L’hypothèse d’Harten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

5.2 Le schéma de multirésolution d’Harten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

5.3 Algorithme complètement adaptatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

5.4 L’initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.5 Le raffinement prédictif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.6 Le calcul précis des flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

5.6.1 Évaluation directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

5.7 Analyse de l’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

6 Applications numériques 42<br />

6.1 Cas mono-dimensionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

6.2 Cas bidimensionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

7 Prediction operator for a triangular mesh 49<br />

8 Conclusion 56<br />

2


Table des figures<br />

1 Approximation de f par ses valeurs moyennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2 Base orthonormale ϕj,k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

3 <strong>Approximations</strong> successives Pj et Pj+1 et détail Qj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

4 L’ondelette duale ψ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

5 Algorithmes <strong>multiéchelles</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

6 Codage / décodage par valeurs ponctuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

7 Exemple de stencil de reconstruction sur une maillage non structuré. Les Ui sont les valeurs moyennes<br />

au niveau j−1 et les Vj, j = 0, ..., 3 sont les valeurs moyennes<br />

sur les gros triangles correspondants Ω j−1<br />

k<br />

sur les quatre subdivisions Ω j<br />

k<br />

j = 0, ...3 de Ωj−1<br />

0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

8 Ondelettes ΨJ,0 pour J variant entre 2 et 10 pour r = 0 (Haar) à gauche et r = 2 à droite. . . . . . . . 24<br />

9 Ondelettes ΨJ,0 pour J variant entre 2 et 10 pour r = 4 à gauche et r = 6 à droite. . . . . . . . . . . . 24<br />

10 Ondelettes primales r = 0, 2, 4 et 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

11 Exemple d’arbre non graduel Λ et maillage adaptatif correspondant S(Λ). . . . . . . . . . . . . . . . . 26<br />

12 Arbre graduel minimal (par rapport à (54)) contenant Λ. . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

13 Analyse de la fonction y = f1(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et fonction<br />

reconstruite pour ε = 10 −3 |f1 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite sur<br />

la grille adaptative (au milieu) et arbre des détails non seuillés (à droite). . . . . . . . . . . . . . . . . 30<br />

14 Analyse de la fonction y = f2(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et fonction<br />

reconstruite pour ε = 10 −3 |f2 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite sur<br />

la grille adaptative (au milieu) et arbre des détails non seuillés (à droite). . . . . . . . . . . . . . . . . 30<br />

15 Analyse de la fonction y = f3(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et fonction<br />

reconstruite pour ε = 10 −3 |f3 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite sur<br />

la grille adaptative (au milieu) et arbre des détails non seuillés (à droite). . . . . . . . . . . . . . . . . 30<br />

16 Analyse de la fonction y = f4(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et fonction<br />

reconstruite pour ε = 10 −3 |f4 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite sur<br />

la grille adaptative (au milieu) et arbre des détails non seuillés (à droite). . . . . . . . . . . . . . . . . 31<br />

17 Erreur en norme L 1 en fonction de ε (à gauche) et en fonction du facteur de compression (à droite). . 31<br />

18 Sélection adaptative du stencil Ifv au voisinage d’un choc. . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

19 Raffinement prédictif dans le cas mono-dimensionnel dyadique . . . . . . . . . . . . . . . . . . . . . . 40<br />

20 Reconstruction des valeurs moyennes au niveau fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

21 ε = 0.001 Solution de l’équation de Burgers à t = 0, Flux ENO - valeurs reconstruites . . . . . . . . . 47<br />

22 ε = 0.001 Solution de l’équation de Burgers à t = 0.5, Flux ENO - valeurs hybrides . . . . . . . . . . . 47<br />

23 Reconstruction locale par valeurs moyennes pour calculer les flux sur une interface au niveau grossier,<br />

dans le cas bidimensionnel non structuré. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

24 Reconstruction locale par valeurs ponctuelles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

25 Reconstruction locale par valeurs ponctuelles pour calculer les flux sur une interface au niveau grossier,<br />

dans le cas mono-dimensionnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

26 Grille adaptative au début de la simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

27 Solution adaptative au début de la simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

28 Grille adaptative à la fin de la simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

29 Solution adaptative à la fin de la simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

30 Division of the triangle T ℓ 0 into T ℓ+1<br />

0,j for j = 0, . . . , 3 and neighbors T ℓ 1 , T ℓ 2 , T ℓ 3 used for the reconstruction 54<br />

31 The two cases for the differences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

32 L1 norm of the error, a regular function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

33 L1 norm of the error, a discontinuous function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

3


1 Introduction<br />

Ces notes sont inspirées des travaux en collaboration avec Albert Cohen, Nira Dyn, Sidi Mahmoud Kaber<br />

et Sigfried Müller [22], [20]. Elles présentent l’application de la technique d’approximation <strong>multiéchelles</strong> à la<br />

résolution par volumes finis d’un système de lois de conservations hyperboliques. Les méthodes <strong>multiéchelles</strong><br />

sont un outil puissant en analyse pour des applications allant du traitement du signal à l’analyse numérique<br />

des EDP. Les fondements théoriques de ces techniques ont co¨ncidé avec l’émergence de la théorie des<br />

ondelettes, dans les années 80. Le tableau 1 donne une vue synthétique de cet aspect pluridisciplinaire.<br />

Un des principaux attraits des discrétisations dans des bases <strong>multiéchelles</strong> est de pouvoir par un simple<br />

seuillage des coefficients de la fonction discrétisée dans une telle base, obtenir une discrétisation à une<br />

échelle plus grossière dans les endroits où la fonction est régulière, tout en gardant les détails relevant des<br />

discrétisations plus fines près des singularités. C’est le principe utilisé en traitement du signal ou d’image<br />

pour faire de la compression de données. Dans le domaine qui nous intéresse, celui de la résolution numérique<br />

des EDP, il s’agira dans la mesure où la solution est régulière, exception faite de singularités localisées,<br />

d’utiliser une technique multiéchelle pour approcher cette solution en utilisant moins de mémoire et moins<br />

de temps CPU. On peut remarquer que les premières applications de techniques <strong>multiéchelles</strong> en simulation<br />

numérique avaient un objectif légèrement différent : dans le contexte des équations elliptiques, les techniques<br />

“multigrilles” furent développées à partir des années 70 plutôt pour pré-conditionner les systèmes linéaires<br />

que pour compresser les solutions. Plus récemment le développement des méthodes AMR (Adaptive Mesh<br />

Refinement / raffinement adaptatif de maillages) a aussi des objectifs très proches du nôtre [12, 8]. Nous<br />

nous intéressons ici aux systèmes de lois de conservations hyperboliques, problème dans lequel l’introduction<br />

des techniques <strong>multiéchelles</strong> est due à Ami Harten vers la fin des années 80. Les solutions de ces équations<br />

présentent en général des discontinuités - ou chocs - qui se propagent à vitesse finie. En exploitant leur<br />

décomposition multiéchelle on va concentrer la représentation sur une grille très fine au voisinage de ces<br />

discontinuités et économiser ainsi des ressources de calcul tout en conservant la précision du schéma initial<br />

- ou tout au moins le même ordre d’erreur.<br />

Résumons le principe dans ses grandes lignes : on part d’un schéma numérique pour résoudre un système<br />

d’équations<br />

∂tu + div(f(u)) = 0. (1)<br />

A priori on peut choisir un schéma aux différences finies, volumes finis, etc... La solution à un temps tn est<br />

représentée par des valeurs discrétisée u n i , sur une grille ΩL . Cette grille a une taille de maille d’ordre 2 −L ,<br />

où on a choisi L suffisamment grand pour que u n i avec i ∈ ΩL représente une bonne approximation de la<br />

solution exacte u(tn, xi). On fait évoluer les valeurs discrètes (ū n+1<br />

k ) k∈Ω L de la solution approchée d’un pas<br />

de temps à l’autre en évaluant les flux à travers les interfaces entre les mailles. L’idée de base est de faire<br />

une décomposition multiéchelle de la solution, du type transformée en ondelettes, et d’utiliser les coefficients<br />

de la transformée comme des indicateurs de régularité.<br />

Ces indicateurs permettent d’adapter le maillage en fonction de la régularité locale de la solution - c’est<br />

ce que nous appelons la multirésolution adaptative. La solution est discrétisée sur un maillage composé de<br />

cellules appartenant à des niveaux de raffinement plus ou moins fins suivant la régularité locale. Ce maillage,<br />

ou plutôt le niveau utilisé dans la hiérarchie de grilles, évolue en temps, puisqu’il dépend de la solution. Un<br />

intérêt par rapport aux méthodes AMR qui utilisent aussi des indicateurs de régularités, est la transformation<br />

multiéchelle peut être inversée à tout moment et que la solution est en fait connue “potentiellement” sur<br />

la grille la plus fine, même si elle est calculée sur une grille beaucoup plus grossière. Cet avantage est très<br />

intéressant du point de vue de l’analyse de la méthode, qui peut ainsi être comparée du point de vue précision<br />

au schéma de référence sur la grille la plus fine.<br />

Cette méthode de multirésolution adaptative est un développement assez récent ([22]). A l’origine les travaux<br />

d’Harten ont plutôt porté sur l’utilisation des coefficients d’ondelettes comme indicateurs d’erreur dans le<br />

contexte d’un schéma d’évolution sur la grille uniforme la plus fine. Ils indiquent en effet les zones où il est<br />

possible d’économiser sur le calcul des flux, qui est d’autant plus coûteux que la solution est singulière :<br />

dans les régions où les détails au delà d’un niveau d’échelle j < J sont petits (c’est-à-dire au dessous d’un<br />

seuil ) on est dans une zone où la solution est régulière et on peut remplacer l’évaluation des flux par leur<br />

4


Analyse<br />

harmonique<br />

théorie de<br />

l’approximation<br />

Séries de<br />

Fourier<br />

Transformée<br />

de Fourier<br />

(XIX siècle)<br />

Base de Haar<br />

(∼ 1910)<br />

Base de Schauder<br />

(∼ 1920)<br />

Théorie de<br />

Littlewood-Palay<br />

(∼ 1930)<br />

Fonctions<br />

Splines<br />

(∼ 1940 − 50)<br />

Décompositions<br />

Atomiques<br />

(∼ 1960)<br />

Traitement du<br />

signal<br />

et de l’image<br />

Transformée de<br />

Fourier rapide (FFT)<br />

(∼ 1950)<br />

filtrage sous-bande<br />

(∼ 1960 − 70)<br />

Bancs de filtres<br />

à reconstruction<br />

parfaite<br />

(∼ 1980)<br />

Transformées<br />

Pyramidales et<br />

<strong>multiéchelles</strong><br />

(∼ 1980)<br />

⇓ ⇓ ⇓<br />

Méthodes ondelettes ∼ 1980 − 90<br />

Tab. 1 – Un peu d’Histoire<br />

Analyse<br />

numérique<br />

et simulations<br />

Différences<br />

finies<br />

(∼ 1950 − 60)<br />

Elements<br />

finis<br />

(∼ 1960 − 70)<br />

Méthodes<br />

Multigrille<br />

(∼ 1970 − 80)<br />

Raffinements<br />

de maillage<br />

et adaptivité<br />

(∼ 1970 − 80)<br />

Méthodes<br />

spectrales et<br />

d’ordre élevé<br />

(∼ 1970 − 80<br />

Méthodes<br />

Multirésolution<br />

(Harten, 90)<br />

interpolation à partir des valeurs sur un niveau de grille plus grossier.<br />

A l’heure actuelle, plusieurs équipes travaillent dans ces deux directions avec toujours le point commun<br />

d’accélérer le calcul global tout en gardant la même précision que le schéma de référence sur une grille uniforme.<br />

Sans tenter de passer toutes ces méthodes en revue, nous développerons plus en détail les particularités<br />

de l’algorithme adaptatif, en précisant ses bases théoriques dans le contexte de l’analyse multiéchelle.<br />

Ce cours comprend, outre l’introduction, sept chapitres. Le chapitre 2 , introduit les notations et présente<br />

la méthode <strong>multiéchelles</strong> (MR) , du point de vue transformée en ondelettes, avec les exemples de la base de<br />

Haar et de la base de Schauder.<br />

La présentation de l’analyse multirésolution d’une fonction définie par ses valeurs moyennes sur une grille<br />

uniforme, fait l’objet du chapitre 3, avec l’introduction des notions de compression, de précision, de stabilité<br />

et d’arborescence.<br />

Dans le chapitre 4, on présente les équations qu’on cherche à résoudre et le schéma volume finis (VF) de<br />

référence, sans entrer dans les détails de ce dernier. En particulier, on laissera le calcul du flux numérique<br />

sous forme générique sans particulariser à un système d’équations.<br />

Dans le chapitre 5, on applique la méthode multiéchelle à un schéma Volumes Finis tout d’abord “à la manière<br />

d’ Harten”. La méthode multiéchelle adaptative où la solution est calculée sur une grille de résolution variable<br />

suivant sa régularité locale et adaptative en temps est ensuite décrite.<br />

5


Le chapitre 6 regroupe les différents algorithmes dans le cas mono-dimensionnel dyadique.<br />

Les problèmes spécifiquement multidimensionnels, posés par l’analyse multiéchelle sur un maillage triangulaire<br />

sont traités dans le chapitre 7, extrait de [20].<br />

Enfin, en guise de conclusion, on présente dans la partie 8 quelques articles sur le sujet, ainsi qu’une bibliographie<br />

sur les différents thèmes abordés.<br />

2 Transformation multiéchelle<br />

Dans ce chapitre on introduit la décomposition multiéchelle dans le contexte de l’analyse du contenu<br />

fréquentiel d’une fonction, et plus particulièrement du point de vue de la théorie des ondelettes.<br />

On introduit tout d’abord quelques notations :<br />

La fonction caractéristique d’une partie Ω de Rd est notée χΩ(x)<br />

<br />

d<br />

1 si x ∈ Ω ⊂ R ,<br />

χΩ(x) =<br />

0 sinon.<br />

Si f est une fonction, la notation g = f(a · +b) signifie que g(x) = f(ax + b).<br />

On rappelle la définition de quelques espaces fonctionnels utilisés dans ces notes. Pour une description<br />

détaillée, on renvoie à la section 25 du chapitre 3 du livre de Cohen [18].<br />

⋆ On introduit les espaces de Banach L p , pour p ≥ 1<br />

dans lesquels la norme est définie par<br />

⎧<br />

⎨<br />

|f |Lp :=<br />

⎩<br />

L p (Ω) := {f t. q. |f |Lp < ∞}<br />

<br />

|f|<br />

Ω<br />

p<br />

1/p si p < ∞<br />

sup ess t∈Ω|f(t)| si p = ∞<br />

⋆ Pour p = 2 on a l’espace de Hilbert L2 avec la norme<br />

|f | L2 = [< f, f >] 1/2 <br />

avec < f, g >=<br />

⋆ Les espaces C m (Ω) pour m ∈ N<br />

C m (Ω) =<br />

<br />

f ∈ C 0 (Ω) t.q. ∂ α f =<br />

∂ |α| f<br />

(∂x1)<br />

α1...(∂xd) αd<br />

Ω<br />

f(x) ¯<br />

g(x)dx<br />

<br />

∈ C(Ω), ∀|α| = α1 + ... + αd ≤ m<br />

⋆ Les espaces de Hölder, Cs (Ω) pour 0 < s < 1<br />

C s <br />

(Ω) = f ∈ C 0 (Ω) t.q. sup |f(x) − f(x + h)| ≤ |h|<br />

x∈Ω<br />

s<br />

<br />

pour m < s < m + 1<br />

C s <br />

(Ω) = f ∈ C m (Ω) t.q. sup |∆<br />

x∈Ω<br />

n <br />

hf(x)| ≤ |h|s<br />

où ∆n hf est l’opérateur différence finies d’ordre n défini de manière récursive par<br />

∆ 1 hf(x) = f(x + h) − f(x)<br />

∆ n hf(x) = ∆ 1 h(∆ n−1<br />

h )f(x)<br />

6


⋆ On utilisera aussi les normes lp dans les espaces R n :<br />

|x|p =<br />

n<br />

i=1<br />

x p<br />

i<br />

1/p<br />

Enfin on notera Π s (R n ) l’espace des polynômes de degrés s sur R n .<br />

2.1 La Transformée de Fourier<br />

Un outil sans doute bien connu, qu’on pourra mettre en parallèle avec la notion de transformée en ondelette<br />

qui sera introduite juste après, est la Transformée de Fourier<br />

<br />

ˆf(ω) := f(t)e −iωt dt −→ f(t) := 1<br />

<br />

ˆf(ω)e<br />

2π<br />

iωt dω<br />

R<br />

Rappelons que cette transformation définit une isométrie surjective de L 2 (R) dans L 2 (R) avec < ˆ f, ˆg >=<br />

2π < f, g ><br />

La Transformée de Fourier est l’outil de base pour l’analyse harmonique. Elle s’utilise “dans les deux sens” :<br />

• soit f(t) une fonction de t ∈ R, l’analyse fréquentielle de f consiste à calculer :<br />

<br />

ˆf(ω) := f(t)e −iωt dt. (2)<br />

R<br />

Si la fonction est connue sous la forme de sa transformée, ˆ f, la synthèse consiste à calculer f par :<br />

f(t) := 1<br />

<br />

2π<br />

ˆf(ω)e iωt dω. (3)<br />

R<br />

Sous certaines conditions, cette transformation revient à représenter f comme une combinaison linéaire<br />

d’ondes planes eω(t) = e iωt de coefficients ˆ f(ω) :=< f, eω >. Si la fonction f est périodique, elle va s’exprimer<br />

comme une série de Fourier, c’est à dire que l’intégrale précédente devient une somme discrète :<br />

f(t) =<br />

+∞<br />

n=−∞<br />

R<br />

ˆfne 2iπnf0t , (4)<br />

où f0 est la fréquence fondamentale, reliée à la période T0 par la relation f0 = 1/T0. Les coefficients ˆ fn sont<br />

les composantes de f dans la base {e 2iπnf0t }n∈Z de L 2 ([−T0/2, T0/2])<br />

ˆfn = 1<br />

T0<br />

T0/2<br />

−T0/2<br />

f(t)e −iπnf0t dt. (5)<br />

La Transformée de Fourier est donc l’outil approprié pour l’analyse et la synthèse de fonctions uniformément<br />

régulières sur un support compact, ou encore de combinaisons de fréquences pures, mais elle est inappropriée<br />

pour étudier des fonctions régulières avec des singularités isolées, ou des fonctions avec un contenu fréquentiel<br />

variable et imprévisible en temps. On va introduire dans le paragraphe suivant la transformation multiéchelle,<br />

mieux adaptée à ce genre de situation.<br />

2.2 La transformation multiéchelle<br />

On commence par un exemple très simple d’outil ondelette/multiéchelle : soit f ∈ L 1 [0, 1], on définit une<br />

série d’approximations de f par des fonctions constantes par morceaux (voir figure (1)).<br />

Pour j ≥ 0 fixé, on définit Pjf comme l’approximation de f par ses valeurs moyennes sur les intervalles<br />

Ij,k := [2 −j k, 2 −j (k + 1)[ pour k = 0, ...2 j − 1<br />

7


qui forment une partition de l’intervalle [0, 1].<br />

On définit Pjf par morceau<br />

0<br />

2 −j k<br />

2 −j<br />

f<br />

P j f<br />

Fig. 1 – Approximation de f par ses valeurs moyennes<br />

Pjf |Ij,k<br />

:= 2j<br />

et en utilisant les fonctions caractéristiques de chaque intervalle<br />

Pjf =<br />

2 j −1<br />

k=0<br />

<br />

Ij,k<br />

1<br />

f(t)dt = aIj,k (f) (6)<br />

aIj,k (f)χIj,k (f)<br />

La fonction caractéristique χIj,k (t) joue ici le rôle de la fonction e2iπf0t dans (4) mais on voit qu’on a rajouté<br />

à cette fonction de base, en plus de la dépendance spectrale f0, une dépendance dans l’espace temporel<br />

de départ, par l’intermédiaire du facteur de translation k. L’application qui à f ∈ L 2 associe Pjf est la<br />

projection L 2 -orthogonale de f sur l’espace<br />

Vj := f ∈ L 2 , f |Ij,k = constante, k = 0, ....2j − 1 .<br />

Notons ϕ := χ [0,1], on vérifie sans difficulté qu’une base orthonormale de Vj est<br />

avec dim Vj = 2 j (voir figure (2)).<br />

Avec ces notations, on a<br />

où<br />

ϕj,k = 2 j/2 χIj,k = 2j/2 ϕ(2 j · −k), k = 0, 1, ...2 j − 1<br />

Pjf =<br />

2 j −1<br />

k=0<br />

< f, ϕj,k > ϕj,k,<br />

cj,k =< f, ϕj,k >= 2 −j/2 aIj,k (f).<br />

On dira que cj,k est le coefficient d’approximation de f à l’échelle 2 −j et à la position 2 −j k.<br />

Quelques Remarques :<br />

– Les espaces Vj sont emboˆtés : Vj ⊂ Vj+1 ⊂ Vj+2. Si j0 < j les fonctions de base sur Vj0 et Vj sont les<br />

fonctions constantes sur des intervalles de tailles respectives 2 −j0 > 2 −j , les intervalles de taille 2 −j étant<br />

inclus dans ceux de taille 2 −j0 .<br />

– L’approximation Pjf converge dans L p pour 1 ≤ p < ∞ et dans C 0 pour la norme uniforme :<br />

si f ∈ L p , alors lim<br />

j→+∞ |f − Pjf |Lp = 0.<br />

si f ∈ C 0 , alors lim<br />

j→+∞ |f − Pjf |∞ = 0.<br />

8


1<br />

φ =f [0,1]<br />

2 j/2<br />

0 1 0<br />

I j,k<br />

φ<br />

j,k<br />

Fig. 2 – Base orthonormale ϕj,k<br />

P j f<br />

P j+1 f<br />

Fig. 3 – <strong>Approximations</strong> successives Pj et Pj+1 et détail Qj<br />

– Si l’intervalle [0, 1] est remplacé par R, on a une construction identique avec :<br />

Vj = {f ∈ L2 (R); f |Ij,k = const., k ∈ Z} (j peut alors être négatif).<br />

2.2.1 Décomposition multiéchelle<br />

Si j0 < J, l’espace VJ contient l’espace Vj0. Il est donc naturel de décomposer la projection de f sur l’espace<br />

VJ comme la somme de la projection de f sur Vj0, plus un détail. En itérant ce procédé on obtient la<br />

décomposition suivante :<br />

PJf = PJ−1f + [PJf − PJ−1f] = . . . = Pj0f +<br />

où les termes Qjf = (Pj+1 − Pj)f sont les “détails” à l’échelle 2 −j . L’opérateur Qj est en fait la projection<br />

(voir figure (3)) sur le complémentaire orthogonal de Vj et Vj+1, noté Wj, Wj ⊕ ⊥ Vj = Vj+1.)<br />

Remarque :<br />

Q f<br />

j<br />

aIj,k (f) = aIj+1,2k (f) + aIj+1,2k+1 (f) /2<br />

signifie que Qjf oscille sur chaque Ij,k. Plus précisément, notons ψ := f [0, 1<br />

Qjf =<br />

2 j −1<br />

k=0<br />

J−1 <br />

j=j0<br />

Qjf.<br />

2 ] −f [ 1<br />

2<br />

dj,kψj,k, où ψj,k := 2 j/2 ψ(2 j . − k) et dj,k :=< f, ψj,k > .<br />

,1] (voir figure 4), on a ainsi,<br />

On dira que le coefficient dj,k est la fluctuation de f à l’échelle 2 −j et à la position 2 −j k. On vérifie<br />

facilement que (ψj,k) k=0,...,2 j −1 est une base orthonormale de Wj, et donc que ϕj,k, k = 0, ..., 2 j − 1 ∪<br />

ψj,k, k = 0, ..., 2 j − 1 est une base orthonormale de Vj+1. On peut itérer le procédé, écrire Vj sous la forme<br />

Vj = Wj−1 ⊕ ⊥ Vj−1 = Wj−1 ⊕ ⊥ Wj−2 ⊕ ⊥ Vj−2 = .... (7)<br />

9


1<br />

0 1/2 1 0<br />

−1<br />

=f [0, 1−2 [ −f ψ<br />

[1_<br />

2<br />

,1[<br />

I j,k<br />

ψ<br />

j,k<br />

Fig. 4 – L’ondelette duale ψ<br />

On a donc une série de bases orthonormales pour VJ : on peut écrire une fonction fJ de VJ sous la forme<br />

canonique<br />

fJ =<br />

2 J −1<br />

dans la base standard, ou bien dans la base d’ondelettes ou base multiéchelle<br />

fJ =<br />

2 j0 −1<br />

k=0<br />

k=0<br />

cj0,kϕj0,k +<br />

cJ,kϕJ,k, (8)<br />

J−1 <br />

2 j −1<br />

j=j0 k=0<br />

Puisque fJ = PJf tend vers f dans L 2 quand J ↦→ +∞, on a aussi que<br />

{ϕ} ∪ {ψj,k} j≥0,k=0,...2 j −1<br />

dj,kψj,k. (9)<br />

est une base orthonormale de L 2 [0, 1] (Système de Haar). Par extension on obtient de manière similaire que<br />

est une base orthonormale de L 2 (R).<br />

2.2.2 Algorithmes de transformation<br />

{ϕ(. − k)}k∈ZZ ∪ {ψj,k}j≥0,k∈ZZ<br />

Regardons maintenant les opérations nécessaires pour passer de la représentation d’une fonction dans la base<br />

standard ϕJ,k de VJ à sa représentation dans la base multiéchelle.<br />

Algorithme 1 Décomposition<br />

Pour j = J ↘ j0<br />

cj,k = cj+1,2k + cj+1,2k+1<br />

√ ,<br />

2<br />

dj,k = cj+1,2k − cj+1,2k+1<br />

√<br />

2<br />

Dans l’autre sens, si on connaˆt les valeurs moyennes sur l’échelle la plus grossière j0, ainsi que les détails,<br />

on peut obtenir les valeurs moyennes sur l’échelle la plus fine J<br />

Algorithme 2 Reconstruction<br />

Pour j = j0 ↗ J<br />

cj+1,2k = cj,k + dj,k<br />

√ ,<br />

2<br />

cj+1,2k+1 = cj,k − dj,k<br />

√<br />

2<br />

10<br />

(10)<br />

(11)


d d<br />

J−1,k dJ−2,k j0 ,k<br />

CJ,k CJ−1,k CJ−2,k Cj0 +1,k Cj ,k<br />

0<br />

C J−1,k<br />

d J−1,k<br />

C J−2,k d J−2,k dJ−1,k<br />

C d<br />

a<br />

b<br />

D R<br />

Fig. 5 – Algorithmes <strong>multiéchelles</strong><br />

a+b a−b<br />

2 2<br />

a+b a−b a b<br />

2 2<br />

La complexité de ces algorithmes <strong>multiéchelles</strong> (illustrés par la figure (5)) dépend de l’échelle la plus fine de<br />

la manière suivante : si N = 2 J = dimVJ est le nombre de coefficients de la fonction sur l’échelle la plus fine,<br />

le nombre d’opérations d’un des algorithmes précédents est<br />

Noper ∼ 2 J + 2 J−1 + 2 J−2 + . . . + 2 j0 ∼ O(N) (12)<br />

Remarque : de tels algorithmes s’appliquent dans de nombreux contextes<br />

– Données sous forme discrète (sk)k=... (e.g. traitement de signaux digitaux s(k∆t)<br />

→ identification de fJ = <br />

k skϕJ,k pour un J donné et application de la transformation multiéchelle à fJ<br />

– Donnée sous la forme d’une fonction explicite f (e.g. f(x) = | cos(x)|)<br />

→ Calcul initial de PJf pour un J donné, par exemple évaluation des termes CJ,k =< f, ϕJ,K > par une<br />

formule de quadrature.<br />

– On recherche une inconnue u dans VJ (e.g. discrétisation d’une EDP, méthode de Galerkin ...)<br />

La transformation multiéchelle résumée par les deux algorithmes 1 et 2 est utilisée pour passer de la<br />

représentation dans la base nodale à la représentation multiéchelle et inversement.<br />

2.3 Intérêt de la représentation multiéchelle<br />

les intérêts de la représentation <strong>multiéchelles</strong> sont multiples et seront d’ailleurs exploités pleinement dans<br />

l’algorithme de multirésolution adaptative présenté au chapitre 5.<br />

2.3.1 Analyse<br />

Les coefficients d’une fonction dans sa représentation multiéchelle permettent de mesurer sa régularité.<br />

Regardons le cas particulier du système de Haar :<br />

dj,k =< f, ψj,k >= 2<br />

j + 1<br />

2<br />

<br />

aIj+1,2k (f) − aIj+1,2k+1 (f)<br />

si f est C 1 sur Ij,k, pour tout t ∈ Ij+1,2k il existe zt ∈ Ij+1,2k tel que<br />

où on note x j<br />

k = 2−j k. Or d’après la définition (6)<br />

aIj+1,2k (f) = 2j+1<br />

(13)<br />

f(t) = (t − x j+1<br />

2k )f ′ (zt) (14)<br />

<br />

= 2 j+1<br />

<br />

Ij+1,2k<br />

Ij+1,2k<br />

11<br />

f(t)dt<br />

(t − x j+1<br />

2k )f ′ (zt)dt


d’où<br />

|aIj+1,2k (f)| ≤ 2j+1<br />

<br />

Ij+1,2k<br />

≤ 2 j+1 <br />

−1<br />

2 (t − x j+1<br />

≤<br />

1<br />

2 j+2<br />

sup<br />

t∈Ij+1,2k<br />

|dj,k| ≤ 2 j+1<br />

2 2 −j−1 sup<br />

t∈Ij,k<br />

(t − x j+1<br />

2k )dt sup |f<br />

t∈Ij+1,2k<br />

′ (t)|<br />

2k )2 x j+1<br />

2k+1<br />

|f ′ (t)|<br />

x j+1<br />

2k<br />

sup<br />

t∈Ij+1,2k<br />

|f ′ (t)|<br />

|f ′ (t)| ≤ C2 −3j/2 . (15)<br />

On admettra ici que si f ∈ C α (sur Ij,k) avec α ∈]0, 1[ alors |dj,k| ≤ C2 −(α+1/2)j .<br />

On verra plus loin une généralisation de ce résultat à des systèmes autres que celui de Haar. On peut déjà<br />

admettre qu’il est possible de mesurer la régularité (locale) de f par la décroissance de dj,k en fonction de<br />

j → +∞.<br />

2.3.2 Synthèse<br />

Une autre utilisation de la décomposition multiéchelle d’une fonction est la compression. On peut définir<br />

une approximation adaptative de f en seuillant ses coefficients : on ne garde dans l’expression (9) que les<br />

coefficients supérieurs en valeur absolue à une certaine tolérance, qui peut dépendre du niveau d’échelle<br />

f = <br />

dj,kψj,k → fε := <br />

˜dj,kψj,kavec ˜ <br />

dj,k si |dj,k| > εj,<br />

dj,k =<br />

(16)<br />

0 sinon.<br />

j,k<br />

j,k<br />

On verra plus loin que cette compression assure une certaine précision, dépendant de la tolérance. Une<br />

variante consiste à plutôt imposer une performance de compression donnée :<br />

<br />

f → fN :=<br />

dj,kψj,k. (17)<br />

N plus grands |dj,kψj,k|<br />

Dans les deux cas f → fN ou f → fε sont des approximations non-linéaires de f.<br />

2.4 Codage par valeurs ponctuelles<br />

Dans l’exemple du système de Haar développé plus haut, on cherche une approximation de la fonction à<br />

analyser par une fonction constante par morceaux. Cette représentation est bien adaptée à un schéma volumes<br />

finis dans lequel, justement, les inconnues sont des approximations des valeurs moyennes de la solution sur<br />

les mailles. Elle n’est cependant pas obligatoire et on peut choisir d’analyser la fonction discrétisée par<br />

ses valeurs ponctuelles. L’exemple introductif dans ce cas est celui de la base de Schauder, qu’on résume<br />

brièvement ici (voir [18] pour une étude détaillée). On cherche maintenant à approcher une fonction f par<br />

une fonction fj, continue et affine par morceaux sur les intervalles Ij,k, k ∈ Z. Une telle approximation est<br />

définie de manière unique par les valeurs de la fonction aux points 2 −j k. Dans le cas où f est continue on<br />

pose<br />

fj(2 −j k) = f(2 −j k), k ∈ Z<br />

c’est à dire qu’on définit fj comme l’interpolée linéaire de f à l’échelle 2 −j . Notons Pj l’opérateur d’interpolation<br />

qui envoie f sur fj. Pj est une projection sur l’espace<br />

Vj = {f ∈ C(R); f |Ij,k ∈ P1 (Ij,k), k ∈ Z}<br />

12


N values<br />

N/2 values<br />

N/2 details<br />

N/4 values<br />

N/4 details<br />

N/2 details<br />

N/8 values<br />

N/8 details<br />

N/4 details<br />

N/2 details<br />

Fig. 6 – Codage / décodage par valeurs ponctuelles<br />

Une base naturelle de Vj est formée les fonctions chapeaux, en reprenant la terminologie éléments finis<br />

{ϕj,k}, k ∈ Z, ϕj,k(x) = 2 j/2 ϕ(2 j . − k), ϕ(x) = max{0, 1 − |x|}<br />

Les composantes de Pjf dans cette base nodale sont les valeurs nodales de f<br />

Pjf = <br />

k∈Z<br />

cj,k(f)ϕj,k, cj,k(f) = 2 −j/2 f(2 −j k) (18)<br />

La base nodale n’est pas une base orthonormale, en revanche c’est une base de Riesz, ce qui signifie que<br />

|fj | et<br />

<br />

<br />

|cj,k(j)| 2<br />

k<br />

sont des normes équivalentes sur Vj ∩ L 2 et la série (18) converge dans L 2 . L’approximation Pjf se déduit<br />

de Pj+1f par interpolation<br />

1/2<br />

2 j/2 cj,k(f) = f(2 −j k) = 2 (j+1)/2 cj+1,2k(f)<br />

soit encore, PjPj+1 = Pj. On définit maintenant les détails Qj = Pj+1 − Pj, permettant de passer d’un<br />

niveau au suivant<br />

Qjf(2 −j (k + 1/2)) = f(2 −j (k + 1/2)) − f(2−j k) − f(2 −j (k + 1)<br />

2<br />

13


Qjf mesure l’écart entre les valeurs de la fonction sur les points de la grille fine Γj+1 = {2−(j+1) k, k ∈ Z} et<br />

les interpolations linéaires aux mêmes points calculées avec les valeurs sur la grille grossière Γj<br />

Qjf = <br />

dj,kψj,k, avec ϕ = ϕ(2x − 1)<br />

k∈Z<br />

Tout comme dans l’exemple du système de Haar (9), on peut écrire f dans la base multiéchelle<br />

f = <br />

cj0,kϕj0,k + <br />

k<br />

j≥j0<br />

k<br />

dj,kϕj,k<br />

et on a les algorithmes de codage similaires aux algorithmes (1,2), illustrés par la figure 6.<br />

Algorithme 3 Décomposition<br />

Pour j = J ↘ j0<br />

Algorithme 4 Reconstruction<br />

Pour j = j0 ↗ J<br />

cj,k = √ 2cj+1,2k,<br />

dj,k = √ 2 {cj+1,2k+1 − (cj+1,2k + cj+1,2k+2)/2}<br />

cj+1,2k = cj,k<br />

√2 ,<br />

cj+1,2k+1 = (cj,k + cj,k+1)/2 + dj,k<br />

√<br />

2<br />

Dans la suite, on se concentrera sur la multirésolution pour des fonctions discrétisées par leur valeurs<br />

moyennes sur les mailles. C’est en effet ce qui semble le plus naturel pour analyser une solution d’un schéma<br />

volumes finis. La conservativité de la solution compressée est assurée de manière naturelle, ce qui est important<br />

dans notre cas, où on cherche à résoudre un système de lois de conservation. Cependant l’exemple<br />

ci-dessus montre qu’on peut faire de la multirésolution sur des fonctions discrétisées par leurs valeurs ponctuelles.<br />

Les algorithmes de codage sont dans les articles d’Harten [33] pour le cas mono-dimensionnel et [10]<br />

pour le cas bidimensionnel cartésien . Chiavassa et Donat ont appliqué cette idée à un schéma différences<br />

finies pour résoudre un système de lois de conservation dans [15].<br />

3 Multirésolution par valeurs moyennes<br />

Dans l’optique de notre application à des schémas volumes finis, nous présentons maintenant la multirésolution<br />

ou encore l’approximation multiéchelle d’une fonction discrétisée par ses valeurs moyennes.<br />

On définit une hiérarchie de discrétisations sur des grilles imbriquées. Pour j = 0, 1, · · · , J, on se donne des<br />

partitions emboˆtées (Ωγ)γ∈Sj de R d (ou du domaine considéré Ω) telles que chaque Ωγ, γ ∈ Sj est l’union<br />

d’un nombre fini de cellules Ωµ, µ ∈ Sj+1.<br />

L’index j fait référence à l’échelle du niveau au sens où il existe des constantes c, C telles que<br />

(19)<br />

c2 −j ≤ diam(cγ) ≤ diam(Cγ) ≤ C2 −j , γ ∈ Sj. (20)<br />

où cγ (resp. Cγ) sont des boules contenues (resp. contenant) Ωγ. On utilisera la notation<br />

|γ| := j si γ ∈ Sj. (21)<br />

pour désigner l’indice de l’échelle du niveau auquel appartient Ωγ<br />

L’exemple de base sera la décomposition en intervalles dyadiques en dimension 1<br />

Ωγ = Ω j<br />

k := [2−j k, 2 −j (k + 1)], γ ∈ Sj := {(j, k) ; k ∈ Z}, (22)<br />

14


On considère un vecteur Uj := (uγ)γ∈Sj de données discrètes sur une grille Sj, représentant les valeurs<br />

moyennes d’une fonction u ∈ L 1 (R d ), i.e.<br />

uγ := |Ωγ| −1<br />

<br />

Ωγ<br />

u(x)dx, (23)<br />

On notera aussi u j<br />

k = uγ, avec l’indice du niveau d’échelle en haut, de manière à pouvoir étendre facilement<br />

cette notation au cas cartésien bidimensionnel<br />

Ωγ = Ω j<br />

k,l := [2−j k, 2 −j (k + 1)] × [2 −j l, 2 −j (l + 1)], γ ∈ Sj := {(j, k, l) ; k ∈ Z, l ∈ Z}, uγ = u j<br />

k,l<br />

On va maintenant définir deux opérateurs permettant de passer de la représentation d’une fonction au niveau<br />

j à sa représentation au niveau j −1 immédiatement plus grossier (opérateur de projection) et inversement de<br />

prédire la représentation d’une fonction au niveau j à partir de sa représentation au niveau j − 1 (opérateur<br />

de prédiction).<br />

3.1 Projection<br />

On introduit un opérateur de projection P j<br />

j−1 , qui relie Uj à Uj−1. Comme les partitions Sj sont imbriquées,<br />

on obtient naturellement les valeurs moyennes à un niveau en fonction des valeurs moyennes au niveau<br />

immédiatement plus fin par<br />

uγ = |Ωγ| −1<br />

<br />

|Ωµ|uµ. (25)<br />

|µ|=|γ|+1,Ωµ⊂Ωγ<br />

Dans le cas mono-dimensionnel dyadique cela revient à prendre la demi somme des moyennes au niveau fin,<br />

i.e. uj−1,k = (uj,2k+uj,2k+1)/2. Il est clair qu’on peut déduire toutes les valeurs moyennes UJ−1, UJ−2, · · · , U0<br />

jusqu’au niveau le plus grossier, à partir des valeurs moyennes au niveau le plus fin en appliquant successivement<br />

les opérateurs P j<br />

j−1 .<br />

3.2 Prédiction<br />

On introduit maintenant l’opérateur de prédiction. P j−1<br />

j , qui associe à Uj−1 une approximation Ûj de Uj.<br />

Contrairement à l’opérateur de projection il y a une infinité de choix possibles pour définir P j−1<br />

j<br />

(24)<br />

. Nous allons<br />

restreindre ces choix en imposant quelques contraintes de base.<br />

– La prédiction est locale, i.e. ûµ dépend des valeurs uγ sur un stencil de cardinal fini Rµ - une collection de<br />

cellules entourant Ωµ, i.e. telles que<br />

Rµ ⊂ {γ ; |γ| = |µ| − 1 et dist(Ωγ, Ωµ) ≤ M2 −|µ| }, (26)<br />

pour un M donné.<br />

– La prédiction est consistante avec la projection au sens que<br />

|Ωγ|uγ =<br />

<br />

|µ|=|γ|+1,Ωµ⊂Ωγ<br />

|Ωµ|ûµ, (27)<br />

i.e. ûµ doit être conservative par rapport aux valeurs moyennes sur la grille grossière, c’est à dire que<br />

P j j−1<br />

j−1Pj = Id. En particulier cette propriété implique que le stencil Rµ doit contenir l’indice γ tel que<br />

|µ| = |γ| + 1 et Ωµ ⊂ Ωγ. Le stencil de prédiction d’une cellule doit obligatoirement contenir son “parent”<br />

au niveau plus grossier.<br />

Un exemple trivial d’un tel opérateur de prédiction consiste à prendre tout simplement<br />

ûµ = ûγ, if Ωµ ⊂ Ωγ. (28)<br />

15


Remarquons qu’a priori nous n’imposons pas la linéarité de l’opérateur de prédiction bien que nous verrons<br />

par la suite que c’est une hypothèse importante dans l’analyse numérique du schéma. (voir [4] pour des<br />

exemples d’opérateurs non linéaires ).<br />

Dans le cas mono-dimensionnel dyadique on peut construire toute une classe d’opérateurs de prédiction<br />

linéaires et de précision arbitraire. On reprend les notations du paragraphe 2.2. On va chercher le polynôme<br />

pµ de degré r qui vérifie<br />

aI |µ|−1,k pµ = aI |µ|−1,k u pour (|µ| − 1, k) ∈ Rµ (29)<br />

et on posera<br />

ûµ := aIµpµ<br />

Comme l’intervalle parent de µ est forcément dans Rµ, pour avoir des opérateurs centrés et linéaires on va<br />

s’intéresser uniquement aux polynômes de degré r = 2s pairs. Le cas (28) correspond à r = 0. Pour r ≥ 0<br />

on peut écrire (30) sous la forme générique<br />

û j<br />

2k = uj−1<br />

k +<br />

s<br />

l=1<br />

γl<br />

<br />

u j−1<br />

k+l<br />

(30)<br />

<br />

− uj−1<br />

k−l = u j−1<br />

k + Qs (k; u j−1 ) (31)<br />

où les coefficients γl, solutions du système linéaire (29) sont donnés dans la table ci-dessous pour s ≤ 3.<br />

r s γ1 γ2 γ3<br />

0 0 0 0 0<br />

2 1 −1<br />

8<br />

4 2 −22<br />

128<br />

6 3 −201<br />

1024<br />

0 0<br />

3<br />

128<br />

11<br />

256<br />

0<br />

−5<br />

1024<br />

Pour préciser les notations, le stencil de prédiction Rj,k dans ce cas est de cardinal r + 1 :<br />

Rj,k = {(j − 1, k/2 + l), |l| ≤ s}<br />

En dimension deux, il faut distinguer entre le cas des grilles cartésiennes, où on peut étendre les notions<br />

mono-dimensionnelles par tensorisation et le cas grilles triangulaires, plus complexe.<br />

L’exemple le plus simple est celui proposé par Harten [10] dans le cas d’un maillage cartésien. C’est la version<br />

produit tensoriel de l’opérateur de reconstruction polynomial défini plus haut dans le cas mono-dimensionnel.<br />

Avec les conventions d’indice (24) on a sur les quatre mailles au niveau j + 1, subdivisions de la maille Ωk,l<br />

au niveau j<br />

u j<br />

2k+1,2l+1<br />

u j<br />

2k,2l+1<br />

u j<br />

2k+1,2l<br />

u j<br />

2k,2l<br />

= uj−1<br />

k,l + Qs (k; u j−1<br />

.,l ) + Qs (l; u j−1<br />

k,. ) + Qs 2(k, l; u j−1 )<br />

= uj−1<br />

k,l − Qs (k; u j−1<br />

.,l ) + Qs (l; u j−1<br />

k,. ) − Qs 2(k, l; u j−1 )<br />

= uj−1<br />

k,l + Qs (k; u j−1<br />

.,l ) − Qs (l; u j−1<br />

k,. ) − Qs 2 (k, l; uj−1 )<br />

= uj−1<br />

k,l − Qs (k; u j−1<br />

.,l ) − Qs (l; u j−1<br />

k,. ) + Qs 2 (k, l; uj−1 )<br />

16<br />

(32)


où l’opérateur Qs défini dans (31) est utilisé dans les deux directions et l’opérateur Qs 2 est un produit tensoriel<br />

<br />

Q s 2 (k, l; uj−1 s−1 s−1<br />

) = γa γb<br />

a=1<br />

<br />

b=1<br />

<br />

u j−1<br />

<br />

k+a,l+b − uj−1<br />

k+a,l−b − uj−1<br />

k−a,l+b + uj−1<br />

k−a,l−b<br />

Dans ce cas, comme dans le cas mono-dimensionnel, le stencil de prédiction est le même pour toutes les<br />

subdivisions d’une même cellule :<br />

R j,(k,l) = {j − 1, (k/2 + m, l/2 + n), −s ≤ m, n ≤ s}<br />

Dans le cas de maillages triangulaires le choix de l’opérateur de reconstruction est vaste. La première idée<br />

est de faire comme dans le cas mono-dimensionnel : on détermine un polynôme de reconstruction pµ de degré<br />

s, en imposant la condition de conservation sur d triangles, (avec d la dimension de Π s (R 2 ).<br />

<br />

Ωγ<br />

pµ(x, y)dx dy = uγ pour γ ∈ Rµ (33)<br />

et on définit l’opérateur Ûj = P j<br />

j−1 Uj−1 localement sur les mailles de niveau j = |µ| + 1 incluses dans Ωµ par<br />

û j γ<br />

=<br />

<br />

Ωγ<br />

pµ(x, y)dx dy, ∀γ, |γ| = |µ| + 1, Ωγ ⊂ Ωµ<br />

Mais la sélection des d − 1 triangles voisins de Ωµ qui vont servir à déterminer le polynôme pµ par (33) n’est<br />

pas un problème trivial. Par exemple, dans le cas représenté sur la figure 7, pour déterminer un polynôme<br />

affine, comment choisir les les deux triangles en plus de Ω0 qui feront partie du stencil de reconstruction<br />

pour l’une des 4 subdivisions ?<br />

Une idée simple serait de choisir pour chaque subdivision, les deux gros triangles ayant une arête commune<br />

avec elle, c’est à dire<br />

R j<br />

Ω1 R j<br />

Ω2 R j<br />

Ω3 = {Ω j−1<br />

O , Ωj−1 2 , Ω j−1<br />

3 }<br />

= {Ω j−1<br />

O , Ωj−1 1 , Ω j−1<br />

3 }<br />

= {Ω j−1<br />

O , Ωj−1 1 , Ω j−1<br />

2 }<br />

de calculer un polynôme affine différent pour chacune de ces subdivisions à l’aide de (33) , et de définir la<br />

reconstruction sur la subdivision centrale en imposant la relation de conservativité :<br />

|Ω j<br />

0 |ûj0<br />

= |Ωj−1 0 |û j−1<br />

0<br />

−<br />

3<br />

k=1<br />

|Ω j<br />

k |ûj<br />

k<br />

Malheureusement ce procédé est instable, au moins dans le cas de maillages réguliers, c’est à dire que si<br />

on itère cet opérateur indéfiniment en partant d’une solution composée d’une seule valeur non nulle sur la<br />

grille grossière, on converge vers une solution qui n’est pas dans L∞(Ω) (voir [20]). On a donc développé un<br />

opérateur linéaire basé sur le même stencil pour les quatre subdivisions (soit R Ω j<br />

k<br />

sur la figure 7). ⎧⎪ ⎨<br />

⎪⎩<br />

ũ j<br />

0,0<br />

ũ j<br />

0,1<br />

ũ j<br />

0,2<br />

ũ j<br />

0,3<br />

= ūi−1<br />

0<br />

= ūi−1 0 + (ū i−1<br />

2<br />

= ūi−1<br />

0 + (ū i−1<br />

1<br />

= ūi−1<br />

0 + (ū i−1<br />

1<br />

+ ūi−1 3<br />

+ ūi−1 3<br />

+ ūi−1<br />

2<br />

− 2ūi−1<br />

− 2ūi−1<br />

− 2ūi−1<br />

L’étude détaillée de ce schéma est donnée en annexe 2. (extraite de [20]).<br />

17<br />

1 )/6<br />

2 )/6<br />

3 )/6<br />

(34)<br />

= {Ω j−1<br />

0 , Ω j−1<br />

1 , Ω j−1<br />

2 , Ω j−1<br />

3 }<br />

(35)


U 8<br />

U 9<br />

U<br />

2<br />

U 6<br />

U 10<br />

V<br />

1<br />

V<br />

3<br />

V<br />

0<br />

Fig. 7 – Exemple de stencil de reconstruction sur une maillage non structuré. Les Ui sont les valeurs moyennes<br />

au niveau j − 1 et les Vj, j = 0, ..., 3 sont les valeurs moyennes<br />

sur les gros triangles correspondants Ω j−1<br />

k<br />

sur les quatre subdivisions Ω j<br />

k<br />

j = 0, ...3 de Ωj−1<br />

0<br />

Une approche plus globale mais non linéaire consiste à prendre un stencil assez gros, mais sans sélection<br />

coûteuse, par exemple tous les triangles ayant un sommet en commun avec le triangle dont on veut reconstruire<br />

les quatre subdivisions, et on détermine un polynôme de reconstruction de degré donné pµ ∈ Π s (R 2 )<br />

qui sera valable pour les quatre subdivisions de Ωµ - qui ont donc toutes les quatre le même stencil R. Dans<br />

la cas de la figure 7 R = {Ωi, i = 0, ..., 10} . Pour déterminer pµ, on impose la conservation des valeurs<br />

moyennes de manière exacte sur le triangle en question et au sens des moindres carrés sur les autres triangles<br />

de R. Les valeurs reconstruites au niveau fin sont les intégrales de pµ sur chacune des quatre subdivisions.<br />

où<br />

<br />

Ωµ<br />

Eµ(q) = <br />

<br />

U 5<br />

U<br />

3<br />

p(x, y)dx dy = uµ<br />

γ∈R<br />

U0<br />

V<br />

2<br />

U<br />

1<br />

U<br />

4<br />

Eµ(p) = min<br />

q∈Π s (R 2 ) Eµ(q)<br />

uγ −<br />

<br />

Ωγ<br />

p(x, y)dx dy<br />

Cette idée est due à Abgrall et Harten qui l’ont mise en oeuvre dans [3, 2]. Elle a été reprise plus récemment<br />

par Sonar et al [47] dans le contexte de schémas volumes finis vertex centered pour des maillages non<br />

structurés. Les cellules au niveau le plus fins sont les volumes de controles (le maillage dual du maillage<br />

triangulaire) et la hiérarchie de grilles est construite en agglomérant ces volumes. L’application de cette idée<br />

à une hiérarchie de maillages triangulaires comme décrite ci-dessus est dans [37].<br />

3.3 Décomposition Multiéchelle<br />

On peut définir l’erreur de prédiction au niveau j comme les différences entre les valeurs exactes et les valeurs<br />

prédites i.e.<br />

dµ := uµ − ûµ. (36)<br />

D’après l’hypothèse de consistance, on voit que cette erreur doit vérifier des relations<br />

<br />

|Ωµ|dµ = 0. (37)<br />

|µ|=|γ|+1,Ωµ⊂Ωγ<br />

18<br />

2<br />

U<br />

7


Grace à cette relation, pour chaque cellule au niveau grossier on peut éliminer une des relations de prédiction<br />

de la valeur moyenne sur ses descendants. On va définir un ensemble ∇j ⊂ Sj en enlevant pour chaque<br />

γ ∈ Sj−1 un µ ∈ Sj tel que Ωµ ⊂ Ωγ. On définit un vecteur des détails Dj = (dµ)µ∈∇j , ce qui met<br />

en évidence la correspondance biunivoque entre Uj et (Uj−1, Dj) qu’on peut implémenter en utilisant les<br />

opérateurs P j<br />

j−1<br />

et P j−1<br />

j<br />

. Dans le cas mono-dimensionnel dyadique, le vecteur des détails peut être défini<br />

par Dj = (dj,k)k∈Z avec dj,k = (uj,2k − ûj,2k).<br />

En itérant cette décomposition on obtient une représentation multiéchelle de UJ en fonction de MJ =<br />

(U0, D1, D2, · · · , DJ). En utilisant la structure locale des opérateurs de projection et de prédiction, on peut<br />

implémenter la transformation multiéchelle<br />

M : UJ ↦→ MJ, (38)<br />

et son inverse M −1 avec une complexité optimale O(NJ), où NJ :=card(SJ) représente la dimension de UJ.<br />

3.4 Ondelettes<br />

On va maintenant faire le lien entre la décomposition multiéchelle et les transformations en ondelettes<br />

introduites dans la section 1.<br />

Dans le cas où P j−1<br />

j est linéaire, i.e.<br />

ûµ := <br />

cµ,γuγ, (39)<br />

γ<br />

M et M −1 sont de simples changements de bases. Si les Uj sont donnés par (23), en utilisant le ”langage<br />

ondelettes” on peut écrire<br />

où la fonction d’échelle duale ˜ϕγ est simplement<br />

et<br />

où l’ondelette duale ˜ ψµ est donnée par<br />

uγ := 〈u, ˜ϕγ〉, (40)<br />

˜ϕγ := |Ωγ| −1χ Ωγ , (41)<br />

dµ = uµ − ûµ = 〈u, ˜ϕµ〉 − <br />

cµ,γ〈u, ˜ϕγ〉 = 〈u, ˜ ψµ〉, (42)<br />

γ<br />

˜ψµ := ˜ϕµ − <br />

cγ,µ ˜ϕγ. (43)<br />

Dans toute la suite, pour décrire de manière simple le vecteur multiéchelle on définit ∇ J := ∪ J j=0 ∇j avec<br />

∇0 := S0 et on écrit<br />

MJ = (dλ) λ∈∇ J = (〈u, ˜ ψλ〉) λ∈∇ J , (44)<br />

où on a posé dλ = uλ et ˜ ψλ = ˜ϕλ si λ ∈ ∇0.<br />

Dans le cas d’un maillage structuré, comme c’est le cas pour l’exemple mono-dimensionnel dyadique, il est<br />

assez naturel d’imposer une structure simple, invariante par translation, à l’opérateur de prédiction. On<br />

prendra la forme générale<br />

ûj,k = <br />

ck−2muj−1,m, (45)<br />

m<br />

avec des adaptations aux cas particuliers près des frontières du domaine. ˜ϕj,k = |Ωj,k| −1χ Ωj,k = 2j ˜ϕ(2 j · −k)<br />

avec ˜ϕ := χ [0,1], conduit à la structure habituelle pour les ondelettes ˜ ψj,k := 2 j ˜ ψ(2 j · −k). Remarquons<br />

que la fonction d’échelle duale et l’ondelette sont normalisées dans L 1 . D’une manière générale, on a aussi<br />

19<br />

γ


˜ϕγ L 1 = 1 par (41) et ˜ ψλ L 1 ≤ C indépendamment de λ en raison de (43), si on suppose qu’on a une<br />

estimation uniforme sur les coefficients de prédiction cµ,γ (ce qui sera toujours vrai dans notre cas).<br />

Dans le cas mono-dimensionnel dyadique, l’opérateur de prédiction le plus simple donné en exemple (28)<br />

conduit au fameux Système de Haar<br />

déjà détaillé dans la section 2.2.<br />

3.5 Compression<br />

˜ψj,k := 2 j (χΩj+1,2k − χΩj+1,2k+1 ). (46)<br />

L’intérêt de décomposer UJ dans MJ est que cette représentation est plus appropriée pour y appliquer la<br />

compression de données. Précisons maintenant cette notion déjà introduite au paragraphe 2.3.2. Soit un<br />

ensemble Λ ⊂ ∇ J d’indices λ, on définit un opérateur de seuillage TΛ sur la représentation multiéchelle.<br />

TΛ(dλ) =<br />

0 si λ ∈ Λ,<br />

dλ sinon.<br />

Pour un paramètre ε = (ε0, ε1, ..., εJ) définissant une famille de niveaux de seuillages associés à chaque<br />

niveau, on désignera par Λε l’ensemble des indices correspondant à des détails non seuillés<br />

(47)<br />

Λε = Λ(ε0, ε1, · · · , εJ) := {λ t.q. |dλ| ≥ ε |λ|}. (48)<br />

Ceci définit de manière précise l’opérateur de seuillage TΛ(dλ). A partir de cet opérateur qui agit sur la<br />

représentation multiéchelle, on construit un opérateur d’approximation AΛ, sur la fonction de départ UJ<br />

AΛ := M −1 TΛM., (49)<br />

AΛ est non-linéaire puisque Λ dépend de Uj par (48). Une étude approfondie de l’approximation non-linéaire<br />

- en particulier des algorithmes de seuillages - se trouve dans [27]. De notre point de vue, la propriété la plus<br />

intéressante est de pouvoir décrire une fonction régulière par morceaux avec un petit nombre de paramètres.<br />

On s’attend en effet à ce que les détails non seuillés sur les niveaux d’échelles fins soient concentrés près<br />

des singularités. Mais cette propriété n’est pas suffisante pour pouvoir être utilisée en pratique dans un<br />

algorithme de résolution d’EDP. Des propriétés supplémentaires de précision polynômiale et de stabilité<br />

multiéchelle doivent être vérifiées par l’opérateur de prédiction P j−1<br />

j .<br />

3.6 Précision polynômiale<br />

La première propriété requise signifie que l’opérateur de prédiction a une précision d’ordre N, ou, de manière<br />

équivalente, est exact pour les polynômes de degré N − 1 : i.e. si u ∈ ΠN−1, alors uγ = ûγ pour tout γ. En<br />

d’autres termes, pour tout u ∈ ΠN−1 et pour tout λ ∈ ∇ J , on a<br />

〈u, ˜ ψλ〉 = dλ = 0, (50)<br />

Les N premiers moments de l’ondelette duale doivent donc être nuls, ce qui a une conséquence immédiate<br />

sur la taille des détails dλ dans les zones régulières : si u est régulière, par exemple u ∈ C s ( ˜ Σλ) pour un<br />

s ≤ N, on peut utiliser le fait que dλ = 〈u − p, ˜ ψλ〉 pour tout p ∈ ΠN−1 pour majorer ce coefficient par<br />

|dλ| ≤ inf u − pL∞ ( Σλ) ˜<br />

p∈ΠN−1<br />

˜ ψλL1 ≤ C inf<br />

p∈ΠN−1<br />

u − p L ∞ ( ˜ Σλ)<br />

≤ C2 −s|λ| |u| C s ( ˜ Σλ) .<br />

On utilise ici les propriétés de l’approximation localement polynômiale sur ˜ Σλ, le support de l’ondelette ˜ ψλ<br />

(on verra dans le paragraphe 3.7 que sa mesure est en O(2 −|λ| )). On utilise également le fait que l’ondelette<br />

20<br />

(51)


duale est normalisée dans L1 . La décroissance rapide des détails dans les régions régulières est donc assurée<br />

si N est suffisamment grand.<br />

Remarquons à ce sujet que l’opérateur de prédiction (28) associé au système de Haar n’est exact que pour les<br />

constantes. Avec les notations introduites ci-dessus , cela veut dire que la multirésolution sera de précision<br />

d’ordre 1. Une manière d’augmenter la précision est de définir P j<br />

j+1 à l’aide d’un algorithme de reconstruction<br />

polynômiale, ce qui est assez facile pour les grilles cartésiennes, mais beaucoup moins dans le cas des maillages<br />

non structurés, comme on le verra dans l’annexe 2 consacrée aux maillages triangulaires. Reprenons le cas<br />

mono-dimensionnel dyadique déjà étudié au paragraphe 3.2. on considère le stencil centré (u j<br />

k−M , · · · , uj<br />

k+M )<br />

et on définit de manière unique le polynôme pj,k de degré 2M tel que<br />

2 j<br />

<br />

pj,k(x)dx = u j<br />

l , l = k − M, · · · , k + M. (52)<br />

Ωj,l<br />

Ensuite on définit simplement la prédiction sur les deux demi-intervalles par les valeurs moyennes de pj,k<br />

sur les deux moitiés de Ωj,k, i.e.<br />

<br />

û j+1<br />

2k<br />

= 2j+1<br />

Ωj+1,2k<br />

pj,k(x)dx et û j+1<br />

<br />

2k+1 = 2j+1 pj,k(x)dx.<br />

Ωj+1,2k+1<br />

(53)<br />

Il est clair que cet algorithme est exact pour les polynômes de degré 2M, i.e a une précision d’ordre N =<br />

2M + 1. Il est aussi clair d’après la formule (31) et le tableau des coefficients (32) qu’augmenter la précision<br />

signifie augmenter la taille du stencil Rµ . Comme par ailleurs la précision globale du schéma est limitée aussi<br />

par la précision du schéma volumes finis sur la grille fine on se contentera dans la plupart des applications<br />

de la précision d’ordre 3 :<br />

û j+1<br />

2k<br />

3.7 Stabilité multiéchelle<br />

1<br />

= uj<br />

k +<br />

8 (uj<br />

1<br />

k−1 − uj<br />

k+1 ) et ûj+1<br />

2k+1 = uj<br />

k +<br />

8 (uj k+1 − uj<br />

k−1 ). (54)<br />

La deuxième hypothèse énoncée dans le paragraphe 3.5 signifie qu’on doit être capable de contrôler l’effet<br />

du seuillage sur le résultat de l’erreur d’approximation entre UJ et AΛUJ, pour une norme donnée. Pour<br />

un opérateur de prédiction linéaire, cette étude peut s’effectuer en étudiant individuellement la contribution<br />

de chaque détail dλ dans la reconstruction sur la grille fine par l’intermédiaire de M −1 . Cette contribution<br />

est en fait définie par dλΨJ,λ où ΨJ,λ est le vecteur correspondant dans la base associée à la décomposition<br />

multiéchelle, qui est obtenue en appliquant M −1 au vecteur de Dirac Mλ := (δλ,µ) µ∈∇ J . On peut décomposer<br />

cette reconstruction en deux étapes : On reconstruit d’abord un vecteur de valeurs moyennes sur la grille<br />

S |λ| à partir de Mλ, puis on applique à ce vecteur de manière successive les opérateurs de prédiction P j−1<br />

j<br />

pour j = |λ| + 1, · · · , J sans ajouter les détails. L’ondelette ΨJ,λ = Ψj,k est définie explicitement par<br />

Ψj,k = P J−1<br />

J<br />

P J−2 j<br />

J−1 · · · Pj+1 (0, · · · , 0, 1, −1, 0, · · · , 0), (55)<br />

avec 1 en position 2k et −1 en position 2k + 1, ou de manière équivalente par Ψj,k := Φj,2k − Φj,2k+1 avec<br />

Φj,k = P J−1<br />

J<br />

P J−2<br />

J−1<br />

j<br />

· · · Pj+1 (0, · · · , 0, 1, 0, · · · , 0), (56)<br />

avec 1 en position k. Il est donc primordial de connaˆtre la stabilité de ces applications itératives des<br />

opérateurs de prédiction P j−1<br />

j .<br />

Dans le cas des maillages cartésiens avec une représentation multiéchelle sur des grilles emboˆtées de manière<br />

dyadique, ce problème est vraiment bien compris parce que le procédé de raffinement d’un niveau au suivant<br />

est le même pour tous les niveaux. Dans ce cas, on traite naturellement le problème en analysant la convergence<br />

de ΨJ,λ, considérée comme une suite de fonctions constantes par morceaux sur SJ, vers la fonction<br />

limite ψλ quand le niveau de raffinement J tend vers +∞. C’est à dire qu’on considère une hiérarchie infinie<br />

de discrétisations (Sj)j≥0, avec les ensembles d’indices<br />

∇ := ∪j≥0∇j. (57)<br />

21


L’étude de ces fonctions limites des processus de raffinement - d’algorithmes de subdivisions - est un sujet<br />

en soi dans le domaine de la conception géométrique assistée par ordinateur ainsi que dans la théorie des<br />

ondelettes, très documenté, comme on l’a déjà dit, dans le cas des subdivisions régulières. On renvoie à [29]<br />

et [13] pour une revue des algorithmes de subdivision et à [26] ou [18] pour leurs liens avec les ondelettes et<br />

on se contente ici de rappeler quelques résultats assez simples.<br />

Si le procédé de subdivision converge au moins dans L1 alors on peut vérifier que les fonctions limites<br />

(ψλ)λ∈∇ forment avec ( ˜ ψλ)λ∈∇ un système d’ondelettes biorthogonales similaire à ceux introduits dans [19] :<br />

une fonction quelconque u ∈ L1 peut être décomposée dans ce système<br />

u = <br />

〈u, ˜ ψλ〉ψλ, (58)<br />

et on a les relations duales<br />

j≥0 |λ|=j<br />

〈 ˜ ψλ, ψµ〉 = δλ,µ. (59)<br />

Les fonctions ψλ et ˜ ψλ servant respectivement à la “synthèse” et à “l’analyse” sont appelées les ondelettes<br />

primale et duale.<br />

Dans le cas mono-dimensionnel dyadique, si on suppose que l’opérateur de prédiction a la structure de<br />

Toeplitz (45), les ondelettes primales ont la forme générale<br />

ψj,k = ψ(2 j · −k). (60)<br />

Dans les cas plus généraux, on a toujours la normalisation L∞ , c’est-à-dire ψλL∞ ≤ C indépendamment<br />

de λ, à condition que le procédé de subdivision converge dans L∞ .<br />

Au niveau discret J, pour |λ| ≤ J, le vecteur ΨJ,λ co¨ncide avec les valeurs moyennes sur chaque cellule de<br />

ψλ au J, i.e. ΨJ,λ = (〈ψλ, ˜ϕγ〉)γ∈SJ . On peut définir au niveau J la métrique normalisée ℓ1 par<br />

<br />

−dJ<br />

UJ := 2<br />

λ∈SJ<br />

|uλ|, (61)<br />

qui est équivalente à la norme L 1 de la fonction constante par morceaux correspondante. On obtient directement<br />

ΨJ,λ ≤ Cψλ L 1 ≤ C2 −d|λ| . (62)<br />

On peut donc contrôler l’effet du seuillage par la majoration suivante :<br />

UJ − AΛUJ = <br />

dλΨJ,λ ≤ C <br />

|dλ|2 −d|λ| = C <br />

λ/∈Λ<br />

Par la suite on utilise un seuillage du type<br />

λ/∈Λ<br />

|dλ|


Si le domaine d’étude est borné, on peut alors poursuivre l’étude et obtenir l’estimation suivante<br />

UJ − AΛUJ = C <br />

|dλ|2<br />

|dλ| N}. On remarque que Λ répond encore à la définition (48) avec εj = 2dj η<br />

mais avec η qui peut maintenant être plus grand que 2−dJε. Le seuillage (66) proposé par Harten est pourtant celui utilisé dans la plupart des implémentations numériques.<br />

Une de ses spécificités est d’assurer également une estimation d’erreur d’ordre ε en norme · ∞, (et donc<br />

par interpolation dans toutes les normes discrètes ℓp ) si les ondelettes primales ψλ sont dans L∞ . En effet,<br />

on a<br />

<br />

UJ − AΛUJℓ ∞ = dλΨJ,λℓ∞ ≤<br />

≤ C<br />

≤ C<br />

|dλ|≤ελ<br />

J<br />

<br />

j=0<br />

J<br />

<br />

|dλ|≤ελ,|λ|=j<br />

sup<br />

dλΨJ,λℓ ∞<br />

dλΨJ,λℓ<br />

j=0<br />

|dλ|≤ελ,|λ|=j<br />

∞<br />

J<br />

εj ≤ Cε,<br />

j=0<br />

où on a utilisé le fait que ψλ et ΨJ,λ sont normalisées en norme infinie, et qu’à un niveau fixé |λ| = j, les<br />

supports des fonctions ΨJ,λ ne se recouvrent pas trop - au sens où<br />

<br />

|λ|=j<br />

(67)<br />

dλΨJ,λℓ∞ ≤ C sup dλΨJ,λℓ∞. (68)<br />

|λ|=j<br />

L’intégrabilité des fonctions d’échelle et des ondelettes primales est en quelque sorte la condition minimale<br />

pour pouvoir contrôler l’effet du seuillage. Cependant l’analyse complète de l’algorithme va nécessiter des<br />

propriétés de régularité encore plus fortes sur ces fonctions, en raison de la propriété suivante : si les ψλ sont<br />

dans C r , on a une propriété “inverse” de (51) assurant que cette propriété de décroissance est effectivement<br />

23


2<br />

1<br />

0<br />

−1<br />

0.0 0.5 1.0<br />

2<br />

1<br />

0<br />

−1<br />

0.0 0.5 1.0<br />

Fig. 8 – Ondelettes ΨJ,0 pour J variant entre 2 et 10 pour r = 0 (Haar) à gauche et r = 2 à droite.<br />

2<br />

1<br />

0<br />

−1<br />

0.0 0.5 1.0<br />

2<br />

1<br />

0<br />

−1<br />

0.0 0.5 1.0<br />

Fig. 9 – Ondelettes ΨJ,0 pour J variant entre 2 et 10 pour r = 4 à gauche et r = 6 à droite.<br />

un indicateur de régularité locale. Plus précisément, si Σ est un domaine donné et si pour s < r on a<br />

|〈u, ˜ ψλ〉| ≤ C2 −s|λ| pour tout λ ∈ ∇ telle que le support de ψλ et Σ ont une intersection non vide, alors u<br />

est de régularité C s sur Σ. Ici, C s est la classe de Hölder habituelle quand s est rationnel, et quand s est<br />

entier, il faut en fait remplacer C s par l’espace de Besov B s ∞,∞ (qui est légèrement plus grand que Cs , voir<br />

par exemple [40, 36, 18, 26] ).<br />

Notons que dans le cas de l’opérateur de prédiction (28) associé au système de Haar on a ˜ ψ = ψ et donc<br />

l’ondelette primale n’a pas de régularité au sens de Hölder. En revanche, on peut montrer que les fonctions<br />

limites associées à (54) ont une régularité C r pour tout r < 1.<br />

Les figures 8 à 9 montrent la succession des fonctions ΨJ,0 pour J variant entre 2 et 10 pour les quatre<br />

opérateurs de prédiction prévus dans le tableau (32). La figure 10 permet de comparer les ondelettes obtenues<br />

dans chacun des cas comme limite de ΨJ,0 quand J tend vers l’infini.<br />

3.8 Compression et arborescence<br />

Principalement pour des raisons de complexité algorithmique, on impose à l’ensemble Λ des indices conservés<br />

- non seuillés - une structure d’arbre. De manière à définir cette structure de manière précise on introduit la<br />

terminologie suivante : Si Ωµ ⊂ Ωγ avec |γ| = |µ| − 1, on dit que µ est un “descendant” de γ et que γ est le<br />

24


1.9<br />

1.5<br />

1.1<br />

0.7<br />

0.3<br />

-0.1<br />

-0.5<br />

-0.9<br />

psi0<br />

psi2<br />

psi4<br />

psi6<br />

-1.3<br />

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0<br />

Fig. 10 – Ondelettes primales r = 0, 2, 4 et 6.<br />

“parent” de µ. Notons que par définition de ∇j, si γ a Nγ descendants, Nγ − 1 d’entre eux sont dans ∇j,<br />

c’est à dire qu’ils représentent un détail. On les appelle les “détails descendants” de γ<br />

Définition 2.1. Un ensemble d’indices Λ ∈ ∇ est un arbre si les propriétés suivantes sont vérifiées<br />

(i) le niveau de base ∇0 = S0 est contenu dans Λ.<br />

(ii) si µ et ν sont des détails descendants du même γ, alors µ ∈ Λ si ν ∈ Λ.<br />

(iii) si γ est tel que ses détails descendants sont dans Λ, alors le parent de γ a la même propriété.<br />

Dans le cas mono-dimensionnel dyadique cette définition peut être réécrite de manière plus simple ∇0 ∈ Λ<br />

et<br />

(j, k) ∈ Λ ⇒ (j − 1, [k/2]) ∈ Λ. (69)<br />

En particulier, la propriété (ii) est inutile ici puisque chaque γ = (j, k) a un seul détail descendant, correspondant<br />

au détail dj,k.<br />

L’importance de ces structures d’arbre, réside dans le fait qu’elles permettent de définir une discrétisation<br />

“hybride” sur des cellules appartenant à des niveaux différents. On définit en premier les feuilles L(Λ) d’un<br />

arbre Λ comme les λ ∈ Λ qui n’ont pas de descendant dans Λ. Il est clair que les Ωλ, pour λ ∈ L(Λ), sont<br />

disjoints mais ils ne forment pas une partition, en particulier ils ne recouvrent pas l’ensemble du domaine.<br />

Par exemple, dans le cas où les feuilles sont toutes à un même niveau j i.e. L(Λ) = ∇j, on n’a pas une<br />

partition puisque ∇j a été construit comme un sous-ensemble de Sj strictement inclus de manière à éviter<br />

la redondance des détails Donc pour avoir une partition il faut ajouter aux feuilles L(Λ) tous ces µ qui ont<br />

un parent en commun avec un λ ∈ L(Λ) mais qui ne sont pas dans ∇ (dans le cas où L(Λ) = ∇j, ceci<br />

correspond à compléter ∇j dans Sj). Dans le cas général, l’ensemble complété correspond à une partition<br />

adaptative du domaine (Ωλ) λ∈S(Λ), qui peut aussi être définie par un processus de raffinement itératif : On<br />

part d’une partition grossière (Ωλ)λ∈S0, et on subdivise une cellule Ωλ de la partition courante si les détails<br />

descendants de λ sont dans Λ. On définit aussi un ensemble plus grand R(Λ), correspondant à toutes les<br />

cellules Ωλ produites au cours du procédé de raffinement y compris durant les étapes intermédiaires, i.e.<br />

toutes les cellules Ωλ qui sont des unions de cellules Ωµ avec µ ∈ S(Λ). On vérifie facilement que<br />

#(S(Λ)) = #(Λ) ≤ #(R(Λ)) ≤ 2#(Λ). (70)<br />

On présente sur la figure 11 un exemple d’arbre Λ ainsi que le maillage adaptatif correspondant S(Λ) dans<br />

le cas mono-dimensionnel dyadique.<br />

Une famille d’opérateurs de prédiction P j−1<br />

j étant fixée, on s’intéresse maintenant à l’élaboration d’une structure<br />

d’arbre correspondant à une certaine graduation dans le maillage hybride correspondant. Il est assez<br />

25


Fig. 11 – Exemple d’arbre non graduel Λ et maillage adaptatif correspondant S(Λ).<br />

Fig. 12 – Arbre graduel minimal (par rapport à (54)) contenant Λ.<br />

intuitif en effet d’éviter, pour des raisons algorithmiques qui seront détaillées plus loin, d’avoir des mailles<br />

adjacentes et appartenant à des niveaux non consécutifs, mais cette condition dépend en fait de l’opérateur<br />

de prédiction utilisé.<br />

Définition 1 On dira qu’un arbre Λ est graduel si pour tout µ ∈ Λ, le stencil de prédiction Rµ appartient<br />

à R(Λ).<br />

Notons que dans le cas de l’opérateur de prédiction (28), correspondant au système de Haar, un arbre est<br />

toujours graduel. En revanche l’arbre de la figure 11 n’est pas graduel pour l’opérateur de prédiction (54)<br />

qui utilise trois mailles pour prédire les valeurs moyennes sur les deux descendants de la maille centrale. On<br />

montre sur la figure 12 un exemple d’arbre graduel pour cet opérateur, qui est le plus petit arbre graduel<br />

contenant l’arbre de la figure 11. Dans le cas de l’opérateur (54) la propriété de graduation prend une forme<br />

plus simple que la définition (1)<br />

(j, k) ∈ Λ ⇒ (j − 1, [k/2] + l) ∈ Λ, l = −1, 0, 1. (71)<br />

L’intérêt de la propriété de graduation est du au résultat suivant (voir [22] pour la preuve).<br />

Proposition 1 Si Λ est un arbre graduel, il existe un isomorphisme MΛ qui associe aux valeurs moyennes<br />

sur les cellules (uλ) λ∈S(Λ) d’une fonction u, les détails (dλ)λ∈Λ. Les opérateurs de décomposition et de reconstruction<br />

adaptative (i.e. MΛ et M −1<br />

Λ ) peuvent tous les deux être implémentés en O(#(Λ)) opérations.<br />

Remarque 2.4 Pour un arbre non graduel Λ on peut toujours montrer le résultat suivant : si u a tous<br />

ses détails dλ = 0 pour λ /∈ Λ, alors il existe un isomorphisme entre les valeurs moyennes (uλ) λ∈S(Λ) et les<br />

coefficients (dλ)λ∈Λ. Cependant la complexité de l’implémentation de cet isomorphisme est en O(#( ˜ Λ)) où<br />

˜Λ est le plus petit arbre graduel contenant Λ. Ceci est dû au fait que la reconstruction de uλ nécessite la<br />

connaissance de uγ pour γ ∈ Rλ.<br />

Dans la suite on considérera toujours la compression de données sur un arbre graduel, qu’on obtient par<br />

exemple en agrandissant l’ensemble des détails non seuillés : on définit Λε comme le plus petit arbre graduel<br />

26


contenant l’ensemble {λ ; |dλ| ≥ ε |λ|}, où εj est le seuillage dépendant du niveau défini par (66). On définit l’<br />

opérateur d’approximation sur l’arbre Aε := AΛε. Comme Λε est plus grand et contient l’ensemble Λ définit<br />

par le simple seuillage et utilisé pour obtenir (67) on a au moins la même estimation<br />

UJ − AεUJ ≤ Cε, (72)<br />

Avant de passer à l’utilisation de ces notions dans l’analyse du schéma volumes finis, nous allons étudier leur<br />

implémentation dans le cas statique, en terme d’efficacité, du point de vue de la compression, de la précision<br />

et de la complexité algorithmique. Tout d’abord les algorithmes de codage et décodage déjà présentés au<br />

plus général, défini suivant les<br />

règles du paragraphe 3.2. (Le cas mono-dimensionnel dyadique est traité en annexe 6.)<br />

paragraphe 2.2.2 sont repris ici avec un opérateur de reconstruction P j<br />

j+1<br />

Algorithme 5 Codage par valeurs moyennes<br />

u est connue par ses valeurs moyennes UJ sur la grille fine {Ωγ}, γ ∈ SJ<br />

Pour j = J − 1 ↘ 0<br />

1. Calcul de Uj :<br />

2. Calcul de Ûj+1 = P j<br />

j+1 Uj<br />

uγ = |Ωγ| −1<br />

3. Calcul des détails entre Uj+1 et Ûj+1<br />

D j = (dµ)µ∈∇j+1, avec dµ = uµ − ûµ,<br />

4. Remplacement de Uj+1 par Uj et Dj<br />

Fin de Pour j<br />

<br />

Ωµ⊂Ωγ ,|µ|=j+1<br />

u est maintenant codée sous la forme (U0, D0, D1, ...DJ−1)<br />

Algorithme 6 Décodage (valeurs moyennes)<br />

|Ωµ|uµ, ∀γ ∈ Sj (73)<br />

u est connue par ses valeurs moyennes U0 sur la grille grossière et tous les détails Dj pour j = 0, . . . , J − 1<br />

Pour j = 0 ↗ J − 1<br />

1. Interpolation : calcul de Ûj+1 = P j<br />

j+1 Uj<br />

2. Reconstruction : calcul de Uj+1<br />

uµ = ûµ + dµ, pour µ ∈ ∇j+1 et uµ par (73) pour µ ∈ Sj+1\∇j+1<br />

3. Remplacement de Uj et Dj par Uj+1<br />

Fin de Pour j<br />

u est maintenant connue par ses valeurs moyennes UJ sur la grille fine<br />

Pour compresser la solution, on regarde simultanément les 2 d − 1 détails relatif à une cellule du niveau j.<br />

S’ils sont tous de norme inférieure au seuil alors on les mets tous à zéro, sinon on les conserve tous.<br />

Algorithme 7 Seuillage Harten<br />

u est connue par ses valeurs moyennes U0 sur la grille grossière et tous les détails Dj pour j = 0, . . . , J − 1<br />

Pour j = J − 1 ↘ 0<br />

Pour γ ∈ Sj<br />

Si pour tout µ ∈ ∇j+1, Ωµ ⊂ Ωγ |dµ| < εj alors dµ = 0 ∀µ ∈ ∇j+1, Ωµ ⊂ Ωγ<br />

27


Fin de Pour γ<br />

Fin de Pour j<br />

L’opérateur d’approximation AΛ défini dans (49) peut donc être appliqué en utilisant successivement les<br />

algorithmes 5, 7, 6. En revanche si on veut représenter la fonction sur la grille hybride il faut avoir recours<br />

à un algorithme plus compliqué respectant la structure d’arbre définie par 3.8 et 1 :<br />

Algorithme 8 Construction de l’arbre graduel Λ<br />

• u est connue par ses valeurs moyennes U0 sur la grille grossière et tous les détails Dj pour j = 0, . . . , J − 1<br />

• initialisation Λ = S0<br />

• 1 ère étape, le seuillage :<br />

Pour j = J ↘ 1<br />

Pour γ ∈ ∇j<br />

Si |dγ| < εj<br />

Alors dγ = 0<br />

Sinon γ ∈ Λ<br />

Fin de Pour γ<br />

Fin de Pour j<br />

• 2 ème étape, l’ arbre :<br />

Pour j = J ↘ 1<br />

Pour γ ∈ Λ n ε , t. q. |γ| = j<br />

soit ν, |ν| + 1 = |γ| et Ωγ ⊂ Ων<br />

alors ∀µ ∈ ∇j, Si Ωµ ⊂ Ων, Alors µ ∈ ˜ Λ n+1<br />

ε<br />

Fin de Pour γ<br />

Pour γ ∈ Λn ε , |γ| = j<br />

∀µ, Si |µ| + 1 = |γ| et Ωλ ⊂ Ωµ,Alors µ ∈ ˜ Λn+1 ε<br />

Fin de Pour γ<br />

Fin de Pour j<br />

• 3 ème étape, l’ arbre graduel :<br />

Pour j = J ↘ 1<br />

Pour γ ∈ Λn ε , |γ| = j<br />

∀µ ∈ Rγ, µ ∈ ˜ Λn+1 Fin de Pour γ<br />

ε<br />

Fin de Pour j<br />

Algorithme 9 Reconstruction partielle sur les feuilles de l’arbre R(Λ)<br />

u est connue par ses valeurs moyennes U0 sur la grille grossière et les détails dγ pour γ ∈ Λ.<br />

Pour j = 0 ↗ J − 1<br />

Pour γ ∈ ∇j ∩ Λ<br />

Si ∃µ ∈ Sj+1 ∩ Λ, Ωµ ⊂ Ωγ<br />

Alors Calcul de toutes les feuilles de γ :<br />

28


Fin de Pour γ<br />

Fin de Pour j<br />

ûµ puis uµ = ûµ + dµ, ∀µ ∈ ∇j+1 avec Ωµ ⊂ Ωγ<br />

uµ par consistance (73) pour µ ∈ Sj+1\∇j+1, et Ωµ ⊂ Ωγ<br />

Les figures 13 à 16 illustrent l’algorithme de compression (49) dans le cas mono-dimensionnel dyadique avec<br />

l’opérateur de reconstruction d’ordre r = 2 du tableau 32. Quatre fonctions de régularité différentes sont<br />

testées<br />

f1(x) = exp(−50(x − 0.5) 2 ), f2(x) = 0.5 − |x − 0.5| 4 ,<br />

f3(x) = χ [π/6,1](x), f4(x) = 0.5 − |x − 0.5| .<br />

On fixe le nombre maximum de niveaux de résolution à 10, avec 4 cellules sur la grille la plus grossière et<br />

une tolérance de détails sur le niveau le plus fin égale à ε = 10 −2 |f |∞. On représente pour chaque fonction<br />

fi, i = 1, . . . , 4 la fonction et sa reconstruction sur la grille la plus fine sur le graphe de gauche, la fonction et<br />

la fonction compressée sur la grille adaptative sur le graphe du milieu. Enfin sur le graphe de droite la grille<br />

elle-même est représentée par une fonction constante par morceau égale au niveau de résolution maximale<br />

utilisé localement. Ce dernier graphe montre que pour la fonction f1, qui est infiniment régulière, seuls les<br />

niveaux de résolution 2, 3 et 4 sont utilisés pour représenter la fonction sur la grille adaptative du graphe<br />

du milieu. A la tolérance ε près, on peut, en utilisant l’opérateur de prédiction, reconstituer la fonction sur<br />

le niveau le plus fin L = 10 à partir de ces seules données. Pour la fonction f2, continue mais dont la dérivée<br />

en x = 0.5 est discontinue, l’analyse des détails conduit à les conserver jusqu’au niveau 7 dans la zone de<br />

singularité - sur 4 mailles - puis sur les niveaux inférieurs pour avoir un arbre graduel. En revanche loin de la<br />

singularité le niveau de résolution 3 est suffisant. Pour la fonction f3 qui est discontinue en x = π/6, on ne<br />

peut évidemment pas faire l’économie du niveau le plus fin, qui est donc utilisé sur une maille à cet endroit,<br />

puis tous les niveaux jusqu’au plus grossier en respectant la règle de graduation. Le niveau 0 est évidemment<br />

suffisant pour représenter une fonction constante. Il l’est aussi pour une fonction affine, et l’arbre des détails<br />

pour la fonction f4 présente lui aussi des mailles au niveau le plus grossier loin de la discontinuité sur la<br />

dérivée en x = 0.5, où le niveau 6 est utilisé.<br />

La figure 17 présente une étude de la convergence de l’algorithme quand on fait varier le niveau de seuillage<br />

ε. Pour chaque valeur de seuil, on calcule l’erreur en norme L1 entre la fonction initiale et sa reconstruction<br />

sur le niveau après la transformation codage-seuillage -décodage. Cette erreur est ensuite représentée dans un<br />

repère gradué logarithmiquement, en fonction de ε sur le graphe de gauche et du facteur de compression sur le<br />

graphe de droite. Le facteur de compression est le rapport entre le nombre de mailles sur la grille la plus fine<br />

et le nombre de mailles dans la grille adaptative. Pour les deux fonctions continues f1 et f2, le comportement<br />

de l’erreur est régulier en fonction du paramètre de seuillage et on observe bien le comportement en ′(ε)<br />

annoncé par (67). Pour les fonctions f3 et f4, les graphes ne comportent que quelques points car pour les<br />

petites valeurs de seuillage ε l’erreur est identiquement nulle. En effet ces deux fonctions étant respectivement<br />

constante et affine par morceaux, l’opérateur de prédiction (54) est exact pour ces fonctions en dehors des<br />

zones de discontinuité. Dès que le paramètre de seuillage est inférieur au plus petit détail dans ces zones, tous<br />

les détails calculés par l’algorithme de codage sont soit significatifs et donc conservés, soit identiquement<br />

nuls.<br />

Les calculs ont été effectués avec les scripts Scilab que le lecteur pourra télécharger sur le site web<br />

http ://www.ann.jussieu.fr/~postel/Roscoff.<br />

4 Schémas Volumes Finis pour les systèmes de lois de conservation<br />

Dans ce chapitre on présente le type d’équations pour lesquelles la multirésolution est bien adaptée et on<br />

fait quelques rappels sur les schémas de Harten-Lax pour les systèmes de lois de conservation (extensions<br />

du Schéma de Godunov), qui seront utilisés dans les exemples numériques. On renvoie par exemple à [31]<br />

29


1.0<br />

0.5<br />

initiale<br />

recons<br />

0.0<br />

0.0 0.5 1.0<br />

1.0<br />

0.5<br />

initiale<br />

mr<br />

++<br />

+ +<br />

++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

+++++ ++++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

+ +<br />

++ ++++++++++++ + + +<br />

+ ++ +++++<br />

+ ++ +++++++++<br />

0.0<br />

0.0 0.5 1.0<br />

10<br />

8<br />

6<br />

4<br />

2<br />

+ +<br />

+ + + +<br />

+++++++++++++++++++++ +++++++++++<br />

+++++++++++<br />

+ +<br />

+ +<br />

+ + + +<br />

0<br />

0.0 0.5 1.0<br />

Fig. 13 – Analyse de la fonction y = f1(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et<br />

fonction reconstruite pour ε = 10 −3 |f1 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite<br />

sur la grille adaptative (au milieu) et arbre des détails non seuillés (à droite).<br />

initiale<br />

recons<br />

0.0 0.5 1.0<br />

initiale<br />

mr<br />

++<br />

++<br />

+ + + ++ + + + ++ ++ +++++++++++++<br />

++<br />

++<br />

++ ++<br />

++<br />

++<br />

++ ++ + ++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

++<br />

+++++++++++<br />

++<br />

++<br />

+ + + + +<br />

+<br />

0.0 0.5 1.0<br />

10<br />

8<br />

6<br />

4<br />

2<br />

+ + + + + + + + + +<br />

+<br />

+<br />

++ ++<br />

++++++++++++++<br />

++++++++++++++<br />

+<br />

+ + + + + + + + +<br />

0<br />

0.0 0.5 1.0<br />

Fig. 14 – Analyse de la fonction y = f2(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et<br />

fonction reconstruite pour ε = 10 −3 |f2 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite<br />

sur la grille adaptative (au milieu) et arbre des détails non seuillés (à droite).<br />

1.0<br />

0.5<br />

initiale<br />

recons<br />

0.0<br />

0.0 0.5 1.0<br />

1.0<br />

0.5<br />

initiale<br />

mr<br />

+<br />

+++ + + + + + + +++<br />

+ + + + +++++<br />

+++ +<br />

0.0<br />

0.0 0.5 1.0<br />

+<br />

+<br />

+<br />

+<br />

+<br />

++<br />

++<br />

+ +<br />

+ +<br />

+ + +<br />

+ +<br />

++ +++<br />

+ +<br />

+<br />

+<br />

+<br />

+<br />

+ +<br />

++ +++<br />

+ + +<br />

+ + +<br />

+ +<br />

+ +<br />

0<br />

0.0 0.5 1.0<br />

Fig. 15 – Analyse de la fonction y = f3(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et<br />

fonction reconstruite pour ε = 10 −3 |f3 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite<br />

sur la grille adaptative (au milieu) et arbre des détails non seuillés (à droite).<br />

30<br />

10<br />

8<br />

6<br />

4<br />

2<br />

++<br />

+ +<br />

+<br />

+<br />

+<br />

+<br />

+<br />

++


0.5<br />

initiale<br />

recons<br />

0.0<br />

0.0 0.5 1.0<br />

0.5<br />

initiale<br />

mr<br />

+ +<br />

+ +<br />

+ +<br />

+ +<br />

+ + +++ ++ +++ +<br />

+ +<br />

+ +<br />

+ +<br />

+ +<br />

+<br />

++<br />

+++<br />

0.0<br />

0.0 0.5 1.0<br />

+ + ++++<br />

10<br />

8<br />

6<br />

4<br />

2<br />

+<br />

++<br />

++<br />

+ +<br />

+ +<br />

+ + +<br />

+ +<br />

++ ++<br />

+ +<br />

+<br />

++ ++<br />

+ +<br />

+ +<br />

+ + +<br />

+ +<br />

0<br />

0.0 0.5 1.0<br />

Fig. 16 – Analyse de la fonction y = f4(x), avec la reconstruction d’ordre r = 2 : fonction d’origine et<br />

fonction reconstruite pour ε = 10 −3 |f4 |∞ sur la grille uniforme la plus fine(à gauche), fonction reconstruite<br />

sur la grille adaptative (au milieu) et arbre des détails non seuillés (à droite).<br />

-1<br />

10<br />

-6<br />

10<br />

-11<br />

10<br />

×<br />

f1<br />

f2<br />

f3<br />

f4<br />

eps<br />

+<br />

×<br />

+ +<br />

-16<br />

10 -13 -12 -11 -10 -9<br />

10 10 10 10 10<br />

+<br />

×<br />

+<br />

×<br />

Erreur en fonction de epsilon<br />

+<br />

×<br />

+<br />

×<br />

+<br />

×<br />

-8<br />

10<br />

+<br />

×<br />

+<br />

×<br />

-7<br />

10<br />

+<br />

×<br />

-6<br />

10<br />

+<br />

×<br />

+<br />

×<br />

-5<br />

10<br />

+ + + + + + + + + +<br />

× × × × × × ×<br />

× × ×<br />

-4<br />

10<br />

-3<br />

10<br />

♦ ♦<br />

♦ ♦<br />

♦ ♦<br />

-2<br />

10<br />

⊕ ⊕<br />

-1<br />

10<br />

−1<br />

10<br />

−6<br />

10<br />

−11<br />

10<br />

+<br />

−16<br />

10 0<br />

10<br />

+<br />

+<br />

+ ×<br />

× +<br />

+<br />

+<br />

Erreur en fonction de la compression<br />

+<br />

+ +<br />

1<br />

10<br />

+<br />

+<br />

+ + + + + + ++ ++<br />

× ×× × ×××<br />

♦ ♦♦♦♦<br />

Fig. 17 – Erreur en norme L 1 en fonction de ε (à gauche) et en fonction du facteur de compression (à droite).<br />

31<br />

×<br />

×<br />

×<br />

f1<br />

f2<br />

f3<br />

f4<br />

×<br />

×<br />

×<br />

× ×<br />

× ×<br />

×× ×<br />

⊕ ⊕<br />

2<br />

10<br />

3<br />

10<br />

++<br />

+ +<br />

+<br />

++


pour les détails et justifications théoriques. On s’intéresse a priori à des systèmes d’équations aux dérivées<br />

partielles très généraux écrits sous la forme<br />

Ut = AU, U(0) = U0 + Conditions Limites (74)<br />

On introduit l’opérateur d’évolution E(t) qui prend en compte les conditions limites<br />

U(t) = E(t)U0.<br />

On introduit aussi l’opérateur de discrétisation D. C’est un opérateur linéaire<br />

D : F −→ V,<br />

F est l’espace fonctionnel où on a l’ existence de la solution du problème (74) et V est un espace vectoriel de<br />

dimension J dans lequel on va chercher la solution discrétisée approchant la solution exacte. On ne précise<br />

pas plus pour le moment ; D peut être l’opérateur correspondant à une discrétisation par valeurs ponctuelles<br />

(différences finies), valeurs moyennes sur des mailles (volumes finies), coefficients dans une base de fonctions<br />

(Eléments finis, méthodes spectrales). D est une projection dans le sens où pour tout v ∈ V il existe f ∈ F<br />

tel que Df = v. On définit aussi un opérateur de reconstruction R, qui pourra être non linéaire, allant de V<br />

dans F et inverse à droite de D. C’est à dire que<br />

DRv = v.<br />

En intégrant (74) entre tn et tn+1, avec t n = n∆t, on obtient<br />

U(tn+1) − U(tn)<br />

∆t<br />

= 1<br />

∆t<br />

= 1<br />

∆t<br />

tn+∆t<br />

tn<br />

∆t<br />

0<br />

AU(τ)dτ,<br />

AE(t)U(tn)dt.<br />

On peut maintenant définir le schéma numérique, comme l’algorithme permettant de calculer une approximation<br />

discrète v n de la solution U au temps t n ,<br />

v n ≈ DU(t n ), Rv n ≈ U(t n ) (75)<br />

la donnée de départ étant la solution au temps initial U0 = U(t 0 ). Pour cela, on écrit l’équation reliant les<br />

solutions approchées à deux pas de temps consécutifs, en prenant comme condition initiale de (74) la solution<br />

reconstruite à partir de la solution discrète au temps t n<br />

v n+1 = DE(∆t)Rv n = v n + D<br />

∆t<br />

0<br />

A[E(t)Rv n ]dt (76)<br />

Finalement en itérant ce procédé, on obtient la solution approchée v n en fonction de la solution initiale<br />

discrétisée v 0 = DU0<br />

v n = DE(∆t)RDE(∆t)R . . . DE(∆t)Rv 0 = [DE(∆t)R] n v 0<br />

Remarquons dans cette expression le terme RD, qui lui n’est pas égal à l’identité comme DR et est en fait<br />

la projection de F sur un espace fonctionnel de dimension finie, qui va dépendre du choix de l’opérateur de<br />

reconstruction R.<br />

On introduit maintenant le schéma semi-discret. A partir de (76),on écrit<br />

v n+1 − v n<br />

∆t<br />

= D 1<br />

∆t<br />

32<br />

∆t<br />

0<br />

(77)<br />

A[E(t)Rv n ]dt (78)


et on fait tendre ∆t vers 0. On obtient<br />

dv<br />

= DA[E(0+)Rv]<br />

dt<br />

(79)<br />

On va maintenant particulariser tout ce qui précède au cas des systèmes de lois de conservation hyperboliques<br />

pour tout k = 1, ..., d on note<br />

Au = −divf(u), avec u : Ω ⊂ R d → R p et f : R p → R p<br />

Jk(u) =<br />

∂fi,j<br />

∂uk<br />

<br />

(u)<br />

1≤i,j≤p<br />

la matrice jacobienne de fk Rappelons que ce système, sous forme conservative, est dit hyperbolique si pour<br />

tout u ∈ Ω et tout ω ∈ R d , la matrice<br />

a p valeurs propres réelles<br />

J(u, ω) = Σ d k=1ωkJk(u)<br />

λ1(u, ω) ≤ λ2(u, ω) ≤ ... ≤ λp(u, ω)<br />

et p vecteurs propres linéairement indépendants. (En d’autres termes, J(u, ω) doit être diagonalisable dans<br />

R. Si en plus les valeurs propres sont toutes distinctes, on dit que le système est strictement hyperbolique).<br />

On commence par préciser le choix de l’opérateur de discrétisation, dans le cadre d’un schéma volumes finis.<br />

Il faut définir un maillage S du domaine dans lequel on cherche la solution. On numérote les cellules Ωj de<br />

ce maillage et on définit les normales N aux arêtes des mailles, avec toujours la convention de prendre la<br />

normale avec un signe positif dirigée vers l’extérieur de la cellule. La solution discrète est définie comme la<br />

suite des valeurs moyennes de la solution exacte<br />

(Du) j = 1<br />

|Ωj|<br />

où on note |Ωj| la mesure de la cellule Ωj, longueur en dimension 1, surface en dimension 2, etc. En intégrant<br />

(74) avec (80) entre tn et tn+1 et en appliquant la projection D on obtient<br />

U(tn+1) − U(tn)<br />

∆t<br />

DU(tn+1)j − DU(tn)j<br />

∆t<br />

= − 1<br />

∆t<br />

<br />

∆t<br />

0<br />

= − 1 1<br />

∆t |Ωj|<br />

= − 1 1<br />

∆t |Ωj|<br />

Ωj<br />

udx<br />

div (f (E(t)U(tn))) dt,<br />

∆t<br />

0<br />

∆t<br />

0<br />

<br />

<br />

Ωj<br />

∂Ωj<br />

div (f (E(t)U(tn))) dxdt,<br />

(f (E(t)U(tn))) .Ndsdt.<br />

Le schéma numérique va consister à calculer une approximation de ces valeurs moyennes<br />

v n+1<br />

j = vn ∆t <br />

1<br />

j − f (E(t)Rv<br />

|Ωj|<br />

n ) .Ndsdt<br />

0<br />

∂Ωj<br />

Notons que dans l’équation précédente, le cas où l’opérateur de reconstruction envoie v n dans l’espace des<br />

fonctions constantes par morceaux correspond au schéma volumes finis bien connu de Godunov. On va<br />

d’ailleurs détailler ce cas particulier : le schéma semi-discret est obtenu comme précédemment en faisant<br />

tendre ∆t vers 0<br />

dvj<br />

dt<br />

<br />

1<br />

= −<br />

|Ωj|<br />

= − 1<br />

|Ωj|<br />

<br />

∂Ωj<br />

∂Ωj<br />

f (E(0+)Rv n ) .Nds<br />

f R N<br />

33<br />

<br />

Rv |∂Ω −<br />

j<br />

, Rv |∂Ω +<br />

j<br />

<br />

ds<br />

(80)


où fN = f.N désigne le produit scalaire avec le vecteur normale, f R N (u1, u2) est le flux numérique approchant<br />

le flux exact sur une arête où la solution est u1 et u2 de part et d’autre. Dans le cas de la méthode de Godunov,<br />

f R N (u1, u2) = fN(W (0; u1, u2)), où W ( x<br />

t ; u1, u2) est la solution du problème de Riemann<br />

Wt + ∂<br />

∂ξ fN(W ) = 0,<br />

<br />

u1, si ξ < 0,<br />

W (ξ, 0) =<br />

u2, si ξ > 0,<br />

Le schéma le plus simple (de Godunov) consiste à utiliser comme opérateur de reconstruction l’application<br />

qui à (vj)j∈G associe la fonction constante par morceaux<br />

Rv(x) = <br />

vjχΩj (x)<br />

j∈G<br />

mais on peut envisager, pour améliorer la précision, d’utiliser un opérateur de reconstruction polynomial<br />

par morceau<br />

(Rv) (x) =<br />

r−1<br />

<br />

Bl(x − ci) l pour x ∈ Ci<br />

k=0 |l|=k<br />

avec x ∈ R d , l = (l1, ..., ld), |l| = li, et ci le centre de gravité de la cellule Ci.<br />

Un tel opérateur de reconstruction doit vérifier certaines propriétés dont l’exactitude polynomiale, c’est à<br />

dire la vérification de DR = Id, ce qui conduit à un système linéaire reliant les coefficients {Bl} de R<br />

(DRv) j =<br />

r−1<br />

<br />

k=0 |l|=k<br />

Dans les relations ci-dessus, Ifv(i) est une famille de<br />

cellules, contenant en particulier Ci, qu’on appelle en<br />

général stencil. Le choix de ce dernier est crucial. Suivant<br />

la dimension du problème et le degré du polynôme<br />

on aura à choisir parmi plusieurs stencils possibles<br />

et le critère de sélection du stencil conduira<br />

à des méthodes plus ou moins stables et plus ou<br />

moins précises. Par exemple, dans le cas d’une reconstruction<br />

Essentiellement Non-Oscillante (ENO) ,<br />

le stencil Ifv(i; v n ) est sélectionné de manière adaptative<br />

de telle sorte que la solution reconstruite<br />

soit régulière (voir figure (18) et références [28,<br />

14]).<br />

On peut résumer ce choix parfois très compliqué du flux<br />

numérique en écrivant le schéma volumes finis sous la<br />

forme condensée<br />

v n+1 = v n − b n<br />

<br />

Bl D.(x − ci) l<br />

j = vj, Ωj ∈ Ifv(i)<br />

(81)<br />

Stencil<br />

(i;v<br />

S fv<br />

n )<br />

Ω<br />

i<br />

Cell<br />

Shock<br />

Fig. 18 – Sélection adaptative du stencil Ifv au<br />

voisinage d’un choc.<br />

où b n = B(v n ) est un opérateur non-linéaire. En dimension 1 la condition de conservativité des flux impose<br />

la forme de l’opérateur B<br />

v n+1<br />

j<br />

= vn j<br />

∆t<br />

<br />

− ˆf(vn j−p , v<br />

∆x<br />

n j−p+1 , ...vn j+q ) − ˆ f(v n j−p−1 , vn j−p , ...vn j+q−1 )<br />

<br />

34<br />

(82)


où on a noté v n j une approximation de la valeur moyenne de la solution sur la maille [x j−1/2, x j+1/2]. On<br />

impose le plus souvent, pour démontrer la convergence d’un algorithme, une condition de consistance<br />

ˆf(u, u, ..., u) = f(u) (83)<br />

et une hypothèse de régularité Lipschitzienne<br />

<br />

<br />

ˆ <br />

<br />

f(vj−p, vj−p+1, ..., vj+q) − f(u) ≤ K max<br />

−p≤i≤q |vj+i − u| (84)<br />

pour tout vj+i suffisamment proche de u. On introduit finalement la notation suivante, qui peut être utilisée<br />

aussi en dimension 2<br />

b n ∆t<br />

j =<br />

|Ωj| D(unk ; k ∈ Ifv(j)), (85)<br />

où F désigne cette fois le bilan des flux numériques sur la cellule Ωj. En dimension 1, ce bilan s’écrit<br />

D(u n k; k = j − p, ...j + q) = ˆ f(v n j−p, v n j−p+1, ...v n j+q) − ˆ f(v n j−p−1, v n j−p, ...v n j+q−1) (86)<br />

En dimension deux, le bilan s’effectue sur les arêtes de la cellule Ωγ notées Γγ,µ = Ωγ ∩ Ωµ<br />

<br />

) =<br />

où le flux numérique F n γ,µ<br />

D(u n γ<br />

µ<br />

|Γγ,µ|F n γ,µ , (87)<br />

est une approximation du flux exact<br />

F n γ,µ =<br />

<br />

f R N (Rvγ, Rvµ) ds (88)<br />

Γγ,µ<br />

calculée à partir des valeurs de un λ , pour λ ∈ I(γ). Ce flux est dit conservatif si ces approximations satisfont<br />

aussi<br />

F n γ,µ + F n µ,γ = 0.<br />

On dénote par E l’opérateur d’évolution discret et non-linéaire associé à ce schéma, ce qui revient à réécrire<br />

(76) puis (77) pour obtenir<br />

V n = EV n−1 = · · · = E n U 0 . (89)<br />

où U 0 est le vecteur des valeurs moyennes de la solution exacte u0 = u(t = 0).<br />

Terminons ce paragraphe par quelques remarques sur la justification théorique des schémas numériques<br />

introduits : si U n est le vecteur des valeurs moyennes de la solution exacte u au temps n∆t, on définit<br />

l’erreur par<br />

en := V n − U n . (90)<br />

Pour des solutions non régulières de lois de conservation scalaires, on peut en général montrer que les<br />

schémas volumes finis d’ordre 1 convergent vers la solution entropique au sens de la norme L1. Il est possible<br />

d’obtenir une estimation d’erreur a priori en ≤ Cn∆t √ ∆x en 1D (voir [46]) et en ≤ Cn∆th 1/4 avec<br />

h := maxγ∈G diam(Ωγ), en dimension supérieure à 1 (voir [17]). Dans les cas plus généraux, on peut seulement<br />

se fier aux résultats numériques pour évaluer cette estimation. Notons aussi que le pas de temps est limité<br />

par une condition CFL :<br />

∆t ≤ C∆x, (91)<br />

où la constante C dépend typiquement d’une estimation des dérivées partielles d’ordre un en espace de la<br />

fonction flux sur le domaine de valeurs recouvert par la solution initiale |v| ≤ u0L ∞.<br />

L’utilisation de schémas volumes finis d’ordre élevé se heurte donc à deux difficultés. L’une, théorique, de<br />

l’analyse de la convergence de la solution vers la solution entropique et l’autre, pratique, du coût du calcul<br />

des flux FN, particulièrement quand le choix du stencil résulte d’un algorithme non linéaire et adaptatif. En<br />

fait c’est cette dernière difficulté qui à motivé au départ l’utilisation de techniques <strong>multiéchelles</strong> pour limiter<br />

le besoin de recourir à de tels flux.<br />

35


5 Le schéma de Harten et le schéma adaptatif<br />

Les deux schémas que l’on présente dans ce chapitre, le schéma multirésolution d’Harten et le schéma<br />

“adaptatif” sont tous les deux basés sur un schéma volumes finis de référence, répondant aux impératifs<br />

décrits dans la section 4 de manière à résoudre le système de lois de conservation (80). On reprend les<br />

notations introduites à la fin du paragraphe précédent, et on réécrit la discrétisation volumes finis (81) sur<br />

le niveau le plus fin<br />

où V n<br />

V n+1<br />

J<br />

= V n<br />

J − Bn J , (92)<br />

J := (un γ )γ∈SJ est le vecteur représentant la solution numérique au temps n∆t et B n J := (bn γ )γ∈SJ avec<br />

b n γ := ∆t<br />

|Ωγ|<br />

<br />

µ |Γγ,µ|F n γ,µ le bilan des flux numériques sur la cellule Ωγ. L’incrément b n γ dépend localement<br />

seulement mais de manière non linéaire, de la solution numérique, et s’exprime de la manière suivante,<br />

cohérente avec les notations introduites en (87) et (88)<br />

b n γ := ∆t<br />

|Ωγ| F (un µ ; µ ∈ I(γ)), (93)<br />

où I(γ) représente le stencil volumes finis associé à la cellule γ, et F la fonction de bilan des flux numériques.<br />

La condition CFL introduite en (91) devient<br />

et l’erreur<br />

∆t ≤ C2 −J , (94)<br />

en := V n J<br />

n<br />

− U J. (95)<br />

où on rappelle que U n<br />

J est le vecteur des valeurs moyennes de la solution exacte u sur la grille J. Le but des<br />

schémas multirésolution présentés ici est de calculer une solution numérique U n J avec un gain de temps de<br />

calcul significatif par rapport au schéma volumes finis de référence sans que l’erreur additionnelle<br />

an := U n J − V n J (96)<br />

ne dépasse une précision donnée. Il est naturel de choisir cette limite du même ordre que l’estimation (95)<br />

de l’erreur en disponible sur le schéma de référence.<br />

5.1 L’hypothèse d’Harten<br />

Les deux algorithmes que nous étudions ici reposent tous les deux sur l’idée intuitive, introduite par Harten<br />

dans [34], que l’ensemble des coefficients significatifs de la solution numérique évolue “lentement” d’un pas<br />

de temps à l’autre. Plus précisément si Λn ε est l’arbre graduel obtenu en appliquant l’opérateur Aε à une<br />

approximation U n J<br />

de U n<br />

J, on peut résumer l’idée d’Harten de la manière suivante :<br />

Hypothèse (Heuristique d’Harten ) : On peut agrandir l’ensemble Λ n ε en un arbre graduel ˜ Λ n+1<br />

ε<br />

nant à la fois Λ n ε<br />

et Λn+1<br />

ε<br />

de telle sorte que, si U n+1<br />

J<br />

= EJU n J<br />

U n J − A˜ n+1<br />

Λε U n n+1<br />

J ≤ Cε et UJ , on a<br />

− A˜ Λ n+1<br />

ε<br />

conte-<br />

n+1<br />

UJ ≤ Cε, (97)<br />

i.e. l’arbre graduel ˜ Λn+1 ε est adapté pour décrire la solution à la fois aux temps n∆t et (n + 1)∆t.<br />

Précisons maintenant la signification du terme “agrandir” dans l’hypothèse ci-dessus. Il est clair que cette<br />

affirmation est vraie si on définit simplement ˜ Λn+1 ε comme l’ensemble des cellules de la grille la plus fine ∇J .<br />

Mais ce choix n’a aucun intérêt du point de vue pratique : l’ensemble ˜ Λn+1 ε ne doit pas être beaucoup plus<br />

grand que Λn ε . La stratégie d’agrandissement proposée par Harten dans [34] consiste à faire grandir l’arbre<br />

en fonction de la taille de ses détails. Plus précisément, on appliquera les règles suivantes, généralisation<br />

directe des règles proposées par Harten dans le cas cartésien, avec en plus la structure d’arbre graduel :<br />

36


Algorithme 10 Règles de raffinement prédictives d’Harten<br />

– initialisation de ˜ Λn+1 ε<br />

– Pour j = J ↘ 1<br />

∀γ, |γ| = j<br />

à S0<br />

(i) Si dγ ≥ εj Alors µ ∈ ˜ Λ n+1<br />

ε<br />

pour µ ∈ V t<br />

γ<br />

(ii) Si dγ ≥ 2 p εj Alors µ ∈ ˜ Λ n+1<br />

ε pour µ ∈ ∇j+1 Ωµ ⊂ Ωγ, .<br />

La première règle (i) est dictée par la prise en compte de la vitesse finie de transport de la solution, en<br />

respectant la restriction CFL (94) sur le pas de temps. On sait qu’une discontinuité éventuelle ne pourra pas<br />

se propager sur plus d’une maille en un pas de temps et on définit V t<br />

γ comme le voisinage immédiat de la<br />

cellule Ωγ au même niveau (ce sont les cellules d’indices k − 1 et k + 1 en dimension un, toutes les mailles<br />

ayant un sommet en commun avec Ωλ en dimension supérieure). Remarquons aussi qu’en dimension deux<br />

pour des maillages cartésiens, Harten et Bihari [10] préconisent un seuillage un peu différent où les critères<br />

sont trois combinaisons linéaires des détails relatifs à la même maille avec un paramètre de seuil différent<br />

pour chaque combinaison linéaire.<br />

La seconde règle (ii) a pour but de prévoir la formation de discontinuités. En effet dans le cas d’une équation<br />

hyperbolique, on peut partir d’une solution infiniment régulière au temps 0 - et donc utiliser seulement les<br />

niveaux de résolution grossiers - qui va développer en temps fini une discontinuité qui nécessitera le codage<br />

de la solution sur le niveau le plus fin non utilisé au départ. Les détails de la solution vont être utilisés comme<br />

indicateurs de régularité numérique ce qui présuppose que la perte de régularité encore à venir peut être en<br />

quelque sorte détectée sur les niveaux de discrétisation plus grossiers. Dans le cas monodimensionnel, Harten<br />

([33]) propose de prendre p = r − 1, où r est le degré du polynôme définissant l’opérateur de reconstruction<br />

(31). Dans le cas bidimensionnel cartésien, les critères sont toujours des combinaisons linéaires des détails et<br />

le coefficient p est r + 2 ou r + 1.<br />

Les hypothèses précédentes sont cruciales dans l’analyse d’erreur des schémas de multirésolution adaptatifs<br />

en temps. En fait, la justification rigoureuse de (97) (voir [22]) nécessite un aménagement des règles de<br />

croissance. En particulier, il peut être nécessaire d’introduire plusieurs niveaux de raffinement quand |dγ| est<br />

très grand plutôt que les deux seuls descendants directs. Le nombre de “générations” à introduire dépend<br />

du degré de régularité de Hölder r de l’ondelette de synthèse ψλ. Pour tout λ ∈ Λn ε , on définit le nombre de<br />

niveaux de raffinement à introduire à l’endroit d’un détail non négligeable par n(λ), l’unique entier tel que<br />

2 n(λ)s ε |λ| < |d n λ | ≤ 2(n(λ)+1)s ε |λ|. (98)<br />

Comme ε |λ| est donné par (66), notre procédure de prédiction va prendre en compte à la fois la taille et<br />

l’échelle de dλ. Il est clair que subdiviser une maille λ sur n(λ) et en même temps respecter les règles de<br />

graduation de l’arbre conduira à agrandir Λn ε aussi sur le même niveau (voir Algorithme 16 ).<br />

5.2 Le schéma de multirésolution d’Harten<br />

A partir de (92), on obtient<br />

A˜ Λ n+1<br />

ε<br />

n+1<br />

V<br />

J<br />

= A˜ n+1<br />

Λ (V<br />

ε<br />

n<br />

J − B n J ) (99)<br />

Par ailleurs pour un ensemble d’indices à conserver fixé, Λ, l’opérateur AΛ est linéaire. Donc l’hypothèse<br />

d’Harten implique aussi que<br />

B n J − A˜ n+1<br />

Λε Bn J ≤ Cε, (100)<br />

c’est à dire que le bilan des flux est aussi bien représenté par ˜ Λn+1 ε . Étant donné une tolérance ε > 0, le<br />

schéma proposé par Harten dans [34] consiste à utiliser le vecteur compressé AΛ˜ n+1<br />

ε<br />

Bn J à la place de Bn J<br />

valeurs moyennes de la solution vont être évoluées en temps par<br />

U n+1<br />

J<br />

. Les<br />

= U n J − A˜ n+1<br />

Λε Bn J . (101)<br />

37


Bien entendu, en plus de l’opérateur A˜ n+1<br />

Λ qui lui est appliqué, B<br />

ε<br />

n J diffère du terme original car c’est le<br />

bilan des flux numériques calculé sur la solution U n J et non pas sur la solution volumes finis standard V n J .<br />

Comme on l’a expliqué plus haut le but de cet algorithme est d’économiser du temps de calcul en ayant<br />

moins d’évaluations de flux numériques à effectuer. A cet effet, on remarque que d’après la Proposition 1<br />

, c’est à dire les valeurs moyennes sur la grille fine à partir des valeurs<br />

page 26, on peut reconstruire A˜ n+1<br />

Λε Bn J<br />

moyennes (bn λ ) µ∈S( ˜ Λ n+1<br />

ε ) de Bn J sur la grille hybride. Ces dernières sont définies à partir de Bn J par<br />

b n λ :=<br />

<br />

|γ|=J,Ωγ⊂Ωλ<br />

|Ωγ|<br />

|Ωλ| bnγ , (102)<br />

D’un autre côté, comme bγ est un bilan de flux numériques sur Ωγ, on peut aussi le définir globalement sur<br />

la cellule Ωγ,<br />

b n λ := ∆t<br />

|Ωλ|<br />

<br />

|Γγ,µ|F n γ,µ. (103)<br />

|γ|=|µ|=J,Ωγ⊂Ωλ,Γγ,µ⊂∂Ωλ<br />

En d’autres termes, le calcul de A˜ n+1<br />

Λε Bn J va finalement nécessiter le calcul de flux numériques F n γ,µ sur la<br />

grille fine, correspondant à des bords de cellules de la grille fine, inclus dans des bords de cellules de la grille<br />

adaptative S( ˜ Λn+1 ε ).<br />

Pour fixer les idées on détaille ci-dessous les étapes de calcul de l’algorithme d’Harten dans le cas bidimensionnel<br />

triangulaire [20]. (Le cas mono-dimensionnel dyadique est dans l’annexe 1 et l’article de Bihari-Harten<br />

[10] détaille le cas d’un maillage cartésien). L’implémentation est basée sur deux structures de données : les<br />

triangles et les arêtes.<br />

À chaque triangle Tγ de l’arbre on associe ses quatre subdivisions (T j+1<br />

µ , µ ∈ St γ = {|µ| = |γ| + 1, Tµ ⊂ Tγ}),<br />

ses arêtes (aj µ , µ ∈ Aγ, ses voisins au même niveau V t (γ) = {µ, |µ| = |γ|, Tµ ∩ Tγ = ∅}, et ses voisins au sens<br />

de la multirésolution : les trois triangles ˜ Rγ au même niveau qui vont permettre d’interpoler les valeurs sur<br />

St γ grâce à 35.<br />

À chaque arête aγ de l’arbre on associe ses deux subdivisions (aµ, µ ∈ Sa γ = {|µ| = |γ| + 1, aµ ⊂ aγ}), ses<br />

deux triangles voisins V a (γ) = (µ, |µ| = |γ|, aγ ∈ ∂Tµ}, et l’orientation νγ de sa normale. Au niveau le plus<br />

fin on définit pour chaque arête un voisinage au sens du schéma volumes finis V vf<br />

γ , c’est à dire l’ensemble<br />

des triangles entrant dans le calcul du flux numérique à travers l’arête aγ.<br />

Remarque : comme on va de toutes façons faire évoluer la solution sur la grille la plus fine, le seuillage<br />

effectif des détails en dessous du seuil de tolérance n’est pas indispensable. En fait il n’apporte rien du point<br />

de vue algorithmique puisque les données ne seront pas effectivement compressées. La grille hybride ˜ Λn+1 ε<br />

est dans ce cas virtuelle et sert simplement à repérer la régularité de la solution. Il est cependant important<br />

de respecter la structure d’arbre qui est utilisée dans l’algorithme 12 de calcul des flux.<br />

Algorithme 11 Volumes Finis + Multirésolution<br />

– Initialisation : calcul de U J,0 <br />

−1 = {|Ωγ| Ωγ u(x, t = 0)dx}, γ ∈ SJ , la discrétisation de la condition initiale sur<br />

la grille la plus fine.<br />

– Boucle sur tn, n = 0, ...<br />

Codage de U n J avec l’algorithme 5<br />

Indicateurs de régularité, avec prédiction ˜ Λn+1 ε 10 :<br />

Calcul des flux avec l’algorithme 12<br />

Évolution au niveau fin : Pour γ, |γ| = J,<br />

u n+1<br />

γ<br />

= un γ<br />

Fin de Pour γ<br />

– Fin de Pour tn<br />

+ bγ<br />

38


Algorithme 12 Calcul des flux en partant du niveau grossier<br />

– Niveau grossier 0<br />

Boucle sur les arêtes : Pour γ, |γ| = 0<br />

(i) ∀µ, |µ| = J et aµ ⊂ aγ Fµ = Fx,y|Γx,y avec (x, y) ∈ V a µ<br />

(ii) Fγ =<br />

<br />

Fµνµ (voir 103)<br />

Fin de Pour γ<br />

aµ⊂aγ,|µ|=J<br />

Boucle sur les triangles Pour γ, |γ| = 0<br />

<br />

−1<br />

(iii) bγ = |Tγ|<br />

Fin de Pour γ<br />

Pour j = 0 ↗ J − 1<br />

µ∈Aγ<br />

Fµνµ<br />

boucle sur les triangles : Pour γ, |γ| = j<br />

Si γ ∈ ˜ Λn+1 ε<br />

calcul exact des flux sur toutes les petites arêtes composant les arêtes de Tµ, µ ∈ St γ<br />

(i), (ii).<br />

Sinon<br />

Fin de Pour γ<br />

Fin de Pour j<br />

calcul de bµ, µ ∈ St γ comme en (iii)<br />

calcul de bµ, µ ∈ S t γ par interpolation des valeurs de bν, ν ∈ ˜ Rγ avec l’opérateur 35.<br />

comme en<br />

Remarques :<br />

– Il est clair qu’une petite arête au niveau J interviendra dans le calcul des flux (ii) à travers plusieurs arêtes<br />

à des niveaux intermédiaires, (toutes ses arêtes ascendantes). Il faut donc repérer si le flux élémentaire (i)<br />

a déjà été calculé ou non.<br />

– Dans le cas mono-dimensionnel (voir algorithme 24) le nombre de flux à calculer précisément est directement<br />

proportionnel au cardinal de ˜ Λn+1 ε , mais ce n’est plus vrai en dimension supérieure où le calcul du<br />

flux sur une cellule sur la grille grossière fait intervenir un grand nombre de flux sur des petites arêtes au<br />

niveau le plus fin.<br />

– Cet algorithme ne permet aucun gain en mémoire puisque, on l’a déjà remarqué, l’évolution se fait sur<br />

la grille la plus fine. De plus, du point de vue CPU, le gain est lui aussi limité parce que la complexité<br />

des calculs est toujours de l’ordre de SJ . Même si le calcul des bilans de flux bγ sont moins coûteux pour<br />

γ /∈ ˜ Λn+1 ε puis qu’il se fait par interpolation, il doit quand même être effectué sur toute la grille la plus<br />

fine.<br />

5.3 Algorithme complètement adaptatif<br />

Nous présentons maintenant l’algorithme permettant de faire évoluer la solution directement sur la grille<br />

hybride ˜ Λn+1 ε sans la reconstruire entièrement sur la grille la plus fine comme c’est le cas dans les algorithmes<br />

d’Harten.<br />

Algorithme 13 Algorithme adaptatif<br />

– Initialisation de la solution UJ, 0 et de Λ0 ε<br />

– Codage de la solution MU 0 J et seuillage (48)<br />

– Pour n = 0, ... Boucle sur tn,<br />

39


Prediction<br />

Graded tree<br />

Fig. 19 – Raffinement prédictif dans le cas mono-dimensionnel dyadique<br />

1. Raffinement prédictif : construction de ˜ Λn+1 ε à partir de Λn ε et de MU n (voir algorithme 16)<br />

2. Décodage partiel M−1T˜ n+1<br />

Λε MU n pour avoir les valeurs moyennes de la solution sur la grille hybride (voir<br />

algorithme 15)<br />

3. Évolution de la solution sur la grille hybride<br />

u n+1<br />

λ = unλ − ˜b n λ pour λ ∈ S(˜ Λn+1 ε )<br />

4. Codage partiel MU n+1 (voir algorithme 14)<br />

5. Seuillage des coefficients (48) et restriction de ˜ Λn+1 ε à Λn+1 ε<br />

– Fin de Pour n<br />

5.4 L’initialisation<br />

En toute rigueur, il faut partir de la solution donnée initialement sur la grille la plus fine pour pouvoir,<br />

après analyse (codage) et seuillage des coefficients, définir la grille hybride initiale. Cette étape nécessite<br />

donc l’occupation mémoire maximale, même si ultérieurement cette mémoire peut être libérée. Cependant,<br />

si la condition initiale est donnée par une fonction sous sa forme explicite, on peut envisager de calculer<br />

directement une représentation compressée de cette condition initiale, en partant du niveau grossier, ce qui<br />

optimise l’occupation mémoire.<br />

Algorithme 14 Codage partiel de la solution<br />

voir Proposition 1.<br />

Algorithme 15 Décodage partiel de la solution<br />

5.5 Le raffinement prédictif<br />

En pratique, dans l’étape (5) de seuillage et restriction de l’algorithme 13 on applique seulement la première<br />

étape de l’algorithme 8, sans imposer la structure d’arbre graduel qui sera de toute façon assurée par l’étape<br />

(1) de raffinement adaptatif décrite ci-dessous.<br />

Algorithme 16 Raffinement prédictif<br />

La solution est connue sous la forme codée (MUλ)λ∈Λn ε<br />

– Initialisation ˜ Λn+1 ε = Λnε ∪ ∇0 (48)<br />

– Raffinement prédictif (voir figure 19<br />

Pour j = J ↘ 0 Boucle sur les niveaux<br />

Pour γ ∈ Λn ε , |γ| = j<br />

µ ∈ ˜ Λn+1 ε ∀µ ∈ V t λ (transport des singularités)<br />

calcul de n(λ) (98) (croissance des singularités)<br />

∀ µ, Si Ωµ ⊂ Ωλ et |µ| ≤ |λ| + n(λ) , Alors µ ∈ ˜ Λn+1 ε<br />

Fin de Pour γ<br />

Fin de Pour j<br />

– Structure d’arbre (voir algorithme 8)<br />

– Graduation de l’arbre (voir algorithme 8)<br />

40


5.6 Le calcul précis des flux<br />

¡ ©¡©<br />

©¡© ¡<br />

¡ ©¡©<br />

U 1<br />

¡ ¡ ¢¡¢¡¢<br />

£¡£¡£<br />

¥¡¥¡¥ ¦¡¦<br />

§¡§¡§<br />

¤¡¤<br />

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<br />

¨¡¨¡¨<br />

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<br />

¡ ¤¡¤<br />

¢¡¢¡¢<br />

¥¡¥¡¥ ¦¡¦<br />

¡<br />

§¡§¡§ ¨¡¨¡¨<br />

£¡£¡£<br />

¨¡¨¡¨ §¡§¡§<br />

¦¡¦ ¥¡¥¡¥<br />

¤¡¤ £¡£¡£<br />

¢¡¢¡¢ ¡ ¡<br />

¡¡ ¡¡<br />

¡¡ ¡¡<br />

¡¡ ¡¡<br />

V1 V2 V3 V4<br />

U 2<br />

¡ ¡¡<br />

¡¡ ¡<br />

¡ ¡¡<br />

Fig. 20 – Reconstruction des valeurs moyennes au niveau fin<br />

A l’étape 3 de l’algorithme adaptatif 13, on doit calculer les bilans de flux ( ˜b n λ ) λ∈S( ˜ Λn+1) , sur les mailles de<br />

la grille hybride, ce qui est difficile puisqu’on ne dispose pas directement des valeurs (u n γ)γ∈SJ de la solution<br />

sur la grille fine, ce qui nous permettrait de calculer (bn λ ) λ∈S( ˜ Λn+1) avec (103), de manière aussi précise que<br />

dans l’algorithme 11 (aux erreurs de seuillage près).<br />

Dans le cas de grilles uniformes cartésiennes, on peut pallier cette difficulté en remarquant que si les détails<br />

sont négligeables localement à partir d’un certain niveau d’échelle j, les valeurs moyennes à ce niveau suffisent<br />

pour reconstruire, toujours localement, les valeurs moyennes à n’importe quel niveau plus fin que j. Ceci est<br />

illustré sur la figure 20 correspondant au cas de l’opérateur de prédiction d’ordre 3. Les valeurs moyennes<br />

(U1, ..U4) T , localisées aux extrémités gauches des gros intervalles, permettent de prédire les valeurs moyennes<br />

(V1, ..V4) T au niveau immédiatement plus fin, sur les quatre subdivisions correspondant aux deux mailles<br />

centrales sur le niveau grossier, en combinant les relations (31) correspondantes :<br />

U 3<br />

¡¡ ¡¡<br />

¡¡ ¡¡<br />

¡¡ ¡¡<br />

U 4<br />

⎛<br />

1/8 1 −1/8 0<br />

⎞<br />

⎜ −1/8<br />

V = ⎝<br />

0<br />

1<br />

1/8<br />

1/8<br />

1<br />

0 ⎟<br />

⎠ U<br />

−1/8<br />

(104)<br />

0 −1/8 1 1/8<br />

et en itérant cette relation on obtient quatre valeurs moyennes consécutives au niveau le plus fin en fonction<br />

des quatre valeurs moyennes correspondantes au niveau j, si les détails sont négligeables pour tous les<br />

ascendants successifs des 4 petites cellules<br />

⎛<br />

uJ 2J−j ⎞ ⎛<br />

u<br />

k−2<br />

j ⎞<br />

k−2<br />

⎜<br />

⎝<br />

u J 2 J−j k−1<br />

u J 2 J−j k<br />

u J 2 J−j k+1<br />

⎟ ⎜<br />

⎟<br />

⎠ = AJ−j ⎜<br />

u<br />

⎝<br />

j<br />

k−1<br />

u j<br />

k<br />

u j<br />

k+1<br />

⎟<br />

⎠ . (105)<br />

Des relations équivalentes peuvent être obtenues pour un opérateur linéaire d’ordre quelconque. La taille de<br />

la matrice augmentant bien sur en conséquence, et aussi dans le cas des maillages cartésiens. En plus de<br />

la simplicité d’implémentation, cette méthode permet une analyse de l’erreur, dans la mesure où le schéma<br />

volume finis de référence est ℓ1 contractant.<br />

En revanche, dans le cas d’un maillage triangulaire, même régulier, avec un opérateur de reconstruction<br />

tel que (35), l’obtention d’une telle relation matricielle n’est pas évidente. Une valeur moyenne au niveau<br />

fin s’exprime différemment en fonction des valeurs moyennes au niveau grossier suivant sa place dans la<br />

subdivision (centrale ou non), et la complexité du stencil en est d’autant plus grande. (Voir les travaux de<br />

N. Dyn sur ce sujet)<br />

5.6.1 Évaluation directe<br />

Dans le cas des maillages triangulaires, deux schémas ont été testés. Dans le premier cas, on utilise pour<br />

calculer les bilans de flux ( ˜b n λ ) λ∈S( ˜ Λn+1) les valeurs dont on dispose directement (un λ ) λ∈S( ˜ Λn+1) . Cette méthode<br />

est évidemment très peu précise, en fait de l’ordre de la grille la plus grossière, et ne donne pas de très bons<br />

résultats. Une autre idée est d’utiliser un flux numérique d’ordre plus élevé en reconstruisant par exemple la<br />

solution sur les arêtes avec un schéma de type ENO (voir annexe 3). Enfin, on peut imaginer une stratégie<br />

41


intermédiaire (pas implémentée) : on associe à chaque grosse arête sur un niveau intermédiaire un nombre<br />

fixe N, de petites arêtes au niveau le plus fin - faisant partie de la grosse arête. On reconstruit la solution<br />

localement uniquement sur les triangles voisins de ce petit nombre de petites arêtes et on calcule les flux sur<br />

ces dernières. Puis on calcule le flux sur les grosses arêtes par une quadrature d’ordre élevé, déterminé par<br />

N.<br />

5.7 Analyse de l’erreur<br />

On renvoie principalement à [20] pour l’analyse de l’erreur du schéma de Harten pour un maillage triangulaire<br />

et à ([22], section 4) pour l’analyse d’erreur du schéma adaptatif dans le cas de maillages réguliers.<br />

6 Applications numériques<br />

6.1 Cas mono-dimensionnel<br />

On présente ici les algorithmes détaillés dans le cas mono-dimensionnel dyadique Même dans ce cas relativement<br />

simple, une implémentation efficace du point de vue temps de calcul et place mémoire nécessite un<br />

investissement assez important du point de vue informatique. Les algorithmes ci-dessous n’ont certainement<br />

pas la prétention de répondre entièrement à ces objectifs ! (voir par exemple [50] pour un début de réponse...)<br />

Algorithme 17 Codage par valeurs moyennes<br />

u est connue par ses valeurs moyennes UJ sur la grille fine {Ω J k }, k = 0, ...N2J − 1<br />

Pour j = J − 1 ↘ 0<br />

1. Calcul de Uj : u j 1<br />

k =<br />

2. Calcul de û j+1<br />

2k<br />

2 (uj+1<br />

2k<br />

+ uj+1<br />

2k+1 ), ∀k = 0, ..., N2j − 1<br />

∀k = 0, ..., N2 j − 1 (avec l’opérateur de reconstruction polynomiale 31)<br />

3. Calcul des détails entre Uj+1 et Uj<br />

∀k = 0, ..., N2j − 1,<br />

d j<br />

k<br />

= uj+1<br />

2k<br />

− ûj+1<br />

2k<br />

4. Remplacement de Uj+1 par Uj et Dj<br />

Fin de Pour j<br />

u est maintenant codée sous la forme (U0, D0, D1, ...DJ−1)<br />

Algorithme 18 Décodage (valeurs moyennes)<br />

u est connue par ses valeurs moyennes U0 sur la grille grossière et tous les détails Dj pour j = 0, . . . , J − 1<br />

Pour j = 0 ↗ J − 1<br />

1. Interpolation : calcul de û j+1<br />

2k<br />

2. Reconstruction : calcul de Uj+1<br />

3. Remplacement de Uj et Dj par Uj+1<br />

Fin de Pour j<br />

∀k = 0, ..., N2 j − 1 avec (31)<br />

∀k = 0, ..., N2 j − 1 ,<br />

u j+1<br />

2k = û j+1<br />

2k + dj<br />

k<br />

u j+1<br />

2k+1<br />

42<br />

= 2uj k − uj+1<br />

2k


u est maintenant connue par ses valeurs moyennes UJ sur la grille fine<br />

Algorithme 19 Seuillage Harten<br />

u est connue par ses valeurs moyennes U0 sur la grille grossière et tous les détails Dj pour j = 0, . . . , J − 1<br />

Pour j = 0 ↗ J − 1<br />

Pour k = 0, ..., N2j − 1<br />

Si |d j<br />

k | < εj<br />

Alors d j<br />

k = 0<br />

Fin de Pour k<br />

Fin de Pour j<br />

Par convention on notera A j<br />

k = 1 l’appartenance à l’arbre ((j, k) ∈ Λ). On peut être encore plus précis et<br />

imaginer l’implémentation sous forme d’un arbre construit récursivement. Chaque branche de l’arbre a un<br />

pointeur vers la branche plus fine. Si la branche n’existe pas le pointeur est nul.<br />

Algorithme 20 Construction de l’arbre graduel Λ<br />

u est connue par ses valeurs moyennes U0 sur la grille grossière et tous les détails Dj pour j = 0, . . . , J − 1<br />

1 ère étape, le seuillage :<br />

Pour j = J − 1 ↘ 0<br />

Pour k = 0, ..., N2j − 1<br />

Si |d j<br />

k | < εj<br />

Alors d j<br />

k = 0 et Aj+1<br />

2k = 0<br />

Sinon A j+1<br />

2k = 1<br />

Fin de Pour k<br />

Fin de Pour j<br />

A 0 k<br />

= 1 pour tout k = 0, ..., N<br />

2 ème étape, l’ arbre :<br />

Pour j = J ↘ 2<br />

Pour k = 0, ...N2j et A j<br />

k = 1, Aj−1<br />

k/2 = 1<br />

Fin de Pour k<br />

Fin de Pour j<br />

3 ème étape, l’ arbre graduel : pour une reconstruction d’ordre r = 2s + 1<br />

Pour j = J ↘ 1<br />

Pour k = 0, ..., N2j − 1 et A j<br />

k = 1,<br />

A j−1<br />

k/2+l = 1, pour |l| ≤ s<br />

Fin de Pour k<br />

Fin de Pour j<br />

Algorithme 21 Reconstruction partielle sur les feuilles de l’arbre R(Λ)<br />

43


u est connue par ses valeurs moyennes U0 sur la grille grossière et les détails Dj pour j = 0, ..., J −1 et on connaˆ<br />

t l’arbre graduel minimum Λ, sous la forme A j<br />

k = 1 si (j, k) ∈ Λ<br />

Pour j = 0 ↗ J − 1<br />

Pour k = 0, ..., N2j − 1 et A j<br />

k = 1<br />

Si A j+1<br />

2k = 1 ou Aj+1<br />

2k+1 = 1<br />

j+1<br />

u<br />

Alors 2k = ûj+1<br />

2k + dj<br />

k<br />

u j+1<br />

2k+1 = 2uj k − uj+1<br />

2k<br />

Fin de Pour k<br />

Fin de Pour j<br />

On définit une fonction récursive permettant de parcourir l’arbre et de classer les feuilles<br />

Algorithme 22 La fonction sur la grille hybride<br />

fonction [X, U] = hybrid(X, U, j, k, A)<br />

Si A j+1<br />

2k<br />

Alors<br />

= 1 ou Aj+1<br />

2k+1 = 1<br />

[X, U] = hybrid (X, U, j + 1, 2k, A)<br />

[X, U] = hybrid (X, U, j + 1, 2k + 1, A)<br />

Sinon X = [X, x j<br />

k ] et U = [X, uj<br />

k ]<br />

Initialisation X = [],U = []<br />

Pour k = 0, ...N − 1<br />

[X, U] = hybrid(X, U, 0, k, A)<br />

Algorithme 23 Règles de raffinement prédictives d’Harten<br />

initialisation de A j<br />

k = 0, ∀j > 0, niveau grossier A0k = 1<br />

Pour j = J − 1 ↘ 1<br />

∀k = 0, ...N2j − 1<br />

Si |d j<br />

k | ≥ εj<br />

Alors A j<br />

k+l = 1 pour |l| ≤ 1<br />

Si |d j<br />

k | ≥ 2rεj Alors A j+1<br />

2k+l = 1 pour l = 0, 1<br />

Multirésolution couplée avec un schéma volume finis : Algorithme d’Harten dans le cas mono-dimensionnel<br />

dyadique :<br />

Algorithme 24 Volumes Finis + Multirésolution<br />

Initialisation : calcul de la discrétisation de la condition initiale sur la grille la plus fine :<br />

Pour k = 0, ..., N2 J − 1<br />

U J,0<br />

k<br />

Fin de Pour k<br />

= 2J x J k+1<br />

x J k<br />

u(x, t = 0)dx,<br />

Évolution en temps : Boucle sur tn,Pour n = 0, ...<br />

Codage de U ,<br />

Jn (algorithme 5)<br />

Indicateurs de régularité, avec prédiction (algorithme 23)<br />

44


Initialisation de l’arbre<br />

Pour j = J − 1 ↘ J − 1<br />

Pour k = 0, ..., N2j − 1<br />

Si |d j<br />

k | ≥ εj<br />

Alors A j<br />

k+l = 1 pour |l| ≤ 1<br />

Si |d j<br />

k | ≥ 2rεj Alors A j+1<br />

2k+l = 1 pour l = 0, 1<br />

Fin de Pour k<br />

Fin de Pour j<br />

Calcul des flux (algorithme 25)<br />

Évolution sur la grille fine :<br />

Fin de Pour n<br />

Pour k = 0, ...N2 J − 1,<br />

u J,n+1<br />

k<br />

Fin de Pour k<br />

= u J,n<br />

k − δt(F J j<br />

k+1 − Fk )<br />

Algorithme 25 Calcul des flux, algorithme de Harten<br />

Calcul des flux au niveau grossier : Pour k = 0, ...N − 1,<br />

F 0 k = ˆ f(u J,n<br />

2J k−p , ..., uJ,n<br />

2J k+q )<br />

Pour j = 0 ↗ J − 1<br />

Pour k = 0, ..., N2 j − 1<br />

Si A j<br />

k = 1<br />

Alors F j+1<br />

2k+1 = F J 2J−j−1 (2k+1) = ˆ f(u J,n<br />

2J−j−12k+1−p , ..., uJ,n<br />

2J−j−12k+1+q )<br />

Sinon F j+1 J<br />

2k+1 = F2J−j−1 (2k+1) = I(xj+1<br />

2k+1/2 ; F j )<br />

Fin de Pour k<br />

Fin de Pour j<br />

Dans cet algorithme, l’opérateur I qui sert à interpoler le flux au point x j+1<br />

2k+1 en fonction des valeurs des<br />

flux aux points sur la grille plus grossière F j<br />

k+l<br />

n’est pas l’opérateur de prédiction P j<br />

j+1<br />

d’ordre r utilisé<br />

pour les valeurs de la solution, mais l’opérateur de reconstruction polynomiale d’ordre r + 1 sur les valeurs<br />

ponctuelles. (voir [34] pour la justification).<br />

Sur le modèle de la base de Schauder vue au paragraphe 2.4, on peut construire des opérateurs linéaires<br />

de reconstruction par valeurs ponctuelles de précision polynomiale arbitraire en cherchant le polynôme p de<br />

degré r = 2s tel que<br />

, ∀l = −s + 1, ..., s puis en prenant comme valeurs reconstruites au niveau j + 1<br />

pkj(xk+l) = f j<br />

k+l<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

ˆf j+1<br />

2k = f j<br />

k<br />

ˆf j+1<br />

2k+1 = I(xj+1<br />

2k+1 ; f j ) = pk,j(x j+1<br />

= Σs <br />

l=−s+1 βl(f j j<br />

k+l + fk−l+1 )<br />

avec les valeurs des βi dans le tableau ci-dessous, pour r = 2, 4 et 6.<br />

45<br />

2k+1 )dx<br />

<br />

(106)


s β1 β2 β3<br />

2 1<br />

4 2<br />

6 3<br />

1<br />

2<br />

9<br />

16<br />

150<br />

256<br />

0 0<br />

On peut se passer de l’opérateur I en interpolant les bilans de flux sur chaque maille comme on le fait en<br />

dimension deux. L’algorithme modifié est alors<br />

Algorithme 26 Calcul des flux, algorithme modifié<br />

−1<br />

16<br />

−25<br />

256<br />

0<br />

3<br />

256<br />

– Calcul des flux au niveau grossier : Pour k = 0, ...N − 1,<br />

F 0 k = ˆ f(u J,n<br />

2J k−p , ..., uJ,n<br />

2J k+q )<br />

– Calcul des bilans de flux au niveau grossier : Pour k = 0, ...N − 1,<br />

b 0 k = 2−J (F 0 k+1 − F 0 k )<br />

– Pour j = 0 ↗ J − 1<br />

calcul des flux : Pour k = 0, ..., N2 j − 1<br />

Si A j<br />

k = 1<br />

Alors F j+1<br />

2k+1 = F J 2J−j−1 (2k+1) = ˆ f(u J,n<br />

2J−j−1 , ..., uJ,n<br />

2k+1−p 2J−j−12k+1+q )<br />

Fin de Pour k<br />

calcul des bilans de flux Pour k = 0, ..., N2j − 1<br />

Si A j<br />

k = 1<br />

<br />

b<br />

Alors<br />

j+1<br />

2k = 2−j+1 (F j+1 j+1<br />

2k+1 − F2k )<br />

b j+1<br />

2k+1 = 2−j+1 (F j+1 j+1<br />

2(k+1) − F2k+1 )<br />

j+1<br />

b<br />

Sinon 2k = ˆb j+1<br />

2k<br />

b j+1<br />

( avec (31))<br />

2k+1 = 2bj k − bj+1<br />

2k<br />

Fin de Pour k<br />

– Fin de Pour j<br />

Exemple numérique dans le cas mono-dimensionnel<br />

L’intérêt de l’algorithme adaptatif est bien illustré l’exemple scalaire mono-dimensionnel suivant.<br />

On considère l’équation de Burgers<br />

∂tu + ∂xu 2 /2 = 0 (108)<br />

avec comme condition initiale une fonction régulière u (x) = 2 + sin(2πx) sur l’intervalle [0, 1] avec des<br />

conditions de périodicité. Le flux numérique est évalué avec une reconstruction ENO d’ordre 2. On utilise la<br />

technique de reconstruction locale présentée au paragraphe 5.6, et on compare avec les résultats obtenus en<br />

utilisant les valeurs sur la grille hybride pour calculer les flux. On représente les résultats correspondant à<br />

huit niveaux de résolution avec 20 intervalles au niveau le plus grossier. Le pas de temps ∆t = 2.5 × 10 −5 et<br />

la solution est représentée à t = 0.5. Le seuil de tolérance est 10 −3 . Sur la figure 21 on montre la solution<br />

initiale sur la grille hybride ˜ D 0 ε, superposées à cette dernière au même temps t = 0. Comme la solution<br />

46<br />

(107)


u<br />

2.8<br />

2.6<br />

2.4<br />

2.2<br />

2<br />

1.8<br />

1.6<br />

1.4<br />

u<br />

3<br />

2.8<br />

2.6<br />

2.4<br />

2.2<br />

2<br />

1.8<br />

1.6<br />

1.4<br />

1.2<br />

7 levels at most - eps=0.001 - 2nd order flux reconstructed on fine grid<br />

1<br />

0 0.2 0.4 0.6 0.8 1 2<br />

x<br />

eps=0.001<br />

grid<br />

Fig. 21 – ε = 0.001 Solution de l’équation de Burgers à t = 0, Flux ENO - valeurs reconstruites<br />

7 levels at most - eps=0.001 - 2nd order flux reconstructed on fine grid<br />

1.2<br />

0 0.2 0.4 0.6 0.8 1 0<br />

x<br />

eps=0.001<br />

fv<br />

grid<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

level<br />

u<br />

2.8<br />

2.6<br />

2.4<br />

2.2<br />

2<br />

1.8<br />

1.6<br />

1.4<br />

7 levels at most - eps=0.001 - 2nd order flux reconstructed on fine grid<br />

1.2<br />

0 0.2 0.4 0.6 0.8 1<br />

x<br />

3<br />

level<br />

eps=0.001<br />

fv<br />

Fig. 22 – ε = 0.001 Solution de l’équation de Burgers à t = 0.5, Flux ENO - valeurs hybrides<br />

initiale est régulière seuls deux niveaux de multirésolution sont utilisés (correspondant en fait au choix de<br />

la discrétisation). Sur le figure 22, à gauche on montre la solution reconstruite sur le niveau le plus fin avec<br />

pour référence la solution calculée par le schéma volumes finis classique aussi sur le niveau le plus fin c’est à<br />

dire 2560 intervalles. A droite on montre la solution sur la grille hybride ˜ Dn+1 ε , superposées à cette dernière<br />

au même temps t = 0.5. Seuls les intervalles les plus fins sont représentés, mais tous les intervalles plus gros<br />

dont ils sont des subdivisions appartiennent aussi à ˜ Λn+1 ε . La grille hybride localise très bien l’emplacement<br />

du choc, endroit où tous les niveaux d’échelle sont utilisés.<br />

6.2 Cas bidimensionnel<br />

La méthode de multirésolution mise au point par Harten se généralise sans difficulté majeure en dimension<br />

deux. Par simple produit tensoriel des opérateurs de projection et reconstruction, dans le cas d’une<br />

grille cartésienne (voir [10]) ou même sur des maillages non structurés (voir [3, 2, 47, 20]). En revanche, la<br />

généralisation de l’algorithme adaptatif dans le cas bidimensionnel se heurte au problème du calcul précis<br />

des flux sur les interfaces des mailles à des niveaux grossiers. Si l’on veut conserver la même précision que<br />

le schéma de référence sur la grille uniforme la plus fine, on doit en toute rigueur reconstruire la solution<br />

jusqu’au niveau le plus fin tout le long des arêtes de mailles grossières, comme l’illustre la figure 23. Cette<br />

étape sera d’une complexité algorithmique de l’ordre de la taille de la grille fine - alors qu’en dimension un<br />

la linéarité de l’opérateur de reconstruction permettait de simplifier ce calcul (voir paragraphe 5.6). L’approche<br />

utilisée en pratique, dans [11] par exemple, consiste à utiliser une reconstruction de la solution de<br />

part et d’autre des arêtes utilisant directement la solution sur la grille adaptative. Pour compenser la perte<br />

47<br />

3<br />

2<br />

level


Fig. 23 – Reconstruction locale par valeurs moyennes pour calculer les flux sur une interface au niveau<br />

grossier, dans le cas bidimensionnel non structuré.<br />

¢¡¢ ¡<br />

V1 V2 V3 V4 V 5<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¤¡¤ £¡£<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¦¡¦ ¥¡¥<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¡ ¡<br />

¨¡¨ §¡§<br />

¡ ¢¡¢<br />

¤¡¤<br />

¥¡¥<br />

£¡£<br />

§¡§ ¨¡¨<br />

¦¡¦<br />

¦¡¦<br />

§¡§ ¨¡¨<br />

¡ ¢¡¢<br />

£¡£ ¤¡¤<br />

¥¡¥<br />

U<br />

1 U2 U3 U4 ¡ ©¡©<br />

©¡© ¡<br />

©¡© ¡<br />

U<br />

5<br />

Fig. 24 – Reconstruction locale par valeurs ponctuelles.<br />

de précision l’opérateur sera d’ordre plus élevé mais non linéaire - avec en particulier des limiteurs de pente<br />

pour assurer la stabilité. Ces derniers ont pour effet de faire retomber la reconstruction à l’ordre un dans le<br />

voisinage des singularités, mais comme dans ces zones l’analyse des détails de la multirésolution entraˆne la<br />

représentation de la solution sur la grille fine, on ne perd pas en précision par rapport au schéma uniforme.<br />

Une solution alternative consiste à abandonner la représentation de la solution par ses valeurs moyennes -<br />

choix motivé par l’utilisation d’un schéma volumes finis - au profit d’une représentation par valeurs ponctuelles<br />

qui sera de toutes façons plus naturelle dans le cadre d’un schéma aux différences finies ou aux<br />

éléments finis. En dimension un, dans le cas d’un opérateur de reconstruction exacte pour les polynômes<br />

de degré trois, la reconstruction locale au niveau fin à partir des valeurs grossières se fait en multipliant la<br />

matrice Apv de l’équation (109) à la puissance voulue par les 5 valeurs centrées comme l’illustre la figure 24.<br />

⎛<br />

0 1 0 0 0<br />

⎞<br />

V = ApvU avec<br />

⎜ −1/16<br />

⎜<br />

Apv = ⎜ 0<br />

⎝<br />

0<br />

9/16<br />

0<br />

−1/16<br />

9/16<br />

1<br />

9/16<br />

−1/16<br />

0<br />

9/16<br />

0 ⎟<br />

0 ⎟<br />

⎠<br />

−1/16<br />

0 0 0 1 0<br />

En dimension 2 sur une grille cartésienne, on peut cette fois tensoriser la méthode utilisée en dimension car<br />

48<br />

(109)


1 2 3 4 5<br />

6 7 8 9 10<br />

1 2 4 5<br />

6 10<br />

11 12 16 20<br />

21 15<br />

25<br />

22 24<br />

16 17 20<br />

21 22 23 24 25<br />

Fig. 25 – Reconstruction locale par valeurs ponctuelles pour calculer les flux sur une interface au niveau<br />

grossier, dans le cas mono-dimensionnel.<br />

Fig. 26 – Grille adaptative au début de la simulation.<br />

pour faire évoluer une valeur discrète de la solution sur un niveau de grille grossière, on doit reconstruire<br />

des valeurs sur la grille la plus fine uniquement au voisinage de ce point, comme l’illustre la figure 25. De la<br />

même manière qu’en dimension 1 on a des relations linéaires permettant de calculer les valeurs nécessaires<br />

au niveau fin en fonction des valeurs connues à un niveau plus grossier.<br />

A titre d’exemple, on applique l’algorithme de multirésolution à l’équation des ondes acoustiques linéaires.<br />

Le schéma numérique de référence sur la grille uniforme est un schéma aux éléments finis d’ordre deux,<br />

proposé par Tsogka dans [5]. L’expérience simulée est une explosion due à une source située au point de<br />

coordonnées (5, 1) d’un domaine rectangulaire [0, 10] × [0, 20]. On s’intéresse à la propagation en temps long,<br />

et pour que les calculs restent raisonnables on limite le domaine d’étude dans la plus petite dimension en<br />

utilisant des conditions limites de type PML (perfectly matching layer). Ces conditions limites présentent<br />

aussi l’avantage d’être compatibles avec une solution périodique, ce qui permet de réduire la complexité de<br />

l’algorithme multirésolution. On présente dans les figures 26 à 29 les résultats de calcul sur une hiérarchie<br />

de quatre niveaux, avec une taille de maille grossière égales à 0.4 dans chaque direction. Le module de<br />

compressibilité K = 2.25 et la densité est fixée à ρ = 1. Avec un seuillage ε = 0.01 l’algorithme code la<br />

solution initiale sur 2416 mailles et la solution au bout de 400 pas de temps sur 11895 mailles, alors que la<br />

grille uniforme de référence en compte 80000.<br />

7 Prediction operator for a triangular mesh<br />

Let (Sℓ i,j )3j=1 pℓ i,j<br />

, we can associate a polynomial<br />

(x, y) of degree lower or equal to M defined by imposing the so-called “recovery condition” : the mean<br />

values of pℓ i,j and the mean values of the function u should coincide on a set V ℓ i,j of neighbor triangles of<br />

be the vertices of the triangle T ℓ<br />

i ∈ Ωℓ . For each vertices S ℓ i,j<br />

49


Fig. 27 – Solution adaptative au début de la simulation.<br />

Fig. 28 – Grille adaptative à la fin de la simulation.<br />

Fig. 29 – Solution adaptative à la fin de la simulation.<br />

50


S ℓ i,j :<br />

A(T )p ℓ i,j = A(T )u, if T ∈ V ℓ i,j. (110)<br />

The reconstructed solution is defined as the mean value of this polynomial on the subtriangle T ℓ+1<br />

i,j containing<br />

the given vertices Sℓ i,j (as shown on figure 30).<br />

ũ ℓ+1<br />

i,j<br />

= A(T ℓ+1<br />

i,j )pℓ i,j for j = 1, . . . , 3. (111)<br />

The mean value on the central subtriangle is computed by imposing conservation of the total sum on T ℓ<br />

i ,<br />

see (34). The case M = 1 (i.e. second order accurate reconstruction) was numerically experimented in [37],<br />

together with other strategies to select p ∈ Π1.<br />

We shall see below that a straightforward selection of p that mimics the 1D construction fails to provide a<br />

stable reconstruction in the sense that the limit function is not even in L1 , and we shall propose a modified<br />

prediction operator which overcomes this drawback.<br />

We denote by T ℓ 0 the current triangle and T ℓ<br />

i , i = 1, 2, 3, the three triangles that share an edge with T ℓ 0.<br />

Their numbering is such that the vertex Sℓ 0,j of T ℓ 0 does not belong to T ℓ j . Then the most natural choice for<br />

. A similar construction is done<br />

p0,3 seems to be by imposing (110) on T ℓ 0 and the two neighbors T ℓ 1 and T ℓ 2<br />

for p0,1 and p0,2.<br />

Writing<br />

p ℓ 0,3(x, y) = a ℓ 0,3x + b ℓ 0,3y + c ℓ 0,3, (112)<br />

and using the fact that for a polynomial of degree 1 one has A(T ℓ k )pℓ0,3 = pℓ0,3 (xℓ k , yℓ k ), we obtain the three<br />

equations<br />

a ℓ 0,3xℓk + bℓ0,3yℓ k + cℓ0,3 = ūℓk , (113)<br />

<br />

ℓ x<br />

for k ∈ {0, 1, 2}. The coefficients a0,3 and b0,3 solve a 2 × 2 linear system whose matrix 1 − xℓ 0 yℓ 1 − yℓ <br />

0<br />

x ℓ 2 − xℓ 0<br />

is non singular if the two centroids of T ℓ 1 and T ℓ 2 are not aligned with the current centroid Gℓ 0<br />

y ℓ 2 − yℓ 0<br />

, which is the<br />

case for uniform triangulations. The last coefficient c0,3 is computed by (113). A particular feature of this<br />

decomposition is that, for uniform triangulations, the centroid of the triangle T ℓ+1<br />

0,3 is also the midpoint of<br />

the segment between the centroids of the triangles T ℓ 1 and T ℓ 2. Therefore any plane containing both points<br />

1 , yℓ+1 0,3 , 2 (ūℓ1 + ūℓ2 )) whatever be the value of p(xℓ0 , yℓ 0 ).<br />

does not depend on the value of the<br />

(xℓ 1 , yℓ 1 , ū1) and (xℓ 2 , yℓ 2 , ū2) also contains the point (x ℓ+1<br />

0,3<br />

In other words the interpolated value on non central subtriangles of T ℓ 0<br />

function on T ℓ 0 :<br />

ũ ℓ+1<br />

0,3<br />

= 1<br />

2 (ūℓ 1 + ū ℓ 2). (114)<br />

This remark enables to show on a simple example that this scheme is not stable. We consider the case of a<br />

piecewise constant function equal to one on a triangle T 0 0 and to zero everywhere else. After n iterations of<br />

the subdivision scheme the reconstructed function takes the value 4 n on the center triangle of the n th level<br />

which clearly means that the limit function is not bounded (and not even in L 1 since it features a Dirac at<br />

the origin).<br />

We have not yet analyzed the higher degree reconstructions from this point of view, but they present anyway<br />

the other drawback of requiring much larger stencils to compute the local reconstruction polynomials. We<br />

adopt therefore an alternate solution consisting (again in the case of uniform decomposition) in the following<br />

reconstruction scheme on four triangles :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

ũ ℓ+1<br />

0,0 = ūℓ 0 ,<br />

ũ ℓ+1<br />

0,1 = ūℓ 0 + (ūℓ 2 + ūℓ 3 − 2ūℓ 1 )/6,<br />

ũ ℓ+1<br />

0,2 = ūℓ 0 + (ū ℓ 1 + ū ℓ 3 − 2ū ℓ 2)/6,<br />

ũ ℓ+1<br />

0,3 = ūℓ 0 + (ū ℓ 1 + ū ℓ 2 − 2ū ℓ 3)/6.<br />

Although not based on a polynomial selection process, this reconstruction is still exact for polynomials of<br />

degree one and thus second order accurate.<br />

Moreover, it is stable, in the sense that the limit function has C t smoothness for all t < 1.<br />

51<br />

(115)


A one parameter subdivision scheme. We replace the definition of ũ0,3 as given by ( 114) by the<br />

following more general formula<br />

ū ℓ+1<br />

0,3 = a(ūℓ1 + ūℓ2 ) + būℓ3 + cūℓ0 . (116)<br />

We now show that the constants a, b and c can be chosen to ensure the stability and provide the same<br />

accuracy as the initial scheme (112). To this effect the formula (116) should be exact for polynomials of<br />

degree one. For such a polynomial p(x, y) we have<br />

ū ℓ+1<br />

0,3<br />

= p(xℓ+1<br />

0,3<br />

, yℓ+1 0,3<br />

<br />

) = a p(x ℓ 1, y ℓ 1) + p(x ℓ 2, y ℓ <br />

2) + bp(x ℓ 3, y ℓ 3) + cp(x ℓ 0, y ℓ 0). (117)<br />

which is verified for all p ∈ Π1 if and only if b = a − 1/2 and c = 3/2 − 3a. The scheme then becomes<br />

and similarly<br />

and<br />

The central subdivision ū ℓ+1<br />

0,0<br />

ū ℓ+1<br />

0,3 = a(ūℓ 1 + ū ℓ 2) + (a − 1<br />

2 )ūℓ 3 + 3( 1<br />

2 − a)ūℓ 0, (118)<br />

ū ℓ+1<br />

0,2 = a(ūℓ 1 + ū ℓ 3) + (a − 1<br />

2 )ūℓ 2 + 3( 1<br />

2 − a)ūℓ 0, (119)<br />

ū ℓ+1<br />

0,1 = a(ūℓ 2 + ū ℓ 3) + (a − 1<br />

2 )ūℓ 1 + 3( 1<br />

2 − a)ūℓ 0. (120)<br />

is determined so as to satisfy (34)<br />

ū ℓ+1<br />

0,0<br />

= (9a − 1<br />

2 )ūℓ 0 − (3a − 1<br />

2 )(ūℓ 1 + ū ℓ 2 + ū ℓ 3). (121)<br />

For a = 1/2, one obtain the original non stable scheme (110), (111), (112). We shall now see that other<br />

values of a improve the stability in the sense that the limit functions are not only integrable but also Hölder<br />

continuous.<br />

Convergence. There exists now many different techniques to analyze the convergence of subdivision algorithms,<br />

as well as the smoothness of the limit function. Some of these techniques make use of Fourier<br />

analysis, while other directly operate in the ’physical’ domain (see e.g. [1] and [29] for substantial review on<br />

these different approaches.) Here we are specifically interested in evaluating the Hölder smoothness. In this<br />

context, a standard analysis method consists in deriving an auxiliary subdivision algorithm which maps the<br />

(infinite) vector D ℓ of finite differences between averages on adjacent triangles at level ℓ to the same finite<br />

difference vector D ℓ+1 at level ℓ + 1. Convergence and Hölder smoothness of the limit follows by proving a<br />

contraction property on this auxiliary scheme.<br />

More precisely, convergence to a continuous limit holds if limℓ→∞ Dℓℓ∞ = 0 when starting from the<br />

difference vector D0 associated to the fundamental data with average 1 on a single triangle of Ω0 and 0<br />

elsewhere (or equivalently from the difference vector D0 associated to any bounded sequence of averages on<br />

Ω0 ). In addition, if one can prove an estimate of the type<br />

D ℓ ℓ∞ ≤ Cρℓ<br />

for some ρ ∈ [1/2, 1[, then the limit functions have Hölder smoothness C α with α = − log(ρ)<br />

log(2) .<br />

A simple computation from the above formulas defining the subdivision for the averages shows that the<br />

subdivision for the differences can be described by two rules, corresponding to the two cases depicted in<br />

figure 7 (note that each difference is associated to an edge and an orientation in the normal direction) : for<br />

a difference D ℓ+1<br />

1 at level ℓ + 1 associated to an edge which does not belong to an edge of the coarser level<br />

ℓ, we have<br />

(122)<br />

D ℓ+1<br />

1 = (4a − 1)Dℓ 1 + (4a − 1/2)(Dℓ 2 + Dℓ 3 ), (123)<br />

52


while for a difference D ℓ+1<br />

2 at level ℓ + 1 associated to an edge which belongs to an edge of the coarser level<br />

ℓ, we have<br />

D ℓ+1<br />

2 = (2a − 1)Dℓ 2 + a(Dℓ 1 + Dℓ 4 ) + (a − 1/2)(Dℓ 3 + Dℓ 5 ). (124)<br />

Therefore, if we denote by SD the corresponding operator, we see that it acts boundedly on ℓ ∞ with norm<br />

SD = Max{|4a − 1| + 2|4a − 1/2| ; |2a − 1| + 2|a| + 2|a − 1/2|};<br />

It can easily be checked that the right hand side can never be smaller than 1. In turn, we cannot hope to<br />

obtain (122) with ρ < 1 through a rough estimate such as Dℓℓ∞ ≤ SDℓD0ℓ∞. In order to prove (122), we thus need to consider higher powers of SD : if Sn D < 1 for some n > 0, it is<br />

clear that (122) holds with ρ := Sn D1/n .<br />

The operators Sn D are also described by a finite number of rules, relating Dℓ to Dℓ+n , which however become<br />

more numerous and complicated as n increases. With the help of a computer, we were able to compute<br />

these rules and thus the ℓ∞ norms Sn D for powers up to n = 8. In particular, we find that S7 D < 1 for<br />

0.16 ≤ a ≤ 0.21 and S8 D < 1 for 0.14 ≤ a ≤ 0.23.<br />

Therefore, we are ensured that the limit function has some positive Hölder smoothness for values of a in<br />

the interval [0.14, 0.23]. It is of course possible to evaluate this smoothness by α = − log(S8 D) 8 log 2 since we have<br />

ρ ≤ S8 D1/8 . However, direct evaluation of the differences Dℓℓ∞ indicate that this is a pessimistic estimate<br />

in the sense that ρ could be actually much smaller than S8 D1/8 .<br />

In fact, it is even possible that (122) holds with some ρ strictly smaller than the spectral radius of SD on ℓ∞ (i.e. limn→∞ Sn D1/n ) for the following reason : the differences cannot be any arbitrary sequence indexed<br />

by the edges since they need to satisfy compatibility relations (the differences over all the edges connected<br />

to one point sum up to zero when conveniently oriented). Therefore a sharper estimate for ρ should be the<br />

spectral radius of SD on the subspace of ℓ∞ defined by these conditions.<br />

At a more empirical level, we have directly evaluated the contraction factor Dℓ+1ℓ∞/Dℓℓ∞ which tends<br />

to stabilize for ℓ ≥ 5. We find that this experimental contraction factor ρexp is strictly less than 1 for<br />

0.13 ≤ a < 0.25 and is close to its minimal value ρ ∼ 0.7 for 0.16 ≤ a ≤ 0.21. We can therefore conjecture that<br />

the limit function is continuous for 0.13 ≤ a < 0.25 and has Hölder smoothness α ∼ 0.5 for 0.16 ≤ a ≤ 0.21.<br />

In an other direction, one can identify as follows an interval for a out of which no Hölder smoothness can be<br />

expected. Consider a triangle of Ωℓ+1 which is a central subtriangle of a triangle in Ωℓ (e.g. T ℓ+1<br />

0,0 on figure<br />

30.) We see from (123) that the three differences associated to its edges only depend on the three differences<br />

associated to the edge of the triangle of Ωℓ which contains it. With an outward orientation of the normal,<br />

the matrix describing this dependence is given by<br />

⎛<br />

⎞<br />

4a − 1 4a − 1/2 4a − 1/2<br />

⎝ 4a − 1/2 4a − 1 4a − 1/2 ⎠ . (125)<br />

4a − 1/2 4a − 1/2 4a − 1<br />

Some information on the smoothness of the limit function can be derived from the spectral properties of the<br />

above matrix : the eigenvalues of this matrix are λ1 = λ2 = − 1<br />

2 and λ3 = 12a − 2, so that if a does not<br />

belong to ]1/12, 1/4[, we can find an initial vector D0 (which does satisfy the compatibility conditions) such<br />

that Dℓℓ∞ does not tend to zero.<br />

Optimal parameter. We finally test the approximation properties of our subdivision scheme for different<br />

functions u and different values of the parameter a. We start from the mean values of the function at<br />

the coarse grid Ω0 (256 triangles). Iterating the subdivision scheme from this coarse data produces a limit<br />

function uℓ which can be viewed as the projection of u onto the space spanned by the dual scaling functions.<br />

A practical way to select a good value of a is by optimizing the error u − uℓ in some prescribed norm. In<br />

practice, we can only do a finite number of subdivision steps. After three iterations, we compute the error<br />

between the result and the exact mean values of u on this finer grid, which amount in evaluating the averages<br />

of uℓ − u on the finest grid Ω3. The results are presented in the L 1 norm (the behavior with respect to a was<br />

observed to be similar in the L 2 and L ∞ norm).<br />

53


S 01<br />

l<br />

T<br />

3<br />

l+1 l+1<br />

T T<br />

01<br />

02<br />

l+1<br />

T<br />

00<br />

l<br />

T l+1<br />

l<br />

2 T T1<br />

03<br />

S 03<br />

Fig. 30 – Division of the triangle T ℓ 0 into T ℓ+1<br />

0,j for j = 0, . . . , 3 and neighbors T ℓ 1, T ℓ 2, T ℓ 3 used for the<br />

reconstruction<br />

l<br />

D 1<br />

S 02<br />

l<br />

D3<br />

l+1<br />

D 1<br />

l<br />

D2<br />

l<br />

D 4<br />

l<br />

D5<br />

l+1<br />

D2<br />

Fig. 31 – The two cases for the differences.<br />

– For a smooth function u(x, y) = sin(2πx) sin(2πy), the results are shown on figure 32.<br />

– For a discontinuous function, u(x, y) = 1 on a disc centered at (0.5, 0.5), with radius 0.2 and u(x, y) = 0<br />

elsewhere, the results are shown on 33.<br />

These two figures justify our choice for the value of the parameter a = 1/6 which belongs to the interval<br />

]0.16, 0.21[ of highest smoothness and leads to a particularly simple scheme :<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

ū ℓ+1<br />

0,0 = ūℓ 0<br />

ū ℓ+1<br />

0,1 = ūℓ 0 + (ū ℓ 2 + ū ℓ 3 − 2ū ℓ 1)/6<br />

ū ℓ+1<br />

0,2 = ūℓ 0 + (ūℓ 1 + ūℓ 3 − 2ūℓ 2 )/6<br />

ū ℓ+1<br />

0,3 = ūℓ 0 + (ūℓ 1 + ūℓ 2 − 2ūℓ 3 )/6<br />

The above analysis is tied to the use of fully uniform triangulations. In practice, the triangulation can be<br />

thought as uniform after a certain number of subdivision steps, except near the exceptional points and edges<br />

corresponding to the coarsest mesh. A more elaborate (yet feasible) analysis can be performed in order<br />

to analyze the smoothness of the dual functions in these regions (in the uniform regions, smoothness is<br />

determined by the previous analysis). Note that the prediction scheme needs anyway to be modified near the<br />

exceptional points and edges in order to ensure polynomial exactness. A natural generalization of the optimal<br />

scheme (with parameter a = 1/6) seems to be by imposing ū ℓ+1<br />

0,0 = ūℓ0 for the central triangle and computing<br />

the coefficients of the three remaining prediction rules from the constraints of polynomial exactness up to<br />

order 1 and conservation of the average.<br />

54<br />

(126)


0.045<br />

0.04<br />

0.035<br />

0.03<br />

0.025<br />

0.02<br />

0.015<br />

0.01<br />

erreur:norme L1<br />

0.005<br />

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45<br />

Fig. 32 – L1 norm of the error, a regular function<br />

0.14<br />

0.12<br />

0.1<br />

0.08<br />

0.06<br />

0.04<br />

erreur:norme L1<br />

0.02<br />

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5<br />

Fig. 33 – L1 norm of the error, a discontinuous function<br />

55


8 Conclusion<br />

Pour approfondir les aspects abordés dans ces notes, nous renvoyons à la bibliographie ci-dessous, ainsi<br />

qu’aux références citées dans le texte.<br />

Sur la méthode des ondelettes appliquées à l’analyse numérique, on pourra consulter<br />

– Ingrid Daubechies, Ten lectures on wavelets, SIAM, 92. [26].<br />

– Albert Cohen, Wavelet methods in numerical analysis, in Handbook of numerical analysis, vol VII, 99.<br />

[18].<br />

Une alternative aux méthodes présentées dans ce cours sont les méthodes AMR (Adaptive Mesh Refinement),<br />

où le raffinement du maillage est piloté localement par des indicateurs d’erreur a posteriori. calculés<br />

à partir du gradient de la solution [6, 7] ou bien à partir des résidus locaux [35, 49, 48]. L’inconvénient de<br />

ces approches très performantes en pratique est la difficulté de contrôler théoriquement l’erreur induite par<br />

l’adaptivité. En effet, alors que dans le contexte des résolutions des problèmes stationnaires par éléments<br />

finis les estimations a priori permettent une analyse de l’algorithme pour un éventail assez large d’équations<br />

(cf [9]), l’équivalent pour les schémas volumes finis est disponible uniquement dans le cas scalaire ou pour<br />

des schémas d’ordre 1 (cf [43]).<br />

Sur les techniques de multirésolution appliquées aux systèmes de lois de conservation on pourra<br />

consulter<br />

– les articles d’Harten et de ses collaborateurs, présentant l’algorithme dans le cas mono-dimensionnel scalaire<br />

[33], et vectoriel, [34]. Bihari et Harten, [10], développent l’application au cas scalaire bidimensionnel sur<br />

une grille cartésienne, avec codage par valeurs moyennes.<br />

– Des applications à des Volumes finis “cell centered”sur des maillages non structurés, toujours par codage<br />

des valeurs moyennes ont été réalisées ultérieurement. (Abgrall [3, 2], Sonar [47])<br />

– Une approche différente, avec une implémentation très poussée, pour des systèmes conservatifs (Euler<br />

compressible) et des performances de calcul améliorées par la parallélisation est développée par Chiavassa<br />

et Donat [16]. La solution “volumes finis” sur des maillages cartésiens est cette fois ci codée par valeurs<br />

ponctuelles.<br />

– Dans le cadre d’étude sur des domaines à géométrie plus complexe, Dahmen et al [25]) ont utilisé les<br />

ondelettes biorthogonales et des maillages curvilignes.<br />

– Toujours dans le but de pouvoir étudier des géométries compliquées, nous avons développé un algorithme<br />

de multirésolution pour Volumes finis “cell centered”sur des triangles, (Cohen, Dyn, Kaber, Postel [20]).<br />

(La section en anglais sur l’algorithme de prédiction sur les triangles, est extraite de cet article.)<br />

L’extension à la Multirésolution adaptative présentée au paragraphe 5.3 a donné lieu à de nombreuses<br />

publications :<br />

Le principe d’un algorithme complètement adaptatif, annoncé dans les travaux d’Harten, est défini dans<br />

ses grandes lignes dans [32] et analysé dans le cas scalaire mono-dimensionnel dans [22]. Cette méthode et<br />

une synthèse des premières applications sont reprises dans le livre de Müller [41]. L’implémentation au cas<br />

vectoriel 1D et 2D sur des maillages triangulaires sont détaillées dans [21, 23, 24].<br />

Parmi les applications plus récentes, on pourra regarder [11], dans lequel Brankamp, Lamby et Müller<br />

résolvent les équations de Navier-Stokes pour un gaz compressible en formulation ALE sur des maillages<br />

paramétrés à partir de maillage cartésien à l’aide d’un produit tensoriel de B-splines. L’analyse multiéchelle<br />

est faite dans une base d’ondelettes biorthogonales. Le code est teste en 2D sur le profil NACA0012. Roussel<br />

et Schneider appliquent l’algorithme adaptatif à des équations de réaction-diffusion en 3D dans [44] et à<br />

des EDP paraboliques dans [45]. Dans [39] Campos et Mehrenberger adaptent le principe de l’algorithme<br />

adaptatif présenté ici à un schéma semi-Lagrangien, dans le but de résoudre le problème de Cauchy associé<br />

au système Vlasov-Poisson en 1D périodique.<br />

Le dernier développement est le passage à l’adaptivité en temps et en espace : dans les méthodes<br />

présentées dans ce cours le schéma en temps est le même partout sur la grille adaptative. Le pas de temps est<br />

56


uniforme et soumis à une condition de stabilité de type CFL, contrôlée par la taille de la maille sur la grille<br />

la plus fine. Ceci réduit évidemment beaucoup le gain en performance de temps calcul. Dans [42] Müller<br />

et al ont mis au point un algorithme adaptatif à la fois en espace et en temps, où le schéma d’évolution<br />

utilise des pas de temps localement adaptés à la taille de la maille. Le schéma est testé en une dimension<br />

sur l’équation de Burgers en stationnaire et instationnaire pour des schémas en temps explicite et implicite.<br />

Cette méthode est ensuite appliquée aux équations de Saint-Venant bidimensionnelles avec terme source<br />

dans [38]. Dans le cadre d’un projet de recherche sur la modélisation des écoulements polyphasiques, nous<br />

étudions actuellement l’utilisation de cet algorithme couplé avec le schéma semi-implicite adaptatif déjà mis<br />

au point pour ce problème dans [30].<br />

Références<br />

[1] W. Dahmen A. Cavaretta and C. A. Micchelli. Stationary subdivisions. In Memoirs of the A.M.S.,<br />

volume 453, 1991.<br />

[2] R. Abgrall. Multiresolution analysis on unstructured meshes. In Chetverushkin and al., editors, Experimentation,<br />

modelling and combustion. John Wiley & Sons, 1997.<br />

[3] R. Abgrall and A. Harten. Multiresolution representation in unstructured meshes. Technical report, I.<br />

Preliminary report, CAM report 94-20, UCLA, 1994.<br />

[4] F. Aràndiga and R. Donat. Nonlinear multi-scale decompositions : The approach of a. harten, numerical<br />

algorithms. Technical report, University of Valencia,Spain, 2000.<br />

[5] E. Bécache, P. Joly, and C. Tsogka. Fictitious domains, mixed finite elements and perfectly matched<br />

layers for 2-D elastic wave propagation. J. Comput. Acoust., 9(3) :1175–1201, 2001. Ultrasonic field<br />

synthesis and modeling (Trieste, 1999).<br />

[6] M. J. Berger and P. Collela. Local adaptive mesh refinement for shock hydrodynamics. Journal of<br />

Computational Physics, 82 :64–84, 1989.<br />

[7] M. J. Berger and J. Oliger. Adaptive mesh refinement for hyperbolic partial differential equations.<br />

Journal of Computational Physics, 53 :484–512, 1984.<br />

[8] Marsha J. Berger and Randall J. Leveque. Adaptive mesh refinement using wave-propagation algorithms<br />

for hyperbolic systems. SIAM J. Numer. Anal., 35(6) :2298–2316 (electronic), 1998.<br />

[9] Christine Bernardi and Frédéric Hecht. Mesh adaptivity in the mortar finite element method. In Domain<br />

decomposition methods in sciences and engineering (Chiba, 1999), pages 83–92 (electronic). DDM.org,<br />

Augsburg, 2001.<br />

[10] B.L. Bihari and A. Harten. Multiresolution schemes for the numerical solutions of 2-d conservations<br />

laws. I. Siam J. Sci. Comp, 18(2) :315–354, 1997.<br />

[11] F. Bramkamp, Ph. Lamby, and S. Müller. An adaptive multiscale finite volume solver for unsteady and<br />

steady state flow computations. J. Comput. Phys., 197(2) :460–490, 2004.<br />

[12] M. J. Castro-D´az, F. Hecht, B. Mohammadi, and O. Pironneau. Anisotropic unstructured mesh<br />

adaption for flow simulations. Internat. J. Numer. Methods Fluids, 25(4) :475–491, 1997.<br />

[13] A. Cavaretta, W. Dahmen, and C.A. Micchelli. Stationary subdivision. Memoirs of AMS, 453, 1991.<br />

[14] S.R. Chakravarthy and A. Harten. Multidimentional ENO schemes for general geometries. Technical<br />

Report 76, Icase, 1991.<br />

[15] G. Chiavassa and R. Donat. Numerical experiments with point value multiresolution for 2d compressible<br />

flows. Technical report, Technical Report GrAN-99-4, University of Valencia, 1999.<br />

[16] Guillaume Chiavassa and Rosa Donat. Point value multiscale algorithms for 2D compressible flows.<br />

SIAM J. Sci. Comput., 23(3) :805–823 (electronic), 2001.<br />

[17] B. Cockburn, F. Coquel, and P. Lefloch. An error estimate for finite volume methods for multidimensional<br />

conservation laws. Math. Comp., 63 :77–103, 1994.<br />

57


[18] A. Cohen. Wavelet methods in numerical analysis. In Handbook of Numerical Analysis, vol. VII. Elsevier,<br />

1999.<br />

[19] A. Cohen, I. Daubechies, and J.-C. Feauveau. Biorthogonal bases of compactly supported wavelets.<br />

Comm. Pure and Applied Math., 45 :485–560, 1992.<br />

[20] A. Cohen, N. Dyn, S.M. Kaber, and M. Postel. Multiresolution schemes on triangles for scalar conservation<br />

laws. J. Comp. Phys., 1(161) :264–286, 2000.<br />

[21] A. Cohen, S.M. Kaber, and Postel M. Multiresolution analysis on triangles : application to conservation<br />

laws. In Finite Volumes for Complex Applications II, pages 841–848, 1999.<br />

[22] Albert Cohen, Sidi Mahmoud Kaber, Siegfried Müller, and Marie Postel. Fully adaptive multiresolution<br />

finite volume schemes for conservation laws. Math. Comp., 72(241) :183–225 (electronic), 2003.<br />

[23] Albert Cohen, Sidi Mahmoud Kaber, and Marie Postel. Multiresolution analysis on triangles : application<br />

to gas dynamics. In Hyperbolic problems : theory, numerics, applications, Vol. I, II (Magdeburg,<br />

2000), volume 141 of Internat. Ser. Numer. Math., 140, pages 257–266. Birkhäuser, Basel, 2001.<br />

[24] Albert Cohen, Sidi Mahmoud Kaber, and Marie Postel. Adaptive multiresolution for finite volume<br />

solutions of gas dynamics. Computer and Fluids, 32 :31–38, 2003.<br />

[25] Wolfgang Dahmen, Birgit Gottschlich-Müller, and Siegfried Müller. Multiresolution schemes for conservation<br />

laws. Numer. Math., 88(3) :399–443, 2001.<br />

[26] I. Daubechies. Ten Lectures on Wavelets. SIAM, Philadelphia., 1992.<br />

[27] R. DeVore. Nonlinear approximation. In Acta Numerica, pages 55–151, 1998.<br />

[28] L.J. Durlofsky, B. Engquist, and S. Osher. Triangle based adaptive stencils for the solution of hyperbolic<br />

conservation laws. J. Comp. Phys., 98 :64–73, 1992.<br />

[29] N. Dyn. Subdivision schemes in computer-aided geometric design. In Advances in Numerical Analysis,<br />

vol. II. Clarendon Press - Oxford, 1992.<br />

[30] Coquel Frédéric, Postel Marie, Poussineau Nicole, and Tran Quang-Huy. Multiresolution techniques<br />

and semi implicite schemes for multiphase flows. 2005.<br />

[31] E. Godlewski and P-A. Raviart. Numerical Approximation of Hyperbolic Systems of Conservation Laws,<br />

volume 118. Springer, 1996.<br />

[32] B. Gottschlich-Müller and S. Müller. Adaptive finite volume schemes for conservation laws based on<br />

local multiresolution techniques. In M. Fey and R. Jeltsch, editors, Proceedings of 7th International<br />

Conference on Hyperbolic Problems, Zürich, February 1998. Birkauser-Verlag.<br />

[33] A. Harten. Adaptive multiresolution schemes for shock computations. J. Comp. Phys., 115 :319–338,<br />

1994.<br />

[34] A. Harten. Multiresolution algorithms for the numerical solutions of hyperbolic conservation laws.<br />

Comm. on Pure and Appl. Math., 48 :1305–1342, 1995.<br />

[35] P. Houston, J. A. Mackenzie, E. Süli, and G. Warnecke. A posteriori error analysis for numerical<br />

approximations of Friedrichs systems. Numer. Math., 82(3) :433–470, 1999.<br />

[36] S. Jaffard. Pointwise smoothness, two-microlocalization and wavelet coefficients. Publicacions Matemàtiques,<br />

35 :155–168, 1991.<br />

[37] S.M. Kaber and M. Postel. Multiresolution using triangles. Publications du <strong>Laboratoire</strong> d’Analyse<br />

Numérique R98023, 1998.<br />

[38] Philipp Lamby, Siegfried Müller, and Youssef Stiriba. Solution of shallow water equations using fully<br />

adaptive multiscale schemes. preprint : Report No. 246, IGPM, RWTH Aachen, 2004.<br />

[39] Campos Pinto Martin and Mehrenberger Michel. Convergence of an adaptative scheme for the one<br />

dimensional vlasov-poisson system. 2005.<br />

[40] Y. Meyer. Ondelettes et Opérateurs. Hermann, Paris, 1990. english tranlation by D.H. Salinger (1992),<br />

Cambridge University Press, Cambridge.<br />

58


[41] Siegfried Müller. Adaptive multiscale schemes for conservation laws, volume 27 of Lecture Notes in<br />

Computational Science and Engineering. Springer-Verlag, Berlin, 2003.<br />

[42] Siegfried Müller and Youssef Stiriba. Fully adaptive multiscale schemes for conservation laws employing<br />

locally varying time stepping. preprint : Report No. 238, IGPM, RWTH Aachen, 2004.<br />

[43] Mario Ohlberger. Higher order finite volume methods on selfadaptive grids for convection dominated<br />

reactive transport problems in porous media. Comput. Vis. Sci., 7(1) :41–51, 2004.<br />

[44] Olivier Roussel and Kai Schneider. A fully adaptive multiresolution scheme for 3D reaction-diffusion<br />

equations. In Finite volumes for complex applications, III (Porquerolles, 2002), pages 819–826 (electronic).<br />

Lab. Anal. Topol. Probab. CNRS, Marseille, 2002.<br />

[45] Olivier Roussel, Kai Schneider, Alexei Tsigulin, and Henning Bockhorn. A conservative fully adaptive<br />

multiresolution algorithm for parabolic PDEs. J. Comput. Phys., 188(2) :493–523, 2003.<br />

[46] R. Sanders. On convergence of monotone finite difference schemes with variable spatial differencing.<br />

Math. Comp., 40 :91–106, 1983.<br />

[47] F. Schröder-Pander, T. Sonar, and O. Friedrich. Generalized multiresolution analysis on unstructured<br />

grids. Numerische Math., 86(4) :685–715, 2000.<br />

[48] T. Sonar, V. Hannemann, and D. Hempel. Dynamic adaptivity and residual control in unsteady compressible<br />

flow computation. Math. Comput. Modelling, 20(10-11) :201–213, 1994. Theory and numerical<br />

methods for initial-boundary value problems.<br />

[49] Thomas Sonar and Endre Süli. A dual graph-norm refinement indicator for finite volume approximations<br />

of the Euler equations. Numer. Math., 78(4) :619–658, 1998.<br />

[50] A. Voss and S. Müller. A manual for the template class library igpm t lib. Technical Report 197, IGPM,<br />

RWTH Aachen, 1999.<br />

59

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

Saved successfully!

Ooh no, something went wrong!