Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2015:05_28

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.

Tant que ce remaillage est en chantier, les deux façons de faire sont conservées. Il a donc fallu dupliquer quelques fonctions/fichiers afin que tant les anciens que les nouveaux cas-tests puissent tourner.

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 :

  1. Recharger le cas-test à remailler
  2. Remailler en utilisant Gen4Remesher3 et créer un nouveau metafor
  3. Imposer le déplacement des outils
  4. 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.

La réécriture du remailleur a conduit à certaines modifications dans la façon dont les maillages sont sauvegardés. Il faudra donc régénérer tous les .gen4 pour coller avec ce nouveau format.

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

commit/2015/05_28.txt · Last modified: 2016/03/30 15:23 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki