from os import sys, path sys.path.append(path.dirname(path.dirname(path.dirname(path.abspath(__file__))))) from simulationManager.papyllon_simulation import PapyllonSimulation from scipy.optimize import fsolve import numpy as np s = PapyllonSimulation(__file__,['wc','g','delta','k','xi','wd']) def parfunc(p): s.set_parameters(p) xi = s.k /1.42 * 10 ** s.xi def equation(A): return A**2 - s.wc**2*xi**2 / ((s.wd**2-(s.wc+s.g**2/np.sqrt(2*s.g**2*(A**2-1)+s.delta**2))**2)**2+s.k**2*s.wd**2) return fsolve(equation, xi)/xi if __name__ == "__main__": s.run(parfunc)
g = jc_parameters[str(s.flux)]["g"] wq = jc_parameters[str(s.flux)]["wq"] xi = 10 ** s.xi * s.kappa /1.42 # construct composite operators a = tensor(destroy(s.N_photons), qeye(2)) sm = tensor(qeye(s.N_photons), sigmam()) # Hamiltonian H = (wq - s.wd) * sm.dag() * sm + (s.wc - s.wd) * a.dag() * a + \ 1j * g * (a.dag() * sm - sm.dag() * a + a * sm - sm.dag() * a.dag()) + xi * (a.dag() + a) # Collapse operators C1 = np.sqrt(2 * s.kappa) * a C2 = np.sqrt(s.gamma) * sm try: # find steady state rhoss = steadystate(H, [C1, C2], method = 'power') # calculate expectation value S11 = expect(a*a.dag(), rhoss) except Exception, e: print "Calculation failed: "+str(e) return -1 return S11 if __name__ == "__main__": s.run(parfunc,debug = False)