Guide d utilisation du logiciel VISFIELD Yann FRAIGNEAU LIMSI-CNRS, Bâtiment 508, BP 133 F-91403 Orsay cedex, France 11 décembre 2012 1 Description générale de VISFIELD VISFIELD est un programme écrit en fortran 90 pour la conversion de fichiers dans un format reconnu par le logiciel graphique que l on souhaite utiliser. Deux logiciels graphiques sont considérés : TECPLOT et PARAVIEW. Les fichiers qu on souhaite convertir sont issus de codes CFD développés au LIMSI : OLORIN, CHORUS et SUNFLUIDH. Ils sont écrits dans un format binaire, en accès direct, de type big endian (par défaut). Ces fichiers contiennent les champs 2D/3D des grandeurs physiques que l on souhaite visualiser. Les formats de conversions considérés sont, pour TECPLOT, un format binaire spécifique (extension de fichier.plt) et pour PARAVIEW, les formats VTK (extension.vtk) et XML (extension.vtr ou.vts). Dans ce document, aucune information sur la description des formats n est fournie, mais une large documentation peut être trouvée sur le net. L exécution du programme se fait fichier par fichier. Afin de faciliter la conversion d un grand nombre de fichiers, on utilise un script shell,écrit en bash (visfield.bsh), dont la fonction est de gérer la conversion d un ensemble de fichiers binaires sélectionné par l utilisateur avec le programme VISFIELD. 2 La compilation Deux fichiers "makefile" sont à disposition, "makefile_r4" et "makefile_r8", pour compiler les fichiers sources du programme et créer deux fichiers exécutables distincts : "visfield_r4.x" et "visfield_r8.x". Ces deux exécutables sont utilisés suivant que les fichiers binaires à convertir contiennent des champs de valeurs de type réel simple ou double précision, respectivement. Chaque fichier makefile contient une série de variables : CF : elle définit la commande du compilateur fortran que l on souhaite utiliser. FFLAGS : elle contient une série d option de compilation propre au fortran (options d optimisation, de contrôle, de sécurité), l option de lecture (écriture) des fichier binaires en big endian par défaut et l option activant la compilation conditionnelle définie par les étiquettes déclarées dans la variable "OPT". 1
OPT : elle contient le nom des étiquettes de compilation conditionnelles pour sélectionner des blocs d instructions spécifiques dans le programme VISFIELD. Ces noms sont précédés de l option "-D". TECPLOT : Active l accès à la bibliothèque "tecio.a" du logiciel TECPLOT pour convertir les données binaires issues du fortran en format binaire TECPLOT (Si on souhaite désactiver cette option, il suffit de changer le nom de l étiquette, par exemple : NOTECPLOT). SIMPLE_PREC : Active la lecture des fichiers binaires en réel simple précision (NO- SIMPLE_PREC dans le cas ou les fichiers binaires sont en réel double précision). LIB : elle définit le chemin d acès aux bibliothèques utilisées par le programme (par exemple l accès à "tecio.a"). IMPORTANT : La compilation avec l option "-DTECPLOT" n exclut pas la possibilité de créer des fichiers pour PARAVIEW. Cette option a pour but d activer l accès à la bibliothèque spécifique "tecio.a" lors de la compilation uniquement si TECPLOT, qui est un logiciel payant, est installé. Si ce n est pas le cas, il faudra explicitement désactiver cet accès pendant la compilation (en remplaçant -DTECPLOT par -DNOTECPLOT, par exemple). Une fois la compilation effectuée, il est conseillé de ranger les deux exécutables "visfield_r4.x" et "visfield_r8.x" dans un répertoire dédié de manière à ce que les exécutables soient automatiquement reconnus depuis n importe quel répertoire défini sur la machine ou l on souhaite exécuter VISFIELD. 3 Le fichier d entrée : visfield.dat Ce fichier contient l ensemble des données pour décrire le type de fichier que l on souhaite lire, sa taille et sous quel format on désire les convertir en fonction du logiciel graphique que l on souhaite utiliser. Bien que les fichiers à convertir soient tous écrits en binaire, ils peuvent être de nature différente et avoir un ordonnancement qui est propre à chaque code de simulation utilisé. De ce fait, certaines lignes du fichier de données "visfield.dat" sont consacrées à la gestion de ces spécificités et peuvent parfois ne pas être considérés, en fonction de la nature et de l origine du fichier à convertir. 1. Code ayant généré le fichier (une valeur entière I) : Définit le code de simulation ayant engendré le fichier Si I = 0 : code OLORIN. Si I = 1 : code OLORIN, ancienne version. Si I = 2 : code SUNFLUIDH Si I = 0 : code CHORUS 2. Dimension du problème (une valeur entière I) : définit la dimension spatiale de la simulation effectuée. La valeur est 2 ou 3 suivant que le problème est 2D ou 3D. 3. Type de champ contenu dans le fichier (une valeur entière I) : définit la nature des champs contenus dans les fichiers à convertir. Si I = 0 : champs instantanées Si I = 1 : champs statistiques Si I = 2 : Type spécial de fichiers générés par le code CHORUS. Champs instantanés 2D issus de plans de coupe définis dans le cadre d une simulation 3D. 2
Si I = 3 : Type spécial de fichiers générés par le code OLORIN. Champs instantanés dont la troisième direction est associée à une décomposition spectrale de type Fourier. Si I = 4 : Type spécial de fichiers générés par le code OLORIN. Champs statistiques dont la troisième direction est associée à une décomposition spectrale de type Fourier. 4. Nombre de points suivant I (une valeur entière) : Tailles des tableaux contenant les champs suivant la première dimension d indice i. 5. Nombre de points suivant J (une valeur entière) : Tailles des tableaux contenant les champs suivant la seconde dimension d indice j. 6. Nombre de points suivant K (une valeur entière) : Tailles des tableaux contenant les champs suivant la troisième dimension d indice k (la valeur est 1 en 2D). 7. Indice suivant I marquant le début du sous-domaine (une valeur entière) : Indice marquant le début du sous-domaine que l on souhaite visualiser dans la première direction. Cette donnée et les cinq suivantes permettent de définir la partie du domaine que l on souhaite visualiser, où d extraire les mailles fictives du jeu de données,... ). 8. Indice suivant I marquant la fin du sous-domaine (une valeur entière) : Indice marquant la fin du sous-domaine que l on souhaite visualiser dans la première direction. 9. Indice suivant J marquant le début du sous-domaine (une valeur entière) : Indice marquant le début du sous-domaine que l on souhaite visualiser dans la deuxième direction. 10. Indice suivant J marquant la fin du sous-domaine (une valeur entière) : Indice marquant la fin du sous-domaine que l on souhaite visualiser dans la deuxième direction. 11. Indice suivant K marquant le début du sous-domaine (une valeur entière) : Indice marquant le début du sous-domaine que l on souhaite visualiser dans la troisième direction. 12. Indice suivant K marquant la fin du sous-domaine (une valeur entière) : Indice marquant la fin du sous-domaine que l on souhaite visualiser dans la troisième direction. 13. Configuration séquentielle (0) ou vectorielle (1) (une valeur entière) : donnée obsolète, placer la valeur à 0. 14. Création du champ rotationnel (une valeur entière 0 ou 1) : Si la valeur vaut 1, il y a création du champ de vorticité calculé à partir des données du fichier (si la géométrie est cartésienne uniquement). 15. Création du critère Q ou de l hélicité ou les deux (une valeur entière I) : Si la valeur est non nulle et si la géométrie est cartésienne uniquement. Si I = 0 : Pas de création de ces champs optionnels Si I = 1 : Création du champ du second invariant de vitesse (critère Q) Si I = 2 : Création du champ d hélicité. Si I = 3 : Création des champs Q et hélicité. 16. Visualisation TECPLOT (0) ou VTK (1) (une valeur entière I) : Suivant la valeur 0 ou 1 les fichiers sont convertis en format pour TECPLOT ou PARAVIEW (format VTK). 17. Rectilinear (0) Structured (1) grid (une valeur entière I) : Cette option ne concerne que les fichiers convertis au format VTK pour PARAVIEW. Si les coordonnées X 1, X 2 et X 3 ne dépendent respectivement que des indices de maille i, j et k, alors on choisit l option 0. Si chaque coordonnée dépend des trois indices, on choisit l option 1 (comme c est le cas en géométrie cylindrique, par exemple). 3
18. Format du fichier de maillage pour le code CHORUS (une valeur entière I) : si I = 0 la nature du fichier contenant le maillage de la simulation réalisée avec le code CHORUS est rectilinéaire, si I = 1, il est structuré. ATTENTION, cette donnée concerne le mode de lecture du fichier de maillage de CHORUS, pas le format de conversion au format VTK. 19. Nouvelle version des fichiers instantanés pour OLORIN et CHORUS (une valeur entière I=0 ou I = 1) : Si I = 1 le nouvel ordonnancement des fichiers contenant les champs instantanés est considéré. 20. iflagsgs_lam (LES pour le code CHORUS) (Une valeur entière) : Cette donnée ne concerne que les fichiers générés par le code CHORUS, dans le cadre d une simulation de type LES impliquant la conductivité de sous-maille. 21. Flag directionnel pour CHORUS en cas de réduction d une dimension 3D 2D (Une valeur entière) : concerne les fichiers du code CHORUS ayant subit une réduction de dimension, suite à une opération de moyenne sur une direction particulière de l espace indiquée par la valeur I (suivant i, j ou k si I = 1, 2, 3). 22. Lignes de données pour visualiser la composante fluctuante des champs instantanés par rapport à leurs champs moyens (Une valeur entière I, une chaine de caractère NAME, une valeur entière N) : Ce jeu de données fonctionne de pair avec la sélection des champs instantanés (cf. troisième ligne du fichier de données). Il permet de visualiser uniquement la partie fluctuante des champs instantanés des composantes de vitesse, de température et de pression (suivant les grandeurs présentes dans les fichiers des champs instantanées). Si I = 1 : l extraction de la partie fluctuante des champs est activée. Ces champs fluctuants sont calculés à partir des champs instantanés et des champs moyens contenus dans leurs fichiers respectifs. NAME : chaine de 20 caractères qui désigne le nom du fichier contenant les champs moyens par rapport auxquels seront calculés les champs fluctuants. N : désigne les N premiers champs statistiques qui seront considérés pour extraire la partie fluctuante des champs instantanés. IMPORTANT : Il convient de bien faire attention à ce que les N premiers champs moyens présents dans le fichier déclaré ci-dessus soient en adéquation avec les N premiers champs instantanés contenus dans leurs fichiers respectifs. Il est à la charge de l utilisateur d assurer cette adéquation. 23. Nombre de champs contenus dans les fichiers de NORECO et WEISMANCO : définit le nombre de champs dans les fichiers générés par d autres codes de simulation. 4 Procédure d utilisation Comme il l a été énoncé précédemment, le programme VISFIELD convertit un fichier binaire (nommé "data.d") en un fichier lisible par TECPLOT ("data.plt") ou par PARAVIEW ou tout autre logiciel capable de lire le format VTK ("data.vtk"). Toutefois, si beaucoup de fichiers doivent être traités, il est préférable d automatiser la procédure de conversion que de l appliquer fichier par fichier. Cette automatisation est gérée par le script "visfield.bsh". 4
Il boucle sur une partie ou sur l ensemble des fichiers binaires présents dans le répertoire de travail. Pour chaque fichier, il copie le fichier original sous le nom générique "data.d" reconnu par le programme fortran VISFIELD. Il lance l exécution de VISFIELD (par l intermédiaire des exécutables "visfield_r4.x" ou "visfield_r8.x", suivant que les données contenues dans les fichiers binaires sont de type réel simple ou double précision). Le fichier résultat se nomme alors "data.plt" ou "data.vtk" suivant la nature de la conversion (au format TECPLOT ou VTK). Il substitue le nom générique du fichier "data" par le nom d origine du fichier converti. Par exemple, si le nom du fichier binaire à convertir est "res_00000_0001234.d", il sera "res_00000_0001234.plt" ou "res_00000_0001234.vtk", une fois converti (l extension dépend du type de conversion). Dans le cadre d une conversion au format VTK, une option supplémentaire est proposée si l on souhaite réaliser des animations avec le logiciel PARAVIEW. Cette option consiste à lister les fichiers à animer dans un fichier nommé "anim_paraview.pvd", interprétable par PARAVIEW. Une conversion de format supplémentaire est alors effectuée : elle consiste à convertir les fichiers VTK (".vtk") en fichiers XML qui présentent l avantage d être moins volumineux (".vtr" ou ".vts" dans le cas qui nous intéresse). Ces extensions correspondent à l ordonnancement des données contenues dans les fichiers, à savoir une structure rectilinéaire ou structurée. Pour plus d information sur les formats des fichiers PARAVIEW, de la documentation en ligne est disponible. Cette conversion est réalisée en utilisant un utilitaire écrit en langage python "vtk2xml.py". Si cet utilitaire n est pas disponible alors il faut le télécharger. Si la démarche vous semble trop compliquée, il est malgré tout possible de générer des animations à partir des fichiers en format VTK avec les dernières versions de PARAVIEW. En fait, cette option peut être utile lorsque l on souhaite réaliser des animations temporelles de champs instantanés segmentés dans plusieurs fichiers associés à différents sous-domaines du domaine de calcul. Avec TECPLOT, l animation peut être activée directement au cours de l utilisation du logiciel. Avant toute chose, il convient de configurer le fichier de données "visfield.dat".puis, il suffit de lancer l exécution du script dans le répertoire où sont contenus les fichiers à convertir. Au lancement, le script soumet à l utilisateur une série de questions : Donner le nom du code : OLORIN (1) CHORUS (2) SUNFLUIDH (3) Conversion de format (0), créer une animation sous PARAVIEW à partir de fichier VTK existants (conversion XML + listing dans paraview_anim.pvd) (1) Dans le cas de conversion de fichier au format VTK, il est possible d effectuer une nouvelle conversion des fichiers au format XML et de créer un fichier contenant la liste des fichiers convertis en XML et utilisable avec PARAVIEW dans le cadre d une animation temporelle (anim_paraview.pvd). Si on désire utiliser cette procédure et que les fichiers VTK existent déjà, on déclare la valeur à 1. Dans les autres cas de figure, on déclare la valeur 0 pour passer à la séquence de conversion des fichiers au format VTK ou TEC- PLOT. Itération du premier fichier. 5
Les noms de fichiers à convertir sont composés d un nombre à sept chiffres définissant le numéro de l itération temporelle pour laquelle les fichiers ont été créés. La valeur à saisir correspond à ce numéro qui définit le premier fichier pour lequel la conversion de format a lieu. Les fichiers de plus petite valeur ne sont pas pris en compte. fréquence de lecture des fichiers. La valeur définit le saut effectué sur les fichiers à convertir. Si la valeur vaut 1, tous les fichiers seront convertis, si la valeur vaut 2, un fichier sur deux sera pris en compte, etc... Donner le nom générique des fichiers à traiter (4 premiers caractères). Les fichiers d une même famille (champs instantanés, statistiques provenant d un code ou d un autre) sont tous définis par un nom générique, leur différence étant définie par leur numérotation. Pour sélectionner la famille de fichiers à convertir, il suffit de taper les quatre premiers caractères de leur nom (par exemple res_ ). Le fichier est en I4R4 (0), I4R8 (1). Le choix repose sur la précision avec laquelle sont définies les valeurs entières et réelles contenues dans les fichiers. Il sélectionne le type d exécutable qui va être utilisé par le script shell pour la conversion de chacun des fichiers : "visfield_r4.x" ou "visfield_r8.x". Format TECPLOT (0), VTK (1) ou VTR (2). Sélection du format de conversion souhaité. Ce choix doit être cohérent avec celui déclaré dans le fichier de données "visfield.dat". Le choix de l option (2) entrainera une conversion des fichiers binaires en format VTK avant de les convertir à leur tour en format XML avec l utilitaire "vtk2xml.py". Si l option (2) est sélectionnée, une option supplémentaire apparaît proposant la création du fichier "anim_paraview.pvd" qui contiendra la liste des fichiers XML qui pourront être animés avec PARAVIEW. La conversion des fichiers s effectue automatiquement suivant les choix définis dans le fichier de données "visfield.dat" et la réponse aux questions interactives posées lors du lancement du script "visfield.bsh". 6