Optical Channel¶
Models for simulation of optical fiber channels.
This module introduces the abstract OpticalChannel class for general optical fibers. It also defines the QuantumChannel class for transmission of qubits/photons and the ClassicalChannel class for transmission of classical control messages. OpticalChannels must be attached to nodes on both ends.
- class src.components.optical_channel.ClassicalChannel(name: str, timeline: Timeline, distance: int, delay=- 1)¶
Optical channel for transmission of classical messages.
Classical message transmission is assumed to be lossless.
- name¶
label for channel instance.
- Type:
str
- distance¶
length of the fiber (in m).
- Type:
float
- delay¶
delay (in ps) of message transmission (default distance / light_speed).
- Type:
float
- set_ends(sender: Node, receiver: str) None ¶
Method to set endpoints for the classical channel.
This must be performed before transmission.
- Parameters:
sender (Node) – node sending classical messages.
receiver (str) – name of node receiving classical messages.
- class src.components.optical_channel.OpticalChannel(name: str, timeline: Timeline, attenuation: float, distance: int, polarization_fidelity: float, light_speed: float)¶
Parent class for optical fibers.
- name¶
label for channel instance.
- Type:
str
- attenuation¶
attenuation of the fiber (in dB/m).
- Type:
float
- distance¶
length of the fiber (in m).
- Type:
int
- polarization_fidelity¶
probability of no polarization error for a transmitted qubit.
- Type:
float
- light_speed¶
speed of light within the fiber (in m/ps).
- Type:
float
- init() None ¶
Method to initialize entity (abstract).
Entity init methods are invoked for all timeline entities when the timeline is initialized. This method can be used to perform any necessary functions before simulation.
- class src.components.optical_channel.QuantumChannel(name: str, timeline: Timeline, attenuation: float, distance: int, polarization_fidelity=1.0, light_speed=0.0002, frequency=80000000.0)¶
Optical channel for transmission of photons/qubits.
- name¶
label for channel instance.
- Type:
str
- attenuation¶
attenuation of the fiber (in dB/m).
- Type:
float
- distance¶
length of the fiber (in m).
- Type:
int
- polarization_fidelity¶
probability of no polarization error for a transmitted qubit.
- Type:
float
- light_speed¶
speed of light within the fiber (in m/ps).
- Type:
float
- loss¶
loss rate for transmitted photons (determined by attenuation).
- Type:
float
- delay¶
delay (in ps) of photon transmission (determined by light speed, distance).
- Type:
int
- frequency¶
maximum frequency of qubit transmission (in Hz).
- Type:
float
- init() None ¶
Implementation of Entity interface (see base class).
- schedule_transmit(min_time: int) int ¶
Method to schedule a time for photon transmission.
Quantum Channels are limited by a frequency of transmission. This method returns the next available time for transmitting a photon.
- Parameters:
min_time (int) – minimum simulation time for transmission.
- Returns:
simulation time for next available transmission window.
- Return type:
int