3.3 Extension au cas anisotrope
3.3.1 R´epartition anisotrope des points
3.3.1.2 Normalisation
principe. A vrai dire, adapter la triangulation `` a un champ de m´etriques revient `a g´en´erer une triangulation uniforme d’une vari´et´e riemannienne (d´efinition 13, page 24). En effet on veut que toute arˆete soit de longueur unit´e dans cet espace m´etrique. En fait c’est le principe de la plupart des remailleurs surfaciques adaptatifs comme yams, mmgs, ou encore madlib [108, 96, 132]. Notons n´eanmoins qu’ils sont bas´es sur un contrˆole explicite de l’erreur68: ils visent `a trouver la triangulation
qui respecte ce seuil d’erreur avec le moins de points possibles. Dans notre cas, c’est l’inverse. Mais alors, comment inf´erer une m´etrique relative `a cet erreur quand on ne peut pas la borner ?
Pour cela, on recourt `a un estimateur d’erreur bas´e sur la notion de maillage continu. Il permet d’estimer l’erreur d’interpolation d’une fonction f ∈ C2(Ω,R) sur un plan ou un volume Ω ⊂ Rd, et
de trouver un champ tensoriel qui minimise cet erreur dans le cadre continu par le biais d’un calcul variationnel [75, 98]. Ici, l’id´ee est de trouver un mˆeme champ permettant de contrˆoler aussi bien l’erreur d’une solution num´erique u que celle de la surface. Ainsi l’avantage est double, car il permet :
• d’inf´erer la r´epartition de l’erreur directement en fonction du nombre cible de points,
• de d´efinir une densit´e qui capture les variations d’´echelles diff´erentes de cet erreur, en ajustant la sensibilit´e de la norme Lputilis´ee, o`u p est un param`etre `a fixer.
d´etails. En fait, notre cas est particulier car on n’est ni en planaire ni r´eellement en 3D non plus. En effet la surface repr´esente la fronti`ere d’un domaine volumique, et n’est que ”plong´ee” dans R3.
Mais comme il s’agit d’une vari´et´e, chaque tenseur peut s’exprimer dans une base locale du plan tangent TpΓ du point p. Il est donc localement de rang deux. Ainsi il peut s’exprimer comme une
matrice deR2×2 dans la base locale de TpΓ. Dans notre cas, il s’´ecrit :
∀u, v ∈ TpΓ, gp(u, v) =hu, Jp(α µpMp) JpT vi (3.23)
o`u :
• Jp ∈ R3×2 est la matrice jacobienne de la param´etrisation locale de la surface au point p. Elle
permet de passer du rep`ere local au plan tangent TpΓ de p `a la base canonique deR3.
• Mp ∈ R2×2 est la matrice d´ecrite en (3.22) et qui exprime la densit´e prescrite sur p dans les
directions principales de son plan tangent TpΓ. Elle provient du tenseur de courbure, ou de la
hessienne de la solution num´erique exprim´es dans la base locale de TpΓ, ou de leur intersection.
• µp ∈ R est un facteur qui permet de contrˆoler la sensibilit´e de l’estimateur d’erreur dans les
r´egions o`u la solution num´erique ou la surface varie fortement, en fonction de la norme Lpchoisie.
µp= (λ1,pλ2,p)−1/(2p+2). (3.24)
• α ∈ R est un facteur qui permet d’harmoniser la r´epartition souhait´ee des points, exprim´ee par la complexit´eCh du champ tensoriel, en fonction de la r´esolution nmax.
α = nmax Ch , avecCh= Z S=Γ ρ[x]2p/(2p+2)dx = X K∈Th Z K [λ1,xλ2,x]2p/(2p+2)dx. (3.25)
Les exposants impliqu´es dans les expressions de µx et Chsont ´equivalents `a ceux de [75] mais adapt´e
au cas surfacique.
stockage. En pratique, les tenseurs sont stock´es de mani`ere discr`ete sur les points de la triangu- lation. En fait, le tenseur associ´e `a un point p est en r´ealit´e une matrice de R2×2 une fois la base
locale de son plan tangent TpΓ fix´ee, voir (3.23). Afin de minimiser le coˆut m´emoire, on aurait pu
se contenter de ne stocker qu’une matrice de R2×2. N´eanmoins, cela n’est possible que si on dispose
d’une param´etrisation globale sur la surface. Ainsi on est donc oblig´e de stocker en plus la matrice
68Dans mmgs, un estimateur d’erreur en norme infinie est utilis´e afin d’approcher la distance de Hausdorff entre la
surface id´eale et discr`ete. Dans yams, c’est plutˆot un contrˆole sur l’erreur relative `a chaque arˆete qui est effectu´e. Dans les deux cas, cela permet d’inf´erer directement une carte de tailles de sorte que l’erreur n’exc`ede pas un seuil ¯ε fix´e.
c 2018. HOBY RA K OTO ARIVELO
jacobienne69 associ´ee `a p, ce qui fait en tout 6 + 3 coefficients par point. Ainsi nous pr´ef´erons ex-
primer directement chaque tenseur70 comme une matrice deR3×3 de sorte que g
p(v, n[p]) = 0 pour
tout v∈ R3. Enfin, puisqu’il s’agit d’une matrice sym´etrique, on ne stocke que sa partie triangulaire
sup´erieure en m´emoire. La routine compl`ete relative `a la construction et `a la normalisation de la m´etrique est donn´e `a l’algorithme3.7.
Algorithme 3.7: Construction et normalisation de la m´etrique.
1. Couplage des tenseurs
pour chaque point p faire en parall`ele . r´eduction dans une base commune P.
poser gp= 03×3.
calculer une base locale J = (∂up,∂vp) du plan tangent de p.
calculer M1le tenseur de courbure de p.
calculer M2la hessienne de u sur p dans la base J. . M2= JTHu,pJ.
calculer N = M−11 M2 et diagonaliser en R−1D R. . voir ´equationA.16.
pour chaque direction vi∈ R faire
λ1,i=hvi, M1vii.
λ2,i=hvi, M2vii.
Dii= min(max(|λ1,i|, |λ2,i|), h−2max). . voir ´equation A.17.
fin
stocker gp= J PTD P JT avec P = R−1. . voir ´equation A.18.
barri`ere
2. Normalisation selon la sensibilit´e de la norme Lp. pour chaque point p faire en parall`ele
calculer une base locale J = (∂up,∂vp) du plan tangent de p.
calculer M le tenseur associ´e `a gp dans la base J.
diagonaliser M en R−1D R.
pour chaque valeur propre Dii faire
Dii= max(num,|Dii|). . num= o(10−14).
µ = [det D]−1/(2p+2). . voir ´equation3.24.
stocker gp= J R−1µ D R JT.
barri`ere
3. Normalisation selon le nombre cible de points nmax.
poserCh= 0. . calcul de la complexit´e du champ.
pour chaque maille K r´eduire Ch en parall`ele . voir ´equation3.25.
poser α = 0
pour chaque point p de K faire
accumuler α = α + det(gp)−2p. . det(gp) = [λ1,pλ2,p]−1/(2p+2).
accumulerCh=Ch+|K| α. . Ch=PK∈Th |K|3 P3i=1det(gxi)−2p.
barri`ere
poser λ = (3 nmax/Ch). . voir ´equation3.25.
pour chaque point p faire en parall`ele
calculer une base locale J = (∂up,∂vp) du plan tangent de p.
calculer et diagonaliser M = R−1D R le tenseur associ´e `a g
p dans la base J.
stocker gp= J R−1λ D R JT. . voir ´equation3.23, D = µ D.
barri`ere
69Elle permet de passer du rep`ere local du plan tangent `a la base canonique deR3.
70Notons juste que le tenseur est congruent `a une matrice diagonale dans une base deR3 form´e par les composantes
c 2018. HOBY RA K OTO ARIVELO
84 3.3. Extension au cas anisotrope