• Aucun résultat trouvé

4.3 Convergence des dérivées de forme régularisées

6.1.4 Évolution du domaine

La fonction level-set φ avec laquelle nous travaillons est la fonction distance orientée à ∂Ω. Si Ω est suffisamment régulier, alors cette fonction est bien définie, et elle admet de bonnes propriétés, voir (48). L’évolution du domaine est alors régie par l’équation de Hamilton-Jacobi (1.9) sur un intervalle de temps [0, T ], où θ(t, x) = θ(x) est le champ scalaire calculé à l’étape précédente.

Pour des questions de robustesse, nous choisissons de discrétiser cette équation sur un maillage cartésien auxiliaire, puis de la résoudre par différences finies (en espace et en temps). Notons justement qu’une partie de la robustesse, de l’efficacité et de la simplicité de l’approche pro- posée est dûe à la méthode de résolution (fast-marching, voir (135)), et au fait que D soit en général un parallelépipède. On a un maillage D de D, dont on note (xi, yj, zk) les différents nœuds. On subdivise également [0, T ] en N sous-intervalles [tn−1, tn], 1 ≤ n ≤ N . Ce qui nous donne une version discrète φnijk = φ (tn, (xi, yj, zk)) sur [0, T ] × D∆. En réinterpolant θh sur la grille cartésienne, i.e. en évaluant θh aux nœuds de la grille, on obtient une approximation θijk de θ, et on peut résoudre une version discrète de l’équation de Hamilton-Jacobi :

∂φ

∂t(t, x) + θ(t, x) · | ∇φ(t, x)| = 0 , φ(0, x) = φ0(x) .

(6.9)

Remarque 6.1.3. En pratique, l’efficacité de l’algorithme nous permet d’utiliser une grille D∆ très fine, afin de gagner un peu en précision.

Nous associons à cette équation la condition initiale φ0

ijk = φ0(xi, yj, zk) où φ0désigne la fonc- tion distance signée à la frontière ∂Ω de la forme courante, ainsi que des conditions aux limites de Neumann sur ∂D∆. Pour la discrétisation en espace, afin de limiter la diffusion numérique, nous choisissons un schéma explicite d’ordre deux, voir (64; 123). Pour la discrétisation en temps, nous utilisons un schéma d’Euler explicite standard, ce qui impose une condition de type CFL sur le pas de temps. Après résolution, on se retrouve avec φNijk qui nous donne une fonction level-set associée au domaine après évolution, qu’on peut projeter L2 sur le maillage éléments finis. Ceci nous donne ˜φh ∈ Pm, m ≥ 1, représentation implicite du nouveau domaine

˜

Ωh sur Dh.

Remarque 6.1.4. Même si la condition initiale φ0 est très régulière et correspond à une fonction distance, rien ne garantit que la fonction φ conserve ces bonnes propriétés au cours de la résolution de (6.9). En pratique, la solution peut devenir très irrégulière, notamment au voisinage de {φ = 0}. Elle peut aussi s’éloigner considérablement d’une fonction distance, i.e. | ∇φ|  1 ou  1. Pour éviter ces problèmes, il est possible de réinitialiser périodiquement au cours de la résolution de (1.9), voir (150). Plus précisément, à ¯t ∈ [0, T ] fixé, réinitialiser

¯

φ = φ(¯t, ·) signifie remplacer ¯φ par la solution ψ de : (

∂tψ + sgn( ¯φ) (| ∇ψ| − 1) = 0 sur [0, +∞) × D,

ψ(0, x) = ¯φ(x) sur D. (6.10)

Puisque (6.10) est une équation de Hamilton-Jacobi, on peut encore utiliser le même schéma numérique pour la résoudre.

Maillage de ˜Ωh. À cette étape de l’itération, on aimerait pouvoir décider si on accepte cette nouvelle forme. Pour cela, on doit pouvoir vérifier qu’elle respecte bien les critères géométriques pour être dans Uad, et on doit pouvoir calculer J ( ˜Ωh). Pour ces deux raisons, dans le cadre de l’approche par discrétisation conforme, on souhaite disposer d’un maillage de ˜Ωh. Comme on connaît ˜φh partout sur Dh, il est possible de déterminer exactement l’intersection entre { ˜φh = 0} et les arêtes du maillage Dh, peu importe le degré d’interpolation choisi pour ˜φh. Il suffit ensuite d’ajouter des nœuds au maillage à toutes ces intersections, en ajoutant les composantes de maillages permettant d’assurer la validité de ce-dernier à chaque étape du processus. On obtient alors un nouveau maillage ˜Dh de D, contenant un sous-maillage ˜Ωh représentant le nouveau domaine.

Cette idée très simple qui consiste à découper le maillage autour de la ligne ou surface { ˜φh = 0} est bien connue dans le cas d’un champ ˜φh ∈ P1, voir par exemple (107;60). Dans le contexte de l’optimisation de formes, nous mentionnons la série de papiers (6;7;8), où les auteurs utilisent cette technique de découpage comme l’étape préliminaire d’un remaillage plus sophistiqué. Elle présente deux avantages principaux : sa facilité d’implémentation, et sa robustesse. En revanche, elle génère des maillages dont les éléments ne sont pas de bonne qualité au voisinage de l’interface découpée (éléments étirés, pouvant être très petits), et de plus cette interface

˜ φh > 0 ˜ φh< 0 • •

(a) Points d’intersection trou- vés.

(b) Maillage après décou- page.

Figure 6.1 – Schéma du découpage de Dh pour ˜φh ∈ P1. ˜ φh > 0 ˜ φh< 0 • • • •

(a) Points d’intersection trou- vés.

• •

(b) Maillage après décou- page.

Figure 6.2 – Schéma du découpage de Dh pour ˜φh ∈ P2.

maillée peut s’avérer irrégulière, surtout en 3D. Nous renvoyons à (43) pour une discussion à ce sujet.

Dans ce travail, nous privilégions cette technique malgré ses inconvénients, principalement pour sa facilité d’implémentation. Cependant, nous proposons d’en améliorer la précision en considérant un champ ˜φh∈ Pmavec m > 1. Cela permet de repérer un plus grand nombre de points d’intersection entre { ˜φh= 0} et Dh(jusqu’à deux par arête pour le P2, trois pour le P3, etc), et de donner une représentation plus précise de la ligne ou surface régulière {φ = 0} sous- jacente. Comme on peut le voir sur l’exemple6.1.1(figures6.1et6.2), passer du découpage P1 au découpage P2 semble apporter un gain en précision, même dans des cas 2D relativement élémentaires.

Exemple 6.1.1. Pour illustrer l’influence du degré d’interpolation de ˜φh sur ˜Ωh, prenons un exemple tridimensionnel. On considère un maillage régulier Dhdu cube [0, 1]×[0, 1]×[0, 1] ⊂ R3 composé de 4913 sommets, voir figure 6.4a. On définit sur ce domaine la fonction scalaire polynômiale de degré 4 ˜ φ(x, y, z) := 16  x −1 2 4 +  y −1 2 2 +  z −1 2 2 −1 4 .

On note toujours ˜φh le champ éléments finis associé à ˜φ sur Dh. Lorsqu’on utilise la technique de découpage présentée plus haut dans les trois cas ˜φh ∈ P1, P2 et P3, on obtient les surfaces et domaines présentés figure6.3.

(a) Domaine ˜Ωhpour ˜φh∈ P1. (b) Domaine ˜Ωhpour ˜φh∈ P2. (c) Domaine ˜Ωhpour ˜φh∈ P3.

Figure 6.3 – Domaines ˜Ωh obtenus après découpage autour de la surface { ˜φh = 0}. Comme attendu, dans les cas P2 et P3, on obtient une surface de niveau { ˜φh = 0} plus régulière, pour un nombre de sommets ajoutés du même ordre de grandeur : 3563 pour le P1 contre 3574 pour le P2et le P3. En revanche, le passage du P2 au P3 n’améliore pas le résultat de façon significative. En pratique, les observations faites pour cet exemple restent vraies dans la plupart des cas. Nous choisissons donc de travailler avec ˜φh∈ P2, qui constitue selon nous le meilleur compromis. Par ailleurs, comme on peut le voir sur la figure6.4, le choix du degré d’interpolation ne semble pas avoir d’influence sur la qualité du maillage découpé.

(a) Maillage Dh. (b) Maillage pour ˜φh∈ P1.(c) Maillage pour ˜φh∈ P2.(d) Maillage pour ˜φh∈ P3.

Figure 6.4 – Maillages pour le découpage autour de la surface { ˜φh = 0}.

Remarque 6.1.5. On voit sur sur l’exemple précédent que le maillage surfacique de { ˜φh = 0} obtenu a des éléments de mauvaise qualité. Cela peut mettre en péril la résolution lorsque les problèmes considérés sont difficiles à résoudre (grand nombre d’inconnues, fortes non- linéarités, etc). Dans ce travail, nous nous limitons au cas du contact en élasticité linéaire, sur des maillages de 5000 sommets ou moins, nous ne rencontrons donc pas de problème lors de la résolution sur les maillages découpés. De plus, même dans le cas où un « problème » apparaîssait à une itération donnée, le processus d’optimisation de formes ne serait pas mis en péril grâce à la robustesse du solveur d’optimisation. En revanche, pour étendre notre méthode d’optimisation aux cas du contact avec frottement de Coulomb en élasticité non-linéaire sur

des cas-tests indutriels (maillages fins et géométries complexes), il sera nécessaire d’ajouter une étape pour améliorer la qualité du maillage, comme par exemple dans (43). L’idée est de contrôler la qualité du maillage obtenu, puis éventuellement de faire appel à une étape supplémentaire d’adaptation.

Remarque 6.1.6. Notons que nos expériences numériques n’ont pas démontré la nécessité d’une géométrie d’ordre supérieure à 1. Ainsi dans notre procédure, même si on découpe le maillage à partir d’un champ scalaire P2, on conserve un champ de transformation géométrique P1. Autrement dit, la transformation qui génère l’élément courant à partir de l’élément de référence est affine. En particulier, les maillages obtenus n’ont pas d’arêtes courbes, comme on peut le voir sur les figures 6.3et6.4.

Forme acceptée ou rejetée. À la fin de cette étape, on a une forme maillée ˜Ωh. Deux cas de figure peuvent alors se produire.

— Si cette nouvelle forme est bien dans l’ensemble admissble Uad et si elle est meilleure que la précédente au sens où J ( ˜Ωh) < J (Ωh), alors la forme est acceptée. Elle devient le point de départ de l’itération suivante.

— Sinon, c’est qu’on est allé trop loin dans cette direction de descente, i.e. qu’on a advecté φ dans la direction de θ no sur un intervalle [0, T ] trop grand. On rejette la forme, puis on retourne au début de cette étape 5, en advectant cette fois sur l’intervalle [0, T /2]. Une manière simple d’éviter d’avoir à résoudre à nouveau l’advection sur cet intervalle est de garder en mémoire le champ φ au temps T /2.

Remarque 6.1.7. Cette procédure peut être vue comme une version simplifiée d’une méthode de recherche linéaire. Théoriquement, comme on est certain d’avoir une direction de descente, on devrait avoir J ( ˜Ωh) < J (Ωh) si T est suffisamment petit. À l’inverse, il peut être intéressant en pratique d’avoir de plus grandes valeurs de T car cela permet à l’algorithme de converger en un plus petit nombre d’itérations.

Remarque 6.1.8. En début de processus, afin de permettre des changements de topologie et d’éviter de tomber trop vite dans le voisinage d’un minimum local, nous acceptons des formes

˜

Ωh telles que J ( ˜Ωh) < βJ (Ωh), où β > 1.

Documents relatifs