1 #!/bin/sh -e
  2 
  3 
  4 #=====================================
  5 # TP4 : la diversité des observables #
  6 #=====================================
  7 
  8 # Voir le TP1 pour la prise en main du système d'exploitation EDIX.
  9 # Les commandes suivantes sont identiques à celles du début du TP1.
 10 
 11 . /home/lafrier/star-build/local/etc/stardis.profile
 12 mkdir TP4
 13 cd TP4
 14 
 15 # Ce TP illustre la variété des observables disponibles dans Stardis.
 16 # Il présente aussi quelques exemples de post-traitement des données avec
 17 # gnuplot ou htpp pour les images.
 18 
 19 # La scène utilisée dans ce TP est actuellement construite à partir du cube
 20 # du starter pack. Il s'agit d'un parallélépipède solide qui échange avec un
 21 # fluide à température imposée. Une face du cube est adiabatique et la face
 22 # opposée reçoit aussi un flux incident :
 23 
 24 cp "${DEMONSTRATEUR_2}"/TP4/src/model.txt .
 25 
 26 # Pour rappel, pour toutes les lignes de commandes ci-dessous, vous pouvez
 27 # lire la documentation via `man stardis` pour comprendre ce que signifient
 28 # chacun des paramètres (voir le TP1).
 29 
 30 
 31 #=======================================================
 32 # TP4 - Partie 1 : température en un point d'un solide #
 33 #=======================================================
 34 
 35 # Au stationnaire :
 36 
 37 stardis -p 0.5,0.5,0.5 -M model.txt -n 10000 -e
 38 
 39 # A un temps donné :
 40 
 41 stardis -p 0.5,0.5,0.5,100 -M model.txt -n 10000 -e
 42 
 43 # Pour aller plus loin :
 44 # On peut générer et visualiser ces données sous forme de graphiques.
 45 # Pour cela, les deux scripts suivants réalisent plusieurs appels à stardis
 46 # pour différents points sondes (en changeant respectivement le temps puis la
 47 # position). Ils affichent ensuite ces données grâce à gnuplot.
 48 
 49 # Partie 1.1 : évolution temporelle
 50 # ---------------------------------
 51 
 52 less "${DEMONSTRATEUR_2}"/TP4/src/vary_time.sh
 53 
 54 # Cliquer sur `q` pour fermer less
 55 
 56 sh "${DEMONSTRATEUR_2}"/TP4/src/vary_time.sh
 57 mupdf graphe_temps_calcul.pdf
 58 
 59 # Vous devriez avoir un graphique similaire à :
 60 
 61 feh "${DEMONSTRATEUR_2}"/Figures/tp4_probe_evolution_temporelle.png
 62 
 63 # Partie 1.2 : évolution spatiale
 64 # -------------------------------
 65 
 66 less "${DEMONSTRATEUR_2}"/TP4/src/vary_position.sh
 67 sh "${DEMONSTRATEUR_2}"/TP4/src/vary_position.sh
 68 mupdf graphe_position.pdf
 69 
 70 # Attention si le point sonde est placé sur une interface, il faudra utiliser
 71 # `P` comme dans le script. Vous devriez avoir un graphique similaire à :
 72 
 73 feh "${DEMONSTRATEUR_2}"/Figures/tp4_probe_evolution_spatiale.png
 74 
 75 
 76 #====================================================================
 77 # TP4 - Partie 2 : moyenne temporelle de la température en un point #
 78 #                                                       d'un solide #
 79 #====================================================================
 80 
 81 stardis -p 0.5,0.5,0.5,0,100 -M model.txt -n 10000 -e
 82 
 83 # Vérifier que c'est cohérent avec le graphique de l'évolution temporelle
 84 # de la température.
 85 
 86 
 87 #==========================================================
 88 # TP4 - Partie 3 : température moyenne d'un volume solide #
 89 #==========================================================
 90 
 91 stardis -m CUBE -M model.txt -n 10000 -e
 92 
 93 
 94 #==============================================================
 95 # TP4 - Partie 4 : température moyenne de surface d'un solide #
 96 #==============================================================
 97 
 98 stardis -s "${DEMONSTRATEUR_2}"/data/cube/right_bc.stl -M model.txt -n 10000 -e
 99 
100 
101 #===================================================
102 # TP4 - Partie 5 : synthèse d'une image infrarouge #
103 #===================================================
104 
105 # Modèle de caméra "pinhole" standard.
106 # Présenter la signification de chaque paramètre (position, target, field of
107 # view, up pour l'orientation de la camera).
108 
109 # Astuce pour placer la caméra : vous pouvez utiliser paraview.
110 #  - assurez vous que le ratio d'aspect de la fenêtre de visualisation de
111 #    paraview correspond à celui de votre image (hauteur / largeur),
112 #  - grâce au bouton "Adjust camera", manipulez "Position", "Focal Point",
113 #    "View up" et "View Angle"
114 #  - reportez ces valeurs dans la ligne de commande stardis.
115 
116 stardis -M model.txt \
117   -R file=img.ht:img=600x400:spp=4:fov=60:pos=2,2,2:tgt=0.5,0.5,0.5:up=0,0,1
118 
119 # Post-traitement :
120 # Le format de sortie est `ht` qu'il faut ensuite traduire dans un format
121 # d'image :
122 
123 htpp -v -f -o img.ppm -m default img.ht
124 feh img.ppm
125 
126 # Pour changer la carte de couleurs et l'intervalle considéré :
127 
128 htpp -v -f -o img.ppm -m default:palette=jet:range=280,315 img.ht
129 feh img.ppm
130 
131 # Si on souhaite sauver la barre de couleur :
132 
133 htpp -v -f -m gnuplot img.ht | gnuplot - > img_with_colorbarpng.png
134 
135 # On appelle `htpp` avec l'argument `-m gnuplot` génére un script gnuplot
136 # affichant l'image et l'échelle de couleur. Ici la sortie de la commande htpp
137 # est directement appelée par gnuplot et la sortie redirigée vers le fichier
138 # `img_with_colorbarpng.png`.
139 
140 feh img_with_colorbarpng.png
141 
142 # Afficher d'autres informations que la température moyenne :
143 
144 man stardis-output
145 
146 # Recherchez comment est spécifiée l'image infrarouge.
147 
148 # Après l'entête indiquant la définition de l'image, chaque ligne correspond
149 # à un pixel avec :
150 #   temperature-expected-value temperature-standard-error
151 #     0 0 0 0 time-expected-value time-standard-error
152 # Il est donc possible d'utiliser htpp pour afficher ces informations, par
153 # exemple la variance via :
154 
155 htpp -v -f -o img_std_dev.ppm -m default:pixcpnt=1 img.ht
156 feh img_std_dev.ppm
157 
158 
159 #===================================
160 # TP4 - Partie 6 : flux de chaleur #
161 #===================================
162 
163 stardis -F "${DEMONSTRATEUR_2}"/data/cube/center_bc.stl \
164   -M model.txt -n 100000 -e
165 
166 
167 #=============================
168 # TP4 - Partie 7 : autonomie #
169 #=============================
170 
171 # Configuration académique connue,
172 # Construire la géométrie + modélisation
173 # Vérifier que cela donne le résultat attendu
174 
175 # >>> TODO : proposer un exercice et sa correction
176 
177 
178 cd ..