# Optimisation topologique

L'optimisation topologique est une méthode mathématique (et logicielle) qui permet de trouver la répartition de matière optimale dans un volume donné soumis à des contraintes. Elle se distingue notamment de l'optimisation de forme qui ne fait varier que la frontière de la pièce, qu'il faut avoir dessinée au départ.
Les méthodes d'optimisation topologiques connues à ce jour permettent d'optimiser la résistance élastico-mécanique, la conductivité thermique ou certains problèmes d'écoulement fluide.

## Histoire

Cette méthode issue des mathématiques a été clairement définie, expliquée et rendue exploitable pour la mécanique dans les années 2000, notamment avec l'article fondateur de Ole Sigmund.
Des logiciels d’optimisation topologique de plus en plus sophistiqués permettent aux ingénieurs d'économiser la matière possible d’un objet tout en conservant ou améliorant sa solidité ou sa souplesse (au besoin) et en tenant compte des contraintes qui s’exerceront sur lui, travail autrefois basé sur l’intuition, la méthode des essais et des erreurs ou le génie des créateurs ou des ingénieurs de fabrication.
Un exemple très simple est la réduction optimisée du nombre de rayons d’une roue de bicyclette. Jusqu’ici seules des formes simples étaient concernées, car ces logiciels sont très gourmands en calcul ou étaient rapidement limités par la complexité du travail demandé.
En octobre 2017, dans la revue Nature, des chercheurs d’une université danoise présentent une méthode permettant de faire ce travail pour des objets de grande taille, en améliorant la résolution possible. Une image 2D est composée de pixels alors qu’une image 3D est composée de voxels. Jusqu’à il y a peu, la résolution des modèles 3D optimisés était limitée à 5 millions de voxels, mais un nouveau programme optimise des objets jusqu'à 1 milliard de voxels. Ceci permet par exemple de modéliser et concevoir une aile de Boeing 777 en l’optimisant : elle se trouve allégée de 5 % et renforcée de l’intérieur par des longerons courbes et des nervures diagonales, et non plus par une structure en forme de grille. L'économie attendue est de 200 tonnes de kérosène/an. 5 jours de calculs par un superordinateur ont été nécessaires, et ce design (qui évoque l’intérieur de certains os ou l'intérieur de parties d’exosquelettes d’insectes) est actuellement « infabricable ». Cependant, les progrès de l'impression 3D pourraient bientôt le mettre à notre portée$^,$.

## Formalisme mathématique
### Énoncé

Le problème général d'optimisation topologique est posé comme
${\begin{aligned}{\text{Trouver}}\quad &\min _{\rho }{\mathcal {J}}(u(\rho ),\rho )\\{\text{sujet à}}\quad &G_{0}(\rho )=\int _{\Omega }\rho {\text{d}}V-V_{\text{max}}\leq 0\\&G_{i}(\rho )\leq 0\quad (i\geq 1)\end{aligned}}$
où
* La variable de conception (design) $\rho :\Omega \rightarrow [0,1]$ est la densité du matériau. 1 signifie présence de matériau et 0 signifie absence de matériau. La variable d'état $u(\rho )$ est la solution à une équation différentielle qui modélise le phénomène en jeu, selon le design $\rho$ (généralement les équations d'élasticité);
* ${\mathcal {J}}$ est la fonctionnelle coût. Elle représente une quantité d'intérêt qu'on veut minimiser ou maximiser (généralement la flexibilité ou la rigidité);
* $\Omega$ est l'espace de conception, c'est-à-dire l'ensemble des points qui sont sujets à l'optimisation;
* Les contraintes $G_{i}$ permettent d'imposer des particularités à la forme finale. Par exemple, $G_{0}$ impose une contrainte sur la quantité maximale $V_{\text{max}}$ de matériau à avoir.

### Interpolation des propriétés matérielles

Résoudre ce problème vise à déterminer une répartition optimale du matériau dans l'espace de conception $\Omega$. Le module de Young $E$ est la propriété qui quantifie la capacité d'un matériau à se déformer. Cette caractéristique doit être interpolée selon la densité $\rho$ (les endroits où il y a présence de matériau sont rigides, contrairement à ceux où il y a du vide). Par exemple, l'approche SIMP (Solid Isotropic Material with Penalization) utilise une loi de puissance pour déterminer le module de Young selon la densité en un point:
$E(\rho )=E_{\text{min}}+\rho ^{p}(E-E_{\text{min}})$
Le paramètre $p$ (typiquement $p=3$) pénalise les valeurs entre 0 et 1 pour obtenir un résultat binaire. $E_{\text{min}}$ est pris très près de 0 pour représenter le vide, mais non nul pour éviter les termes nuls dans la matrice de résolution de la méthode des éléments finis.
D'autres approches sont utilisées, comme la méthode RAMP, qui passe par une interpolation rationnelle.

### Caractérisation de l'optimalité

L'annulation du gradient en un point est une condition nécessaire à l'optimalité dans un problème sans contrainte. La dérivée au sens de Gateaux permet de calculer le gradient d'une fonctionnelle dans une direction $\delta$:
$d{\mathcal {J}}(\rho ;\delta )=\lim _{t\rightarrow 0}{\frac {{\mathcal {J}}(\rho +t\delta )-{\mathcal {J}}(\rho )}{t}}=(\nabla {\mathcal {J}}(\rho ),\delta )$
Une solution analytique à ce problème est difficile à obtenir. Les méthodes numériques d'optimisation comme la descente du gradient utilisent $\nabla {\mathcal {J}}$ pour obtenir des designs presque optimaux. Les contraintes peuvent être prises en compte dans ces algorithmes en utilisant diverses techniques de pénalisation.

## Mise en œuvre

