def test_spectrum_esfft(): """ correlation: comparing spectrum from es and fft methods """ # use JC model N = 4 wc = wa = 1.0 * 2 * np.pi g = 0.1 * 2 * np.pi kappa = 0.75 gamma = 0.25 n_th = 0.01 a = tensor(destroy(N), qeye(2)) sm = tensor(qeye(N), destroy(2)) H = wc * a.dag() * a + wa * sm.dag() * sm + \ g * (a.dag() * sm + a * sm.dag()) c_ops = [np.sqrt(kappa * (1 + n_th)) * a, np.sqrt(kappa * n_th) * a.dag(), np.sqrt(gamma) * sm] with warnings.catch_warnings(): warnings.simplefilter("ignore") tlist = np.linspace(0, 100, 2500) corr = correlation_ss(H, tlist, c_ops, a.dag(), a) wlist1, spec1 = spectrum_correlation_fft(tlist, corr) spec2 = spectrum_ss(H, wlist1, c_ops, a.dag(), a) assert_(max(abs(spec1 - spec2)) < 1e-3)
def test_spectrum_esfft(): """ correlation: comparing spectrum from es and fft methods """ # use JC model N = 4 wc = wa = 1.0 * 2 * np.pi g = 0.1 * 2 * np.pi kappa = 0.75 gamma = 0.25 n_th = 0.01 a = tensor(destroy(N), qeye(2)) sm = tensor(qeye(N), destroy(2)) H = wc * a.dag() * a + wa * sm.dag() * sm + \ g * (a.dag() * sm + a * sm.dag()) c_ops = [ np.sqrt(kappa * (1 + n_th)) * a, np.sqrt(kappa * n_th) * a.dag(), np.sqrt(gamma) * sm ] with warnings.catch_warnings(): warnings.simplefilter("ignore") tlist = np.linspace(0, 100, 2500) corr = correlation_ss(H, tlist, c_ops, a.dag(), a) wlist1, spec1 = spectrum_correlation_fft(tlist, corr) spec2 = spectrum_ss(H, wlist1, c_ops, a.dag(), a) assert_(max(abs(spec1 - spec2)) < 1e-3)
def _spectrum_fft(H, c_ops, a, b): times = np.linspace(0, 100, 2500) correlation = qutip.correlation_ss(H, times, c_ops, a, b) frequencies, spectrum = qutip.spectrum_correlation_fft(times, correlation) return spectrum, frequencies