The Machinery · Topic 30 of 41 · The Workbench: the circuits

Beyond the transmon: flux sweeps and the fluxonium

What changes when the qubit is a particle in a double well, and why do labs sweep a magnetic flux through their chips?

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
About this section: The Workbench: the circuits

These four topics are the physics the two programs encode: the Hamiltonians of the common superconducting circuits, the way a resonator reads one out, and what happens when two sit side by side. Each is worked by diagonalising a matrix, so each can be checked against the programs in the next group, and each ends in numbers a design review would ask for.

See it

the spectrum against flux external flux, 0 to Φ0/2 → (levels above the ground state, up to 12 GHz) 0 to 1 half flux: a double well the two lowest levels are almost one
A knob you can turn from outside the fridge. A loop of superconductor responds to the magnetic flux through it, and that flux moves the qubit’s energy levels. The 0–1 gap of this fluxonium falls from 8.8 GHz with no flux to 0.36 GHz at half a flux quantum, where the potential is a symmetric double well and the gap is flat. Every curve was computed with scqubits.

Try it: sweep the flux through a fluxonium

Drag the flux from 0 to a half. The left panel is the spectrum with a marker at the flux you chose, the right panel the potential with the two lowest wavefunctions drawn at their energies. At half flux the wavefunctions live in the two wells at once, which is why the two lowest levels sit so close together and why the qubit can live a long time. Then change EJ, EC and EL and watch where the sweet spot goes.

Honest limits: the model is the single-mode circuit with an ideal inductor. Real fluxonium inductors are chains of about a hundred junctions with their own modes, which this does not include, and scqubits’ circuit module is the tool for such cases.

The intuition

A transmon is a junction with a large capacitor. Now add a loop. Close a superconducting wire around a junction and the magnetic flux threading the loop becomes a parameter you control from outside: every time the flux changes by one flux quantum, the physics repeats. The simplest use is a tunable transmon, a transmon whose single junction is replaced by two in a loop (a SQUID), so that the effective EJ and with it the qubit frequency follow the flux. That is how a lab tunes one qubit into resonance with another.

The fluxonium goes further. It shunts a small junction with a very large inductance, so the potential is no longer a pure cosine but a cosine riding on a parabola: ½ELφ² − EJ cos(φ − φext). With no flux there is one well. At half a flux quantum the cosine is turned over and the potential is a symmetric double well. The two lowest levels are then the even and odd combinations of “the particle is in the left well” and “in the right well”, and they sit close together: a gap of a few hundred MHz instead of several GHz. The qubit is that small gap.

Why anyone wants that. The qubit states live in different wells, so almost nothing in the environment couples them: the matrix element of the charge operator between them is 0.052 at half flux against 0.204 with no flux, and the energy splitting does not change to first order when the flux wanders. That is a “sweet spot”. A fluxonium with T2* = 1.48 ± 0.13 ms (Somoroff et al., 2023) is among the longest coherence times reported for a superconducting qubit. The price is a low frequency: 0.36 GHz is below the thermal energy of a 20 mK qubit (0.42 GHz), so even at that ideal temperature the excited state holds 29% of the population, where a 5.7 GHz transmon holds one part in a million. Reading and resetting a qubit that is already half excited at rest, and driving a transition this slow, are real costs.

The same method for any circuit. A circuit with a different shape has a different Hamiltonian. The flux qubit (three junctions in a loop), the cos(2φ) qubit and the 0–π qubit are other members of the family scqubits can diagonalise. They all follow one recipe: write the Hamiltonian in some basis, keep enough states, diagonalise, check that adding states does not change the answer.

The mathematics

The fluxonium. With the junction phase φ, its conjugate charge n, and the flux through the loop φext = 2πΦ/Φ0 (Φ0 = h/2e, the flux quantum),

H = 4EC n² + ½ EL φ² − EJ cos(φ − φext)

(Manucharyan et al., Science 326, 113, 2009). The first two terms are a harmonic oscillator with plasma frequency Eplasma = √(8ELEC) and a natural length φosc = (8EC/EL)1/4, so the natural basis is the oscillator’s own, not charge states. In it φ = φosc(a + a†)/√2, and

