About obtaining Mollow Triplet

469 views
Skip to first unread message

Alperen Tüğen

unread,
Sep 21, 2016, 5:56:49 AM9/21/16
to QuTiP: Quantum Toolbox in Python
Hi all,

Recently, I have tried to verify the simulation results of the article "Phonon mediated off-resonant quantum dot–cavity coupling under resonant excitation of the
quantum dot"(Majumdar et al. PHYSICAL REVIEW B 84, 085309 (2011)) however I could not obtain the desired results in Figure 1 (c,d). My code for blue detuning case is the following :
-------------------------------------------------------------------------------------------------------------------- 
import numpy as np
from qutip import *
import pylab as plt

N =4                         # number of cavity fock states
wc =1.0 * 2 * np.pi     # cavity and atom frequency
g  =20 * 2 * np.pi       # coupling strength
kappa =20*2*np.pi     # cavity dissipation rate

gamma =2*np.pi*1    # atom dissipation rate
gamma_r=2*np.pi*0.5
gamma_d =2*np.pi*0.5

delta =6*kappa
wa = wc+delta
omega =2*np.pi*6
wl= wa                     # resonantly driven QD with Laser
deltawc =wc-wl
deltawa =wa-wl


# Jaynes-Cummings Hamiltonian
a  = tensor(qeye(N), destroy(2))
sm = tensor(destroy(N), qeye(2))

H = deltawc * a.dag() * a + deltawa * sm.dag() * sm + 1j * g * (a.dag() * sm - a * sm.dag()) + omega * (sm + sm.dag())

# collapse operators

n=0 #limit approximation
c_ops =[np.sqrt(2*kappa)*a,np.sqrt(2*gamma)*sm,np.sqrt(2*gamma_r*n)*spre(sm.dag())*spost(a),np.sqrt(2*gamma_r*(n+1))*spre(sm)*spost(a.dag()),np.sqrt(2*gamma_d)*spre(sm.dag())*spost(sm)]


# calculate the correlation function using the mesolve solver, and then fft to
# obtain the spectrum. Here we need to make sure to evaluate the correlation
# function for a sufficient long time and sufficiently high sampling rate so
# that the discrete Fourier transform (FFT) captures all the features in the
# resulting spectrum.
tlist = np.linspace(0.25, 50, 50000)
corr = correlation_2op_1t(H,None,tlist, c_ops,a.dag(),a)
wlist1,spec1 = spectrum_correlation_fft(tlist, corr)


# calculate the power spectrum using spectrum, which internally uses essolve 
# to solve for the dynamics (by default)
wlist2 = np.linspace(0.25, 1.75, 200000) * 2 * np.pi
spec2 = spectrum(H, wlist2, c_ops, a.dag(), a)

# plot the spectra
fig, ax = plt.subplots(1, 1)
ax.plot((wlist1 ) / (kappa*(2 * np.pi)), spec1, 'b', lw=2, label='eseries method')
ax.plot((wlist2 ) / ((2 * np.pi)*kappa), spec2, 'r--', lw=2, label='me+fft method')
ax.legend()
ax.set_xlabel('Frequency')
ax.set_ylabel('Power spectrum')
ax.set_title('Vacuum Mollow Triplet')
ax.set_xlim(-wlist2[0]/(2*np.pi), wlist2[-1]/(2*np.pi))
plt.show()
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For those of you could not reach the article, corresponding master equation of the system is $
\frac{\mathrm{d} }{\mathrm{d} t}{\rho}=-i[H,\rho]+2\kappa L(a)+2\gamma L(\sigma) + 2\gamma_rn L(\sigma^{\dagger}a)+2\gamma_r(n+1) L(\sigma a^{\dagger})
$
and the corresponding Hamiltonian is $ H = \Delta w_ca^{\dagger}a+\Delta w_a\sigma^{\dagger}\sigma+ig(a^{\dagger}\sigma-a\sigma^{\dagger})+\Omega(\sigma+\sigma^{\dagger})\\ where\\ \Delta w_c = w_c-w_l\ \\ \Delta w_a = w_a-w_l \\ w_a = QD \ Frequency \\ w_c = Cavity \ Frequency \\ w_l = Laser \ Driving \ Frequency \\ g = coherent \ interaction \ strength \ between \ QD\ and \ Cavity \\
a = annihilation \ operator \ for \ Cavity \ Mode \\
\sigma= lowering \ operator \ for \ QD \ Transitions \\ \Omega = Rabi \ Frequency \ of \ driving \ the \ laser $ 

 Expected graph is attached. 

Can anyone help me about whether my code has structural problem(s) cause(s) modeling the system in the paper  to fail ? 

Best Regards,
Alperen

Screenshot_2.png

Andrew M.C. Dawes

unread,
Sep 21, 2016, 11:36:08 PM9/21/16
to qu...@googlegroups.com
Alperen,

I am a big fan of repeating analyses from published papers as a way to demonstrate the use QuTip so I’m always up for trying these things out. I haven’t had much time to tinker with this but in my early try, I found the following:

First, I think you swapped the labels in the plot, the wlist1 data comes from the mesolver and fft but is labeled with the eseries label.

Second, the eseries data appears to at least be close to what is expected. The huge scale of the other data makes it hard to see the small features of the eseries data set. Looking at only that set (and changing the axis scale a bit) you can see some features from the paper. I’ve pushed a notebook with my changes to gist:


I’ll keep tinkering as I don’t have an immediate answer about why the mesolve approach breaks.

Andy

--
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.
For more options, visit https://groups.google.com/d/optout.
<Screenshot_2.png>

Message has been deleted

Kevin Fischer

unread,
Oct 13, 2016, 5:28:35 PM10/13/16
to QuTiP: Quantum Toolbox in Python
Hi Alperen,

The effective phonon transfer processes are dissipative, so the correct collapse operators are (changes in red):

c_ops =[np.sqrt(2*kappa)*a,
             np.sqrt(2*gamma)*sm,
             np.sqrt(2*gamma_r*n)*sm.dag()*a,
             np.sqrt(2*gamma_r*(n+1))*sm*a.dag(),
             np.sqrt(2*gamma_d)*sm.dag()*sm]

Using the spre/post super-operators is only necessary if you're trying to model some explicitly coherent effect in the dissipator term, ex. simulations with some non-Hermitian Hamiltonian.

Kevin
Reply all
Reply to author
Forward
0 new messages