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

timeline

timeline for simulation

Type:

Timeline

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

timeline

timeline for simulation

Type:

Timeline

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.