BSM¶
Models for simulating bell state measurement.
This module defines a template bell state measurement (BSM) class, as well as implementations for polarization, time bin, and memory encoding schemes. Also defined is a function to automatically construct a BSM of a specified type.
- class src.components.bsm.AbsorptiveBSM(name, timeline, phase_error=0, detectors=None)¶
Class modeling a BSM device for absorptive quantum memories.
Measures photons and manages entanglement state of entangled photons.
- name¶
label for BSM instance
- Type:
str
- class src.components.bsm.BSM(name, timeline, phase_error=0, detectors=None)¶
Parent class for bell state measurement devices.
- name¶
label for BSM instance.
- Type:
str
- phase_error¶
phase error applied to measurement.
- Type:
float
- resolution¶
maximum time resolution achievable with attached detectors.
- Type:
int
- abstract get(photon, **kwargs)¶
Method to receive a photon for measurement (abstract).
- Parameters:
photon (Photon) – photon to measure.
- init()¶
Implementation of Entity interface (see base class).
- notify(info: Dict[str, Any])¶
Method to notify all attached observers of an update.
- abstract trigger(detector: Detector, info: Dict[str, Any])¶
Method to receive photon detection events from attached detectors (abstract).
- Parameters:
detector (Detector) – the source of the detection message.
info (Dict[str, Any]) – the message from the source detector.
- update_detectors_params(arg_name: str, value: Any) None ¶
Updates parameters of attached detectors.
- class src.components.bsm.PolarizationBSM(name, timeline, phase_error=0, detectors=None)¶
Class modeling a polarization BSM device.
Measures incoming photons according to polarization and manages entanglement.
- name¶
label for BSM instance.
- Type:
str
- phase_error¶
phase error applied to measurement.
- Type:
float
- get(photon, **kwargs)¶
See base class.
This method adds additional side effects not present in the base class.
- Side Effects:
May call get method of one or more attached detector(s). May alter the quantum state of photon and any stored photons.
- init()¶
Implementation of Entity interface (see base class).
- class src.components.bsm.SingleAtomBSM(name, timeline, phase_error=0, detectors=None)¶
Class modeling a single atom BSM device.
Measures incoming photons and manages entanglement of associated memories.
- name¶
label for BSM instance
- Type:
str
- resolution¶
maximum time resolution achievable with attached detectors
- Type:
int
- get(photon, **kwargs)¶
See base class.
This method adds additional side effects not present in the base class.
- Side Effects:
May call get method of one or more attached detector(s). May alter the quantum state of photon and any stored photons, as well as their corresponding memories.
- class src.components.bsm.TimeBinBSM(name, timeline, phase_error=0, detectors=None)¶
Class modeling a time bin BSM device.
Measures incoming photons according to time bins and manages entanglement.
- name¶
label for BSM instance
- Type:
str
- get(photon, **kwargs)¶
See base class.
This method adds additional side effects not present in the base class.
- Side Effects:
May call get method of one or more attached detector(s). May alter the quantum state of photon and any stored photons.
- src.components.bsm.make_bsm(name, timeline, encoding_type='time_bin', phase_error=0, detectors=[])¶
Function to construct BSM of specified type.
- Parameters:
name (str) – name to be used for BSM instance.
timeline (Timeline) – timeline to be used for BSM instance.
encoding_type (str) – type of BSM to generate (default “time_bin”).
phase_error (float) – error to apply to incoming qubits (default 0).
detectors (List[Dict[str, any]) – list of detector objects given as dicts (default []).