progress.hardware.mps_connection

This module implements a Connection with a source in the middle used to enable Midpoint source protocol between two nodes.

class progress.hardware.mps_connection.MPSConnection(name, length, p_left, p_right=None, p_mid=1.0, num_positions=1, t_clock=1)[source]

Bases: Connection

A quantum connection using a MPSSourceNode in the middle. It implements a high level simulation of the Midpoint source link layer protocols between the two nodes at the edges of this connection. The qubits received through this connection are ready-to-use entangled pairs.

The entangled pairs are in Bell state \(\vert \beta_{00}\rangle\) and the source is placed in the middle. Two fiber channels connect the source output ports to A and B.

Parameters:
namestr

The name of this connection

lengthint, float

The total length of the connection. Each fiber channel is length/2 long.

p_leftfloat

The probability of successfully latching the emitted qubit on the left with the components on that side. It should keep into account the loss probability on the link and the probability of failure at the components, which is due to frequency conversion and partial BSA in the case of standard MS, or due to imperfect nDPD and absorption in the case of AFC-enhanced MS.

p_rightfloat, optional

The probability of successfully latching the emitted qubit on the right with the components on that side. If None, it is set equal to p_left. Defaults to None.

p_midfloat, optional

The probability that the midpoint entangled pair source successfully emits a pair at a given clock cycle. Defaults to 1.

num_positionsint, optional

The number of modes of the repeaters’ quantum memories attached to the link. Defaults to 1.

t_clockint or float, optional

The clock period of the MS protocols. Defaults to 1. [ns]

reset(and_restart=True)[source]

Reset the status of the inner source. Should be called while the inner source is OFF.

Parameters:
and_restartbool, optional

If True, also restarts the inner source, i.e. it sets its status to INTERNAL. Defaults to True.

start()[source]

Sets the status of the inner source to INTERNAL so that it starts producing entanglement.

stop()[source]

Sets the status of the inner source to OFF so that it stops producing entanglement.