Light Source¶
Models for simulation of photon emission devices.
This module defines the LightSource class to supply individual photons and the SPDCSource class to supply pre-entangled photons. These classes should be connected to one or two entities, respectively, that are capable of receiving photons.
- class src.components.light_source.LightSource(name, timeline, frequency=80000000.0, wavelength=1550, bandwidth=0, mean_photon_num=0.1, encoding_type={'bases': [((1 + 0j, 0j), (0j, 1 + 0j)), ((0.7071067811865476 + 0j, 0.7071067811865476 + 0j), (- 0.7071067811865476 + 0j, 0.7071067811865476 + 0j))], 'name': 'polarization'}, phase_error=0)¶
Model for a laser light source.
The LightSource component acts as a simple low intensity laser, providing photon clusters at a set frequency.
- name¶
label for beamsplitter instance
- Type:
str
- frequency¶
frequency (in Hz) of photon creation.
- Type:
float
- wavelength¶
wavelength (in nm) of emitted photons.
- Type:
float
- linewidth¶
st. dev. in photon wavelength (in nm).
- Type:
float
- mean_photon_num¶
mean number of photons emitted each period.
- Type:
float
- encoding_type¶
encoding scheme of emitted photons (as defined in the encoding module).
- Type:
Dict[str, Any]
- phase_error¶
phase error applied to qubits.
- Type:
float
- photon_counter¶
counter for number of photons emitted.
- Type:
int
- emit(state_list) None ¶
Method to emit photons.
Will emit photons for a length of time determined by the state_list parameter. The number of photons emitted per period is calculated as a poisson random variable.
- Parameters:
state_list (List[List[complex]]) – list of complex coefficient arrays to send as photon-encoded qubits.
- init()¶
Implementation of Entity interface (see base class).
- class src.components.light_source.SPDCSource(name, timeline, wavelengths=None, frequency=80000000.0, mean_photon_num=0.1, encoding_type={'bases': None, 'name': 'fock'}, phase_error=0, bandwidth=0)¶
Model for a laser light source for entangled photons (via SPDC).
The SPDCLightSource component acts as a simple low intensity laser with an SPDC lens. It provides entangled photon clusters at a set frequency.
- name¶
label for beamsplitter instance
- Type:
str
- frequency¶
frequency (in Hz) of photon creation.
- Type:
float
- wavelengths¶
wavelengths (in nm) of emitted entangled photons. If a list is given, it should contain two elements (corresponding to two modes).
- Type:
List[float]
- linewidth¶
st. dev. in photon wavelength (in nm) (currently unused).
- Type:
float
- mean_photon_num¶
mean number of photons emitted each period.
- Type:
float
- encoding_type¶
encoding scheme of emitted photons (as defined in the encoding module).
- Type:
Dict
- phase_error¶
phase error applied to qubits.
- Type:
float
- emit(state_list)¶
Method to emit photons.
Will emit photons for a length of time determined by the state_list parameter. The number of photons emitted per period is calculated as a poisson random variable.
- Parameters:
state_list (List[List[complex]]) – list of complex coefficient arrays to send as photon-encoded qubits. This is ignored for absorptive and Fock encoding types. For these encoding types only the length of list matters and elements can be arbitrary.
- init()¶
Implementation of Entity interface (see base class).
- set_wavelength(wavelength1=1550, wavelength2=1550)¶
Method to set the wavelengths of photons emitted in two output modes.