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 
 58 # Cliquer sur `q` pour quitter gnuplot. Vous devriez avoir un graphique
 59 # 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 
 69 # Attention si le point sonde est placé sur une interface, il faudra utiliser
 70 # `P` comme dans le script. Vous devriez avoir un graphique similaire à :
 71 
 72 feh "${DEMONSTRATEUR_2}"/Figures/tp4_probe_evolution_spatiale.png
 73 
 74 
 75 #====================================================================
 76 # TP4 - Partie 2 : moyenne temporelle de la température en un point #
 77 #                                                       d'un solide #
 78 #====================================================================
 79 
 80 stardis -p 0.5,0.5,0.5,0,100 -M model.txt -n 10000 -e
 81 
 82 # Vérifier que c'est cohérent avec le graphique de l'évolution temporelle
 83 # de la température.
 84 
 85 
 86 #==========================================================
 87 # TP4 - Partie 3 : température moyenne d'un volume solide #
 88 #==========================================================
 89 
 90 stardis -m CUBE -M model.txt -n 10000 -e
 91 
 92 
 93 #==============================================================
 94 # TP4 - Partie 4 : température moyenne de surface d'un solide #
 95 #==============================================================
 96 
 97 stardis -s "${DEMONSTRATEUR_2}"/data/cube/right_bc.stl -M model.txt -n 10000 -e
 98 
 99 
100 #===================================================
101 # TP4 - Partie 5 : synthèse d'une image infrarouge #
102 #===================================================
103 
104 # Modèle de caméra "pinhole" standard.
105 # Présenter la signification de chaque paramètre (position, target, field of
106 # view, up pour l'orientation de la camera).
107 
108 # Astuce pour placer la caméra : vous pouvez utiliser paraview.
109 #  - assurez vous que le ratio d'aspect de la fenêtre de visualisation de
110 #    paraview correspond à celui de votre image (hauteur / largeur),
111 #  - grâce au bouton "Adjust camera", manipulez "Position", "Focal Point",
112 #    "View up" et "View Angle"
113 #  - reportez ces valeurs dans la ligne de commande stardis.
114 
115 stardis -M model.txt \
116   -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
117 
118 # Post-traitement :
119 # Le format de sortie est `ht` qu'il faut ensuite traduire dans un format
120 # d'image :
121 
122 htpp -v -f -o img.ppm -m default img.ht
123 feh img.ppm
124 
125 # Pour changer la carte de couleurs et l'intervalle considéré :
126 
127 htpp -v -f -o img.ppm -m default:palette=jet:range=280,315 img.ht
128 feh img.ppm
129 
130 # Si on souhaite sauver la barre de couleur :
131 
132 htpp -v -f -m gnuplot img.ht | gnuplot - > img_with_colorbarpng.png
133 
134 # On appelle `htpp` avec l'argument `-m gnuplot` génére un script gnuplot
135 # affichant l'image et l'échelle de couleur. Ici la sortie de la commande htpp
136 # est directement appelée par gnuplot et la sortie redirigée vers le fichier
137 # `img_with_colorbarpng.png`.
138 
139 feh img_with_colorbarpng.png
140 
141 # Afficher d'autres informations que la température moyenne :
142 
143 man stardis-output
144 
145 # Recherchez comment est spécifiée l'image infrarouge.
146 
147 # Après l'entête indiquant la définition de l'image, chaque ligne correspond
148 # à un pixel avec :
149 #   temperature-expected-value temperature-standard-error
150 #     0 0 0 0 time-expected-value time-standard-error
151 # Il est donc possible d'utiliser htpp pour afficher ces informations, par
152 # exemple la variance via :
153 
154 htpp -v -f -o img.ppm -m default:pixcpnt=1 img_std_dev.ht
155 feh img_std_dev.ppm
156 
157 
158 #===================================
159 # TP4 - Partie 6 : flux de chaleur #
160 #===================================
161 
162 stardis -F "${DEMONSTRATEUR_2}"/data/cube/center_bc.stl \
163   -M model.txt -n 100000 -e
164 
165 
166 #=============================
167 # TP4 - Partie 7 : autonomie #
168 #=============================
169 
170 # Configuration académique connue,
171 # Construire la géométrie + modélisation
172 # Vérifier que cela donne le résultat attendu
173 
174 # >>> TODO : proposer un exercice et sa correction