symop.polynomial.channels.unitaries.beamsplitter¶
Unitary matrices for basic two-mode linear optical elements.
This module provides small helpers for constructing 2x2 unitary transformations used in linear optical models, such as beamsplitters and loss dilations.
Functions
|
Return a 2×2 beamsplitter unitary. |
|
Return the beamsplitter unitary used in pure-loss dilation. |
- beamsplitter_u(*, t: float, r: float, phi_t: float = 0.0, phi_r: float = 0.0) ndarray¶
Return a 2×2 beamsplitter unitary.
The matrix implements a linear optical beamsplitter under the package Heisenberg convention, where creation operators transform as
\[a^\dagger_{\mathrm{out},k} = \sum_j U_{k j}\, a^\dagger_{\mathrm{in},j}.\]A convenient SU(2) parameterization is
\[\begin{split}U = \begin{pmatrix} t e^{i\phi_t} & r e^{i\phi_r} \\ -r e^{-i\phi_r} & t e^{-i\phi_t} \end{pmatrix},\end{split}\]which is unitary when \(t^2 + r^2 = 1\).
- Parameters:
- Returns:
Complex 2×2 unitary matrix representing the beamsplitter.
- Return type:
ndarray
Notes
This function does not enforce physical constraints. Callers are responsible for ensuring that \(t^2 + r^2 = 1\) if a unitary transformation is required.
- loss_dilation_u(*, eta: float) ndarray¶
Return the beamsplitter unitary used in pure-loss dilation.
A pure-loss channel with transmissivity \(\eta\) can be modeled as a beamsplitter coupling a signal mode to a vacuum environment mode.
The amplitudes are
\[t = \sqrt{\eta}, \quad r = \sqrt{1-\eta}.\]- Parameters:
eta (
float) – Transmissivity of the loss channel in the interval [0, 1].- Returns:
Complex 2×2 unitary implementing the loss dilation.
- Return type:
ndarray