CPPQEDelements/frees/MultiLevel.h and CPPQEDelements/interactions/MLJC.h, the latter acronym standing for multi-level Jaynes-Cummings.An
-level system is characterized by a set of basis vectors
A generic Hamiltonian with coherent driving – e.g. with laser light – between certain levels and (Jaynes-Cummings) coupling to a (driven) harmonic oscillator with ladder operator
may read
with
energy of level
,
bare oscillator frequency,
driving strength between levels
with frequency
,
coupling strength between transition
and the mode,
mode driving strength with frequency
.
On passing to the frame rotating with
:
it becomes apparent that from the multilevel system’s point of view, the driving and coupling terms are algebraically equivalent with
. To eliminate explicit time-dependence, we apply the unitary transformation:
yielding
So the system of equations to be solved for
s in order to eliminate time dependence reads:
which can be solved in many cases of interest, especially if, as is often the case in actual experiments, all
.
Hence we get the simplified Hamiltonian
with
.
This is the Hamiltonian that can be implemented by the elements in the MultiLevel bundle, in particular,
.
), couplings to harmonic-oscillator modes (
), and decays (
) can be defined at compile time as lists of pairs of
and
levels. From these lists, the framework assembles the Hamiltonian of the system at compile time to a form corresponding to the last one above, and the Lindblad operators as a set of operators like above. Then, the values of parameters like
,
, and
for all the pairs such defined can be specified at runtime. The rationale of this arrangement is that such pairs of levels as are never expected to be driven or coupled (or lossy), will not pollute the Hamiltonian with terms which would turn out to be zero at runtime. (Or, if the pair is not specified in the list of decays, it will not be considered when trying for quantum jumps.)In this case, three levels have increasing energy
, and we have driving (or coupling to a mode or one mode each) between 0,1 and 1,2. Then, the equations can be solved for two different driving strengths. Putting
, we get
and
. The Hamiltonian reads:
In this case, three levels are ordered as
, and we have driving (or coupling to a mode or one mode each) between 0,1 and 1,2. Then, the equations can be solved for two different driving strengths. Putting
, we get
and
. The Hamiltonian reads:
In case of
we get the Raman scheme, with only the upmost level rotating.
Raman.cc and CavityRaman.cc in CPPQEDscripts for actual implementations.CPPQEDscripts/Ca40InCavity.cc demonstrates more complex usage. This script represents a
ion interacting with a cavity mode as described e.g. in Reference [1]. In this case, the
,
, and
levels of the ion constitute an eight-level system, with two pumped transitions, six transitions coupled to the cavity mode, and ten decaying transitions.