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