calcul.tex [SRC] [CPP] [JOB] [SCAN]
DOC / fr



   1 | \chapter{Préparation et lancement d'un calcul}  \label{chap_calcul}
   2 | Dans ce chapitre, nous allons voir étape par étape comment préparer un calcul, le lancer et exploiter les résultats obtenus.
   3 | \section{Présentation d'un exemple de cas test}
   4 | Pour expliquer la procédure pour préparer et exécuter, nous allons nous appuyer sur un cas test : le cas d'un cylindre inhomogène et anisotherme. Le cylindre a une longueur $L = 1.2 \text{m}$  et un rayon $R = 0.3 \text{m}$. Ses parois sont noires et ont une température $T=800 \text{K}$ sauf la paroi située à $x=L$ qui est à 300K. La pression est égale à la pression atmosphérique. Les profils de température et de fractions molaires des espèces gazeuses H$_2$O et CO$_2$ sont donnés par :
   5 | \begin{equation}
   6 |     \begin{split}
   7 |             T(z,r) = 800 +1200(1-r/R)(z/L), \\
   8 |             X_{H_2O} (z,r) = 0.05 \left[ 1 -2(z/L - 0.5)^2 \right] (2 - r/R), \\
   9 |             X_{CO_2} (z,r) = 0.04 \left[ 1 -3(z/L - 0.5)^2 \right] (2.5 - r/R).
  10 |     \end{split}
  11 |     \label{eq_cyl_inh}
  12 | \end{equation}
  13 | 
  14 | Nous considérerons que le milieu ne contient pas de suie.
  15 | \section{Préparation du calcul}
  16 | 
  17 |     \subsection{Création du répertoire de travail}
  18 | On commence par créer un répertoire pour le calcul dans lequel on se place, on exécute ensuite la routine \texttt{createdomcase} qui permet de préparer le répertoire de travail. Cette routine commence par créer deux liens symboliques vers les répertoires contenant les données spectrales de mélange (SPECTRAL) et les données des modèles de quadrature (QUADRA). Elle crée ensuite deux répertoires INFILES et OUTFILES où seront écrits respectivement :
  19 | \begin{itemize}
  20 | 	\item les fichiers d'entrée (avec une extension .IN) du calcul créés pendant le pré-traitement,
  21 | 	\item et les fichiers de sortie (avec une extension .OUT), résultats de l'exécution du calcul.
  22 | \end{itemize}
  23 | Ces deux types de fichier sont des fichiers binaires, leur structure est détaillée sur les pages Web suivantes :
  24 | \begin{itemize}
  25 |     \item \urlcolor{http://www.cerfacs.fr/prissma/formats.html} pour les fichiers d'entrée,
  26 |     \item \urlcolor{http://www.cerfacs.fr/prissma/outformats.html} pour les fichiers de sortie.
  27 | \end{itemize}
  28 | 
  29 | Et pour terminer, la routine \texttt{createdomcase} vérifie la présence du fichier de configuration du calcul \texttt{prissma.choices}. Si celui-ci n'est pas présent, un modèle de ce fichier est copié dans le répertoire, il faut alors adapter son contenu à la définition de notre calcul. Ce fichier est au format texte et se présente sous la forme suivante :
  30 | \begin{verbatim}
  31 | './INFILES'     ! Path to *.in files
  32 | './SPECTRAL'    ! Path to spectral data
  33 | './OUTFILES'    ! Output path
  34 | SOLINIT         ! Data Status [ SOLINIT | RESTART ]
  35 | DMFS            ! Spatial discretization [ DMFS | STEP | EXPON ]
  36 | SNB-CK          ! Medium type [ GRAY | WSGG | FSCK | SNB-CK ]
  37 | 5               ! Number of quadrature points
  38 | 1.e-6           ! Convergence criterion for reflection
  39 | NO              ! Homogeneous system [ NO | YES ]
  40 | \end{verbatim}
  41 | Le fichier permet de définir :
  42 | \begin{description}
  43 |     \item[lignes 1 à 3] le chemin vers trois des répertoires créés justement par la routine \texttt{createdomcase},
  44 | 
  45 |     \item[ligne 4] l'état des données, deux valeurs sont possibles SOLINIT si l'on initie un calcul et RESTART si l'on relance un calcul,
  46 | 
  47 |     \item[ligne 5] le modèle de discrétisation spatiale \\
  48 |     Trois modèles sont disponibles :
  49 |     \begin{itemize}
  50 |         \item le schéma diamant en flux moyen ou DMFS (Diamond Mean Flux Scheme),
  51 |         \item le schéma step (STEP),
  52 |         \item le schéma exponentiel (EXPON).
  53 |     \end{itemize}
  54 |     Une étude a montré que le modèle DMFS donnait de meilleurs résultats, il est donc conseillé de privilégier ce modèle pour effectuer ses calculs.
  55 | 
  56 |     \item[ligne 6] le modèle spectral,
  57 |     Quatre modèles spectraux sont utilisables :
  58 |     \begin{itemize}
  59 |         \item le modèle GRAY (GRAY)
  60 |         \item le modèle WSGG (WSGG)
  61 |         \item le modèle FS-SNBck (FSCK)
  62 | %        \item le modèle FS-SNBck tabulé (TAB)
  63 |         \item le modèle SNBck (SNB-CK)
  64 |         \end{itemize}
  65 | 
  66 |       \item[ligne 7] le nombre de points utilisés lors du calcul de
  67 |         quadrature,
  68 | 
  69 |       \item[ligne 8] la valeur du critère de convergence si on utilise
  70 |         des parois grises,
  71 | 
  72 |       \item[ligne 9] l'homogénéité ou non du milieu, ce critère permet
  73 |         de simplifier l'exécution du calcul au moment de l'affectation
  74 |         des valeurs des grandeurs physiques aux cellules si le milieu
  75 |       est homogène.
  76 |     \end{description}
  77 | 
  78 | \bigskip
  79 | Maintenant que le répertoire de travail est prêt, l'étape suivante
  80 | consiste à lire le maillage.
  81 | 
  82 | \subsection{Lecture du maillage}
  83 | Actuellement, \code est capable de lire deux types de maillage : le
  84 | format dit neutral du logiciel Gambit (le mailleur associé à Fluent)
  85 | et le format de maillage AVBP
  86 | \footnote{\urlcolor{http://pantar.cerfacs.fr/4-26334-The-AVBP-code.php}}. Le
  87 | code sait lire des maillages hybrides, mais les maillages non
  88 | coïncidents tels que des maillages hexaèdres/tétraèdres ne sont pas
  89 | supportés.
  90 | 
  91 | Pour lire les données du maillage, on utilise la routine
  92 | \texttt{predatas}. Le script commence par vérifier la présence du
  93 | fichier de configuration \texttt{predatas.choices} dans le répertoire
  94 | de travail. Au cas où il ne le serait pas, le script en crée un modèle
  95 | dont il faudra modifier le contenu et relancer \texttt{predatas}. Ce
  96 | fichier est au format texte et se présente sous la forme suivante :
  97 | \begin{verbatim}
  98 | './meshes/cyl_coarse.neu'  ! Mesh file name
  99 | './QUADRA'                 ! Quadrature definition directory
 100 | 2                          ! Mesh type (1=AVBP, 2=GAMBIT)
 101 | './INFILES/'               ! Output path
 102 | SNDOM                      ! Quadrature type [SNDOM|FVM|TNDOM|PERSO]
 103 | 4                          ! Quadrature order
 104 | 2                          ! Number of directions if PERSO quadrature
 105 | 1. 0. 0.                   ! 1st direction for PERSO quadrature
 106 | -1. 0. 0.                  ! 2nd direction ...
 107 | \end{verbatim}
 108 | Le fichier permet de définir :
 109 | \begin{description}
 110 | \item[ligne 1] le chemin vers le fichier de maillage ;\\
 111 | 
 112 | \item[ligne 2] le chemin vers le répertoire contenant les données
 113 |   sur les modèles de quadrature ;
 114 | 
 115 | \item[ligne 3] le type de maillage, on utilise 1 pour AVBP et 2
 116 |   pour Gambit ;
 117 | 
 118 | \item[ligne 4] le chemin vers le répertoire des fichiers d'entrée ;
 119 | 
 120 | \item[ligne 5] le modèle de quadrature (à compléter) ;
 121 | 
 122 | \item[ligne 6] l'ordre de la méthode SN pour fixer le nombre de
 123 |   directions, les valeurs possibles sont 2 pour S2, 4 pour S4, 6
 124 |   pour S6, 8 pour S8, 9 pour LC11, 12 pour S12 ;
 125 | 
 126 | \item[ligne 7 et suivantes] si l'on choisit l'option PERSO pour le
 127 |   modèle de quadrature à la ligne 5, on définit à cette ligne le
 128 |   nombre de directions et leur vecteur (x,y,z) aux lignes
 129 |   suivantes.
 130 | \end{description}
 131 | 
 132 | À partir des paramètres lus dans ce fichier, le maillage est lu et un
 133 | ensemble de fichiers d'entrée sont créés dans le répertoire
 134 | INFILE. Ces fichiers contiennent la géométrie du maillage, les
 135 | directions et leur chemin associé de parcours des cellules du
 136 | maillage. \newline
 137 | 
 138 | \bigskip L'étape suivante consistera à lire la solution initiale issue
 139 | d'un calcul de CFD.
 140 | 
 141 | \subsection{Lecture de la solution initiale}
 142 | Pour lire la solution initiale, il existe deux routines :
 143 | \texttt{solinit} et \texttt{solinit\_avbp}. La routine
 144 | \texttt{solinit} permet d'utiliser une solution analytique telle que
 145 | celle donnée dans la présentation du cas test
 146 | (Eq. \ref{eq_cyl_inh}). Tandis que la routine \texttt{solinit\_avbp}
 147 | sait lire les résultats d'un calcul effectué avec le code AVBP.
 148 | 
 149 | \subsubsection{avec \texttt{solinit}}
 150 | Lorsqu'on utilise \texttt{solinit}, deux fichiers sont nécessaires :
 151 | \texttt{solinit.choices} et \texttt{perso.inc}. Comme précédemment, si
 152 | l'un des fichiers (ou les deux) manque, un fichier type est créé. Son
 153 | contenu devra être adapté et la routine relancée.
 154 | 
 155 | Le fichier \texttt{solinit.choices} ne contient que le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES) :
 156 | \begin{verbatim}
 157 | './INFILES'         ! *.in directory
 158 | \end{verbatim}
 159 | 
 160 | Le fichier \texttt{perso.inc} permet de définir les solutions analytiques pour les différents champs nécessaires pour définir le milieu. Pour le cas test présenté au début de ce chapitre, le fichier prend la forme suivante :
 161 | \begin{verbatim}
 162 |       R_ref = 0.3
 163 |       L_ref = 1.2
 164 |       r = SQRT(z(i)*z(i)+y(i)*y(i))
 165 | 
 166 |       T_n(i)     = 800.+1200.*(1.-r/R_ref)*(x(i)/L_ref)
 167 | 
 168 |       P_n(i)     = 1.
 169 |       XH2O_n(i)  = 0.05*(1.-2. *(z(i)/L_ref-0.5)**2)*(2.-r/R_ref)
 170 |       XCO2_n(i)  = 0.04*(1.-3. *(z(i)/L_ref-0.5)**2)*(2.5-r/R_ref)
 171 |       XCO_n(i)   = 0.
 172 |       XO2_n(i)   = 0.2*(1.-XH2O_n(i)-XCO2_n(i)-XCO_n(i))
 173 |       XN2_n(i)   = 0.8*(1.-XH2O_n(i)-XCO2_n(i)-XCO_n(i))
 174 |       XSOOT_n(i) = 0.
 175 | 
 176 |       kscattering_n(i) = 0.
 177 |       kabsorption_n(i) = 0.1
 178 | \end{verbatim}
 179 | Les différents profils à renseigner sont donc :
 180 | \begin{itemize}
 181 |     \item la pression P\_n(i),
 182 |     \item la température T\_n(i),
 183 |     \item les concentrations des espèces XH2O\_n(i), XCO2\_n(i), XCO\_n(i), XO2\_n(i), XN2\_n(i),
 184 |     \item la concentration en suie XSOOT\_n(i).
 185 | \end{itemize}
 186 | 
 187 | Le contenu de ce fichier est utilisé au sein d'une boucle sur les nœuds du maillage et permet donc d'exprimer la valeur de ces différentes grandeurs au nœud. Pour accéder aux coordonnées du nœud, on utilise x(i), y(i) et z(i). Il est également possible d'utiliser les réels suivants pour déclarer des données du système étudié : r, d, x\_ref, y\_ref, z\_ref, R\_ref, L\_ref, T\_ref. Dans l'exemple, on utilise R\_ref et L\_ref pour définir respectivement le rayon et la longueur du cylindre, ainsi que r pour définir la position radiale du nœud. \newline
 188 | 
 189 | D'un point de vue technique, il est fortement conseillé d'écrire le contenu de ce fichier entre la 7ème et la 73ème colonne (incluse), pour des raisons de compatibilité avec certains compilateurs Fortran.
 190 | 
 191 | 
 192 |         \subsubsection{avec \texttt{solinit\_avbp}}
 193 | Pour utiliser \texttt{solinit\_avbp}, un seul fichier est nécessaire : \texttt{solinit\_avbp.choices}. Comme précédemment, si ce fichier n'est pas présent, la routine en crée une version dont il faut adapter le contenu, et il faut relancer \texttt{solinit\_avbp}. Le contenu du fichier est le suivant :
 194 | \begin{verbatim}
 195 | './asciifile.txt'      ! ascii solution file obtained with avbp2dom
 196 | './INFILES'            ! path to the input files *.in
 197 | 0.                     ! Soot consentration
 198 | \end{verbatim}
 199 | Le fichier permet de définir :
 200 | \begin{description}
 201 |     \item[ligne 1] le chemin vers un fichier texte qui contient les solutions d'un calcul AVBP sous une forme pré-définie
 202 | Ce fichier texte est obtenu à partir des solutions d'un calcul en utilisant la routine \texttt{avbp2dom}.
 203 |     \item[ligne 2] le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES)
 204 |     \item[ligne 3] la concentration en suie
 205 | \end{description}
 206 | 
 207 | À partir des paramètres lus dans ce(s) fichier(s), la routine crée de nouveaux fichiers d'entrée. \newline
 208 | 
 209 | \bigskip
 210 | L'étape suivante consistera à lire les conditions aux limites du domaine.
 211 | 
 212 |     \subsection{Lecture des conditions aux limites}
 213 | La lecture des conditions des solutions s'effectue en utilisant la routine \texttt{initbc}. Deux fichiers sont nécessaires : \texttt{initbc.choices} et \texttt{clperso.inc}. Comme précédemment, si l'un des fichiers (ou les deux) manque, un fichier type est créé. Son contenu devra être adapté et la routine relancée.
 214 | 
 215 | Le fichier \texttt{initbc.choices} ne contient que le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES) :
 216 | \begin{verbatim}
 217 | './INFILES'         ! *.in directory
 218 | \end{verbatim}
 219 | Le fichier \texttt{clperso.inc} permet de définir les conditions aux limites du domaine. Pour le cas test présenté au début de ce chapitre, le fichier prend la forme suivante :
 220 | \begin{verbatim}
 221 |       IF (patch.eq.1) THEN
 222 |         T = 800.
 223 |         emissivity = 1.
 224 |       ELSEIF (patch.eq.2) THEN
 225 |         T = 300.
 226 |         emissivity = 1.
 227 |       ELSEIF (patch.eq.3) THEN
 228 |         T = 800.
 229 |         emissivity = 1.
 230 |       ENDIF
 231 | \end{verbatim}
 232 | 
 233 | Dans ce fichier, on définit la température et l'émissivité de la paroi pour chaque section des limites du domaine. Chaque section se voit attribuer un numéro qui correspond à sa position dans le fichier de définition du maillage et on peut se référer à la section 1 via le test :
 234 | \begin{verbatim}
 235 |       IF (patch.eq.1) THEN
 236 |         T = 300.
 237 |         emissivity = 1.
 238 |       ENDIF
 239 | \end{verbatim}
 240 | 
 241 | On peut ajouter une nouvelle section, on ajoute une condition :
 242 | \begin{verbatim}
 243 |       ELSEIF (patch.eq.patch_number) THEN
 244 |         T = profil de température en fonction de x, y er z
 245 |         emissivity = emissivity
 246 | \end{verbatim}
 247 | 
 248 | Le code se sert de ces profils (ou valeurs fixes) pour attribuer la température et l'émissivité de chacune des faces appartenant aux parois. Pour définir un profil, il est possible de définir et utiliser les variables : L\_ref, R\_ref, x\_ref, y\_ref, z\_ref, et également d'utiliser x, y et z qui représentent les coordonnées du centre de la face considérée. \newline
 249 | 
 250 | D'un point de vue technique, il est fortement conseillé d'écrire le contenu de ce fichier entre la 7ème et la 73ème colonne (incluse), pour des raisons de compatibilité avec certains compilateurs Fortran. \newline
 251 | 
 252 | \bigskip
 253 | Le pré-traitement est maintenant terminé, tous les fichiers d'entrée nécessaires au calcul ont maintenant étaient créés dans le répertoire INFILE. Le calcul est maintenant prêt à être lancé.
 254 | 
 255 | % \subsection{Tabulation du modèle FS-SNBcK}
 256 | 
 257 | % Une version tabulée du modèle FS-SNBck a été développée afin de
 258 | % réduire significativement le temps de calcul. Avec ce modèle, les
 259 | % coefficients d'absorption sont pré-calculés dans une phase de
 260 | % pré-processing à l'aide de l'outil \texttt{tabfsck}. L'appel de cet
 261 | % outil se fait depuis le répertoire de calcul. Le script copie le
 262 | % fichier \texttt{tabfsck.choices}~:
 263 | % \begin{verbatim}
 264 | % './SPECTRAL'      ! pathspec
 265 | % 'test.dat'        ! outfile [table.dat]
 266 | % 1.d0              ! Pressure(atm)
 267 | % 5                 ! nquad
 268 | % 10                ! DT
 269 | % 0.05              ! DYH
 270 | % 0.05              ! DYC
 271 | % 0.1               ! DYCO
 272 | % 0.7               ! max YH2O
 273 | % 0.7               ! max YCO2
 274 | % 0.5               ! max YCO
 275 | % \end{verbatim}
 276 | 
 277 | % Le fichier permet de définir :
 278 | % \begin{description}
 279 | % \item[ligne 1] le chemin vers les fichiers de données spectrales;\\
 280 | 
 281 | % \item[ligne 2] le nom de la table générée.  Il est possible de générer
 282 | %   plusieurs tables mais le fichier lu par \code doit porter le nom
 283 | %   table.dat;\\
 284 | 
 285 | % \item[ligne 3] La tabulation est faite à pression constante en faisant
 286 | %   l'hypothèse d'absence de chocs dans la configuration;\\
 287 | 
 288 | % \item[ligne 4] Nombre de points de quadrature utilisés dans le modèle
 289 | %   FS-SNBcK, ce paramètre doit être déterminé en vérifiant la
 290 | %   convergence de la solution FS-SNBcK vers la solution SNBcK;
 291 | 
 292 | % \item[ligne 5--8] Pas de tabulation pour la température, fraction
 293 | %   massique de \HdeuxO, \COdeux et \CO. Ces paramètres doivent être
 294 | %   déterminés pour assurer la convergence de la solution tabulée vers
 295 | %   la solution FS-SNBcK.
 296 | 
 297 | % \item[ligne 8--11] Fractions massiques maximales de \HdeuxO, \COdeux
 298 | %   et \CO.  Ces paramètres permettent d'optimiser la taille de la table
 299 | %   en fonction de la configuration étudiée.
 300 | % \end{description}
 301 | 
 302 |     \subsection{Conversions des fichiers d'entrée}
 303 | Dans certaines occasions, il peut être nécessaire de transférer les fichiers d'entrée et de sortie. Par exemple, on peut effectuer le pré-traitement, le calcul et le post-traitement sur des machines différentes. Or, les fichiers d'entrée et de sortie sont des fichiers binaires et dépendent donc de l'endianess des machines concernées. Pour passer d'une machine à l'autre il peut être alors nécessaire de convertir les fichiers. Pour cela, il existe deux routines : \texttt{inconvert} et \texttt{outconvert} qui permettent de convertir les fichiers d'entrée et les fichiers de sortie. Dans les 2 cas, on convertit les binaires sur la première machine en une archive au format tar gz contenant tous les fichiers d'entrée au format ascii. Ensuite, on transfère l'archive sur la seconde machine, et on effectue l'opération inverse, on convertit les fichiers ascii en binaire.
 304 | 
 305 | Pour les utiliser, il faut fournir un fichier de configuration, selon la routine : \texttt{inconvert.choices} ou \texttt{outconvert.choices}.
 306 | 
 307 |         \subsubsection{Le fichier \texttt{inconvert.choices}}
 308 | IL se présente sous la forme suivante :
 309 | \begin{verbatim}
 310 | './INFILES'       ! Prissma *.in infiles directory
 311 | './infiles_txt'   ! Compressed file with txt data
 312 | 1                 ! Convertion type [ 1:bin2ascii | 2:ascii2bin ]
 313 | \end{verbatim}
 314 | \begin{description}
 315 |     \item[ligne 1] le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES) ;
 316 |     \item[ligne 2] le chemin vers l'archive sans l'extension tgz ;
 317 |     \item[ligne 3] le sens de la conversion, on choisit 1 pour convertir de binaire vers ascii et 2 pour convertir de ascii vers binaire.
 318 | \end{description}
 319 | 
 320 |         \subsubsection{Le fichier \texttt{outconvert.choices}}
 321 | Il se présente sous la forme suivante :
 322 | \begin{verbatim}
 323 | './INFILES'       ! Prissma *.in infiles directory
 324 | './OUTFILES'      ! Prissma *.out outfiles directory
 325 | './outfiles_txt'  ! Comrpessed file with txt data
 326 | 1                 ! Convertion type [ 1:bin2ascii | 2:ascii2bin ]
 327 | \end{verbatim}
 328 | \begin{description}
 329 |     \item[ligne 1] le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES) ;
 330 |     \item[ligne 2] le chemin vers le répertoire des fichiers de sortie (dans notre cas OUTFILES) ;
 331 |     \item[ligne 3] le chemin vers l'archive sans l'extension tgz ;
 332 |     \item[ligne 4] le sens de la conversion, on choisit 1 pour convertir de binaire vers ascii et 2 pour convertir de ascii vers binaire.
 333 | \end{description}
 334 | 
 335 | \section{Lancement du calcul}
 336 | Le lancement du calcul dépend de la version du code que vous souhaitez utiliser.
 337 | \paragraph{Calcul avec le code séquentiel}
 338 | Il suffit d'utiliser le script \texttt{run\_seq} et le calcul s'effectue. Le script vérifie la présence du fichier \texttt{prissma.choices} et en cas d'absence, il crée une version dont il faudra adapter le contenu, puis il faudra à nouveau relancer \texttt{run\_seq}.
 339 | 
 340 | \paragraph{Calcul avec le code parallèle}
 341 | Pour le code parallèle, l'équivalent du script \texttt{run\_seq} a été écrit : \texttt{run\_para} mais il n'est pas toutefois à l'heure actuelle pas intégré à la version actuelle. Ce script admet un argument facultatif qui permet de définir le nombre de processus que l'on souhaite utiliser pour effectuer le calcul. Si l'argument n'est pas défini, le script considère que le calcul doit être effectué avec un seul processus. Par exemple si l'on veut effectuer un calcul avec quatre processus, on tape la commande : \cmd{run\_para 4}. \newline
 342 | 
 343 | Toutefois, si ce script ne vous a pas été fourni, il faut alors taper la commande suivante : \newline
 344 | \cmd{mpiexec -n 4 \$DOMHOME/HOSTS/\$DOM\_HOSTTYPE/mpiprissma\_\$DOM\_\ldots \\VERSION.e\_\$DOM\_HOSTTYPE}\\
 345 | où 4 signifie que l'on veut utiliser quatre processus lors du calcul.
 346 | 
 347 | \section{Traitement des résultats}
 348 | Pour faciliter l'exploitation des résultats du code de calcul, deux routines ont été développées : \texttt{dom2ascii} et \texttt{visu}. Nous allons voir dans les sections suivantes
 349 | 
 350 | 	\subsection{Création de fichiers ascii sur un rayon}
 351 | La routine \texttt{dom2ascii} permet d'obtenir les valeurs des grandeurs de sortie selon un rayon. La routine crée un fichier pour chacune des grandeurs de sortie. Il est nécessaire de fournir le fichier \texttt{dom2ascii.choices} qui se présente sous la forme suivante :
 352 | \begin{verbatim}
 353 | './INFILES/'      ! *.in files directory
 354 | './OUTFILES/'     ! *.out files directory
 355 | 0. 0. 0.          ! coordinates of the first point
 356 | 3. 0. 0.          ! coordinates of the last point
 357 | 81                ! Number of points to interpolate
 358 | 2                 ! Unit for results [ 1: W | 2: kW ]
 359 | 0                 ! Read wall properties [ 0: no | 1: yes ]
 360 | \end{verbatim}
 361 | Le fichier permet de définir :
 362 | \begin{description}
 363 |     \item[ligne 1] le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES) ;
 364 |     \item[ligne 2] le chemin vers le répertoire des fichiers de sortie (dans notre cas OUTFILES) ;
 365 |     \item[lignes 3-4] les coordonnées des extrémités du rayon sur lequel on veut obtenir les grandeurs ;
 366 |     \item[ligne 5] le nombre de points que l'on souhaite obtenir le long du rayon, ces points sont calculés de manière à être espacés régulièrement ;
 367 |     \item[ligne 6] l'unité des résultats : 1 pour les exprimer en W et 2 pour les exprimer en kW ;
 368 |     \item[ligne 7] la lecture des caractéristiques des parois : 0 pour ne pas les lire et 1 pour les lire.
 369 | \end{description}
 370 | 
 371 | Les fichiers ascii obtenus contiennent quatre colonnes : les trois premières sont les coordonnées (x,y,z) des points sur le rayon choisi et la quatrième la valeur de la grandeur considérée en ces points. Il existe ensuite de très nombreuses possibilités d'exploiter les fichiers ascii obtenus. Pour les cas tests dont nous parlerons au chapitre suivant, nous nous appuierons sur le logiciel Grace pour tracer de manière automatiser les courbes.
 372 | 
 373 | 	\subsection{Création de fichiers compatibles avec ParaView}
 374 | La routine \texttt{visu} permet de créer un fichier au format Ensight. Ce fichier contient les profils en trois dimensions de toutes les grandeurs d'entrée et de sortie du calcul. Le fichier obtenu est compatible notamment avec le logiciel ParaView qui est un outil de visualisation open source. \\
 375 | 
 376 | Pour utiliser la routine \texttt{visu}, il faut fournir le fichier \texttt{visualensight.choices} qui se présente sous la forme suivante :
 377 | \begin{verbatim}
 378 | 'GRIDS/cyl_homo_fine.neu'   ! Mesh file
 379 | 2                           ! Mesh type [ 1=AVBP | 2=GAMBIT ]
 380 | 'OUTFILES'                  ! Prissma result files directory
 381 | 'INFILES'                   ! Prissma *.in files directory
 382 | 'VISU'                      ! Visual output directory
 383 | 1                           ! Format [ 1=binary | 2=ascii ]
 384 | \end{verbatim}
 385 | Le fichier permet de définir :
 386 | \begin{description}
 387 |     \item[ligne 1] le chemin vers le fichier du maillage ;
 388 |     \item[ligne 2] le type de maillage, on utilise 1 pour AVBP et 2 pour Gambit ;
 389 |     \item[ligne 3] le chemin vers le répertoire des fichiers d'entrée (dans notre cas INFILES) ;
 390 |     \item[ligne 4] le chemin vers le répertoire des fichiers de sortie (dans notre cas OUTFILES) ;
 391 |     \item[ligne 5] le chemin vers le répertoire des fichiers créés par la routine \texttt{visu}  (dans notre cas VISU) ;
 392 |     \item[ligne 6] le type de fichier soit 1 pour la version binaire au format Ensight soit 2 pour le fichier au format ascii.
 393 | \end{description}
 394 | 
 395 | 
 396 | 
 397 | 
 398 | 
 399 | 
 400 |