quchip.devices.fluxonium¶
Fluxonium — phase-basis fluxonium qubit model.
Hamiltonian (native basis):
where \(\hat\varphi\) is diagonal on a plane-wave phase grid and \(\hat n = -i \partial_\varphi\) via 2nd-order central finite difference. Non-periodic phase basis because \(E_L\) breaks the compact-phase symmetry.
Convergence¶
The kinetic term uses 2nd-order central finite differences on the phase
grid, so the discretization error scales as 1/num_basis**2. As a
measured example (not a general guarantee): at E_J=4, E_C=1,
E_L=0.9 at the flux sweet spot (phi_ext=0.5), the default
num_basis=400 gives an eigenvalue error of about 1.3e-2 GHz
relative to a converged reference. Double num_basis until the
observable of interest stabilizes.
References
Manucharyan, Koch, Glazman & Devoret, Fluxonium: single Cooper-pair circuit free of charge offsets, Science 326, 113 (2009).
Nguyen et al., Blueprint for a High-Performance Fluxonium Quantum Processor, PRX Quantum 3, 037001 (2022).
Smith, Kou, Vool, Koch, Glazman & Devoret, Superconducting circuit protected by two-Cooper-pair tunneling, npj QI 6, 8 (2020) — relaxation matrix-element conventions.
Example
>>> from quchip.devices.fluxonium import Fluxonium
>>> q = Fluxonium(E_C=1.0, E_J=4.0, E_L=1.0, phi_ext=0.5, levels=5)
Classes
|
Fluxonium qubit on a non-periodic plane-wave phase basis. |
- class quchip.devices.fluxonium.Fluxonium(E_C, E_J, E_L, phi_ext=0.0, levels=10, label=None, *, num_basis=400, phi_max=None, collapse_model='fermi_golden', coupling_channel=None, collapse_rate_threshold=1e-08, **noise_kwargs)[source]¶
Bases:
CircuitDeviceFluxonium qubit on a non-periodic plane-wave phase basis.
- Parameters:
E_C (float) – Charging energy in GHz. Positive. JAX-traceable.
E_J (float) – Josephson energy in GHz. Positive. JAX-traceable.
E_L (float) – Inductive energy in GHz. Positive. JAX-traceable.
phi_ext (float, default
0.0) – External flux in units of \(\Phi_0\) (0.5= half-flux sweet spot). JAX-traceable.levels (int, default
10) – Truncated eigenbasis size.label (str or None)
num_basis (int, default
400) – Phase-basis grid points.phi_max (float, default
5 * pi) – Phase grid half-range; grid is[-phi_max, +phi_max).collapse_model (see) –
CircuitDevice.coupling_channelis required whencollapse_model='fermi_golden'(the default) withT1set — pick'flux'at or near the flux sweet spot (phi_ext = 0.5), where relaxation is flux-noise-dominated, and'charge'for charge-operator-limited T1 regimes.coupling_channel (see) –
CircuitDevice.coupling_channelis required whencollapse_model='fermi_golden'(the default) withT1set — pick'flux'at or near the flux sweet spot (phi_ext = 0.5), where relaxation is flux-noise-dominated, and'charge'for charge-operator-limited T1 regimes.collapse_rate_threshold (see) –
CircuitDevice.coupling_channelis required whencollapse_model='fermi_golden'(the default) withT1set — pick'flux'at or near the flux sweet spot (phi_ext = 0.5), where relaxation is flux-noise-dominated, and'charge'for charge-operator-limited T1 regimes.**noise_kwargs – Forwarded to
BaseDevice.
Notes
The T1 collapse-operator model depends on
coupling_channel:'charge'uses \(\hat n\) matrix elements (Breuer-Petruccione §3.4, Smith 2020 §III.B);'flux'uses \(\hat\varphi\) matrix elements (proportional to \(\partial H/\partial\varphi_\mathrm{ext}\) since only the \(\hat\varphi\) term is operator-valued there). Inherited pure dephasing uses level-index scaling — physically incomplete for fluxonium away from sweet spot, where flux-noise-weighted dephasing is the physical channel. Sweet-spot accurate dephasing is a follow-up PR.- tunable_param_names = ('E_C', 'E_J', 'E_L', 'phi_ext')¶
Bare parameters this device exposes as differentiable / tunable scalars.
fit_a_dresswalks this tuple to discover what it is allowed to optimize on each device, decoupling the inverse-design surface from any specific device model. Three states, keyed on whether the value is explicitly declared:No explicit declaration anywhere in the
DeviceModellineage — the default is derived: every declaredparameter()field, in declaration order (seeDeviceModel.__init_subclass__).Explicit tuple on the class or an ancestor — exact curation, validated at class-definition time; authoritative and inherited until a subclass explicitly replaces it.
Explicit empty tuple — deliberately freezes the device (and its subclasses, until one replaces it) out of inverse design.
On a plain (non-
DeviceModel)BaseDevicesubclass there is no derivation; the default stays empty unless the subclass declares its own tuple — e.g.Fluxoniumuses("E_C", "E_J", "E_L", "phi_ext").
- approximation = 'Exact diagonalization on a finite phase grid; 2nd-order central finite differences for the kinetic term; accuracy governed by num_basis.'¶
Declared approximation-regime statement surfaced by
physics_notes(), mirroringapproximation— this class does not inherit fromDeviceModel, so the attribute and its surfacing are declared here directly.
- flux_coupling_operator()[source]¶
Return the flux-line coupling operator \(V^\dagger \hat\varphi V\).
- Return type:
- classmethod from_dict(d)[source]¶
Reconstruct from
to_dict()output.On the registry root, dispatch to the concrete subclass named by
data["type"](forwarding*args/**kwargs). On a concrete subclass, defer to_from_dict_payload(). Concrete subclasses that carry payload override this method directly.