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/Stardis-0.14.0/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 # File > Open
162 # Sélectionner tous les stl
163 # Cliquer sur Appliquer / Apply
164 # cliquer sur l'oeil pour cacher ou voir les différents objets
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 # Visualiser les chemins avec paraview en utilisant un script python
203 # déjà préparé à cet effet :
204 
205 paraview --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_cube.py
206 
207 # Alternativement, on peut faire les différentes étapes à la main.
208 # Dans la fenêtre paraview :
209 # File > Open
210 # cliquer sur la flèche à côté de path.vtk
211 # sélectionner l'ensemble des fichiers (path000.vtk jusqu'à path009.vtk)
212 # par défaut les chemins ne sont pas visibles, il faut cliquer sur Apply.
213 # Afficher la scène en chargeant solid.stl
214 # Changer la représentation de "Surface" à "outline" pour visualiser
215 # uniquement les arêtes.
216 #
217 # Le script charge 10 chemins en même temps.
218 # Commencez par en visuliser un seul : en cliquant sur l'oeil devant chaque
219 # élément "path" du Pipeline Browser, vous allez les masquer.
220 #
221 # Ce que vous observez :
222 # Les chemins partent du point d'observation, ici au centre du cube, 
223 # ils "ressemblent" à du mouvement brownien.
224 # Les sommets sont construits en échantillonnant uniformément une position
225 # sur la surface d'une petite sphère (de taille delta) centrée sur le sommet
226 # précédent.
227 # 
228 # Dans cet exemple, les chemins terminent en paroi au niveau des conditions
229 # limites de Dirichlet uniquement. Lorsqu'ils tapent une paroi adiabatique,
230 # ils sont réfléchis et ne s'arrêtent pas. Le poids de Monte-Carlo retenu
231 # par le chemin est la température imposée au niveau de la paroi.
232 #
233 # Pour tout problème de visualisation avec paraview, regardez l'image
234 # ci-dessous :
235 
236 # etudiant:~ $ feh ${DEMONSTRATEUR_2}/Figures/tp1_chemins_dans_cube_solide.png
237 
238 # Le chemin part du centre du cube, point sonde auquel on souhaite évaluer la
239 # température. Il s'arrête lorsqu'il renconstre la paroi de gauche, dont la
240 # température est connue et retenue comme poids de Monte-Carlo.
241 
242 
243 # Partie 2.2.2 : chemins pour condition limite de type Robin
244 # ----------------------------------------------------------
245 
246 # On change maintenant la condition limite du système.
247 # La température n'est plus imposée aux parois latérales du cube.
248 # Le cube est plongé dans un fluide dont la température est connue,
249 # il y a un coefficient d'échange convectif entre le cube solide et le fluide.
250 # De plus, la température radiative de l'environnement est connue.
251 
252 cp "${DEMONSTRATEUR_2}"/TP1/src/modele_cube_dans_fluide.txt .
253 stardis -V 3 -M modele_cube_dans_fluide.txt -p 0.5,0.5,0.5 -n 10000 -e
254 
255 # On génère juste 10 chemins (pas besoin de plus pour l'analyse).
256 
257 stardis -V 3 -M modele_cube_dans_fluide.txt -p 0.5,0.5,0.5  -n 10 \
258   -D all,path_conv_ -e
259 paraview \
260   --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_cube_dans_fluide.py
261 
262 # Les chemins s'arrêtent donc en paroi soit lorsqu'ils basculent en convection
263 # (et la température de fluide environnant est connue), 
264 # ou bien lorsqu'ils basculent en rayonnement 
265 # (et la température radiative de l'environnement est connue).
266 
267 # Pour tout problème de visualisation avec paraview, regardez l'image
268 # ci-dessous :
269 
270 # etudiant:~ $ feh \
271 #   ${DEMONSTRATEUR_2}/Figures/tp1_chemins_dans_cube_avec_env_radiatif.png
272 
273 # Le chemin part du centre du cube, atteint la paroi de gauche puis bascule en
274 # rayonnement avant de s'arrêter. Le poids de Monte-Carlo retenu est la
275 # température de l'environnement radiatif.
276 
277 
278 # Partie 2.2.3 : chemins couplant 3 modes de transferts thermiques
279 # ----------------------------------------------------------------
280 
281 # Autre exemple, illustrant le couplage conduction / convection / rayonnement.
282 # Le chemin alterne maintenant entre différents modes physiques.
283 # Il s'agit d'un système avec deux parties : un cube solide dans lequel se
284 # trouve une cavité fluide. Cette cavité fluide est sphérique, dans laquelle
285 # deux modes de transfert thermiques ont lieu : de la convection et du
286 # rayonnement entre ses parois. Le modèle de convection est de type cavité
287 # parfaitement brassée : la température est uniforme et peut varier dans le
288 # temps. Le point d'observation peut être placé en tout point du fluide
289 # (ici au centre) : la température mesurée sera la même.
290 
291 stardis -V 3 -M "${DEMONSTRATEUR_2}"/data/boule_dans_cube/model.txt \
292   -p 0.5,0.5,0.5  -n 10 -D all,coupled_path_ -e
293 paraview \
294   --script="${DEMONSTRATEUR_2}"/TP1/src/script_paraview_boule_dans_cube.py
295 
296 # Les chemins partent du centre du fluide en rayonnement ou bien en convection.
297 # Ils basculent d'un mode de transfert à l'autre, éventuellement en conduction
298 # quand ils sont dans le solide. Ils finissent par basculer en conduction puis
299 # s'arrêtent au niveau d'une paroi du cube où la température est connue.
300 #
301 # Pour tout problème de visualisation avec paraview, visualiser l'image
302 # ci-dessous :
303 
304 # etudiant:~ $ feh \
305 #   ${DEMONSTRATEUR_2}/Figures/tp1_chemins_dans_cube_avec_boule.png
306 
307 # Le chemin part du centre de l'inclusion fluide, il alterne entre convection,
308 # rayonnement et conduction jusqu'à rencontrer la paroi de droite dont la
309 # température est connue et retenue comme poids de Monte-Carlo.
310 
311 
312 #===========================================
313 # Partie 3 : découvrir les pages de manuel #
314 #===========================================
315 
316 
317 # Partie 3.1 : lire la documentation de stardis pour changer d'observable
318 # -----------------------------------------------------------------------
319 
320 # Jusqu'ici on vous a donné les lignes de commande à taper,
321 # pour comprendre les différents arguments et leur rôle, vous allez lire la
322 # documentation :
323 
324 man stardis
325 
326 # La documentation prendra toujours la forme "man mon_programme", 
327 # comme c'est le cas pour toutes les autres commandes unix comme `ls` ou `cd`.
328 # Les pages de manuel ont toujours le même format :
329 # - Description générale du programme
330 # - Description de chacun des arguments
331 # - Quelques exemples d'utilisation
332 
333 # Dans la documentation, cherchez ce que signifient les arguments :
334 # a/ -M model.txt ---> cet argument est obligatoire, c'est la description
335 #                      de la scène
336 # b/ -n 1000      ---> le nombre de réalisations de Monte-Carlo
337 # c/ -V 3         ---> est un niveau de verbosité / quantité de détails
338 #                      donnés dans la console (vous pouvez tester différentes
339 #                      valeurs)
340 # d/ Exercice : que signifie -D ? Quelles informations supplémentaires
341 #               faut-il renseigner ?
342 # e/ Exercice : que signifie -p ? Quelles informations supplémentaires
343 #               faut-il renseigner ?
344 #
345 # Correction :
346 # d/ l'argument -D nécessite de renseigner deux informations :
347 #    le mot clé `error` ou `success` ou `all` ainsi qu'un préfixe de nom de
348 #    fichier. Avec cet argument, des chemins seront produits au format "vtk",
349 #    il peut s'agir uniquement des chemins ayant produit des erreurs (pour
350 #    le debug), des succès, ou tous.
351 # e/ L'argument -p controle la position du point sonde où est estimée la
352 #    température : il faut renseigner la position en 3D (x,y,z).
353 #    En option, on peut spécifier le temps d'observation (sinon ce sera INF
354 #    pour le stationnaire), ou bien la durée d'intégration temporelle.
355 #
356 # Exercice :
357 # Si vous avez bien compris, sur le premier système "model.txt" :
358 # - lancez un calcul pour une autre position du point sonde (toujours à
359 #   l'intérieur du solide). Quelle est la température estimée ? Est ce que
360 #   ça vous parait cohérent vu le système ? Par exemple si la sonde est plus
361 #   proche de la paroi froide, la température doit être plus faible.
362 #   Visualisez quelques chemins (ils doivent donc partir de cette nouvelle
363 #   position).
364 # - lancez maintenant un calcul qui n'est plus au stationnaire, mais au temps
365 #   d'observation t=10s. Visualisez quelques chemins, vous devez observer que
366 #   certains d'entre eux s'arrêtent dans le solide et plus seulement à la
367 #   paroi : ils retiennent la température initiale comme poids de Monte-Carlo.
368 # - réalisez un calcul avec l'algorithme Walk-On-Spheres plutôt que
369 #   delta-spheres au stationnaire. Visualisez ces chemins.
370 #
371 # Correction :
372 # déplacer le point sonde
373 
374 stardis -V 3 -M model.txt -p 0.85,0.85,0.85 -n 10000 -e
375 stardis -V 3 -M model.txt -p 0.85,0.85,0.85 -n 10 -D all,path_probe_ -e
376 
377 # ajouter un temps d'observation
378 
379 stardis -V 3 -M model.txt -p 0.5,0.5,0.5,10 -n 10000 -e
380 stardis -V 3 -M model.txt -p 0.5,0.5,0.5,10 -n 10 -D all,path_time_ -e
381 
382 # utiliser l'algorithme Walk-On-Sphere
383 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10 -a wos -e -D all,path_wos_
384 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 100000 -a wos -e
385 # etudiant:~ $ feh \
386 #   "${DEMONSTRATEUR_2}"/Figures/tp1_chemins_dans_cube_solide_wos.png
387 
388 
389 # Partie 3.2 : lire la documentation pour modifier des paramètres physiques
390 #                                                                du système
391 # -------------------------------------------------------------------------
392 
393 # Le système est décrit dans le fichier suivant :
394 
395 cat model.txt
396 
397 # Comment identifier dans ce fichier le(s) paramètre(s) à modifier ?
398 # On va lire le manuel pour comprendre le format de ce fichier.
399 
400 man stardis-input
401 
402 # Alternative : la même documentation peut être visualisée en html :
403 
404 # etudiant:~ $ firefox-bin \
405 #   https://www.meso-star.com/projects/stardis/man/man5/stardis-input.5.html
406 
407 # Se rendre dans l'onglet 9 où firefox a été lancé.
408 
409 # La syntaxe du système est décrite sous la forme d'une "grammaire"
410 # voir https://fr.wikipedia.org/wiki/Grammaire_formelle.
411 # Elle est composée de règles, représentées par les parenthèses.
412 # Ces règles sont ensuite remplacées par des valeurs ou bien d'autres règles.
413 
414 # On illustre sur un exemple du fichier model.txt : la ligne qui commence
415 # par SOLID.
416 # Que signifient les éléments de cette ligne ?
417 # Dans la documentation, la règle première ⟨thermal-system⟩ est remplacée
418 # par ⟨description-line⟩, puis ⟨medium⟩, ⟨solid⟩ et ⟨solid-const⟩.
419 # On détaille le remplacement de la règle :
420 #     ⟨solid-const⟩     ::=     SOLID ⟨medium-name⟩ ⟨lambda⟩ ⟨rho⟩ ⟨cp⟩ \
421 #                               ⟨delta⟩ ⟨initial-temp⟩ ⟨imposed-temp⟩ \
422 #                               ⟨volumic-power⟩ ⟨triangle-sides⟩ ...
423 
424 # Dans le manuel, recherchez le mot clé SOLID.
425 # Astuce : tapez '/' puis le mot cherché,
426 # les touches 'n' ou 'N' permettent de déplacer le curseur à l'occurence
427 # suivante ou précédente.
428 
429 # La première règle <medium-name> est remplacée par la règle
430 #     ⟨medium-name⟩     ::=     string
431 # c'est-à-dire par une chaîne de caractère : le nom associé à ce solide.
432 
433 # La seconde règle <lambda> est la suivante :
434 #     ⟨lambda⟩  ::=     real # Conductivity > 0 [W/m/K]
435 # Le troisième élément est donc un réel qui indique la conductivité
436 # du solide.
437 
438 # Exercice : pour cette ligne commençant par "SOLID", identifiez ce que
439 # signifie chacun des éléments. Faire le lien avec les paramètres physiques
440 # et numériques du système présenté dans l'introduction.
441 
442 # Exercice : faire pareil avec la ligne commençant par T_BOUNDARY_FOR_SOLID
443 # du fichier model.txt
444 
445 # Exercice : faire pareil avec la ligne commençant par H_BOUNDARY_FOR_SOLID
446 # du fichier modele_cube_dans_fluide.txt
447 
448 # Vous allez maintenant éditer ces propriétés.
449 
450 # Dans EDIX, l'éditeur de texte privilégié est `vim` dont voici quelques
451 # commandes "pour s'en sortir".
452 # Il fonctionne avec 3 modes : "normal", "insertion" et "visuel".
453 # Ici on aura besoin de taper :
454 # i pour basculer en mode Insertion et éditer le texte
455 # `Echap` pour basculer à nouveau en mode "normal" où on peut lancer les
456 # commandes suivantes :
457 # :w pour sauvegarder
458 # :q pour quitter
459 # Pour se former à cet outil : vimtutor est un tutoriel qui permet de voir
460 # les commandes de base.
461 
462 vim model.txt
463 
464 # Exercice :
465 # Editez les paramètres suivants en vous aidant du manuel de stardis :
466 # a/ température imposée à gauche
467 # b/ température initiale (attention, pour observer son impact sur le calcul,
468 #    indiquer un temps d'observation)
469 # c/ augmenter le coefficient d'échange convectif dans le fichier
470 #    "modele_cube_dans_fluide.txt" et commentez la température obtenue
471 
472 # Correction :
473 # a/ température imposée à gauche
474 # T_BOUNDARY_FOR_SOLID    LTEMP  300               left_bc.stl
475 #                                ^^^
476 
477 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10000 -e
478 
479 # Observer une augmentation ou diminution de la température de la sonde.
480 #
481 # b/ température initiale, regarder au stationnaire et à t = 10
482 # SOLID    CUBE   0.1   25    2   0.01    300  UNKNOWN  10  FRONT solid.stl
483 #                                         ^^^
484 
485 stardis -V 3 -M model.txt -p 0.5,0.5,0.5 -n 10000 -e
486 
487 # Si t=inf, aucun changement de la température du point sonde.
488 
489 stardis -V 3 -M model.txt -p 0.5,0.5,0.5,10 -n 10000 -e
490 
491 # Si faible temps d'observation, alors cela a un impact sur la température
492 # du point sonde.
493 
494 # c/ augmenter h du fichier modele_cube_dans_fluide.txt ; h = 1000
495 
496 vim modele_cube_dans_fluide.txt
497 
498 # H_BOUNDARY_FOR_SOLID    EXT    320    0.5    0.5    10    320 \
499 #   "${DEMONSTRATEUR_2}"/data/cube/right_bc.stl \
500 #   "${DEMONSTRATEUR_2}"/data/cube/center_bc.stl \
501 #   "${DEMONSTRATEUR_2}"/data/cube/left_bc.stl
502                                                   ^^^
503 stardis -V 3 -M modele_cube_dans_fluide.txt -p 0.5,0.5,0.5,10 -n 10000 -e
504 
505 # Le fluide dont la température est connue est bien plus souvent échantillonné
506 # que la température radiative de l'environnement. Vous le voyez sur la valeur
507 # de la température estimée.
508 
509 # Pour aller plus loin
510 # --------------------
511 # La documentation existe aussi pour spécifier la sortie de stardis lorsque
512 # l'option `-e` n'est pas utilisée :
513 
514 man stardis-output
515 
516 # C'est utile notamment lorsqu'on stocke la sortie de stardis pour réaliser
517 # des graphiques.
518 
519 #====================================================================
520 # Partie 4 : explorations en autonomie - jouer avec le starter-pack #
521 #====================================================================
522 
523 ls /home/lafrier/Stardis-Starter-Pack-0.2.0
524 
525 # Il n'y a pas que l'exemple du cube dans le starter-pack.
526 # Dans chaque dossier il y a un exemple avec
527 # - la description du système physique
528 # - les géométries (stl)
529 # - et des scripts qui automatisent les appels à stardis que vous venez de
530 #   lancer dans le terminal (il est possible de les ouvrir et les lire pour
531 #   s'en rendre compte).
532 
533 # Par exemple sur un milieu poreux :
534 
535 cd ..
536 cp -r /home/lafrier/Stardis-Starter-Pack-0.2.0/porous .
537 cd porous
538 
539 # Lire le fichier décrivant la scène :
540 
541 cat porous.txt
542 
543 # On a maintenant deux solides, et 4 conditions limites.
544 # Les géométries sont définies dans de nouveaux stl.
545 # Pour savoir ce que vous allez exécuter :
546 
547 cat run_IR_rendering.sh
548 
549 # Vous voyez qu'il y aura des images en sortie.
550 # Pour exécuter et pour voir qu'il y a bien de nouveaux fichiers (images) :
551 
552 sh run_IR_rendering.sh
553 ls
554 
555 # Pour visualiser l'image sortie :
556 
557 feh IR_rendering_320x320x32.ppm
558 
559 # Vous verrez dans le TP4 les différents types d'observables qu'on peut
560 # estimer.