# import the required python packages %pylab inline from qutip import * wc = 1.0 * 2 * pi # cavity frequency wa = 1.0 * 2 * pi # atom frequency g = 0.05 * 2 * pi # coupling strength kappa = 0.005 # cavity dissipation rate gamma = 0.05 # atom dissipation rate N = 15 # number of cavity fock states n_th_a = 0.0 # temperature in frequency units use_rwa = True tlist = linspace(0,25,100) # intial state psi0 = tensor(basis(N,0), basis(2,1)) # start with an excited atom # operators a = tensor(destroy(N), qeye(2)) sm = tensor(qeye(N), destroy(2)) # Hamiltonian if use_rwa: H = wc * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() * sm + a * sm.dag()) else: H = wc * a.dag() * a + wa * sm.dag() * sm + g * (a.dag() + a) * (sm + sm.dag()) c_op_list = [] rate = kappa * (1 + n_th_a) if rate > 0.0: c_op_list.append(sqrt(rate) * a) rate = kappa * n_th_a if rate > 0.0: c_op_list.append(sqrt(rate) * a.dag()) rate = gamma if rate > 0.0: c_op_list.append(sqrt(rate) * sm) output = mesolve(H, psi0, tlist, c_op_list, [a.dag() * a, sm.dag() * sm]) figure(figsize=(8,5)) plot(tlist, output.expect[0], label="Cavity") plot(tlist, output.expect[1], label="Atom excited state") legend() xlabel('Time') ylabel('Occupation probability') title('Vacuum Rabi oscillations') show()