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>

Image

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

Image Image Image Image

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.