H = Eplasma (a†a + ½) − EJ cos(φ − φext)

The cosine of an operator is found by diagonalising φ (a tridiagonal matrix in this basis), taking the cosine of each eigenvalue, and transforming back. scqubits does exactly this with a cutoff of oscillator states (110 in the examples here), and the in-browser explorer above uses the same construction.

Why half flux is special. At φext = π, cos(φ − π) = −cos φ, which is even in φ. The Hamiltonian is then unchanged under φ → −φ, the eigenstates have definite parity, and the energies are symmetric about the point, so their slope with respect to flux is zero there. Numerically, for EJ = 8.9, EC = 2.5, EL = 0.5 GHz, f01 goes 1.8312, 0.9684 and 0.4053 GHz at flux 0.40, 0.45 and 0.49, and reaches 0.3634 at 0.50. Away from the sweet spot the slope is large (about 17 GHz per flux quantum between 0.40 and 0.45); at it, a 1% change in flux moves the frequency by only 42 MHz and the first-order effect is zero. The values for the five fluxes the tests use are f01 = 8.7584, 7.1475, 4.4949, 1.8312 and 0.3634 GHz at flux 0, 0.1, 0.25, 0.4 and 0.5, equal to scqubits to twelve digits.

The tunable transmon. Two identical junctions in a loop act as one junction whose Josephson energy is EJ(Φ) = EJ,max |cos(πΦ/Φ0)|. For EJ,max = 40 GHz and EC = 0.3 GHz, scqubits returns f01 = 9.4879 GHz at zero flux, 8.5016 at 0.2 and 5.1271 at 0.4 flux quanta, with the anharmonicity staying near −0.32 to −0.35 GHz throughout.

Thermal population. A qubit of frequency f at temperature T has excited-state population e−hf/kBT/(1 + e−hf/kBT). With kBT/h = 0.4167 GHz at 20 mK this is 29.5% for f = 0.3634 GHz and 1.2 × 10−6 for f = 5.683 GHz (the two qubits of this page).

Try it in Python. Change a parameter of a qubit object and diagonalise again: that is a flux sweep. eigensys returns the levels and the eigenvectors, and n_operator() is the charge operator whose matrix element you can take between them. Run on scqubits 4.3.1, 25 October 2026:

import numpy as np
import scqubits as scq

scq.settings.PROGRESSBAR_DISABLED = True

# A fluxonium: a small junction (EJ) in a loop with a large inductance (EL). EJ, EC, EL are in GHz.
fl = scq.Fluxonium(EJ=8.9, EC=2.5, EL=0.5, flux=0.0, cutoff=110)
for flux in (0.0, 0.25, 0.5):             # external flux in units of the flux quantum
    fl.flux = flux
    ev, vecs = fl.eigensys(evals_count=4)
    n01 = abs(np.vdot(vecs[:, 0], fl.n_operator() @ vecs[:, 1]))
    print(f"flux {flux:4.2f}:  f01 = {ev[1]-ev[0]:7.4f} GHz   f02 = {ev[2]-ev[0]:7.4f} GHz   |<0|n|1>| = {n01:.4f}")
flux 0.00:  f01 =  8.7584 GHz   f02 =  8.9796 GHz   |<0|n|1>| = 0.2044
flux 0.25:  f01 =  4.4949 GHz   f02 = 10.4260 GHz   |<0|n|1>| = 0.0631
flux 0.50:  f01 =  0.3634 GHz   f02 =  9.3863 GHz   |<0|n|1>| = 0.0520

Where it actually matters

Why two families of superconducting qubits exist The transmon wins on speed and simplicity, and most processors use it. The fluxonium wins on coherence, and its low frequency and its sweet spot are why groups chasing the longest coherence times use it. The flux sweep is also the basic measurement of a tunable qubit: a lab scans the flux and the drive frequency together, records where the qubit responds, and fits EJ, EC and EL to the picture. The last topic of this part does that fit as a game (topic 39), and topic 37 shows the sweep as one line in scqubits.