TP1 : Prise en main de star-phor
Le réacteur torique est un banc expérimental développé au sein de l'axe GEPEB de l'Institut Pascal, à Clermont-Ferrand. Sa vocation est de permettre l'acquisition fiable de données cinétiques pour des réactions photo-induites, c'est-à-dire déclenchées par la lumière. Grâce à sa géométrie, il se rapproche d'un slab cartésien unidimensionnel, configuration particulièrement favorable à la modélisation du champ de rayonnement. De plus, il a fait l'objet d'une caractérisation hydrodynamique, laquelle a démontré qu'il peut être considéré comme parfaitement mélangé dans un domaine bien défini de conditions opératoires. La source lumineuse, un panneau de LEDs, est également caractérisée : son spectre d'émission est fourni par le fabricant et la densité énergétique a été mesurée avec un capteur de flux de photons.

L'objectif de ce TP sera de créer un fichier d'entrée star-phor décrivant ce dispositif. A priori, nous allons nous baser sur une version simplifiée de sa géométrie (celle-ci sera complexifiée dans le TP2). Nous allons calculer la vitesse volumique moyenne d'absorption des photons (MVREA) dans ce réacteur. Ici, la seule espèce absorbante est un colorant, qui est soluble dans l'éthanol qui constitue le milieu réactionnel. Nous allons également prendre en compte l'effet des réflexions et réfractions qui ont lieu dans le système en utilisant les indices optiques des vitres et de l'éthanol.
Partie 1 : Création d'un fichier d'entrée
L'objectif de cette partie est de créer un fichier d'entrée avec la syntaxe de star-phor-input.
Partie 1.0 : Création de l'environnement de travail
Tout d'abord, il va vous falloir créer un répertoire à votre nom et vous y rendre :
mkdir mon_nom && cd mon_nom
On crée ensuite un sous-répertoire dédié au TP star-phor et on va dedans :
mkdir tp_star-phor && cd tp_star-phor
On copie le répertoire dédié au TP1 :
cp -r "${TP_STAR_PHOR}"/TP1/ .
On crée un lien symbolique (un raccourci) vers le fichier star-phor.profile :
ln -sf /home/lafrier/environnement_tp_star-phor/etc/profile profile
Pour pouvoir exécuter star-phor, il faudra réaliser l'opération suivante à chaque fois qu'un nouveau terminal sera ouvert :
source ~/mon_nom/tp_star-phor/profile
Partie 1.1 : Fichiers de géométrie et de propriétés physiques
Avant de se lancer dans l'écriture du fichier d'entrée dans le format star-phor-input, nous allons d'abord explorer les fichiers de géométrie et de propriétés physiques qui serviront accessoirement à la description du système. Pour ce faire, nous allons entrer dans le répertoire du TP1 :
cd TP1
et lister les fichiers de géométrie et de propriétés spectrales qui s'y trouvent (sous-répertoire data) :
ls data
Ici, nous remarquons différents fichiers aux formats txt (propriétés physiques) :
- spectre_emission_source.txt : Le spectre d'émission normalisé de source lumineuse.
- sigma_a.txt : Le spectre de section efficace d'absorption du colorant présent dans le milieu.
- n_etoh.txt : La partie réel de l'indice de réfraction de l'éthanol en fonction de la longueur d'onde.
- n_verre.txt : La partie réel de l'indice de réfraction des vitres du réacteur - ici, constant dans le spectre.
et stl (géométries) :
- reacteur_int.stl : La partie cylindrique du noyau.
- reacteur_out.stl : La partie cylindrique extérieure du réacteur.
- source.stl : Le panneau de LED.
- vitre_front_bord.stl : Le bord de la vitre frontale.
- vitre_front_air.stl : L'interface entre la vitre frontale et le milieu environnant.
- vitre_front_milieu.stl : L'interface entre la vitre frontale et le milieu réactionnel.
- vitre_front_noyau.stl : L'interface entre la vitre frontale et le noyau du réacteur.
- vitre_arriere_bord.stl, vitre_arriere_air.stl, vitre_arriere_noyau : Même chose, pour l'arrière du réacteur.
Question 1.1 : Essayez d'associer les différentes propriétés physiques à chaque géométrie (ou une liste de géométries). Chaque géométrie peut être associée à différentes propriétés.
Remarques :
- Vous pouvez regarder chaque fichier de propriété avec la commande :
more data/nom_propriete.txt
- Vous pouvez visualiser le spectre d'émission normalisé :
gnuplot -p scripts/plot_spectre.gp
- Vous pouvez visualiser des images de la géométrie avec les commandes :
mupdf figures/geom_stl_vue_globale.png
mupdf figures/geom_stl_vue_coupe.png
- (Optionnel) Vous pouvez visualiser l'ensemble des géométries avec la commande :
paraview data/*.stl
Partie 1.2 : Création d'un fichier d'entrée
Nous allons maintenant nous concentrer sur la création d'un fichier décrivant ce réacteur avec la syntaxe proposée par le format de fichier star-phor-input. Ce format de fichier est spécifié dans sa page de manuel.
Pour consulter la page de manuel du format de fichier d'entrée, utilisez la commande :
man star-phor-input
Vous pouvez naviguer tranquillement dans cette page. Elle contient également des exemples. Cette page sera utilisée comme référence tout au long de cette partie.
Rentrons maintenant dans le répertoire data avec la commande :
cd data
Un fichier contenant une partie de la description du système a été préparé. Pour ouvrir ce fichier en mode édition, utilisez la commande :
vim reacteur.sphin
Remarque : Dans un premier temps, les mots-clés
FRONTetBACKassociés à chaque géométrie peuvent être perturbants. Il faut savoir que, dans star-phor, toutes les géométries sont composées de triangles, qui se combinent pour former des surfaces (y compris dans le cas de volumes). Or, comme une surface possède deux côtés, ces mots-clés servent à préciser de quel côté de la surface il s'agit. Il y a ici, bien entendu, une convention implicite pour déterminer quel côté correspond àFRONTet quel côté correspond àBACK. Dans star-phor, nous utilisons la convention de la main droite : le côtéFRONTcorrespond au côté du triangle qui, lorsqu'il nous fait face, présente ses sommets organisés dans le sens des aiguilles d'une montre. Cette distinction nous permet par exemple avoir des propriétés de surface différentes de chaque côté d'une surface ou de définir des volumes adjacents avec un même fichier de géométrie.
Ce fichier est composé de différents volumes et surfaces, chacun composé de
géométries, qui sont décorées par des propriétés physiques. Étudions chaque bloc
composant ce fichier de configuration :
surface: "source"
geometry: FRONT source.stl
source:
flux_density: 1000 umol/m^2/s spectre_emission_source.txt nm nm^-1
direction: COLLIM NORMAL
On définit une surface, appelée source. Elle est composée uniquement d'un
fichier de géométrie, source.stl. Cette surface a l'attribut source, qui lui
donne la propriété d'émettre des photons. Cette source émet 1000 µmol de photons
par mètre carré par seconde, avec un spectre d'émission défini dans
spectre_emission_source.txt. Les longueurs d'onde dans ce fichier ont comme
unité nm et la pdf d'émission a comme unité nm^-1. La distribution de
direction d'émission est collimatée normale.
volume: "vitre_front"
geometry: BACK vitre_front_milieu.stl
geometry: FRONT vitre_front_bord.stl
geometry: FRONT vitre_front_air.stl
geometry: BACK vitre_front_noyau.stl
refractive_index:
n_real: n_verre.txt
Volume correspondant à l'une des vitres du réacteur. Il est composé des quatre géométries vitre_front_milieu, vitre_front_bord, vitre_front_air et vitre_front_noyau. La seule propriété physique définie pour ce volume est la partie réelle de l'indice de réfraction, définie dans le fichier n_verre.txt.
volume: "vitre_arriere"
geometry: BACK vitre_arriere_milieu.stl
geometry: FRONT vitre_arriere_bord.stl
geometry: FRONT vitre_arriere_air.stl
geometry: BACK vitre_arriere_noyau.stl
refractive_index:
n_real: n_verre.txt
Même chose, cette fois pour la vitre arrière du réacteur.
Remarque : On aurait pu définir les deux volumes
vitre_frontetvitre_arrierecomme un seul, étant donné qu'ils partagent les mêmes propriétés physiques. En effet, on peut définir des modèles par l'union de régions non adjacentes dans l'espace.
surface: "optique_geometrique"
geometry: FRONT vitre_front_bord.stl
geometry: FRONT vitre_front_milieu.stl
geometry: FRONT vitre_front_air.stl
geometry: FRONT vitre_arriere_bord.stl
geometry: FRONT vitre_arriere_milieu.stl
geometry: FRONT vitre_arriere_air.stl
geometry: BACK vitre_front_bord.stl
geometry: BACK vitre_front_milieu.stl
geometry: BACK vitre_front_air.stl
geometry: BACK vitre_arriere_bord.stl
geometry: BACK vitre_arriere_milieu.stl
geometry: BACK vitre_arriere_air.stl
brdf: SPECULAR FRESNEL_DIELECTRIC
btdf: SNELL_DIELECTRIC FRESNEL_DIELECTRIC
Nous utilisons ce bloc pour définir les interfaces auxquelles on veut appliquer
l'optique géométrique. Nous utilisons notamment les mots-clés SPECULAR FRESNEL_DIELECTRIC pour les propriétés de réflexion (distribution de direction
et fraction réfléchie, respectivement) et SNELL_DIELECTRIC FRESNEL_DIELECTRIC
pour les propriétés de transmission (distribution de directions et fraction
transmise, respectivement).
Question 1.2 : Dans ce fichier de configuration, la définition du volume
volume_reactionnel est incomplète. Compte tenu des exemples et
de la documentation du format de fichier d'entrée, rajoutez dans ce volume les
propriétés manquantes :
- Rajoutez un diffuseur (
scatterer) de nomcolorant, avec concentration5 mol/m^3et section efficace d'absorption définie dans le fichier sigma_a.text (les unités sont dans la première ligne de ce fichier). - Attribuez à ce volume l'indice de refraction de l'éthanol, défini dans le fichier n_etoh.txt.
- On s'intéressera à la vitesse volumique moyenne d'absorption des photons (MVREA) dans ce volume. Il doit donc être un capteur, avec fonction réponse 1.
Partie 2 : Lancement du moteur de calcul et interprétation des résultats
Une fois le fichier d'entrée écrit, vous pouvez lancer le calcul. Pour ce faire, utilisez la commande :
star-phor reacteur.sphin
Cette commande appelle l'exécutable star-phor, avec comme seul argument le
fichier d'entrée que vous venez d'écrire.
Remarque : Vous pouvez utiliser la commande
star-phor -h
pour afficher de l'aide, et la commande
man star-phor
pour avoir la documentation complète de cet exécutable.
Les résultats sont affichés directement dans le terminal. Ainsi, comme le format
du fichier de configuration, les sorties sont également documentées. Pour voir
la documentation du format de présentation des résultats de star-phor,
utilisez la commande :
man star-phor-output
Nous constatons donc que la première ligne montre l'estimateur du MVREA total de la scène, avec l'erreur standard de l'estimateur.
La deuxième ligne montre l'estimateur du MVREA dans le volume
volume_reactionnel, avec l'erreur standard. Or, comme il est le seul volume
dans la scène, ce MVREA est le même que celui de la scène entière.
Un troisième niveau de présentation des sorties discrimine le MVREA par espèce
chimique dans chaque volume. La troisième ligne montre le MVREA de l'espèce
colorant dans le volume volume_reactionnel, avec son incertitude.
Le format de fichier présente également la densité de flux photonique par
surface définie comme capteur. Il s'agit de la ligne LOSSES dans le format de
fichier de sortie. Comme nous n'avons défini aucune surface comme capteur dans
la scène, la valeur de cet estimateur vaut zéro.
Partie 2.1 : Options de l'appel à l'exécutable
Le nombre d'échantillonnages de l'espace des chemins par défaut lorsque l'on
appelle la commande star-phor est de 10 000. Vous pouvez changer ce nombre en
utilisant l'option -n dans la ligne de commande, suivie du nombre
d'échantillonnages désiré.
Remarque : Toutes les options en ligne de commande doivent être spécifiées entre l'exécutable et le fichier d'entrée.
Question 2.1.1 : Que se passe-t-il avec la valeur des estimateurs et des erreurs types lorsque vous augmentez 10 fois ce nombre ? Et lorsque vous l'augmentez 100 fois ?
Une autre option intéressante nous permet, au lieu d'écrire les données
directement dans le terminal, de spécifier un fichier de sortie pour les
résultats de la simulation. L'option en question est -o, qui doit être suivie
du nom du fichier de sortie.
Question 2.1.2 : Utilisez l'option -o pour enregistrer vos résultats avec
10 000, 100 000 et 1 000 000 échantillonnages.
Remarque : Par défaut, star-phor protège un fichier de sortie pour éviter qu'il soit accidentellement écrasé par un nouveau fichier. Autrement dit, le calcul sera immédiatement abandonné si le fichier spécifié existe déjà et rien ne sera écrit dans le fichier spécifié. Nous pouvons explicitement demander que ce fichier soit remplacé avec l'option
-fen ligne de commande.
star-phor -f -o le_fichier_a_remplacer.out config.sphin