commit 72a6d923727ee7ca79a37870773e597fee9d1c88
parent 077d0899b6675b35f1e3d535b86ffcf57ad15169
Author: Paule Lapeyre <paule.lapeyre@yahoo.fr>
Date: Wed, 2 Nov 2022 17:31:37 +0100
Débute l'écriture du poids MC
Diffstat:
2 files changed, 64 insertions(+), 6 deletions(-)
diff --git a/src/sgs_compute_sensitivity_translation.c b/src/sgs_compute_sensitivity_translation.c
@@ -203,7 +203,7 @@ compute_grad_I
}
static void
-projection
+decomposition
(const double chi[3],
const double normal[3],
const double omega[3],
@@ -299,9 +299,9 @@ realisation
d3_set(normal_e, hit.normal);
d3_minus(dir_spec_e, dir_spec_s);
- projection(V, normal_e, dir_spec_e, &proj_V_e);
- projection(V, normal_s, dir_emit_s, &proj_V_s);
- projection(proj_V_s.u, normal_e, dir_spec_e, &proj_u_e);
+ decomposition(V, normal_e, dir_spec_e, &proj_V_e);
+ decomposition(V, normal_s, dir_emit_s, &proj_V_s);
+ decomposition(proj_V_s.u, normal_e, dir_spec_e, &proj_u_e);
pos_emit_s_2d[X] = pos_emit_s[X];
pos_emit_s_2d[Y] = pos_emit_s[Y];
@@ -328,6 +328,12 @@ realisation
- rho * proj_V_s.beta * proj_u_e.beta * d3_dot(grad_I, proj_u_e.u)
+ rho * proj_V_e.beta * d3_dot(grad_I, proj_V_e.u);
+ /* A retravailler
+ S =
+ - beta * d3_dot(grad_rho, u) * I
+ - rho * beta * beta_u * d3_dot(grad_I, u_e)
+ + rho * beta_X * d3_dot(grad_I, u_ce); */
+
w = I*scn.emit_s_sz[X]*scn.emit_s_sz[Y]*PI; /* Weight */
s = S*scn.emit_s_sz[X]*scn.emit_s_sz[Y]*PI; /* Sensib */
diff --git a/src/sgs_compute_sensitivity_translation.nw b/src/sgs_compute_sensitivity_translation.nw
@@ -462,6 +462,59 @@ dans [[hit1]].
TRACE_RAY(pos_emit_s, dir_spec_s, surf_emit_s, &hit1);
@
+\subsection{Le poids}
+\label{subsec:poids}
+
+\paragraph{}
+Dans le problème couplé la contribution du chemin (poids MC) va s'exprimer à
+travers la condition à la limite de sensibilité (équation \ref{eq:clsensib}) et
+des sources de chacun de ses couplages. Dans notre cas, la sensibilité est
+couplée à deux dérivées spatiales (selon $\vec{\chi}$ et $\vec{u}$) dont les
+sources sont données par les équations \ref{eq:cl_duL_haut},
+\ref{eq:cl_duL_droite}, \ref{eq:cl_dchiL_haut} et \ref{eq:cl_dchiL_droite}. La
+direction $\vec{u}$ est donnée par la décomposition de $\vec{\chi}$ selon la
+normale de la source de sensibilité (ici la normale de la paroi du haut stockée
+dans la variable [[normal_s]]) et selon la direction de propagation
+$\vec{\omega}$ ([[dir_emit_s]]).
+
+<<???>>=
+ decomposition(chi, normal_s, dir_emit_s, &beta, u);
+@
+
+<<decomposition>>=
+static void
+decomposition
+ (const double chi[3],
+ const double normal[3],
+ const double omega[3],
+ double* beta,
+ double u[3])
+{
+ double alpha;
+ ASSERT(chi && normal && omega && beta && u);
+ ASSERT(d3_is_normalized(normal));
+ ASSERT(d3_is_normalized(omega));
+
+ alpha = d3_dot(chi, normal) / d3_dot(omega, normal);
+ u[X] = chi[X] - alpha*omega[X];
+ u[Y] = chi[Y] - alpha*omega[Y];
+ u[Z] = chi[Z] - alpha*omega[Z];
+ *beta = d3_normalize(u, u);
+}
+@
+
+Que ce soit pour la sensibilité (dont la déformation est donnée par
+$\vec{\chi}$) ou pour les dérivée spatiales (dans les directions $\vec{\chi}$ et
+$\vec{u}$), plusieurs étapes de décomposition de $\vec{\chi}$ et de $\vec{u}$
+sont nécessaire pour déterminer $\beta$, $\vec{u}$ (concernant la source de
+sensibilité) et $\beta_{\chi}$, $\vec{u}_{ce}$, $\vec{u}_{cs}$ (pour la dérivée
+spatiale selon $\chi$) $\beta_u$, $\vec{u}_e$, $\vec{u}_s$ (pour la dérivée
+spatiale selon $\vec{u}$.
+
+<<calcul du poids>>=
+@
+
+\subsection{Optimisation \& co}
\paragraph{}
Décrire [[TRACE_RAY]] dans un moment plus info
<<???>>=
@@ -496,8 +549,7 @@ TODO
if(!hit_source(&scn, pos_emit_s, dir_spec_s, &hit, pos_emit_e)) goto exit;
@
-\subsection{Le poids}
-\label{subsec:poids}
+
% TODO mettre le schéma