Hello Arpita,
I believe that pylcp can handle this case. I would start with the STIRAP example: https://python-laser-cooling-physics.readthedocs.io/en/latest/examples/basics/08_stirap.html. You can then add another H_0 block, (say ‘d’), by hand and couple it to the excited state by adding a corresponding d_q_block (this is all in the 2nd cell of the example). As long as there is no laser coupling ‘d->e’, the system should behave in the way that you want.
If you need a more complicated level structure that, say, includes hyperfine couplings, the approach of adding a new manifold should still work. However, it’ll be a bit more cumbersome to implement.
Daniel
--
You received this message because you are subscribed to the Google Groups "pylcp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
pylcp+un...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/pylcp/5e22181e-e22a-41fe-8bfe-23db239a827an%40googlegroups.com.
For more options, visit
https://groups.google.com/d/optout.
Hello Arpita,
I just went through your code and have two suggestions:
fig, ax = plt.subplots(2, 1, figsize=(3.25, 2.))
linespecs = ['-', '--', '-.',':']
labels = ['gg','rr','ll','ee']
for ii in range(4):
factor = 10**-np.ceil(np.log10(np.amax(np.real(sol1.rho[ii, ii]))))
ax[0].plot(sol1.t/1e3, factor*np.real(sol1.rho[ii, ii]),
linespecs[ii], color='C%d'%ii, linewidth=0.75,
label='$\\rho_{%s}$'%labels[ii] if factor==1. else '$10^{%d}\\rho_{%s}$'%(np.log10(factor),labels[ii]))
factor = 10**-np.ceil(np.log10(np.amax(np.real(sol2.rho[ii, ii]))))
ax[1].plot(sol2.t/1e3, factor*np.real(sol2.rho[ii, ii]),
linespecs[ii], color='C%d'%ii, linewidth=0.75,
label='$\\rho_{%s}$'%labels[ii] if factor==1. else '$10^{%d}\\rho_{%s}$'%(np.log10(factor),labels[ii]))
[ax[ii].set_ylabel('$\\rho_{ii}$') for ii in range (2)];
[ax[ii].set_xlim((0, 1)) for ii in range(2)];
ax[0].legend(fontsize=7)
ax[1].legend(fontsize=7)
ax[1].set_xlabel('$\Gamma t$')
ax[0].xaxis.set_ticklabels('')
fig.subplots_adjust(bottom=0.18, left=0.14)
plt.show()
With this plotting I get the attached plots for the l->e gamma equal to 30 (and r->e and g->e gamma=1), which, at least at first glance, look correct to me. When STIRAP is done in the incorrect order with r->e pulse applied first (top plot), you get a lot of population into the excited state which get dumps mostly into the l state (note the \rho_{gg} population is scaled by a factor of 10). Then the g->e pulse comes along and takes the small amount of population that ended up in g and dumps it into l. In the correct order (bottom plot) you avoid accumulating population in the excited state and get roughly 50 % transfer to the g state. What little population you had in the excited state mostly gets dumped to the “l” state, ruining your transfer efficiency. But the correct order is significantly better than the incorrect order.
Hope that helps!
-Steve
To view this discussion on the web visit https://groups.google.com/d/msgid/pylcp/b6b0fde0-6484-48c0-9775-4bec90e9d949n%40googlegroups.com.