📄 lightscatpro5.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Tmatrice</title>
<style type="text/css">
<!--
.Style1 {
font-size: xx-large;
font-weight: bold;
}
.Style2 {
color: #000000;
font-weight: bold;
}
-->
</style>
</head>
<body>
<p align="center"><br>
<span class="Style1">Light Sca Pro - vs.5</span></p>
<p><br>
Algorithme de la T-matrice pour le calcul de la diffusion de la lumière par des sphères </p>
<p>Auteur : LECLER Sylvain <br>
Contexte : thèse 2003-2005 <br>
Diffusion de la lumière par des particules sub-longueur d'onde<br>
Labo : Laboratoire des Systèmes Photoniques<br>
Encadrant : Yoshitate Takakura (LSIIT)<br>
Directeur de thèse : Patrick Meyrueis<br>
MAJ : 03/10/2006</p>
<p>Il manque encore à ce document :<br>
-des exemples complets d'utilisation <br>
-une description plus précise des sorties</p>
<p>....................Version 5......................<br>
</p>
<p>Intro : <br>
_______<br>
Ces programmes codés sous Matlab 6.5 auront pour but de calculer le champ diffusé par un agrégat de sphères disjointes contenus dans un domaine spatial de rayon inférieur à 30 longueur d'onde. <strong>Ils n'ont pour l'instant été validés que pour, au mieux, des aggrégats faits de 2 sphères alignées sur l'axe z. </strong>L'algorithme utilise une méthode modale dite de la T-matrice. Ces programmes ont été codé par Sylvain Lecler lors de sa thèse au Laboratoire des Systèmes Photoniques (Strasbourg) entre 2003 et 2005. <br>
</p>
<p>Plan<br>
____<br>
1) <a href="#Origine">Origine de l'algorithme</a> (historique et article de ref)<br>
2) <a href="#possibilites">Possibilités du programme</a> (ce qu'il fait, ses limitations)<br>
3) <a href="#modemploi">Mode d'emploi</a> (comment l'utiliser)<br>
4) <a href="#fichiers">Rôle de chaque fichier .m</a><br>
5) <a href="#struct">Structure du programme</a><br>
6) <a href="#var">Liste de variables</a> <br>
7) <a href="#rep">Contenus des différents répertoires</a><br>
8) <a href="#rmq">Remarques</a><br>
</p>
<p><a name="Origine"></a>1) Origine de l'algorithme :<br>
____________________________<br>
A-La diffusion d'une onde incidente plane par une sphère a été exprimée de manière <br>
analytique par Mie en 1908. </p>
<p>B-Waterman dans les années 60 a été le premier a décrire cette diffusion <br>
par une matrice de transition (la T-matrice) qui relie des coéfficients<br>
de décomposition de l'onde diffusée exprimée sur une base d'ondes sphériques aux <br>
coéfficients de décomposition de l'onde incidente sur la même base. </p>
<p>C-Le calcul de cette matrice a ensuite été généralisé pour un nombre quelconque <br>
de sphères disjointes dans l'espace. Mishchenko est un de ceux qui a beaucoup<br>
travaillé sur cet famille d'algorithmes dit de la T-matice. </p>
<p>D- Cette version du programme est inspirée principalement de <br>
la publi "T matrice for electromagnetic scattering from an arbitrary<br>
number of scarrerers and representations of E(3)" de Bo Peterson et Staffan Strom, <br>
publié dans physical Review D Vol8 N10 nov1973<br>
</p>
<p><a name="possibilites"></a>2) Possibilités du programme :<br>
______________________________<br>
2.1) Aggrégats :<br>
---------------------<br>
- Le programme est sensé calculer la diffusion de la lumière par une, deux ou N sphères disjointes positionnées de manère quelconque dans l'espace dans un domaine spatial de rayon inférieur à 30 longueur d'onde. <strong>Il n'a pour l'instant été validé que pour, au mieux, des aggrégats faits de 2 sphères alignées sur l'axe z. </strong>La translation les sphères hors de l'axe z n'est pas encore fonctionnelle. <br>
- Les sphères peuvent être dielectriques, avoir de l'absorption ou etre conductrices parfaites. Elles peuvent etre différentes.<br>
<br>
2.2) Ondes Incidentes :<br>
--------------------------------<br>
L'onde incidente peut etre :<br>
- plane et unitaire, de polarisation linéaire TE ou TM, circulaire gauche ou droite <br>
avec un vecteur d'onde dans le plan (Oxz)<br>
- décrite par ses coefficients de décomposition (quelconques).<br>
<br>
2.3) Grandeurs Physiques en sortie :<br>
-----------------------------------------------------<br>
Le programme permet d'obtenir en sortie au choix :<br>
(pour, au choix, le champ incident, le champ diffusé ou le champ total)<br>
- les 6 composantes du champ dans l'espace (repère cartésien ou sphérique) <br>
- le vecteur de poynting dans l'espace<br>
- l'intensité et la norme du champ électrique
</p>
<p>(pour l'onde diffusée) <br>
- les éléments de Stokes (polarisation) dans l'espace<br>
- le diagramme de diffusion I(theta), I(theta,phi)<br>
- la fonction de phase f(theta, phi) <br>
- la section efficace de diffusion, d'extinction ou de rétrodiffusion.<br>
- la représentation 3D des axes de polarisation fonction de la direction <br>
</p>
<p><a name="modemploi"></a>3) Mode d'emploi :<br>
_________________</p>
<p>3.1) Utilisation avec interface<br>
-----------------------------------------<br>
- Lancer matlab (V6.5 pour l'interface).<br>
- Se rendre dans le répertoire où est le programme en utilsant la commande "cd".<br>
- Taper "diffusion", on vous propose d'utiliser l'interface (1) ou pas (0) .<br>
- Taper "1" cela lance l'interface de travail<br>
(si vous tapez "0" laissez vous guider, si vous taper "enter" sans avoir fait de choix le programme s'arrete).<br>
- Entrer les paramètres décrivant le système<br>
-onde incidente<br>
-nature de l'aggrégat diffusant<br>
-données souhaitées en sorties (facultatif).<br>
- Cliquer sur "calcul coeff" pour calculer les coefficients de décomposition de l'onde difusée projetée sur une base d'ondes sphériques.<br>
- Choisir dans l'interface la forme d'autres résultats souhaités en sorties.<br>
- Cliquer sur "exploitation" pour visualiser les résultats demandés.<br>
- Il est ensuite possible au choix de demander d'autres résultats en sorties ou de calculer des coefficients de systèmes différents.</p>
<p> 3.2) Utilisation sans interface<br>
-----------------------------------------<br>
- Après avoir tapé "diffusion" sous Matlab, choisissez "0" (sans interface).<br>
- Laissez vous guider.<br>
(Dans ce cas les données décrivant le problème sont entrées dans un fichier du <br>
type de "donnees.m" dont on va vous demander le nom. Ce fichier doit etre dans <br>
le répertoire courant. Donnez le nom entre apostrophes et avec le ".m", par défaut, <br>
si vous ne donnez aucun nom de fichier, le fichier "donnees.m" sera utilisé).<br>
- Les grandeurs de sorties seront : P_i, P_s, P_o, data,T.</p>
<p>3.3) Comment écrire un script<br>
------------------------------------------<br>
De manière générale chaque fonction codée pourra etre utilisée seule, sans<br>
interfaces graphiques, cela est pratique pour écrire des scripts faisant un grand <br>
nombre de calculs.<br>
Prendre exemple sur les scripts regroupés dans le répertoire script.<br>
<br>
Principe :<br>
- Lancer "donnees.m" pour définir les paramètres par défauts (source, agrégat,choix<br>
du post-traitement).<br>
- Modifier les paramètres qui n'ont pas la valeur souhaitée.<br>
- Faire une boucle sur un ou plusieurs paramètres que vous souhaités faire varier.<br>
- Lancer "T1.m" pour calculer les coefficients de l'onde diffusée.<br>
- Lancer "PostTraitement.m" pour calculer les grandeurs physiques souhaitées.<br>
- Ecrire la fonction d'affichage de vos réultats.</p>
<p>3.4) Comment décrire une onde incidente quelconque <br>
----------------------------------------------------------------------------<br>
- Ecrire une fonction ".m" du type : <br>
[Nbspheres,R,n2,ConducInf,sigma2,d,eta,psi]=f(lambda)<br>
- Donnez le nom du fichier .m ou .mat décrivant votre agrégat dans l'interface.</p>
<p>En cas de problème, un protocole de tests existe : <a href="./prog/TestProg.htm">TestProg.htm</a></p>
<p><a name="fichiers"></a>4) Rôle de chaque fichier .m :<br>
_______________________________<br>
Pour avoir le prototype de chaque fonction, utiliser la fonction matlab <em>help</em> suivi du nom de la fonction.<br>
Les fonctions ont été regroupées en trois groupes correspondant aux 3 parties de la structure du programme. </p>
<p><strong>Groupe 1 : Lancement, interface et récupération des données </strong><br>
- diffusion.m : démarrage du logiciel<br>
Il se fait
en mode ligne de commande sous Matlab et propose dès le début de lancer l'interface graphique.<br>
<br>
Dans le répertoire "prog" :<br>
- interface_coeff.m : interface graphique permettant d'entrer les caractéristiques <br>
du système. (lancé par diffusion.m)<br>
- interface_coeff.fig : fichier généré par matlab et utilisé par interface_coeff.m<br>
- interface_Post_Traitement.m : interface graphique permettant de choisir le post-traitement (lancé par diffusion.m)<br>
- interface_Post_Traitement.fig : fichier généré par matlab et utilisé par interface_Post_Traitement.fig<br>
- callback_interface.m : gère les actions à mener quand la personne lance le calcul depuis l'interface<br>
- acquisition_coeff.m : récupère les données concernant le système dans l'interface<br>
- acquisition_post.m : récupère les données concernant l'exploitation des résultats dans l'interface<br>
- donnees.m : contient les valeurs par défaut utilisés par le programme<br>
- exclu.m : Gere l'exclusion des choix dans l'interface (utilisé dans les callback de certains objets de l'interface)</p>
<p><strong>Groupe 2 : Calcul de la T-matrice et des coefficients de décomposition des ondes</strong><br>
- T1.m : programme central lancé après l'acquisition des données de l'interface<br>
- DecompositionOndePlane : calcul des coefficients de l'onde incidente quand celle-ci est plane monochromatique <br>
- T1sphere.m : calcule la T-matrice dans le cas de la diffusion par une sphère<br>
- T2spheres.m : calcule la T-matrice dans le cas de la diffusion par deux sphères<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -