Beam Splitter

Models for simulation of a polarization beam splitter.

This module defines the class BeamSplitter, which is used for simulating polarization beam splitters. The beam splitter receives photons with polarization encoding and forwards photons to one of two attached receivers (which can be any entity).

class src.components.beam_splitter.BeamSplitter(name: str, timeline: Timeline, fidelity=1)

Class modeling a polarization beamsplitter.

Simulates operation of a polarization beam splitter (PBS). The BeamSplitter class can be configured to measure polarization in different bases at different times.

name

label for beamsplitter instance.

Type:

str

timeline

timeline for simulation.

Type:

Timeline

fidelity

probability of transmitting a received photon.

Type:

float

start_time

start time (in ps) of photon interaction.

Type:

int

frequency

frequency with which to switch measurement bases.

Type:

float

basis_list

0/1 indices of measurement bases over time.

Type:

List[int]

get(photon, **kwargs) None

Method to receive a photon for measurement.

Parameters:

photon (Photon) – photon to measure (must have polarization encoding)

Side Effects:

May call get method of one receiver.

init() None

Implementation of Entity interface (see base class).

set_basis_list(basis_list: List[int], start_time: int, frequency: float) None

Sets the basis_list, start_time, and frequency attributes.

class src.components.beam_splitter.FockBeamSplitter(name, timeline, fidelity=1)

WIP

get(photon, **kwargs) None

Method for an entity to receive a photon.

If entity is a node, may forward to external quantum channel. Must be overwritten to be used, or will raise exception.

Parameters:
  • photon (Photon) – photon received by the entity.

  • **kwargs – other arguments required by a particular hardware component.

init() None

Implementation of Entity interface (see base class).