{ "cells": [ { "cell_type": "markdown", "id": "425543e3", "metadata": {}, "source": [ "# SOQCS Example 6: Simulation of a delay in the middle of a circuit." ] }, { "cell_type": "markdown", "id": "10e82c3b", "metadata": {}, "source": [ "<p style='text-align: justify;'> We consider a circuit made of two ideal balanced beamsplitters with two photons of exponential shape in each of the input channels as a theoretical representation of the two photons interference experiment reported in ref.[1]. We consider a delay dt in one of the channels between the two beamsplitters and we print the probability of these two photons to be measured at different times in the circuit output. In this case we configure an ideal detector and circuit therefore the result only depends on the photon distinguishability. </p>\n", "<br>\n", "<br>\n", "[1] Santori, C., Fattal, D., Vučković, J. et al. <i>Indistinguishable photons from a single-photon device.</i> <b> Nature 419, 594:597</b> (2002)" ] }, { "cell_type": "markdown", "id": "200a1b67", "metadata": {}, "source": [ "<div>\n", "<img src=\"./image/live6_device.png\" width=\"500\"/>\n", "</div>\n", "<p style='text-align: center;'> <b>Experiment device as described in fig. 3a of ref. [1] </b></p>" ] }, { "cell_type": "markdown", "id": "ddce14a8", "metadata": {}, "source": [ "<div>\n", "<img src=\"./image/live6_circuit.png\" width=\"700\"/>\n", "</div>\n", "<p style='text-align: center;'> <b>Simulated circuit </b></p>" ] }, { "cell_type": "code", "execution_count": 1, "id": "3fe7fec1", "metadata": {}, "outputs": [], "source": [ "import soqcs # Import SOQCS\n", "import numpy as np # Import numpy\n", "import math # Impart math" ] }, { "cell_type": "markdown", "id": "7cc7efe4", "metadata": {}, "source": [ "Set up simulation constants" ] }, { "cell_type": "code", "execution_count": 2, "id": "661838bb", "metadata": {}, "outputs": [], "source": [ "# Simulation constants #\n", "N = 50 # Number of points\n", "dtm = 9.0 # Period to be sweeped." ] }, { "cell_type": "markdown", "id": "b9d29473", "metadata": {}, "source": [ "<p style='text-align: justify;'> Next can be bound a piece of code to calculate the probability of two indistinguishable photons to arrive at different times to two detectors when a delay is introduced between two beamsplitters. To do that we add two \"phantom\" photons to the circuit. This is, we initialize the channels zero and one to zero photons at the particular times of interest. Even if no photons are added the packets described by that definition are created in the simulation. This packets are used to calculate p(dt=t2-t1)</p>\n", "\n", "<p style='text-align: justify;'> To use a delay we divide the simulation in four periods of time of 3 time units width. The first one goes from -1.5 to 1.5 time units. A delay will add a fix amount of nx3 time units of delay where\n", "n is as parameters. Multiple delays can be defined in a circuit but their delay times have to be equal or multiples of the smaller. </p>\n", "\n", "<p style='text-align: justify;'> <b>Note: </b> This is not the most\n", "efficient implementation. All the objects have to be recreated for each point calculation. This code is implemented for demonstration purposes therefore it is intended to be simple. </p>" ] }, { "cell_type": "code", "execution_count": 3, "id": "42cf3111", "metadata": {}, "outputs": [], "source": [ "# Imnintalize variables\n", "delta=dtm/(N-1)\n", "sim=soqcs.simulator(1000)\n", "prob=np.zeros(N) \n", "t1=0.0002\n", "# Main loop\n", "for i in range(0,N):\n", " t2=0;\n", " for j in range(0,N):\n", " example = soqcs.qodev(nph=2, # Number of photons \n", " nch=2, # Number of channels\n", " nm=1, # Number of polarizations\n", " ns=4, # Number of packets\n", " np=4, # Number of periods\n", " dtp=3.0, # Period width\n", " clock=3, # Detectors have a clock. (Manual mode. We don't want SOQCS to rearrange the packets)\n", " # Advanced feature. (The user must define the needed packets manually)\n", " R=0, # Number of iterations to calculate detector effects.\n", " loss=False, # Calculation of losses = False\n", " ckind='E') # Use exponential shaped wavefunctions\n", " # Add photons with exponential wavefunctions \n", " # at time t, frequency f and characteristic decay time\n", " p2=example.add_photons(0, 0, t= t2, f = 1.0, w = 0.01);\n", " p1=example.add_photons(0, 1, t= t1, f = 1.0, w = 0.01);\n", " example.add_photons( 1, 0, t=0.001, f = 1.0, w = 0.3);\n", " example.add_photons( 1, 1, t= 3.011,f = 1.0, w = 0.3);\n", " # Circuit\n", " example.beamsplitter(0,1,45.0,0.0);\n", " example.delay(1);\n", " example.beamsplitter(0,1,45.0,0.0);\n", " # Detectors\n", " example.detector(0);\n", " example.detector(1);\n", "\n", " # Run simulator\n", " measured=sim.run(example)\n", "\n", " # Calcualte probability for each bin\n", " dt=t1-t2;\n", " term=[[0 , 1 ],\n", " [0 , 0 ],\n", " [p1, p2],\n", " [1 , 1 ]]\n", "\n", " k=math.floor(dt/delta);\n", " if(k>0): \n", " prob[k]=prob[k]+measured.prob(term,example);\n", " \n", " # Advance time\n", " t2=t2+delta\n", " # Advance time\n", " t1=t1+delta\n" ] }, { "cell_type": "markdown", "id": "c9e93597", "metadata": {}, "source": [ "Normalization of the output" ] }, { "cell_type": "code", "execution_count": 4, "id": "b5c9885f", "metadata": {}, "outputs": [], "source": [ "# Normalization\n", "norm=0.0\n", "time=np.zeros(N) \n", "for k in range(0,N):\n", " norm=max(norm,prob[k])\n", " time[k]=k*delta\n", " \n", "for k in range(0,N):\n", " prob[k]=prob[k]/norm" ] }, { "cell_type": "markdown", "id": "a8b9b861", "metadata": {}, "source": [ "Here we plot the probability as function of delay time dt." ] }, { "cell_type": "code", "execution_count": 5, "id": "c5c4f90d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x360 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Print on screen\n", "soqcs.plot_data([prob],time, 6, 5,'dt', 0, dtm, 4, 'P', 0.0 , 1.0, 3, 11,['b'])\n" ] }, { "cell_type": "markdown", "id": "1563cd68", "metadata": {}, "source": [ "**THIS CODE IS PART OF SOQCS** <br>\n", "\n", "**Copyright:** <br>\n", "Copyright © 2023 National University of Ireland Maynooth, Maynooth University. All rights reserved.\n", "The contents and use of this document and the related code are subject to the licence terms detailed in <a href=\"./assets/LICENCE.TXT\">LICENCE.txt</a>" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }