Dear all,
I am writing to You for having some suggestions for calculating the second-order correlation function g(2) of a lambda system behaving as a single-photon source. You can find the system to be analyzed in the attached figure. In particular, I replicated the results provided in
Hiroo Azuma, Numerical analyses of emission of a single-photon pulse based on single-atom–cavity quantum electrodynamics
, Progress of Theoretical and Experimental Physics, Volume 2019, Issue 6, June 2019, 063A01,
https://doi.org/10.1093/ptep/ptz052
which is inherited from
Kuhn, A., Hennrich, M., Bondo, T.
et al. Controlled generation of single photons from a strongly coupled atom-cavity system.
Appl Phys B 69, 373–377 (1999).
https://doi.org/10.1007/s003400050822
When I try to arrange that code to my system under analysis, the second-order optical coherences (see meshes and G2_t_tau_G in the notebook) are always equal to 0, so the g(2)(0) = 0. It is not clear to me if the problem is in the Hamiltonian formulation itself, e.g. because an Hamiltonian contribution for the repumping pulse inducing |g,0> --> |u,0> transition is not present, or the problem is numerical (I am using the Master Equation solver).
I also observed that in the method _correlation_me_2t in correlation.py the initial state of the Master Equation solver is c_op * rho * a_op, which provides a density matrix with trace lower than 1. Is it usual? I apologize for the question, I am an Electrical Engineer and I study Quantum Mechanics on my own, probably I do not have a sufficiently strong background.
I attach the code providing to me problems in the following. From a practical point of view, G2_t_tau_G contains only 0 values.
Thanks in advance.
*** CODE ***
delta = 0 # detuning
ustate = basis(3, 0)
excited = basis(3, 1)
ground = basis(3, 2)
N = 2 # Set where to truncate Fock state for cavity
sigma_ge = tensor(ground * excited.dag(), qeye(N)) # |g><e|
sigma_ue = tensor(ustate * excited.dag(), qeye(N)) # |u><e|
sigma_ee = tensor(excited * excited.dag(), qeye(N)) # |e><e|
a = tensor(qeye(3), destroy(N))
Omega0 = 2*np.pi*0.11*22 # Gaussian pulse peak
g = Omega0/4 # coupling strength
T = 50e0
gamma = 2.5e-2
#gamma = 0
tOffset = 5*T
H0 = (g * a * sigma_ge.dag() ) + (g.conjugate() * a.dag() * sigma_ge) + (delta * sigma_ee) # time-independent term
H1 = 1/2*(sigma_ue.dag() + sigma_ue) # time-dependent term
H = [H0, [H1, 'Omega0 * (exp(-((t - t_offset) / T) ** 2))']]
args = {'Omega0': Omega0, 'T': T, 't_offset' : tOffset}
t = np.linspace(0, 2*tOffset, 300) # Define time vector
psi0 = tensor(ustate, fock(N,0)) # initial state |u,0>
G2_t_tau_G = correlation_3op_2t(H, psi0, t, t, [np.sqrt(gamma)*a], a.dag(), a.dag()*a, a, args=args, options=options)