SOQCS Example 8: Entanglement swapping protocol using a physical quantum dot as a non-ideal Bell emitter.
In the entanglement swapping protocol two pairs of photons are emitted in entangled Bell states. One photon of each pair is sent to a beamsplitter and the result at the output of the beamsplitter is measured. If one photon is detected in each output channel of the beamsplitter then the remaining two photons are also entangled. However, if the two pairs are not ideal Bell states misdetections can happen and the resulting density matrix of the two photons not traveling by the beamsplitter will not be the one of a pure state of a perfectly entangled pair of photons. In this simulation we will perform the protocol in the same way as depicted in [1]. This is, the two photons not traveling trough the beamsplitter will arrive at the detector through the same channel but at different times that here are labeled as 0 and 1. The calculation is repeated with different instances of the state of the QD emitter to capture the effect on the output of the distribution of noise in the input. We consider random noise, cross-dephasing noise and FSS effects on the photons that may give different imperfections to the input state in each emission. The result is compared with the analytical result for the current parameters. Note that we are neglecting pure dephasing effects in this example (this is T2* = 0)
[1] F. Basso Basset et Al. Entanglement swapping with photons generated on demand by a quantum dot. Phys. Rev. Lett., 123:160501 (2019)
[1]:
import soqcs
Simulation constant
[2]:
N = 10000 # Number of outputs to calculate the density matrix
prntn = 1000 # Print a message each 1000
Perform the simulation.
[3]:
# Initialize variables
V=0.0;
sim = soqcs.simulator()
apd = soqcs.dmatrix()
# Main loop
print("Start run of: ",N)
for i in range(0,N,1):
if(i%prntn==0):
print("Running:", i)
example = soqcs.qodev(nph = 4, # Number of photons
nch = 3, # Number of channels
nm = 2, # number of polarization modes
ns = 4, # Number of packets
clock= 1, # Detectors have a clock
ckind='E') # Exponential wavepackets
# First QD cascade
example.add_QD(0, 1,
t1 = 0.0, # Time of bi-exciton XX photon
f1 = 1.0, # Frequency of bi-exciton XX photons
w1 = 1.0, # Characteristic decay time of bi-exciton XX photon
t2 =46.71, # Time of exciton X photon
f2 = 1.0, # Frequency of bi-exciton X photons
w2 = 1.0, # Characteristic decay time of bi-exciton X photon
S = 1.0, # Fine Structure Splitting
k = 0.8, # Ratio of photons that are not due to noise
tss= 1.0, # Characteristic coherence time.
thv= 1.0) # Characteristic cross-dephasing time.
example.add_QD(0, 2,
t1 = 16.0, # Time of bi-exciton XX photon
f1 = 1.0, # Frequency of bi-exciton XX photons
w1 = 1.0, # Characteristic decay time of bi-exciton XX photon
t2 = 46.5, # Time of exciton X photon
f2 = 1.0, # Frequency of bi-exciton X photons
w2 = 1.0, # Characteristic decay time of bi-exciton X photon
S = 1.0, # Fine Structure Splitting
k = 0.8, # Ratio of photons that are not due to noise
tss= 1.0, # Characteristic coherence time.
thv= 1.0) # Characteristic cross-dephasing time.
# Circuit
example.beamsplitter(1,2,45.0,0.0);
# Detectors
example.detector(0)
example.detector(1,1)
example.detector(2,1)
# Run simulation
inputst=example.input() # Obtain input stste
circuit=example.circuit() # Obtain circuit
outputst=sim.run_st(inputst,circuit) # Run the simulation
# Add state to the density matrix
apd.add_state(outputst,example)
# Calculate average photon overlapping
V=V+example.emitted_vis(1,3)
Start run of: 10000
Running: 0
Running: 1000
Running: 2000
Running: 3000
Running: 4000
Running: 5000
Running: 6000
Running: 7000
Running: 8000
Running: 9000
Print average overlapping.
[4]:
print("V: ",V/N,"\n")
V: 0.8105842459701214
Print density matrix. First we must apply post-selection manually because we have used run_st.
[5]:
apd.normalize(); # Normalize
partial=apd.calc_measure(example); # Calculate post-selection
partial.prnt_mtx(3,0.01,example); # Print the matrix
| H(2)0, V(0)0 > 0.2766 0.0000 0.0000 -0.0214
| V(0)0, V(2)0 > 0.0000 0.2272 0.0000 0.0000
| H(0)0, H(2)0 > 0.0000 0.0000 0.2190 0.0000
| H(0)0, V(2)0 > -0.0214 0.0000 0.0000 0.2773
THIS CODE IS PART OF SOQCS
Copyright: Copyright © 2023 National University of Ireland Maynooth, Maynooth University. All rights reserved. The contents and use of this document and the related code are subject to the licence terms detailed in LICENCE.txt