Specialized Components

Drivers and control

class CurrentDriver(AWG: ArbitaryWaveGenerator, name: str = 'default_current_driver')[source]

Bases: TimeComponent

CurrentDriver class

set(modulation_OFF: ArbitaryWave | tuple[ArbitaryWave, ...], modulation_ON: ArbitaryWave | tuple[ArbitaryWave, ...] | None = None, modulation_function: ArbitaryWave | None = None)[source]

CurrentDriver set method

simulate(clock: Clock)[source]

CurrentDriver simulate method

output_port(kwargs: dict = {})[source]

CurrentDriver output port method

Lasers

class Laser(laser_wavelength: float | None = None, name: str = 'default_laser')[source]

Bases: PhysicalComponent

Laser class

photon_number: float

photon number data for Laser

carrier: float

carrier data for Laser

phase: float

phase data for Laser

current: float

current data for Laser

set_noise(Fn_t: NoNoise, Fs_t: NoNoise, Fphi_t: NoNoise)[source]

Laser set noise method

set_slave_Laser(slave_locked: bool = True)[source]

Laser set master laser method

simulate(clock: Clock, current: float, photon: Photon | tuple[Photon, ...] | None = None)[source]

Laser simulate method

input_port()[source]

Laser input port method

output_port(kwargs: dict = {})[source]

Laser output port method

Interferometers

class AsymmetricMachZehnderInterferometer(clock: Clock, time_delay: float, splitting_ratio_ti: float = 0.5, splitting_ratio_tf: float = 0.5, name: str = 'default_asymmetric_machzehnder_interferometer')[source]

Bases: Component

AsymmetricMachZehnderInterferometer class

store_data()[source]

AsymmetricMachZehnderInterferometer store_data method

reset_data()[source]

AsymmetricMachZehnderInterferometer reset_data method

reset(save_simulation: bool = False)[source]

AsymmetricMachZehnderInterferometer reset method

set_beam_splitters(splitting_ratio_ti: float = 0.5, splitting_ratio_tf: float = 0.5)[source]

AsymmetricMachZehnderInterferometer set beam splitters method

set_phases(short_arm_phase: float | None = None, long_arm_phase: float | None = None, short_arm_phase_interval: float | None = None, long_arm_phase_interval: float | None = None)[source]

AsymmetricMachZehnderInterferometer set phases method

simulate(photon: Photon)[source]

AsymmetricMachZehnderInterferometer simulate method

input_port()[source]

AsymmetricMachZehnderInterferometer input port method

output_port(kwargs: dict = {})[source]

AsymmetricMachZehnderInterferometer output port method

display_SPD_data(time_data: ndarray, simulation_keys: tuple[str, ...] | None = None)[source]

AsymmetricMachZehnderInterferometer display_SPD_data method

get_SPD_data()[source]

AsymmetricMachZehnderInterferometer get_SPD_data method

Optical regulators

class VariableOpticalAttenuator(attenuation_dB: float = 0.0, name: str = 'default_variable_optical_attenuator')[source]

Bases: Component

VariableOpticalAttenuator class

set(attenuation_dB: float)[source]

VariableOpticalAttenuator set method

simulate(photon: Photon)[source]

VariableOpticalAttenuator simulate method

input_port()[source]

VariableOpticalAttenuator input port method

output_port(kwargs: dict = {})[source]

VariableOpticalAttenuator output port method

Photon detectors

class SinglePhotonDetector(name: str = 'default_single_photon_detector')[source]

Bases: DataComponent

SinglePhotonDetector class

intensity

intensity data for SinglePhotonDetector

photon_count

photon count data for SinglePhotonDetector

display_data(time_data: ndarray, simulation_keys: tuple[str, ...] | None = None)[source]

SinglePhotonDetector simulate method

simulate(photon: Photon)[source]

SinglePhotonDetector simulate method

input_port()[source]

SinglePhotonDetector input port method

Simple devices

class PhaseSample(phase_delay: float = 0.0, name: str = 'default_phase_sample')[source]

PhaseSample class

set(phase_delay: float, phase_interval: float | None = None)[source]

PhaseSample set method

simulate(photon: Photon)[source]

PhaseSample simulate method

input_port()[source]

PhaseSample input port method

output_port(kwargs: dict = {})[source]

PhaseSample output port method

class Mirror(name: str = 'default_mirror')[source]

Mirror class

set()[source]

Mirror set method

class BeamSplitter(splitting_ratio_t: float = 0.5, name: str = 'default_beam_splitter')[source]

BeamSplitter class

set(splitting_ratio_t: float)[source]

BeamSplitter set method

simulate(photon: Photon, photon_port2: Photon | None = None)[source]

BeamSplitter simulate method

input_port()[source]

BeamSplitter input port method

output_port(kwargs: dict = {})[source]

BeamSplitter output port method