star-gs

Literate program for a geometric sensitivity calculation
git clone git://git.meso-star.fr/star-gs.git
Log | Files | Refs | README | LICENSE

commit cc4ae794bd111203ebe82470780044590db1220b
parent 7646adb6f5e69345f1bd07db0645d85c667e944c
Author: Lapeyre Paule <paule.lapeyre@yahoo.fr>
Date:   Wed,  4 Jan 2023 12:13:07 -0500

Fin de rédaction de ann décomposition et ann flux

Rédaction de l'annexe décomposition, en ajoutant les modèles pour alpha,
beta et u. Rédaction de l'annexe sur la contribution du flux à prendre
en compte pour le calcul des différences finies : la partie de la source
radiative qui est réfléchie par la paroi spéculaire est l'unique
contribution au flux qui est perturbée lors d'un modification du
paramètre géométrique. On réutilise la statistique des chemins du
problème couplé puisqu'elle est identique a celle des chemins radiatifs
réfléchis.

Todo : Parler de l'initialisation des poids.

Diffstat:
Msrc/sgs_compute_sensitivity_translation.nw | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 74 insertions(+), 16 deletions(-)

diff --git a/src/sgs_compute_sensitivity_translation.nw b/src/sgs_compute_sensitivity_translation.nw @@ -102,12 +102,14 @@ le récepteur et s'exprime: \begin{equation} \varphi = \int_{\S_{recepteur}} dS \int_{\mathcal{H}} d\vec{\omega} \vec{\omega} \cdot \vec{n} L(\vec{x},\vec{\omega},\PI) +\label{eq:flux} \end{equation} On s'intéresse à la sensibilité de ce flux par rapport à la variation de la position de la paroi spéculaire: \begin{equation} \partial_{\PI}\varphi = \int_{\S_{recepteur}} dS \int_{\mathcal{H}} d\vec{\omega} \vec{\omega} \cdot \vec{n} \partial_{\PI} L(\vec{x},\vec{\omega},\PI) +\label{eq:sensib_flux} \end{equation} Pour évaluer le flux $\varphi$ nous avons besoin de connaître la luminance $ L(\vec{x},\vec{\omega},\PI)$ , dans toutes les directions entrantes et en tout @@ -662,7 +664,9 @@ Le poids de sensibilité correspond à la contribution portée par le chemin du problème couplé, soit les sources de dérivées spatiales propagées jusqu'à la paroi du haut puis intégrées dans les sources de sensibilité propagées ensuite vers le récepteur. Cette contribution est ensuite multipliée par la surface -$S_r$ et l'hémisphère $\PI$ échantillonnées. +$S_r$ et l'angle $\pi$ ([[PI]]) étant donné l'échantillonnage des densités de +probabilités de la position sur la surface et de la direction dans l'hémisphère +sortante de la paroi. <<calculer le poids de sensibilité>>= /* Calcul de la contribution du chemin couplé */ @@ -766,6 +770,15 @@ de commande). \paragraph{TODO} À écrire qd on aura le programme fonctionnel. +\paragraph{temp} Au delà du simple calcul de sensibilité nous proposons ici une +vérification des résultats par le calcul de différences finies. La +différentiation est effectuée à partir des estimations du flux reçu par le +capteur pour différente valeur du paramètre géométrique $\PI$, soit pour +différentes hauteurs de la paroi spéculaire. Le calcul du poids associé au +calcul du flux est décrit en annexe \ref{flux}. + + + \appendix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -862,22 +875,31 @@ L(\vec{x},\vec{\omega}_{spec},\PI) \\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Décomposition du vecteur de déformation} -Dans le modèle de seniblité la déformation est caractérisée par le vecteur de +Dans le modèle de sensiblité la déformation est caractérisée par le vecteur de déformation $\vec{\chi}$. La condition à la limite de sensibilité dépend alors -de la dérivée spatiale $\partial_{1,\vec{\chi}}I$ sortant de la frontière. Le -champs de luminance n'étant pas connu il n'existe pas de solution à cette -dérivée. Nous choisissons donc de décomposer la direction $\vec{\chi}$ en deux -directions distincte, une direction tangente à la frontière $\vec{u}$ et la -direction de transport $\vec{\omega}$. Ainsi la dérivée de I selon $\vec{\chi}$ -devient une composition de dérivées de I le long de la paroi (où la luminance -est connue) et le long de la direction de transport (retrouvant ainsi le terme -de transport de l'ETR). +de la dérivée spatiale $\partial_{1,\vec{\chi}}I$ (équation \ref{eq:clsensib}). +Le champs de luminance n'étant pas connu il n'existe pas de solution analytique +à cette dérivée. À la frontière nous avons donc choisi de décomposer la +direction $\vec{\chi}$ ([[chi]]) en deux directions distinctes, une direction tangente à +la frontière $\vec{u}$ ([[u]]) et la direction de transport $\vec{\omega}$ ([[omega]]). Ainsi la +dérivée de I selon $\vec{\chi}$ devient une composition de dérivées de I le +long de la paroi (sur laquelle la luminance est connue) et le long de la +direction de transport (retrouvant ainsi le terme de transport de l'ETR). La décomposition de $\vec{\chi}$ s'écrit : \begin{equation} \vec{\chi} = \alpha \vec{\omega} + \beta \vec{u} \label{eq:chi_decomp} \end{equation} +avec $\alpha$ ([[alpha]]) et $\beta$ ([[beta]]) les coefficients issus de la +projection de $\vec{\chi}$ sur $\vec{n}$ ([[normal]]) et $\vec{u}$. Plus de +précisions sur la base non-orthogonale utilisée pour cette décomposition seront +trouvées dans \cite{}. Ici nous en donnons les résultats : +\begin{equation} +\alpha = \frac{\vec{\chi}.\vec{n}}{\vec{\omega}.\vec{n}} \ \; \quad \beta = +\|\vec{chi} - \alpha \vec{\omega} \| \ \; \quad \vec{u} = \frac{\vec{chi} - +\alpha \vec{\omega}}{\beta} +\end{equation} Ce qui permet d'obtenir : \begin{equation} @@ -920,20 +942,56 @@ decomposition % Annexe "luminance" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Calcul de la contribution de la luminance qui dépend de $\PI$} +\label{flux} +\paragraph{} +Le flux reçu par le capteur est décrit par l'équation \ref{eq:flux}. Étant +donné la configuration radiative de notre problème, la luminance +$L(\vec{x},\vec{\omega},\PI)$ incidente au récepteur ne dépend que de deux +types de chemins de transports de la source radiative qui est émise par la +paroi de droite : +\begin{itemize} +\item soit la source est transportée directement depuis la paroi de droite +jusqu'au récepteur, +\item soit la source est transportée en direction de la paroi spéculaire et est +ensuite réfléchie jusqu'à atteindre le récepteur. +\end{itemize} +Dans notre configuration le paramètre géométrique $\PI$ n'a d'influence que sur +la hauteur de la paroi spéculaire. Ainsi, la contribution radiative de la +source émise par la paroi de droite, transportée directement vers le +récepteur, reste identique pour toutes valeurs de $\PI$ (c'est à dire quelle que +soit la hauteur de la paroi spéculaire). Du point de vue de la sensibilité +cette contribution n'aura donc aucune influence. -\paragraph{TODO} Renommer [[weight]] car on ne calcule pas vraiment une -luminance mais la seule partie de la luminance qui dépend de $\PI$, dit -autrement la seule partie de la luminance qui compte pour la sensibilité. Elle -pourra donc être utilisé pour vérification par différences finies. +\paragraph{} +En pratique cela signifie que, en vue du calcul des différences finies, le +calcul par Monte-Carlo du flux au récepteur n'est pas entièrement nécessaire. +Nous pouvons nous contenter d'estimer l'unique partie du flux qui sera +perturbée par une variation de $\PI$, soit les contributions portées par les +chemins réfléchis par la paroi spéculaire. +En terme d'algorithme nous pouvons donc réutiliser les chemins déjà +échantillonnés pour le problème couplé puisque leur statistique correspond +exactement à celle d'un chemin émis par la paroi de droite et réfléchi par la +paroi du haut. + +Le poids ([[weight_flux_part_spec]]), qui correspond à la partie du flux venant +de la réflection sur la paroi spéculaire, est donc calculé au même moment que +celui de la sensibilité. <<calcul du poids>>= - weight = Sb * rho * PI * get_Sr_area(scn); + weight_flux_part_spec = Sb * rho * PI * get_Sr_area(scn); @ <<renvoyer le poids>>= - w[1] = weight; + w[1] = weight_flux_part_spec; @ +De plus il est également initialisé en même temps que celui de la sensibilité. +De cette manière toutes les chemins réfléchis qui n'atteignent pas le récepteur +seront comptés comme une contribution nulle. + +\paragraph{TODO} Initialisation du poids du flux au même endroit que +l'initialisation de celui de la sensib. + \section{Fonction de calcul} \paragraph{}