In [1]:
require("/home/amit/Downloads/SemVII/QuBase.jl/src/QuBase.jl")
using QuBase
require("/home/amit/Downloads/SemVII/QuDynamics.jl/src/QuDynamics.jl")
using QuDynamics
In [2]:
using PyPlot
In [3]:
wc = 1.0 * 2 * pi # cavity frequency
wa = 1.0 * 2 * pi # atom frequency
g = 0.25 * 2 * pi # coupling strength
kappa = 0.05 # cavity dissipation rate
gamma = 0.15 # atom dissipation rate
use_rwa = true
Out[3]:
In [4]:
# Hamiltonian
idc = QuArray(eye(10))
ida = QuArray(eye(2))
a = tensor(ida, lowerop(10))
sm = tensor(lowerop(2), idc)
if use_rwa
# use the rotating wave approxiation
hamiltonian = wc * a' * a + wa * sm' * sm + g * (a' * sm + a * sm')
else
hamiltonian = wc * a' * a + wa * sm' * sm + g * (a' + a) * (sm + sm')
end
init_state = complex(tensor(statevec(1, FiniteBasis(2)), statevec(6, FiniteBasis(10))))
init_state_dm = complex(init_state*init_state')
tlist = linspace(0., 10., 200)
c_ops = [sqrt(0.1) * a]
Out[4]:
In [5]:
rho = Array(typeof(init_state_dm), length(tlist)-1)
qumcwfen = QuMCWFEnsemble(complex(init_state), 1000)
for i=1:length(tlist)-1
rho[i] = complex(zeros(init_state_dm))
end
In [6]:
for psi0 in qumcwfen
i = 1
mcwf = QuMCWF()
for (t,psi) in QuPropagator(hamiltonian, c_ops, psi0, tlist, mcwf)
rho[i] = rho[i] + (psi*psi')/length(qumcwfen)/norm(psi)^2
i = i + 1
end
end
In [7]:
for i in 1:length(tlist)-1
plot(tlist[i], real(trace(rho[i]*a'* a)), "ro")
plot(tlist[i], real(trace(rho[i]*sm'* sm)), "go")
end
In [ ]: