Esempio n. 1
0
# Measure a quantum swap between the two qubits and perform a tomography of the resulting states.
# Before you run this script, make sure that the Rabi pulses for both qubits are calibrated!
import sys
from instruments import *
from config.startup import *

importModule("scripts.state_tomography.state_simulation")


def measureSwapSequence(
    swapDuration=0,
    pulseHeight=0,
    delayBeforeTomography=0,
    measurements=["zz"],
    averaging=100,
    state=[[0, 0], [math.pi, 0]],
    piLength=0,
    tomographyLength=0,
    tomographyDelay=0,
    xyRotation=0,
    measurementRotations=None,
    use12Pulse=False,
    alpha=0,
    beta=0,
    zrot=0,
):

    f_sb1 = qubit1.parameters()["pulses.xy.f_sb"]
    f_sb2 = qubit2.parameters()["pulses.xy.f_sb"]

    from instruments.qubit import PulseSequence
    rho = vectorizeRho(adjoint(state) * state)

    rhos = integrate(rho, lambda t: LL(t, signs=signs), times, dt=0.01)
    for i in range(0, len(rhos)):
        child.set(t=times[i])
        rho = devectorizeRho(rhos[i])
        for j in range(0, len(rho)):
            for k in range(0, len(rho)):
                child.set(**{str(j + 1) + str(k + 1): rho[j, k]})
        child.commit()
    child.parameters()["defaultPlot"] = [["t", "11"], ["t", "22"], ["t", "33"],
                                         ["t", "44"]]
    rhosvec.append(rhos)
##We plot the results of the simulation...
from config.startup import importModule
importModule("scripts.state_tomography.plot_density_matrix")
from scripts.state_tomography.plot_density_matrix import *
figure("grover simulation")
clf()
k = 0
for rhos in rhosvec:
    subplot(4, 4, 1 + k * 4)
    plotDensityMatrix(devectorizeRho(rhos[0]), figureName=None, annotate=False)
    subplot(4, 4, 2 + k * 4)
    plotDensityMatrix(devectorizeRho(rhos[t1 + 1]),
                      figureName=None,
                      annotate=False)
    subplot(4, 4, 3 + k * 4)
    plotDensityMatrix(devectorizeRho(rhos[t1 + t2 + t3 + 1]),
                      figureName=None,
                      annotate=False)
	state = state/norm(state)
	rho = vectorizeRho(adjoint(state)*state)

	rhos = integrate(rho,lambda t:LL(t,signs = signs),times,dt = 0.01)
	for i in range(0,len(rhos)):
		child.set(t = times[i])
		rho = devectorizeRho(rhos[i])
		for j in range(0,len(rho)):
			for k in range(0,len(rho)):
				child.set(**{str(j)+str(k) : rho[j,k]})
		child.commit()
	child.parameters()["defaultPlot"]=[["t","11"],["t","22"],["t","33"],["t","44"]]
	rhosvec.append(rhos)
##We plot the results of the simulation...
from config.startup import importModule
importModule("scripts.state_tomography.plot_density_matrix")
from scripts.state_tomography.plot_density_matrix import *
figure("grover simulation")
clf()
k = 0
for rhos in rhosvec:
	subplot(4,4,1+k*4)
	plotDensityMatrix(devectorizeRho(rhos[0]),figureName = None,annotate = False)
	subplot(4,4,2+k*4)
	plotDensityMatrix(devectorizeRho(rhos[t1+1]),figureName = None,annotate = False)
	subplot(4,4,3+k*4)
	plotDensityMatrix(devectorizeRho(rhos[t1+t2+t3+1]),figureName = None,annotate = False)
	subplot(4,4,4+k*4)
	plotDensityMatrix(devectorizeRho(rhos[-1]),figureName = None,annotate = False)
	show()
	k+=1