1 #!/bin/sh -e
  2 
  3 
  4 #==================================
  5 # TP1 : premier pas avec Stardis. #
  6 #==================================
  7 
  8 # Conditions de réalisation
  9 # -------------------------
 10 
 11 # Nous supposerons que le TP est réalisé par un utilisateur
 12 # travaillant depuis le système d'exploitation EDIX.
 13 
 14 
 15 #========================================
 16 # TP1 - Partie 1 : les débuts dans EDIX #
 17 #========================================
 18 
 19 # Se connecter en tant qu'etudiant :
 20 
 21 #   login: etudiant
 22 #   mot de passe: etudiant&1edix
 23 
 24 # Vous êtes maintenant dans le système d'exploitation EDIX.
 25 # Vous pouvez consulter la documentation en saisissant la commande
 26 # suivante :
 27 
 28 # etudiant:~ $ man edix
 29 
 30 # Avant de poursuivre le TP, vous êtes invité à lire cette page de
 31 # manuel ainsi que celles vers lesquelles elle renvoit, notamment
 32 
 33 # etudiant:~ $ man edix_man
 34 # etudiant:~ $ man edix_premiers_pas
 35 # etudiant:~ $ man edix_gestes_de_base
 36 # etudiant:~ $ man edix_interface_graphique
 37 # etudiant:~ $ man edix_shell
 38 # etudiant:~ $ man edix_vim
 39 
 40 # Au minimum, vous aurez besoin d'apprendre à lancer l'interface
 41 # graphique avec la commande
 42 
 43 # etudiant:~ $ startx
 44 
 45 # et à ouvrir un terminal graphique avec la combinaison de touches
 46 # Alt + Entrée.
 47 
 48 # Le démonstrateur et l'ensemble des logiciels ont été installés
 49 # chez l'utilisateur lafrier, comme vous pouvez le voir avec la commande
 50 
 51 ls /home/lafrier/
 52 
 53 # Vous allez travailler dans le répertoire /home/etudiant.
 54 # Vous pouvez vérifier que vous êtes bien dans ce répertoire à l'aide de
 55 # la commande
 56 
 57 pwd
 58 
 59 # qui affiche le chemin vers le répertoire courant.
 60 # La commande
 61 
 62 ls
 63 
 64 # vous permet ensuite d'afficher les fichiers et dossiers du répertoire
 65 # courant.
 66 
 67 # Il vous faudra ensuite créer un répertoire à votre nom :
 68 
 69 mkdir mon_nom
 70 
 71 # Avec
 72 
 73 ls
 74 
 75 # vous observerez que le répertoire a été créé.
 76 
 77 # Remarques
 78 # ---------
 79 # Si on veut renommer le répertoire parce qu'on a fait une faute :
 80 #
 81 # etudiant:~ $ mv mon_nom_raté nom_nom_correct
 82 #
 83 # Si on veut supprimer le répertoire :
 84 #
 85 # etudiant:~ $ rm -r mon_nom
 86 # ---------
 87 
 88 # On se rend dans le répertoire créé :
 89 
 90 cd mon_nom
 91 
 92 # On crée un sous-répertoire dédié au TP1 et on se rend dans ce
 93 # sous-répertoire :
 94 
 95 mkdir TP1
 96 cd TP1
 97 
 98 # On recopie les données utiles au TP1 dans un nouveau répertoire appelé
 99 # cube :
