I'm trying to model adiabatic passage between two levels in a three-level atom interacting with two laser fields using Scipy and Numpy.. I'm not sure if my model is wrong due to my incorrectly formulating the equations in python or the Scipy ODE solver picking up errors.To get the coefficients of each of the three states I use$$i\frac{d}{dt}\left( \begin{array}{c}c_1 \\c_2 \\c_3  \end{array} \right) = \left( \begin{array}{ccc}0 & \Omega_1(t) & 0 \\\Omega_1(t) & 0 & \Omega_2(t) \\0 & \Omega_2(t) & 0 \end{array} \right)\left( \begin{array}{c}c_1 \\c_2 \\c_3  \end{array}\right)$$Where $\Omega_{1,2}(t)$ give the (slow) time dependence of the amplitudes of the electric fields generated by the two laser beams. The initial conditions are $c_1(-\infty) = 1, c_2(-\infty) = c_3(-\infty) = 0 $.I assume the Gaussian forms of $\Omega_{1,2}(t)$:$$\Omega_{1}(t) = exp(-(t-\tau)^2/T^2)$$and$$\Omega_{2}(t) = exp(-(t+\tau)^2/T^2)$$where $\tau$ is the delay time such that a positive value of $\tau$ means that field 2 is switched on before field 1. $T$ sets the duration of the pulses.import numpy as npimport scipy as spfrom scipy.integrate import odeintimport matplotlib.pyplot as pltfrom math import expfrom collections import defaultdictimport pylab as ptau = 2T = 1def omega1(t,tau=tau,T=T):    return exp(-(t - tau)**2/T**2)def omega2(t,tau=tau,T=T):    return exp(-(t + tau)**2/T**2)def g(y, t,tau=tau,T=T):    c1_i = y[0]    c2_i = y[1]    c3_i = y[2]    g1 = omega1(t, tau, T)*c2_i    g2 = omega1(t, tau, T)*c1_i + omega2(t)*c3_i    g3 = omega2(t, tau, T)*c2_i    return [g1, g2, g3]# initial conditionsc1_0 = 1c2_0 = 0c3_0 = 0y0 = [c1_0, c2_0, c3_0]step_size = 1000t_max = 10.t_min = 0.delta_t = (t_max - t_min)/step_sizet = np.linspace(t_max, t_min, step_size) # time gridsoln = odeint(g, y0, t)c1 = soln[:, 0]c2 = soln[:, 1]c3 = soln[:, 2] # plot resultsplt.figure()plt.plot(t, np.abs(c1), label='c1')plt.plot(t, np.abs(c2), label='c2')plt.plot(t, np.abs(c3), label='c3')plt.xlabel('time')plt.ylabel('energy level population')plt.title('initial attempt')plt.legend(loc=0)The result seems wrong since it shows the coefficients having values above one. Furthermore, I can't seem to find values of $\tau$ and $T$ that yield a non-zero final $c_3$ value.One issue that might be contributing is that currently my answer doesn't include the multiplication by $i$. I'm not sure how to include that in my python equations.Thanks for the help!
Modeling simple laser induced population transfer via adiabatic passage in python
quantum mechanics;computational physics