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

timeline

timeline for simulation

Type:

Timeline

detectors

list of attached photon detection devices (length 2).

Type:

List[Detector]

trigger(detector: Detector, info: Dict[str, Any])

See base class.

This method adds additional side effects not present in the base class.

Side Effects:

May send a further message to any attached entities.

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

timeline

timeline for simulation.

Type:

Timeline

phase_error

phase error applied to measurement.

Type:

float

detectors

list of attached photon detection devices.

Type:

List[Detector]

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

timeline

timeline for simulation.

Type:

Timeline

phase_error

phase error applied to measurement.

Type:

float

detectors

list of attached photon detection devices.

Type:

List[Detector]

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

trigger(detector: Detector, info: Dict[str, Any])

See base class.

This method adds additional side effects not present in the base class.

Side Effects:

May send a further message to any attached entities.

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

timeline

timeline for simulation

Type:

Timeline

detectors

list of attached photon detection devices

Type:

List[Detector]

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.

trigger(detector: Detector, info: Dict[str, Any])

See base class.

This method adds additional side effects not present in the base class.

Side Effects:

May send a further message to any attached entities.

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

timeline

timeline for simulation

Type:

Timeline

detectors

list of attached photon detection devices

Type:

List[Detector]

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.

trigger(detector: Detector, info: Dict[str, Any])

See base class.

This method adds additional side effects not present in the base class.

Side Effects:

May send a further message to any attached entities.

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