A single qubit (two-level system, energies 0 and ε) is coupled alternately to a hot and a cold heat bath while its gap ε is swept between εc and εh — a quantum Otto cycle:
- Hot isochore — gap fixed at εh, qubit thermalizes toward the Boltzmann excited-state population p(ε,T) = 1 / (eε/T + 1).
- Adiabatic expansion — gap sweeps εh → εc with no bath contact, so by the quantum-adiabatic theorem the population cannot jump; it stays fixed while the level spacing (and hence the energy) changes, doing work.
- Cold isochore — gap fixed at εc, qubit thermalizes toward p(εc,Tc).
- Adiabatic compression — gap sweeps εc → εh at fixed population, closing the loop.
With p1=p(εh,Th) and p2=p(εc,Tc) taken at full thermalization, energy bookkeeping over one full loop gives:
Q_hot = ε_h (p1 − p2)
Q_cold = ε_c (p2 − p1)
W_net = Q_hot + Q_cold = (ε_h − ε_c)(p1 − p2)
When p1 > p2 (equivalently εh/Th < εc/Tc) the device is a heat engine: it absorbs heat from the hot bath and delivers net work, with efficiency η = Wnet/Qhot = 1 − εc/εh, always below the Carnot bound 1 − Tc/Th. When p1 < p2 the roles invert and the same cycle run in reverse becomes a quantum refrigerator, pumping heat out of the cold bath at the cost of work input, with coefficient of performance COP = Qcold/|Wnet| = εc/(εh−εc), bounded by the Carnot COP Tc/(Th−Tc).
The animation applies finite-time exponential relaxation (a Lindblad-style thermalization with a fixed rate) during the isochoric strokes purely so the population visibly settles on screen; the readout panel always reports the idealized fully-thermalized (quasi-static) values used in the formulas above.