• Aucun résultat trouvé

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

Documents relatifs