channel#

Photonic quantum channels

Classes

PhotonLoss([inputs, nmode, wires, cutoff, ...])

Photon loss channel on single mode.

class PhotonLoss(inputs: Any = None, nmode: int = 1, wires: int | list[int] | None = None, cutoff: int | None = None, requires_grad: bool = False)[source]#

Bases: Channel

Photon loss channel on single mode.

This channel couples the target mode $hat{a}$ to the vacuum mode $hat{b}$ using following transformation:

\[\hat{a}_{\text{out}} = \sqrt{T}\hat{a}_{\text{in}} + \sqrt{1-T}\hat{b}_{\text{vac}}\]
Parameters:
  • inputs (Any) – The parameter of the channel. Default: None

  • nmode (int) – The number of modes that the quantum operation acts on. Default: 1

  • wires (int | list[int] | None) – The indices of the modes that the quantum operation acts on. Default: None

  • cutoff (int | None) – The Fock space truncation. Default: None

  • requires_grad (bool) – Whether the parameter is nn.Parameter or buffer. Default: False (which means buffer)

extra_repr() str[source]#
get_matrix_state(theta: Any) Tensor[source]#

Get the local Kraus matrices acting on Fock state density matrices.

See https://arxiv.org/pdf/1012.4266 Eq.(2.4)

init_para(inputs: Any = None) None[source]#

Initialize the parameters.

property t#

Transmittance.

property theta#
update_matrix_state() Tensor[source]#

Update the local Kraus matrices acting on Fock state density matrices.

update_transform_xy() tuple[Tensor, Tensor][source]#

Update the local transformation matrices X and Y acting on Gaussian states.

See https://arxiv.org/pdf/quant-ph/0503237 Eq.(4.19), Eq.(4.20)