2. La procédure TOPOPTIM
La procédure TOPOPIM de Cast3M est grandement basée sur l'algotithme 99 lignes de [SIGMUND-2001] en reprenant les aspects suivants :
Le problème d'optimisation est celui de la minimisation de la compliance sous contrainte d'une fraction volumique imposée
La méthode SIMP est utilisée
L'optimisation est réalisée par critère d'optimalité et le multiplicateur de Lagrange (associé à la contrainte de volume) est calculé par dichotomie
Le filtrage de la sensibilité est réalisé par convolution
La présence éventuelle de zones figées qui feront obligatoirement partie de la topologie optimisée \((x_e=1)\)
Elle dispose de fonctionnalités supplémentaires :
L'utilisation de maillages non structurés
L'application à des comportement mécaniques non linéaires (plasticité, contact, grands déplacements ...)
La prise en compte de chargements multiples
L'application à des problèmes thermiques et thermo mécaniques
La possibilité d'utiliser des restrictions géométriques avec des symétries (centrale, axiale et plane) ou des conditions de pérodicité (axiale ou circulaire)
La prise en compte de synthèse de mécanisme souple
2.1. Étapes de la procédure
La procédure TOPOPTIM est segmentée en X étapes grace à des sous procédures spécifiques. Outre la facilité de la compréhension et de la maintenance, cette segmentation permet à l'utilisateur/développeur de pouvoir modifier la procédure facilment pour l'adapter à son propre problème d'optimisation.
TOPOBOOT pour le pré traitement des données. On initialise une table de travail (indice WTABLE) contenant des indicateurs et valeurs des paramètres choisis par l'utilisateur ainsi que des variables de travail (champs unitaires, volumes élémentaires, etc). On initialise notament la topologie \(\textbf{x}\) comme uniforme et égale à la fraction volumique imposée \(x_e=f\)
TOPOINFO pour afficher des informations sur le calcul en cours et les paramètres choisis
Début boucle d'optimisation
TOPOFCTR pour mettre à jour les paramètres d'amortissement/pénalisation et niveau de gris
TOPODENS pour calculer les champs de densité pénalisés
TOPOACTI pour mettre à jour les maillages/modèles/matériau/zone de contact actifs On procède notament au calcul du module d'Young pénalisé avec TOPOMATE
TOPORESO pour résoudre le/les problèmes mécaniques/thermiques en appelant le solveur éléments finis de Cast3M (RESO pour des problèmes linéaires et PASAPAS pour les autres)
TOPOPERS pour permettre à l'utilisateur d'appeler une procédure personnelle
TOPOSENS pour le calcul de la fonction objectif \(\psi(\textbf{x})\) et du champ de sensibilité \(\dfrac{\partial\psi}{\partial x_e}\)
TOPORSTR pour appliquer les restrictions gémétriques
TOPOFILT pour appliquer le filtrage du champ de sensibilité (par convolution ou bien par interpolation avec les fonctions de forme)
TOPOLOGY pour mettre à jour la topologie (selon le critère d'optimialité)
TOPOSAUV pour sauvegarder les résultats
Tracé (éventuel) de la topologie de l'itération courante
Test de convergence (change < critère ou nbr max it atteint)
Fin boucle