Comparaison entre l'approximation de Schiff et la solution de référence

Le but de ce TP est de comparer les résultats donnés par l'approximation de Schiff aux résultats de référence donnés par la théorie de Mie, afin de s'approprier la "gamme de validité" de Schiff.

Calcul de Mie

Aller dans le répertoire contenant les programmes permettant de mener à bien des calculs de Mie et lire la documentation :

cd ../mie/
more README.md

La première fois, compiler le code fortran :

make clean
make

Définir la configuration étudiée dans le fichier mie.in ; ici on prendra pour commencer :

echo \
"#Longueur d'onde
0.4
#Partie reelle de l'indice de refraction
1.1
#Partie imaginaire de l'indice de refraction
0.005
#Rayon moyen de la distribution log-normal
6.D0
#Deviation de la distribution log-normal (sigma)
1.2D0
#Borne inferieure de l'intervalle d'integration
2.5D0
#Borne superieure de l'intervalle d'integration
11.5D0" >mie.in

Lancer le calcul et récupérer les résultats sous une forme "plus sympa" :

./a.out
./mie_pretty_results.sh

Observer l'ensemble les résultats :

more mie.out

Pour récupérer seulement la section efficace d'extinction (par exemple) :

cat mie.out | grep 'C_extinction' | cut -d ':' -f 2 | tr -d "[:blank:]" 

Avec les données spécifiées dans le fichier mie.in ci-dessus, vous devriez obtenir 2.53583917766050e+02 micromètres carrés.

Retourner dans le dossier du TP :

cd ../TP3/

Approximation de Schiff

On reprend exactement le même calcul que précédemment, mais cette fois dans le cadre d'une résolution par l'approximation de Schiff. Avant cela, on récupère les données nécessaires (voir TP1 et TP2) :

cp ../data/index.txt .
cp ../data/sphere-polydisp.yaml .

En reprenant les étapes du TP1, le problème est résolu grâce à la commande schiff, puis les résultats sont mis en forme et on extrait enfin la valeur de la section efficace d'extinction.

schiff -i sphere-polydisp.yaml -g 10000 -d 100 -D -l 150 -a 181 -A 181 \
-w 0.4 -o results.txt index.txt
./../schiff-tools/schiff_pretty_results.sh results.txt
cat xsections.txt | grep -v '#' | cut -d ' ' -f 2,3

La première valeur est l'estimation de la section efficace d'extinction en micromètres carrés ; la deuxième valeur - après un espace - est l'écart-type de cette estimation. Pour les données livrées avec ce TP, vous devriez obtenir un intervalle de confiance encadrant la valeur de 242, que l'on peut comparer à la solution de référence donné par la théorie de Mie (253.585 micromètres carrés).

Comparaison des sections efficaces données par Schiff ou Mie

En reprenant les gestes travaillés ci-dessus et au TP1, le script shell nommé compare_sections.sh prend en entrée, dans l'ordre :

Il écrit dans le fichier compare_sections.txt les sections efficaces calculées par l'approximation de Schiff et la solution de référence donnée par la théorie de Mie. Il génère un script gnuplot nommé compare_sections.plot pour représenter ces résultats.

Lire ce script :

more compare_sections.sh

Lancer et afficher la courbe de résultat :

./compare_sections.sh 6.0 1.2 1.1 0.005 \
$(LANG=en_US seq -s ":" 0.3 0.1 2) 100 2.5 11.5
gnuplot -p compare_sections.plot

Remarque : le temps de calcul de Mie augmente avec le paramètre de taille. Dans la commande précédente, les premiers calculs seront donc relativement longs, mais ils deviendront de plus en plus rapides à mesure que la longueur d'onde augmente.

Tester différents paramètres d'entrée en argument du script compare_sections.sh, notamment l'indice de réfraction (troisième et quatrième arguments), afin d'explorer l'écart de l'approximation de Schiff à la solution de référence.

Remarque : si vous souhaitez modifier la taille médiane de la distribution du rayon de la sphère et sa largeur (les deux premiers arguments d'entrée du script), il vous faudra alors aussi modifier les bornes d'intégration pour le calcul de Mie (les deux derniers arguments d'entrée du script). Une aide pour le choix de ces bornes est donnée avec le code de Mie :

more ../mie/README.md