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

beamsplitter_u(*, t, r[, phi_t, phi_r])

Return a 2×2 beamsplitter unitary.

loss_dilation_u(*, eta)

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:
  • t (float) – Transmission amplitude.

  • r (float) – Reflection amplitude.

  • phi_t (float) – Phase applied to the transmission amplitude.

  • phi_r (float) – Phase applied to the reflection amplitude.

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