B-matrix extension of polarimeter#
Formulate expressions#
Reference subsystem 1 is defined as:
\[\begin{split}
\vec\alpha = \sum_{\nu',\nu,\lambda} A^*_{\nu',\lambda}\vec\sigma_{\nu',\nu} A_{\nu,\lambda} / I_0 \\
\vec\beta = \sum_{\nu,\lambda',\lambda} A^*_{\nu,\lambda'} \vec\sigma_{\lambda',\lambda} A^*_{\nu,\lambda} / I_0 \\
B_{\tau,\rho} = \sum_{\nu,\nu',\lambda',\lambda} A^*_{\nu',\lambda'} \sigma_{\nu',\nu}^\tau A_{\nu,\lambda} \sigma_{\lambda',\lambda}^\rho
\end{split}\]
ref = REFERENCE_SUBSYSTEM
B = tuple(
tuple(
PoolSum(
BUILDER.formulate_aligned_amplitude(vp, λp, 0, 0, ref)[0].conjugate()
* σ[τ][_to_index(vp), _to_index(v)]
* BUILDER.formulate_aligned_amplitude(v, λ, 0, 0, ref)[0]
* σ[ρ][_to_index(λp), _to_index(λ)],
(v, [-half, +half]),
(vp, [-half, +half]),
(λ, [-half, +half]),
(λp, [-half, +half]),
).cleanup()
for ρ in range(4)
)
for τ in range(4)
)
del ref
B = sp.Matrix(B)
Functions and data#
Plots#
Hypothesis:
\[\begin{split}
B_{0,\rho} = \vec\beta B_{00} \\
B_{\tau,0} = \vec\alpha B_{00} \\
B_{00} = I_0
\end{split}\]
Note that \(|\alpha| = |\beta|\):
α_abs = jnp.sqrt(jnp.sum(B_norm[1:, 0] ** 2, axis=0))
β_abs = jnp.sqrt(jnp.sum(B_norm[0, 1:] ** 2, axis=0))
np.testing.assert_allclose(α_abs, β_abs, rtol=1e-14)