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 sequence.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 sequence.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).

class sequence.components.beam_splitter.FockBeamSplitter2(name: str, owner: Node, timeline: Timeline, efficiency: float, photon_counter: int, src_list: list[str])

Class modeling a Fock beam splitter. The ‘2’ for avoiding naming conflicts.

A Fock beam splitter can send a single photon randomly in one of its ports. See https://arxiv.org/abs/2411.11377, Simulation of Quantum Transduction Strategies for Quantum Networks

name

the name

Type:

str

owner

the owner

Type:

Node

timeline

the timeline

Type:

Timeline

efficiency

the efficiency of the beamsplitter

Type:

float

photon_counter

counter for counting photons

Type:

int

src_list

a list of photon source names

Type:

str

add_outputs(outputs: list)

Add outputs, i.e., receivers

Parameters:

outputs (list) – a list of entities, i.e., detectors

get(source: str, photon: Photon) None

Receive photon from two end nodes

init()

Method to initialize entity (abstract).

Entity init methods are invoked for all timeline entities when the timeline is initialized. This method can be used to perform any necessary functions before simulation.