Λ-Type Three-Level: Adiabatons
When two strong fields co-propagate through a three-level Λ medium and the coupling field precedes the probe (counterintuitive ordering), the atomic population is transferred from one ground state to the other without ever significantly occupying the excited state. The fields reshape themselves during propagation until they converge on self-consistent adiabaton solutions — pulses that maintain the adiabatic dark-state condition at every point in the medium.
Level structure
|1⟩ ──────────────── (excited)
/ \
Ω_p / \ Ω_c
/ \ γ₁₀ = γ₁₂ = 1.0
|0⟩ |2⟩ (ground states)
Physics
The dark eigenstate of the Λ Hamiltonian is
When the mixing angle \(\theta\) varies slowly compared to the adiabatic gap \(\sqrt{\Omega_p^2 + \Omega_c^2}\), atoms initially in \(|D\rangle\) stay there as the pulses pass. If \(\Omega_c \gg \Omega_p\) initially (\(\theta \approx 0\), all population in \(|0\rangle\)) and \(\Omega_p \gg \Omega_c\) finally (\(\theta \approx \pi/2\), all population in \(|2\rangle\)), complete ground-state population transfer occurs with the excited state remaining dark throughout.
During propagation, the Maxwell equations force the fields to reshape until both carry the same temporal envelope — the adiabaton shape — differing only in amplitude (Grobe, Hioe, Eberly, PRL 1994).
Key requirement: substantial pulse overlap
For the dark state to be maintained the two fields must be present simultaneously. If the coupling and probe are separated by much more than their temporal width, the coupling is absorbed before the probe arrives and no dark state forms. Here the pulses are offset by only \(\pm 1\,\gamma^{-1}\) with width \(T = 2\,\gamma^{-1}\), giving ~85% normalised overlap.
Parameters
Quantity |
Value |
Notes |
|---|---|---|
\(\Omega_p^{(0)}\) |
\(5\,\gamma\) |
sech, centred at \(t = +1\,\gamma^{-1}\) |
\(\Omega_c^{(0)}\) |
\(5\,\gamma\) |
sech, centred at \(t = -1\,\gamma^{-1}\) (arrives first) |
Pulse width |
\(T = 2\,\gamma^{-1}\) |
sech half-width |
Pulse overlap |
~85% |
normalised \(\int\Omega_p\Omega_c\,dt\) |
OD |
\(\sim 6\) |
interaction_strengths × z_max × 2 |
Doppler |
none |
pure coherent effect |
[1]:
import numpy as np
from maxwellbloch import mb_solve, plot
Intuitive ordering: probe first
With the probe arriving before the coupling field, the atoms encounter the probe before any dark state is established. The probe drives population into the excited state and is strongly absorbed. The coupling field arrives later but by then the medium has already scattered. No adiabaton forms.
[2]:
mb_solve_json_intuitive = """
{
"atom": {
"num_states": 3,
"decays": [
{"channels": [[0, 1]], "rate": 1.0},
{"channels": [[1, 2]], "rate": 1.0}
],
"fields": [
{
"label": "probe",
"coupled_levels": [[0, 1]],
"detuning": 0.0,
"detuning_positive": true,
"rabi_freq": 5.0,
"rabi_freq_t_func": "sech",
"rabi_freq_t_args": {"ampl": 5.0, "centre": -1.0, "width": 2.0}
},
{
"label": "coupling",
"coupled_levels": [[1, 2]],
"detuning": 0.0,
"detuning_positive": false,
"rabi_freq": 5.0,
"rabi_freq_t_func": "sech",
"rabi_freq_t_args": {"ampl": 5.0, "centre": 1.0, "width": 2.0}
}
]
},
"t_min": -8.0,
"t_max": 8.0,
"t_steps": 200,
"z_min": 0.0,
"z_max": 1.0,
"z_steps": 20,
"z_steps_inner": 2,
"interaction_strengths": [3.0, 3.0],
"savefile": "mbs-lambda-adiabatons-intuitive"
}
"""
mbs_int = mb_solve.MBSolve().from_json_str(mb_solve_json_intuitive)
mbs_int.mbsolve(recalc=False)
print("Done")
Done
/home/docs/checkouts/readthedocs.org/user_builds/maxwellbloch/envs/v0.12.0/lib/python3.11/site-packages/maxwellbloch/mb_solve.py:344: UserWarning: Savefile was built with maxwellbloch==0.10.0, current version is 0.12.0.
self.load_results()
Counterintuitive ordering: coupling first (adiabaton)
With the coupling field centred at \(t = -1\,\gamma^{-1}\) and the probe at \(t = +1\,\gamma^{-1}\), both pulses overlap substantially while the coupling still leads. This maintains \(\Omega_c \geq \Omega_p\) at early times (\(\theta \approx 0\), dark state \(\approx |0\rangle\)) and \(\Omega_p \geq \Omega_c\) at late times (\(\theta \approx \pi/2\), dark state \(\approx |2\rangle\)). Population transfers adiabatically from \(|0\rangle\) to \(|2\rangle\) with the excited state remaining dark.
[3]:
mb_solve_json_counter = """
{
"atom": {
"num_states": 3,
"decays": [
{"channels": [[0, 1]], "rate": 1.0},
{"channels": [[1, 2]], "rate": 1.0}
],
"fields": [
{
"label": "probe",
"coupled_levels": [[0, 1]],
"detuning": 0.0,
"detuning_positive": true,
"rabi_freq": 5.0,
"rabi_freq_t_func": "sech",
"rabi_freq_t_args": {"ampl": 5.0, "centre": 1.0, "width": 2.0}
},
{
"label": "coupling",
"coupled_levels": [[1, 2]],
"detuning": 0.0,
"detuning_positive": false,
"rabi_freq": 5.0,
"rabi_freq_t_func": "sech",
"rabi_freq_t_args": {"ampl": 5.0, "centre": -1.0, "width": 2.0}
}
]
},
"t_min": -8.0,
"t_max": 8.0,
"t_steps": 200,
"z_min": 0.0,
"z_max": 1.0,
"z_steps": 20,
"z_steps_inner": 2,
"interaction_strengths": [3.0, 3.0],
"savefile": "mbs-lambda-adiabatons-counter"
}
"""
mbs_ctr = mb_solve.MBSolve().from_json_str(mb_solve_json_counter)
mbs_ctr.mbsolve(recalc=False)
print("Done")
Done
Probe field: intuitive vs counterintuitive
In the intuitive case the probe is strongly absorbed as it enters an un-prepared medium. In the counterintuitive case both fields propagate with little attenuation because the atoms are kept dark throughout.
[4]:
fig = plot.field_spacetime(mbs_int, field_idx=0)
fig.update_layout(title="Probe |Ω_p(z, t)| — intuitive ordering (probe first)")
fig.show(renderer='notebook_connected')
[5]:
fig = plot.field_spacetime(mbs_ctr, field_idx=0)
fig.update_layout(title="Probe |Ω_p(z, t)| — counterintuitive ordering (adiabaton)")
fig.show(renderer='notebook_connected')
Coupling field: reshaping into the adiabaton
Both fields reshape as they propagate. In the counterintuitive case they converge on the same temporal envelope — the adiabaton.
[6]:
fig = plot.field_spacetime(mbs_ctr, field_idx=1)
fig.update_layout(title="Coupling |Ω_c(z, t)| — counterintuitive ordering (adiabaton)")
fig.show(renderer='notebook_connected')
Field envelopes at input and output
Comparing \(|\Omega(t)|\) at the input face (\(z = z_\mathrm{min}\)) and output face (\(z = z_\mathrm{max}\)) shows the adiabaton reshaping: both fields exit with a similar envelope, shifted toward a common shape. In the counterintuitive case neither field is strongly absorbed — contrast with the intuitive ordering where the probe is greatly attenuated.
[7]:
import plotly.graph_objects as go
from maxwellbloch.plot import theme # ensures template is registered
t = mbs_ctr.tlist
fig = go.Figure(layout=go.Layout(
title="Adiabaton: field envelopes at input and output",
xaxis_title="time (γ⁻¹)",
yaxis_title="Ω (γ)",
template="maxwellbloch",
))
fig.add_trace(go.Scatter(x=t, y=abs(mbs_ctr.Omegas_zt[0, 0, :]), name="probe in", line=dict(dash="solid")))
fig.add_trace(go.Scatter(x=t, y=abs(mbs_ctr.Omegas_zt[0, -1, :]), name="probe out", line=dict(dash="dash")))
fig.add_trace(go.Scatter(x=t, y=abs(mbs_ctr.Omegas_zt[1, 0, :]), name="coupling in", line=dict(dash="solid")))
fig.add_trace(go.Scatter(x=t, y=abs(mbs_ctr.Omegas_zt[1, -1, :]), name="coupling out", line=dict(dash="dash")))
fig.show(renderer='notebook_connected')
Population dynamics
In the counterintuitive (adiabaton) case the excited state \(|1\rangle\) stays near zero throughout, while population is completely transferred from \(|0\rangle\) to \(|2\rangle\). Compare with the intuitive case where \(\rho_{11}\) peaks strongly and transfer is incomplete.
[8]:
fig = plot.population(mbs_ctr, state_indices=[0, 1, 2], z_idx=0)
fig.update_layout(title="Population at z = z_min — counterintuitive ordering (adiabaton)")
fig.show(renderer='notebook_connected')
[9]:
fig = plot.population(mbs_int, state_indices=[0, 1, 2], z_idx=0)
fig.update_layout(title="Population at z = z_min — intuitive ordering (no adiabaton)")
fig.show(renderer='notebook_connected')
Mixing angle evolution
The mixing angle \(\theta(z, t) = \arctan(\Omega_p / \Omega_c)\) at the input face rotates smoothly from \(0\) (coupling dominates, dark state \(\approx |0\rangle\)) to \(\pi/2\) (probe dominates, dark state \(\approx |2\rangle\)) as the pulse sequence passes.
[10]:
Omega_p_in = abs(mbs_ctr.Omegas_zt[0, 0, :])
Omega_c_in = abs(mbs_ctr.Omegas_zt[1, 0, :])
# Only compute where the fields are appreciable
mask = (Omega_p_in + Omega_c_in) > 0.5
theta = np.where(mask, np.arctan2(Omega_p_in, Omega_c_in), np.nan)
fig = go.Figure(layout=go.Layout(
title="Mixing angle θ(t) at z = z_min",
xaxis_title="time (γ⁻¹)",
yaxis_title="θ (rad)",
template="maxwellbloch",
))
fig.add_trace(go.Scatter(x=t, y=theta, mode="lines", name="θ = arctan(Ω_p / Ω_c)"))
fig.update_layout(yaxis=dict(tickvals=[0, np.pi/4, np.pi/2],
ticktext=["0", "π/4", "π/2"]))
fig.show(renderer='notebook_connected')
Summary
Intuitive ordering (probe first): the probe arrives before the dark state is established → strong absorption, high \(\rho_{11}\), incomplete population transfer.
Counterintuitive ordering (coupling first, overlapping): the dark state adiabatically follows \(\theta\) from \(0\) to \(\pi/2\), transferring all population \(|0\rangle \to |2\rangle\) while \(\rho_{11} \approx 0\) throughout. Both fields reshape into the adiabaton solution — neither is strongly absorbed.
The overlap of the two pulses is essential: if they are separated by much more than the pulse width, the coupling is absorbed before the probe arrives and the dark state never forms.
Adiabatons are the propagating, adiabatic analog of STIRAP in single-atom physics: the medium self-consistently maintains the adiabatic condition as the pulses travel.
References
Grobe, F. T. Hioe, J. H. Eberly, Formation of Shape-Preserving Pulses in a Nonlinear Adiabatically Integrable System, PRL 73, 3183 (1994). Prediction of adiabatons.
Rahman, J. H. Eberly, Theory of adiabatons in coherent optical pulse propagation, PRA 58, R805 (1998). Analytic structure.
Bergmann, H. Theuer, B. W. Shore, Coherent population transfer among quantum states of atoms and molecules, Rev. Mod. Phys. 70, 1003 (1998). STIRAP review — the single-atom counterpart.