Modélisation de l'instrument lyxs avec Starlyx
L'instrument lyxs
Lyxs (PhotonLyX) est un spectro-photomètre à 3 sphères intégrantes. Dans son utilisation la plus standard, il s'agit de déterminer, quand c'est possible, les paramètres de transfert radiatif d'un matériau semi-transparent. Pour cela sont mesurées la rétrodiffusion (sphére dite BS), la transmission diffuse (sphère dite T), la transmission directe (sphère dite Tdir).
Ici nous montrons une simulation directe du système optique complet (instrument + matériau) dans un cas monochromatique. Les paramètres de transfert radiatif (ks,ka,g) sont dans le noeud xml "hg1" du fichier scene.xml.
<Henyey-Greenstein
NAME="hg1"
KS="10"
KA="0"
G="0"
>
</Henyey-Greenstein>

Vue de dessus de l'instrument lyxs. La source est à gauche. De gauche à droite: sphère BS (rétrodiffusion), sphère T (transmission diffuse), sphère Tdir (transmission directe).
Le noeud xml de type scene est au sommet de la hierarchie: On y définit les paramètres de conduite de la simulation tel que le nombre de réalisation du Monte-Carlo.
<Scene
STORE_TRAJECTORIES="0"
NB_PHOTONS="1000"
MAX_NB_EVENTS="10000"
NB_THREADS="-1"
STORE_ERROR_TRAJECTORIES="0"
VERBOSE="1"
ALGORITHM="direct"
>
...
</Scene>
La source de lumière est un faisceau collimaté de diamètre 5mm: Son spectre est monochromatique. Il est défini dans le noeud xml de type "spectrum" et nommé "spectrumSource".
<source
DIAMETER="5.0"
VOLUME="World"
POWER="1.0"
SPECTRUM="spectrumSource"
NAME="source0"
ANGLE="0.0"
TYPE="spot">
<pos Z="0.1" Y="0.0" X="-93.0"> </pos>
<dir Z="0.0" Y="0.0" X="1.0"> </dir>
</source>
<spectrum
DATA="650 1 "
NAME="spectrumSource">
</spectrum>
La surface qui limite le matériau à analyser est modélisée par une simple boite. Ici on utilise l'objet paramétré "box" de Starlyx de dimension 100mm x 100mm x 1mm.
Le milieu participatif est inclus dans volume d'indice de réfraction 1.33 (eau) délimité par la surface de nom "cuve".
<!--
surface of the participating medium
-->
<surface
NAME="cuve"
MATERIALS=""
TYPE="box"
>
<dim NAME="box_dim" X="1" Y="100" Z="100" ></dim>
<translation X="-5" Y="-50" Z="-50" ></translation>
<rotation X="0" Y="0" Z="0" ></rotation>
<scale X="1" Y="1" Z="1" ></scale>
</surface>
<!--
volume of the participating medium
-->
<volume
SURFACES="cuve"
MATERIALS="hg1"
NAME="product"
N="1.33">
</volume>
Les sphères intégrantes sont ici modélisées par des surfaces sphériques dont le côté des normales est sensible et intègre les photons pour donner une puissance.
<sensor
FILTERS="650 "
VOLUME="World"
ALBEDO="0.0"
NAME="sphereBS"
FILE="sphere_2_trous.obj"
ANGLE="180.0"
>
<translation X="-67" Y="0" Z="0" ></translation>
</sensor>
<sensor
FILTERS="650 "
VOLUME="World"
ALBEDO="0.0"
NAME="sphereT"
FILE="sphere_2_trous.obj"
ANGLE="180.0"
>
<translation X="-6" Y="0" Z="0" ></translation>
</sensor>
<sensor
FILTERS="650 "
VOLUME="World"
ALBEDO="0.0"
NAME="sphereTdir"
FILE="sphere_1_trou.obj"
ANGLE="180.0"
>
<translation X="110" Y="0" Z="0" ></translation>
</sensor>
Utilisation de Starlyx
Configurer l'environnement:
cd /home/lafrier/environnement_tp_starlyx
source profile
Se mettre dans le dossier ce ce TP:
cd tp_starlyx/TP1
Lancer starlyx pour la scene décrite dans scene.xml:
starlyx2 -x scene.xml
Le résultat est dans le fichier sensors.csv:
more sensors.csv
sphereBS_channels: 650
sphereBS_power: 0.852
sphereBS_power_sigma: 0.0112349
sphereT_channels: 650
sphereT_power: 0.126
sphereT_power_sigma: 0.0104992
sphereTdir_channels: 650
sphereTdir_power: 0.001
sphereTdir_power_sigma: 0.001
Visualisation de la scène
Tester l'interface interactive:
starlyx2 -g scene.xml
Touche "h" pour le menu des commandes. Utiliser les flêches pour changer l'angle de vue. La touche "k" permet de visualiser quelques rayons qui partent soit de la source soit des capteurs.
Si cela ne fonctionne pas, il est possible de produire des rendus en fil de fer avec quelques chemins qui partent de la source avec l'option -r.
starlyx2 -x -r scene.xml
Les images produites (1000x1000) sont: scene_top.png, scene_side.png, scene_front.png, scene_perspective.png

Exercice
Modifier le paramètre coefficient de diffusion ks.
cd /home/lafrier/environnement_tp_starlyx/TP1
vim scene.xml
ou
nano scene.xml
Lancer le calcul.
Vérifier les nouvelles observables dans sensors.csv:
more sensors.csv
Éventuellement, avec l'option -r, voir la conséquence sur les chemins.