Table of Contents

Commit 2016-01-29

Amélioration de la convivialité de la procédure de remaillage

Ce commit a pour but de régler quelques petits défauts de l'algo de remaillage, pour que son utilisation soit vraiment plaisante et agréable. Le but est qu'un utilisateur ne voit pas de différences entre une simulation avec et sans remaillage, au niveau de la vizu, des courbes…

J'invite donc ceux d'entre vous qui lancent parfois des cas-tests en remaillage à me le faire savoir s'ils sont toujours dérangés par quelque chose

D'ailleurs, maintenant que cette procédure a été réécrite, étendue, automatisée et optimisée, et que je commence à en avoir marre de toujours écrire “la procédure automatique de remaillage”, c'est le bon moment de lui donner un petit nom. Je propose : “a Finally Efficient and Nicely Redesigned Implentation of Remeshing”, donc FENRIR

Fichiers Log

Jusqu'à présent, le fichier log (nommé dans le workspace resfile.txt, qui enregistre le flux d'information que metafor sort lors d'un calcul), était ouvert au début dans la fonction integration() du schéma d'intégration. Ce n'était pas idéal, car tout ce qui se passe avant d'entrer dans cette fonction ou après en être sorti n'était donc pas enregistré.

Dans le cas de calculs classiques (sans remaillage), la perte d'info existe mais est en générale assez minime. Par contre, avec Fenrir, c'est assez gênant car toutes les opérations de reconstruction de domaine, remaillage, transfert de données et rééquilibrage, qui se passent entre deux intégrations temporelles, sont donc perdues. Pareillement, les différents timers, affichés après la dernière intégration, sont aussi perdus.

Pour pouvoir enregistrer ces informations, ce fichier (resFile.txt) sera dorénavant ouvert “un cran plus haut”, c'est-à-dire dans la fonction meta de toolbox.utilities. Pour un calcul classique, cela permet déjà de récupérer une partie du texte qui était précédemment perdue lors de l'initialisation.

Un autre fichier sera aussi ouvert lorsqu'on fait appel à la fonction restart de toolbox.utilities. Ce fichier est nommé restartResFile.txt pour le différencier du précédent, ce qui permet de conserver ces deux fichiers lors d'un restart.

Enfin, un troisième fichier, remeshingResFile.txt sera ouvert lorsqu'on utilise Fenrir. Il n'est donc plus nécessaire de devoir copier-coller à la main la sortie de Metafor pour conserver des données sur le remaillage.

Du coup, tous les openLogFile() ont été supprimés des différents schémas d'intégration.

Vizu (1)

Comme chaque remaillage nécessite de créer un nouveau Metafor, on avait initialement, pour chaque opération de remaillage, de nouvelles fenêtres qui étaient créées. Cela faisait vite beaucoup de fenêtres, et donc lors d'un commit précédent j'avais fait en sorte que la même fenêtre soit utilisée toute la simulation.

Cependant, à chaque remaillage, la caméra se recalibrait automatiquement, à cause d'un resetCamera présent dans VizWinWidget::addSlot, c'est-à-dire à chaque fois que l'on rajoute de nouveaux Drawables sur une figure (donc dans mon cas, à chaque remaillage). J'ai mis ce reset en option pour qu'il ne m'ennuie plus. Spéciale dédicace à notre spécialiste Vizu pour m'avoir guidé dans tous les machins VTK-Qt.

Vizu (2)

Ensuite, toujours à chaque remaillage, lorsque les fenêtres étaient rafraîchies, elle repassaient en premier plan du moniteur. C'est assez gênant d'avoir des fenêtres qui s'imposent quand on essaie de regarder quelque chose, donc j'ai enlevé ça. C'était en fait un vizWinGuiObserver→open() qui était réalisé au début de chaque intégration temporelle, dans Metafor::initialiseVizwinObservers(). Cet open est inutile vu que la fenêtre est déjà ouverte à ce moment là, mais n'était pas gênant pour du calcul classique.

Suppression des workspaces

Comme vous le savez, si on lance un test alors qu'il y a des fichiers dans le workspace correspondant, une petite fenêtre s'ouvre pour vérifier que l'on veut bien supprimer les résultats. J'ai adapté ça à Fenrir, pour supprimer d'un coup tous les sous dossiers STEP_XXX (et uniquement ceux-là, pas les autres), au lieu de devoir le faire un par un.

Fichiers ajoutés/supprimés

A : 
R : 

Tests ajoutés/supprimés

A : 
R : 

Pierre Joris 2016/01/29