elcocodrilotito

Input output

Jul 9th, 2024
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import qutip as qt
  4. from scipy.integrate import quad
  5.  
  6. def u(t):
  7.     sigma = 2/gamma
  8.     return np.exp(-t**2/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))
  9.  
  10. def v(t):
  11.     sigma = 2/gamma
  12.     return np.exp(-t**2/(2*sigma**2))/(sigma*np.sqrt(2*np.pi))
  13.  
  14. def integrandu(t):
  15.     return np.abs(u(t))**2
  16.  
  17. def integrandv(t):
  18.     return np.abs(v(t))**2
  19.  
  20.  
  21. def gu(ti):
  22.     return np.conj(u(ti))/np.sqrt(1-quad(integrandu, t[0], ti)[0])
  23.  
  24. def gv(ti):
  25.     return np.conj(v(ti))/np.sqrt(quad(integrandv, t[0], ti)[0])
  26.  
  27. gamma = 2*np.pi*1
  28. wc = 2*np.pi*484115/242
  29.  
  30. t = np.linspace(0, 12*1/gamma, 10000)
  31.  
  32.  
  33. psi0 = qt.tensor(qt.basis(2, 1), qt.basis(2, 0), qt.basis(2, 0))
  34. rho0 = psi0*psi0.dag()
  35.  
  36. au = qt.tensor(qt.destroy(2), qt.qeye(2), qt.qeye(2))
  37. c = qt.tensor(qt.qeye(2), qt.destroy(2), qt.qeye(2))
  38. av = qt.tensor(qt.qeye(2), qt.qeye(2), qt.destroy(2))
  39. L0 = list(np.zeros(np.shape(t)))
  40. for k, ti in enumerate(t):
  41.     L0[k] = np.sqrt(gamma)*c+np.conj(gu(ti))*au+np.conj(gv(ti))*av
  42.  
  43.  
  44. Hs = wc*c.dag()*c
  45. H = list(np.zeros(np.shape(t)))
  46. for k, ti in enumerate(t):
  47.     cascade = (np.sqrt(gamma)*gu(ti)*au.dag()*c+
  48.                 np.sqrt(gamma)*gv(ti)*c.dag()*av+
  49.                 gv(ti)*np.conj(gv(ti))*au.dag()*av)
  50.     cascade = (1j/2)*(cascade-cascade.dag())
  51.     H[k] = Hs+cascade
  52.  
  53.  
  54. c_ops = [L0]
  55. e_ops = [au.dag()*au, c.dag()*c, av.dag()*av]
  56.  
  57. output = qt.mesolve(H, rho0, t, L0, e_ops)
  58.  
  59. plt.plot(t, output.expect[0])
  60. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment