Anharmonicity (or nonlinearity) is the difference between transition frequencies: $\alpha = \omega_{12} - \omega_{01}$ (in energy units). For a transmon, anharmonicity is negative ($\alpha < 0$): $f_{12} < f_{01}$ due to the cosine potential which gets flatter near $\phi = \pi$.
Anharmonicity enables selective qubit control: you can address the $0 \to 1$ transition without driving the $1 \to 2$ transition (if your pulse bandwidth is small enough).
from scqubits import Transmon transmon = Transmon(EJ=15.0, EC=0.3, ncut=30) anh = transmon.anharmonicity() print(f"Anharmonicity: {anh:.4f} GHz") # Larger EC/EJ increases anharmonicity transmon2 = Transmon(EJ=10.0, EC=1.0, ncut=30) anh2 = transmon2.anharmonicity() print(f"Larger EC/EJ: {anh2:.4f} GHz")
Strong anharmonicity (large $|\alpha|$):
Weak anharmonicity (small $|\alpha|$):
Typical transmons: $\alpha \sim -100$ MHz to $-300$ MHz. Fluxoniums can have stronger anharmonicity ($|\alpha| > 1$ GHz).