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