Approximations multiéchelles - Laboratoire Jacques-Louis Lions ...
Approximations multiéchelles - Laboratoire Jacques-Louis Lions ...
Approximations multiéchelles - Laboratoire Jacques-Louis Lions ...
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