100 
101 cp -r "${DEMONSTRATEUR_2}"/data/cube cube
102 cd cube
103 cp "${DEMONSTRATEUR_2}"/TP1/src/model.txt .
104 
105 
106 #====================================
107 # TP1 - Partie 2 : exécuter stardis #
108 #====================================
109 
110 
111 # Partie 2.1 : première exécution de stardis
112 # ------------------------------------------
113 
114 # Pour pouvoir exécuter stardis, il faut réaliser l'opération suivante à
115 # chaque fois que vous ouvrirez un nouveau terminal :
116 
117 . /home/lafrier/star-build/local/etc/stardis.profile
118 
119 # Elements techniques de compréhension
120 # ------------------------------------
121 # Afficher le fichier pour voir que des variables vont être modifiées.
122 # Ces variables sont enrichies avec les chemins vers le dossier d'installation
123 # de stardis :
124 #
125 # etudiant:~/mon_nom/TP1/cube $ cat \
126 #   /home/lafrier/star-build/local/etc/stardis.profile
127 #
128 # Vérifier que ces variables ont bien été mises à jour :
129 #
130 # etudiant:~/mon_nom/TP1/cube $ echo ${CPATH}
131 # ------------------------------------
132 #
133 # Afficher les fichiers dans le répertoire de travail :
134 
135 ls
136 
137 # On voit qu'on a différents types de fichiers, d'extensions :
138 # - txt : le fichier décrivant le système physique
139 # - stl : description des géométries du système - on verra dans le TP3
140 #         comment les construire
141 #
142 # On commence par ouvrir le fichier `model.txt`, c'est la description
143 # informatique du système physique considéré.
144 
145 cat model.txt
146 
147 # Il s'agit d'un cube solide, dont les parois de gauche et de droite sont à
148 # température imposée. Les 4 autres parois sont adiabatiques, le flux est
149 # imposé à 0 dans le fichier "model.txt". Le fichier commence par décrire
150 # les milieux : ici le solide, associé à une géométrie "solid.stl".
151 # Ensuite sont décrites les conditions limites, ici de deux types différents.
152 # Ces conditions limites sont elles aussi associées à des géométries.
153 # L'exercice 3.2 sera dédié à la compréhension de la syntaxe pour décrire
154 # le système.
155 #
156 # Avec paraview, on commence par visualiser les stl (à réaliser de
157 # préférence dans un autre bureau) :
158 
159 paraview
160 
161 # Commencer par ouvrir tous les fichiers en .stl en cliquant sur File > Open
162 # Cliquer sur Appliquer / Apply pour voir tous les chemins tracés
163 # Il est possible de cliquer sur l'oeil à côté de chaque fichier pour
164 # montrer ou cacher chaque objet
165 #
166 # Lancer le premier calcul stardis :
167 
168 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10000 -e
169 
170 # On observe et commente la sortie :
171 #  - On exécute le code stardis sur le système "model.txt".
172 #  - On estime la température en un point, ici au centre du cube, à l'aide de
173 #    10000 réalisations.
174 #  - On a choisi un mode "verbeux" avec beaucoup d'informations,
175 #    indiquant notamment les géométries chargées et les temps de calcul.
176 #  - A la fin, on observe la valeur de température estimée et la barre
177 #    d'erreur associée, ainsi que le nombre de chemins "ratés" (en raison de
178 #    problèmes numériques).
179 #
180 # On fait une nouvelle estimation avec plus de réalisations :
181 
182 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 40000 -e
183 
184 # On observe que la barre d'erreur a diminué : l'estimation est plus précise.
185 
186 
187 # Partie 2.2 : visualiser des chemins
188 # -----------------------------------
189 
190 
191 # Partie 2.2.1 : chemins de diffusion uniquement avec condition limite de
192 #                                         Dirichlet (température imposée)
193 # -----------------------------------------------------------------------
194 
195 # Enregistrer des chemins :
196 
197 stardis -V 3 -M model.txt -p 0.5,0.5,0.5  -n 10 -D all,path -e
198 ls
199 
200 # On observe que 10 fichiers path00000*.vtk ont été produits.
201 
202 # Pour ouvrir directement paraview avec les fichiers créés par la
203 # commande précédente :
204 
205 paraview --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_cube.py
206 
207 # Mais si ce script échoue, on peut également refaire toutes les étapes
208 # à la main, en ouvrant simplement paraview avec la commande :
209 # paraview
210 # Puis en suivant les étapes suivantes :
211 # dans la fenêtre paraview : File > Open ;
212 # cliquer sur la flèche à côté de path.vtk ;
213 # sélectionner l'ensemble des fichiers (path000.vtk jusqu'à path009.vtk) ;
214 # par défaut les chemins ne sont pas visibles, il faut cliquer sur Apply.
215 #
216 # Pour visualiser les différentes parties du cube, ouvrir les fichiers
217 # ".stl".
218 #
219 # Pour une meilleure visualisation :
220 # dans le Pipeline Browser à gauche, cacher tous les fichiers en .stl
221 # sauf "solid.stl" ;
222 # faire un clic gauche sur "solid.stl" ;
223 # dans l'onglet Properties passer la représentation de "Surface" à
224 # "Wireframe" ;
225 # dans Coloring, cliquer sur Edit pour sélectionner une couleur (ex : noir).
226 
227 
228 # Le script charge 10 chemins en même temps.
229 # Commencez par en visualiser un seul : en cliquant sur l'oeil devant chaque
230 # élément "path" du Pipeline Browser, vous allez les masquer.
231 #
232 # Ce que vous observez :
233 # Les chemins partent du point d'observation, ici au centre du cube,
234 # ils "ressemblent" à du mouvement brownien.
235 # Les sommets sont construits en échantillonnant uniformément une position
236 # sur la surface d'une petite sphère (de taille delta) centrée sur le sommet
237 # précédent.
238 #
239 # Dans cet exemple, les chemins terminent en paroi au niveau des conditions
240 # limites de Dirichlet uniquement. Lorsqu'ils rencontrent une paroi adiabatique,
241 # ils sont réfléchis et ne s'arrêtent pas. Le poids de Monte-Carlo retenu
242 # par le chemin est la température imposée au niveau de la paroi.
243 #
244 # Pour tout problème de visualisation avec paraview, regardez l'image
245 # ci-dessous :
246 
247 # etudiant:~ $ feh ${DEMONSTRATEUR_2}/Figures/tp1_chemins_dans_cube_solide.png
248 
249 # Le chemin part du centre du cube, point sonde auquel on souhaite évaluer la
250 # température. Il s'arrête lorsqu'il renconstre la paroi de gauche, dont la
251 # température est connue et retenue comme poids de Monte-Carlo.
252 
253 
254 # Partie 2.2.2 : chemins pour condition limite de type Robin
255 # ----------------------------------------------------------
256 
257 # On change maintenant la condition limite du système.
258 # La température n'est plus imposée aux parois latérales du cube.
259 # Le cube est plongé dans un fluide dont la température est connue,
260 # il y a un coefficient d'échange convectif entre le cube solide et le fluide.
261 # De plus, la température radiative de l'environnement est connue.
262 
263 # On copie le fichier texte comportant nos nouvelles conditions :
264 
265 cp "${DEMONSTRATEUR_2}"/TP1/src/modele_cube_dans_fluide.txt .
266 
267 # On réalise une estimation de la température à l'aide de 10000 chemins :
268 
269 stardis -V 3 -M modele_cube_dans_fluide.txt -p 0.5,0.5,0.5 -n 10000 -e
270 
271 # On génère juste 10 chemins (pas besoin de plus pour l'analyse) :
272 
273 stardis -V 3 -M modele_cube_dans_fluide.txt -p 0.5,0.5,0.5  -n 10 \
274   -D all,path_conv_ -e
275 
276 # On visualise ces chemins :
277 
278 paraview \
279   --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_cube_dans_fluide.py
280 
281 # Les chemins s'arrêtent donc en paroi soit lorsqu'ils basculent en convection
282 # (et la température de fluide environnant est connue),
283 # ou bien lorsqu'ils basculent en rayonnement
284 # (et la température radiative de l'environnement est connue).
285 
286 # Pour tout problème de visualisation avec paraview, regardez l'image
287 # ci-dessous :
288 # etudiant:~ $ feh \
289 #   ${DEMONSTRATEUR_2}/Figures/tp1_chemins_dans_cube_avec_env_radiatif.png
290 
291 # Le chemin part du centre du cube, atteint la paroi de gauche puis bascule en
292 # rayonnement avant de s'arrêter. Le poids de Monte-Carlo retenu est la
293 # température de l'environnement radiatif.
294 
295 
296 # Partie 2.2.3 : chemins couplant 3 modes de transferts thermiques
297 # ----------------------------------------------------------------
298 
299 # Autre exemple, illustrant le couplage conduction / convection / rayonnement.
300 # Le chemin alterne maintenant entre différents modes physiques.
301 # Il s'agit d'un système avec deux parties : un cube solide dans lequel se
302 # trouve une cavité fluide. Cette cavité fluide est sphérique, dans laquelle
303 # deux modes de transfert thermiques ont lieu : de la convection et du
304 # rayonnement entre ses parois. Le modèle de convection est de type cavité
305 # parfaitement brassée : la température est uniforme et peut varier dans le
306 # temps. Le point d'observation peut être placé en tout point du fluide
307 # (ici au centre) : la température mesurée sera la même.
308 
309 # Pour construire et sauvegarder 10 chemins :
310 
311 stardis -V 3 -M "${DEMONSTRATEUR_2}"/data/boule_dans_cube/model.txt \
312   -p 0.5,0.5,0.5  -n 10 -D all,coupled_path_ -e
313 
314 # Afin de visualiser ces chemins :
315 
316 paraview \
317   --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_boule_dans_cube.py
318 
319 # Les chemins partent du centre du fluide en rayonnement ou bien en convection.
320 # Ils basculent d'un mode de transfert à l'autre, éventuellement en conduction
321 # quand ils sont dans le solide. Ils finissent par basculer en conduction puis
322 # s'arrêtent au niveau d'une paroi du cube où la température est connue.
323 #
324 # Pour tout problème de visualisation avec paraview, visualiser l'image
325 # ci-dessous :
326 
327 # etudiant:~ $ feh \
328 #   ${DEMONSTRATEUR_2}/Figures/tp1_chemins_dans_cube_avec_boule.png
329 
330 # Le chemin part du centre de l'inclusion fluide, il alterne entre convection,
331 # rayonnement et conduction jusqu'à rencontrer la paroi de droite dont la
332 # température est connue et retenue comme poids de Monte-Carlo.
333 
334 
335 #===========================================
336 # Partie 3 : découvrir les pages de manuel #
337 #===========================================
338 
339 
340 # Partie 3.1 : lire la documentation de stardis pour changer d'observable
341 # -----------------------------------------------------------------------
342 
343 # Jusqu'ici on vous a donné les lignes de commande à taper,
344 # pour comprendre les différents arguments et leur rôle, vous allez lire la
345 # documentation :
346 
347 man stardis
348 
349 # La documentation prendra toujours la forme "man mon_programme",
350 # comme c'est le cas pour toutes les autres commandes unix comme `ls` ou `cd`.
351 # Les pages de manuel ont toujours le même format :
352 # - Description générale du programme
353 # - Description de chacun des arguments
354 # - Quelques exemples d'utilisation
355 
356 # Dans la documentation, cherchez ce que signifient les arguments :
357 # a/ -M model.txt ---> cet argument est obligatoire, c'est la description
358 #                      de la scène
359 # b/ -n 1000      ---> le nombre de réalisations de Monte-Carlo
360 # c/ -V 3         ---> est un niveau de verbosité / quantité de détails
361 #                      donnés dans la console (vous pouvez tester différentes
362 #                      valeurs)
363 # d/ Exercice : que signifie -D ? Quelles informations supplémentaires
364 #               faut-il renseigner ?
365 # e/ Exercice : que signifie -p ? Quelles informations supplémentaires
366 #               faut-il renseigner ?
367 #
368 # Correction :
369 # d/ l'argument -D nécessite de renseigner deux informations :
370 #    le mot clé `error` ou `success` ou `all` ainsi qu'un préfixe de nom de
371 #    fichier. Avec cet argument, des chemins seront produits au format "vtk",
372 #    il peut s'agir uniquement des chemins ayant produit des erreurs (pour
373 #    le debug), des succès, ou tous.
374 # e/ L'argument -p controle la position du point sonde où est estimée la
375 #    température : il faut renseigner la position en 3D (x,y,z).
376 #    En option, on peut spécifier le temps d'observation (sinon ce sera INF
377 #    pour le stationnaire), ou bien la durée d'intégration temporelle.
378 #
379 # Exercice :
380 # Si vous avez bien compris, sur le premier système "model.txt" :
381 # - lancez un calcul pour une autre position du point sonde (toujours à
382 #   l'intérieur du solide). Quelle est la température estimée ? Est ce que
383 #   ça vous parait cohérent vu le système ? Par exemple si la sonde est plus
384 #   proche de la paroi froide, la température doit être plus faible.
385 #   Visualisez quelques chemins (ils doivent donc partir de cette nouvelle
386 #   position).
387 # - lancez maintenant un calcul qui n'est plus au stationnaire, mais au temps
388 #   d'observation t=10s. Visualisez quelques chemins, vous devez observer que
389 #   certains d'entre eux s'arrêtent dans le solide et plus seulement à la
390 #   paroi : ils retiennent la température initiale comme poids de Monte-Carlo.
391 # - réalisez un calcul avec l'algorithme Walk-On-Spheres plutôt que
392 #   delta-spheres au stationnaire. Visualisez ces chemins.
393 #
394 # Correction :
395 # déplacer le point sonde
396 
397 stardis -V 3 -M model.txt -p 0.85,0.85,0.85 -n 10000 -e
398 stardis -V 3 -M model.txt -p 0.85,0.85,0.85 -n 10 -D all,path_probe_ -e
399 
400 # ajouter un temps d'observation
401 
402 stardis -V 3 -M model.txt -p 0.5,0.5,0.5,10 -n 10000 -e
403 stardis -V 3 -M model.txt -p 0.5,0.5,0.5,10 -n 10 -D all,path_time_ -e
404 
405 # utiliser l'algorithme Walk-On-Sphere
406 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10 -a wos -e -D all,path_wos_
407 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 100000 -a wos -e
408 # etudiant:~ $ feh \
409 #   "${DEMONSTRATEUR_2}"/Figures/tp1_chemins_dans_cube_solide_wos.png
410 
411 
412 # Partie 3.2 : lire la documentation pour modifier des paramètres physiques
413 #                                                                du système
414 # -------------------------------------------------------------------------
415 
416 # Le système est décrit dans le fichier suivant :
417 
418 cat model.txt
419 
420 # Comment identifier dans ce fichier le(s) paramètre(s) à modifier ?
421 # On va lire le manuel pour comprendre le format de ce fichier.
422 
423 man stardis-input
424 
425 # Alternative : la même documentation peut être visualisée en html :
426 
427 # etudiant:~ $ firefox-bin \
428 #   https://www.meso-star.com/projects/stardis/man/man5/stardis-input.5.html
429 
430 # Se rendre dans l'onglet 9 où firefox a été lancé.
431 
432 # La syntaxe du système est décrite sous la forme d'une "grammaire"
433 # voir https://fr.wikipedia.org/wiki/Grammaire_formelle.
434 # Elle est composée de règles, représentées par les parenthèses.
435 # Ces règles sont ensuite remplacées par des valeurs ou bien d'autres règles.
436 
437 # On illustre sur un exemple du fichier model.txt : la ligne qui commence
438 # par SOLID.
439 # Que signifient les éléments de cette ligne ?
440 # Dans la documentation, la règle première ⟨thermal-system⟩ est remplacée
441 # par ⟨description-line⟩, puis ⟨medium⟩, ⟨solid⟩ et ⟨solid-const⟩.
442 # On détaille le remplacement de la règle :
443 #     ⟨solid-const⟩     ::=     SOLID ⟨medium-name⟩ ⟨lambda⟩ ⟨rho⟩ ⟨cp⟩ \
444 #                               ⟨delta⟩ ⟨initial-temp⟩ ⟨imposed-temp⟩ \
445 #                               ⟨volumic-power⟩ ⟨triangle-sides⟩ ...
446 
447 # Dans le manuel, recherchez le mot clé SOLID.
448 # Astuce : tapez '/' puis le mot cherché,
449 # les touches 'n' ou 'N' permettent de déplacer le curseur à l'occurence
450 # suivante ou précédente.
451 
452 # La première règle <medium-name> est remplacée par la règle
453 #     ⟨medium-name⟩     ::=     string
454 # c'est-à-dire par une chaîne de caractère : le nom associé à ce solide.
455 
456 # La seconde règle <lambda> est la suivante :
457 #     ⟨lambda⟩  ::=     real # Conductivity > 0 [W/m/K]
458 # Le troisième élément est donc un réel qui indique la conductivité
459 # du solide.
460 
461 # Exercice : pour cette ligne commençant par "SOLID", identifiez ce que
462 # signifie chacun des éléments. Faire le lien avec les paramètres physiques
463 # et numériques du système présenté dans l'introduction.
464 
465 # Exercice : faire pareil avec la ligne commençant par T_BOUNDARY_FOR_SOLID
466 # du fichier model.txt
467 
468 # Exercice : faire pareil avec la ligne commençant par H_BOUNDARY_FOR_SOLID
469 # du fichier modele_cube_dans_fluide.txt
470 
471 # Vous allez maintenant éditer ces propriétés.
472 
473 # Dans EDIX, l'éditeur de texte privilégié est `vim` dont voici quelques
474 # commandes "pour s'en sortir".
475 # Il fonctionne avec 3 modes : "normal", "insertion" et "visuel".
476 # Ici on aura besoin de taper :
477 # i pour basculer en mode Insertion et éditer le texte
478 # `Echap` pour basculer à nouveau en mode "normal" où on peut lancer les
479 # commandes suivantes :
480 # :w pour sauvegarder
481 # :q pour quitter
482 # Pour se former à cet outil : vimtutor est un tutoriel qui permet de voir
483 # les commandes de base.
484 # Un manuel moins détaillé sur vim est aussi disponible en tapant :
485 # man edix_vim
486 
487 vim model.txt
488 
489 # Exercice :
490 # Editez les paramètres suivants en vous aidant du manuel de stardis :
491 # (vous pouvez choisir les valeurs que vous voulez) :
492 # a/ température imposée à gauche
493 # b/ température initiale (attention, pour observer son impact sur le calcul,
494 #    indiquer un temps d'observation)
495 # c/ augmenter le coefficient d'échange convectif dans le fichier
496 #    "modele_cube_dans_fluide.txt" et commentez la température obtenue
497 
498 # Correction :
499 # a/ température imposée à gauche
500 # T_BOUNDARY_FOR_SOLID    LTEMP  300               left_bc.stl
501 #                                ^^^
502 
503 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10000 -e
504 
505 # Observer une augmentation ou diminution de la température de la sonde.
506 #
507 # b/ température initiale, regarder au stationnaire et à t = 10
508 # SOLID    CUBE   0.1   25    2   0.01    300  UNKNOWN  10  FRONT solid.stl
509 #                                         ^^^
510 
511 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10000 -e
512 
513 # Si t=inf, aucun changement de la température du point sonde.
514 
515 stardis -V 3 -M model.txt -p 0.5,0.5,0.5,10 -n 10000 -e
516 
517 # Si faible temps d'observation, alors cela a un impact sur la température
518 # du point sonde.
519 
520 # c/ augmenter h du fichier modele_cube_dans_fluide.txt ; h = 1000
521 
522 vim modele_cube_dans_fluide.txt
523 
524 # H_BOUNDARY_FOR_SOLID    EXT    320    0.5    0.5    10    320 \
525 #   "${DEMONSTRATEUR_2}"/data/cube/right_bc.stl \
526 #   "${DEMONSTRATEUR_2}"/data/cube/center_bc.stl \
527 #   "${DEMONSTRATEUR_2}"/data/cube/left_bc.stl
528 
529 stardis -V 3 -M modele_cube_dans_fluide.txt -p 0.5,0.5,0.5,10 -n 10000 -e
530 
531 # Le fluide dont la température est connue est bien plus souvent échantillonné
532 # que la température radiative de l'environnement. Vous le voyez sur la valeur
533 # de la température estimée.
534 
535 # Pour aller plus loin
536 # --------------------
537 # La documentation existe aussi pour spécifier la sortie de stardis lorsque
538 # l'option `-e` n'est pas utilisée :
539 
540 man stardis-output
541 
542 # C'est utile notamment lorsqu'on stocke la sortie de stardis pour réaliser
543 # des graphiques.
544 
545 #====================================================================
546 # Partie 4 : explorations en autonomie - jouer avec le starter-pack #
547 #====================================================================
548 
549 ls /home/lafrier/Stardis-Starter-Pack-0.2.0
550 
551 # Il n'y a pas que l'exemple du cube dans le starter-pack.
552 # Dans chaque dossier il y a un exemple avec
553 # - la description du système physique
554 # - les géométries (stl)
555 # - et des scripts qui automatisent les appels à stardis que vous venez de
556 #   lancer dans le terminal (il est possible de les ouvrir et les lire pour
557 #   s'en rendre compte).
558 
559 # Par exemple sur un milieu poreux :
560 
561 cd ..
562 cp -r /home/lafrier/Stardis-Starter-Pack-0.2.0/porous .
563 cd porous
564 
565 # Lire le fichier décrivant la scène :
566 
567 cat porous.txt
568 
569 # On a maintenant deux solides, et 4 conditions limites.
570 # Les géométries sont définies dans de nouveaux stl.
571 
572 # On peut refaire exactement la même expérience que dans le premier exercice
573 # sur une géométrie plus complexe que le cube.
574 # Pour construire et sauvegarder 5 chemins :
575 
576 stardis -V 3 -M "${DEMONSTRATEUR_2}"/TP1/src/model_poreux.txt \
577   -p 0.0014,0.0014,0  -n 5 -D all,path_in_porous_ -e
578 
579 # Afin de visualiser ces chemins :
580 
581 paraview \
582   --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_poreux.py
583 
584 # Commencez par n'en visualiser qu'un seul (en cliquant sur l'oeil).
585 # Comme précédemment, les chemins partent du point sonde en noir. Il basculent
586 # d'un mode physique à un autre, jusqu'à rencontrer une paroi où la température
587 # est connue.
588 #
589 # Pour tout problème de visualisation avec paraview, visualiser l'image
590 # ci-dessous :
591 
592 # etudiant:~ $ feh \
593 #   ${DEMONSTRATEUR_2}/Figures/tp1_chemins_poreux.png
594 
595 
596 # Lire le fichier décrivant la scène :
597 
598 cat porous.txt
599 
600 # Pour savoir ce que vous allez exécuter :
601 
602 cat run_IR_rendering.sh
603 
604 
605 # Vous voyez qu'il y aura des images en sortie.
606 # Pour exécuter et pour voir qu'il y a bien de nouveaux fichiers (images) :
607 
608 sh run_IR_rendering.sh
609 ls
610 
611 # Pour visualiser l'image sortie :
612 
613 feh IR_rendering_320x320x32.ppm
614 
615 # Vous verrez dans le TP4 les différents types d'observables qu'on peut
616 # estimer.