Table of Contents
Commit 2015-05-23
Réécriture de la procédure de remaillage
Introduction
Suite à l'introduction du fichier de sauvegarde des maillages gen4, la procédure de remaillage peut être simplifiée davantage. Auparavant, le remaillage nécessitait d'avoir trois objets définis comme variables globales (oldMetafor
, newMetafor
et metaforTransferOperator
), et les fonctionnalités requises pour effectuer le transfert étaient éparpillées dans de nombreux fichiers, ce qui rendait la procédure assez complexe. En outre, la construction du metafor de l'étape n nécessitait de reconstruire l'ensemble des n-1 étapes, ce qui devient vite long.
L'idée de cette réécriture est de conduire à une procédure plus simple, lisible, et qui dont la reconstruction de l'étape n peut se faire indépendamment des étapes précédentes.
Dans l'état actuel, le remaillage se décompose en 4 étapes :
- Recharger le cas-test à remailler
- Remailler en utilisant Gen4Remesher3 et créer un nouveau metafor
- Imposer le déplacement des outils
- Effectuer le transfert des champs
Au terme de ces 4 étapes, le nouveau répertoire contient un fichier de maillage .gen4 et un fac. Il suffit donc que ces informations soient relues par le cas-test de base pour pouvoir redémarrer la simulation.
Recharger la configuration à remailler
On commence par relire l'ancien metafor et charger le fac à partir duquel on souhaite remailler
Construire un nouveau metafor
C'est maintenant qu'on change de répertoire afin d'éviter de mélanger les facs et fichiers de maillage.
On définit à présent un nouveau metafor. Auparavant la géométrie du nouveau metafor était copiée à partir du précédent, mais alors une relecture du fac nécessitait de reconstruire toute la chaîne des metafors, ce qui est vite fastidieux.
Ici, la géométrie du nouveau metafor est créé sur base du cas-test, et c'est uniquement la partie maillage qui est créée à partir du metafor chargé précédemment. Comme ce maillage est ensuite enregistré, la relecture ne nécessite plus de faire appel au metafor précédent, les données du cas-test et le fichier de maillage suffisent.
Pour ce faire, il faut que le cas-test soit puisse distinguer un cas de remaillage, auquel cas il fera appel à Gen4Remesher3 (dans toolbox.remeshers.py) au lieu de faire appel à son mailleur initial.
Imposer le déplacement des points du pointSet
Comme le nouveau metafor est défini via le cas-test de base, les points du pointSet possèdent un déplacement nul. Il faut donc transférer le déplacement de ces points afin que les outils reprennent leur bonne position.
Effectuer le transfert des champs
Il reste alors à utiliser les méthodes de transfert, ce qui va créer un nouveau fac contenant les champs extrapolés sur le nouveau maillage.
Redémarrage
Sur base du fac écrit lors du transfert, du maillage sauvegardé lors du remaillage et des données du cas-test de base, on peut alors redémarrer la simulation.
Exemples
Les cas-tests concernant forge et dCupExtrusion ont été réécrits avec cette nouvelle méthode. Ils se trouvent pour l'instant dans apps.remeshing2
.
Fichiers ajoutés/supprimés
A : toolbox.remeshers R :
Tests ajoutés/supprimés
A : apps.remeshing2.forge A : apps.remeshing2.forge_1 A : apps.remeshing2.forge_2 A : apps.remeshing2.forge_3 A : apps.remeshing2.forge_4 A : apps.remeshing2.forge_5 A : apps.remeshing2.dCupExtrusion A : apps.remeshing2.dCupExtrusion_1 A : apps.remeshing2.dCupExtrusion_2 A : apps.remeshing2.dCupExtrusion_3 R :
— Pierre Joris 2015/03/13