Question regarding generating the squeezed vacuum state via Optical Parametric Oscillation (OPO)

47 views
Skip to first unread message

Theng loo Lim

unread,
Oct 19, 2022, 10:08:27 PM10/19/22
to QuTiP: Quantum Toolbox in Python
Dear all, 

I would like to simulate squeezed vacuum state generated by OPO process, I followed Ref.[1]. First, I defined the OPO Hamiltonian (see Fig. 1), and substituted it into the master equation (see Fig. 2).  I assumed my density matrice to be Fock state. 

Then, I employed Lindblad Master Equation Solver from Qutip to simulate the squeezed vacuum state, and finally I obtained the corresponding Wigner's function (see Fig. 3). My problem is: 
 
I tuned al every parameters in the equation, and used different density matrice such as coherent state, etc, but the corresponding Wigner's function didnt change at all. (In the sense that the function didnt "rotate", or the strength of "squeezing" didnt change ). Perhaps I am still too new in this field, please suggest me some insights to solve this problem. 

I have attached the pdf and ipynb of my code, please let me know if you have any question. 

Thank you very much, 
Theng-Loo

[1] Benito, Mónica, Carlos Sánchez Munoz, and Carlos Navarrete-Benlloch. "Degenerate parametric oscillation in quantum membrane optomechanics." Physical Review A 93.2 (2016): 023846.
Fig1.JPG
OPO_Squeezed_Vacuum_Calculation - Jupyter Notebook.pdf
Fig2.JPG
Fig3.JPG
OPO_Squeezed_Vacuum_Calculation .ipynb

Neill Lambert

unread,
Oct 19, 2022, 11:40:03 PM10/19/22
to qu...@googlegroups.com
hi Theng-Loo,

I had a quick look at your code. I spotted 3  issues:

1) your hamiltonian is non-hermitian because you omitted the complex prefactor (so now H != H.dag()).   you can fix it by just putting the complex prefactor back in 
H = 1.0j*(ps/4)*(a.dag()**2 - (a**2)) #Defining OPO Hamiltonian 

from the equations you sent I guess you were trying to cancel it with the complex factor in -i [H,rho] factor, but qutip uses -i[H,rho].

2) you define the dissipation both in terms of superoperators (with lindblad_dissipator) and c_ops, so when you call mesove() they are getting added twice.  easiest fix is just to remove c_ops from mesolve()

3) Minor thing, but when calculating the wigner function, result.states[N]  return's the state of the system at time times[N],  but N is the cut-off of your Fock space, so it seems a bit arbitrary to look at the
state at that point.  Maybe you want to look at the state at the end of the evolution, for that you can use result.states[-1].
or you can just  directly get the steadystate by using steadystate(LT) instead of running mesolve()

for the parameters, I guess k2p sets the displacement of the cat-like states, so you might either need to increase it a bit, or increase N, to get converged results.


hope this helps

all the best
Neill

--
You received this message because you are subscribed to the Google Groups "QuTiP: Quantum Toolbox in Python" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qutip+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/qutip/3e70b374-95e3-46db-a612-0b7cca8d4f36n%40googlegroups.com.


--
-----------------------------------
Senior Research Scientist
RIKEN, Japan
Research Homepage

Theng loo Lim

unread,
Oct 21, 2022, 9:25:53 PM10/21/22
to QuTiP: Quantum Toolbox in Python
Dear Neill, 

After implementing your first two suggestions, the problems are solved. Thank you so much for your help. I really appreciated it. I will try to use steadstate(LT) later.  

Best regards,
Theng-Loo

Reply all
Reply to author
Forward
0 new messages