En mécanique, la résolution d'un problème d'optimisation topologique passe par la modélisation de la pièce, ou de l'ensemble de pièces, à optimiser par la méthode des éléments finis. Une méthode classique d'optimisation topologique consiste alors à considérer en tout point du volume d'optimisation une densité de matière variant entre 0 et 1. D'autres méthodes considèrent l'orientation locale du matériau (pour les matériaux non isotropes) ou même d'autres caractéristiques. Optimiser consiste généralement dans ces méthodes à minimiser l'énergie de déformation de la structure, ce qui revient à peu près à trouver la structure la plus rigide possible. On peut ainsi soit fixer la quantité de matière mise en œuvre pour mettre en avant des formes optimales, pour orienter un design et une optimisation faite par ailleurs, soit chercher directement à définir une forme minimisant la matière à mettre en œuvre pour alléger au maximum la structure, en respectant une contrainte à ne pas dépasser. En pratique, pour un résultat exploitable (car c'est un nuage de densité de matière qui est généré a priori et non pas un solide avec une frontière bien définie) il est ajouté des méthodes de pénalisation, de filtrage, et de seuillage, en particulier pour imposer les contraintes géométriques spécifiques liées au processus de fabrication (symétries, autorisation de volume creux ou non, …, plan de joint).
Les principales étapes et difficultés à franchir sont généralement les suivantes :
* Définir le cahier des charges de la pièce à concevoir :
** Espace réellement disponible : il est souvent bien plus grand que la pièce éventuellement existante, et peut être encore agrandi en remettant à plat la fonction réellement à remplir et les contraintes environnantes à cette pièce, ou de l'ensemble de pièces à reconcevoir. Il ne faut pas oublier les zones où la matière est imposée ou interdite (pour des raisons fonctionnelles ou esthétiques).
** Liaisons mécaniques avec l'environnement : il faut bien remettre à plat les liaisons possibles avec les pièces voisines, car il y a souvent bien plus de liberté pour les zones de fixations que celles envisagées a priori. Il n'est parfois pas évident de distinguer quelles zones bloquer ou quelles zones sont chargées par des forces, le plus pragmatique étant alors d'imaginer comment pourrait être testée la pièce sur un banc d'essai, avec des liaisons fixes et des vérins, par exemple.
** Efforts mécaniques subis : il faut bien prendre en compte tous les chargements mécaniques vus par la pièce, au-delà de la fonction principale, c.-à-d. les efforts liés à des étapes de fabrication (notamment l'usinage), les efforts liés à la manipulation de la pièce (montage/démontage de la pièce, transport), les efforts accidentels (chocs), par exemple.
** Symétries et conditions de fabrication (cela étant de mieux en mieux pris en compte par les logiciels de calcul).
* Lancer le calcul d'optimisation topologique : il faut adapter la finesse du maillage à la précision spatiale recherchée et aux moyens informatiques dont on dispose ; les calculs peuvent être longs, on cherche donc à faire des premiers calculs à l'échelle de quelques minutes, pour les affiner ensuite. Il faut aussi bien vérifier comment sont pris en compte les différents cas de chargement par l'algorithme. En effet si l'on cherche juste la structure la plus rigide possible pour une masse donnée, les énergies des différents chargements sont simplement sommées, il convient alors de les pondérer entre eux, éventuellement. Par contre, si l'objectif est d'obtenir la pièce la plus légère possible qui ne casse pas, nul besoin de pondération.
* Analyse du résultat : Pour montrer une pièce facilement compréhensible (avec du vide et du plein bien définis), le résultat est généralement filtré par les logiciels pour l'affichage (par ex. le plein correspond aux zones de densité matière supérieures à 50%, sinon c'est du vide). Il faut donc bien prendre en compte qu'en général c'est une matière plus ou moins dense/poreuse qui est vraiment considérée par l'algorithme, et que les zones éventuelles de matière non reliée au reste sont tout à fait possibles, à l'affichage, car elles sont liées au reste par de la matière à faible densité, non affichée. Le résultat est donc à intreprêter pour définir une pièce faite de vide et de plein, au plus près de ce que l'algorithme propose. Il existe des paramètres (parfois cachés) pour explorer en détail ces subtilités : seuil d'affichage de la matière (par défaut 50% en général), pénalisation (paramètre limitant les zones de densités autour de 50%, mais pouvant dégrader la convergence des algorithmes), filtrage/lissage (filtre permettant d'éliminer des détails jugés trop petits), et bien sûr la finesse du maillage (qui permet de faire apparaître des détails plus ou moins fins). On se rend fréquemment compte à ce stade que la forme obtenue est absurde, généralement à la suite de l'oubli d'une contrainte majeure, ou car le problème était mal posé (par exemple s'il n'y a pas assez de liaisons au bâti pour maintenir la pièce, ou parce que des blocages ou des efforts ont été appliqués sur une zone où la matière est interdite).
* Dessin et vérification : une fois l'interprétation des résultats consolidée, la pièce peut être dessinée, aussi proche que possible de la topologie obtenue (nombre de barres/plaques, orientation, épaisseurs relatives), mais éventuellement plus agréable à l'œil, car les formes dites «organiques» obtenues par optimisation topologique ne conviennent pas toujours. C'est pourquoi on impose parfois une peau extérieure à la pièce (la partie visible) en limitant l'optimisation topologique uniquement à l'intérieur de la pièce à alléger (partie invisible). Il est optimum si possible d'utiliser des structures lattices (c.-à-d. un réseau serré de poutres ou de parois, comme des mousses), afin de mettre de la matière de densité intermédiaire là où le calcul la fait apparaître (c'est ainsi que la nature exploite des densités de bois différentes dans l'arbre, ou des densités d'os variables chez les vertébrés.