quchip.devices.fluxonium

Fluxonium authored on a finite phase grid.

Classes

Fluxonium(E_C, E_J, E_L[, phi_ext, levels, ...])

Fluxonium in a finite phase-grid basis.

class quchip.devices.fluxonium.Fluxonium(E_C, E_J, E_L, phi_ext=0.0, levels=None, label=None, *, num_basis=400, phi_max=15.707963267948966, basis=None, collapse_model='fermi_golden', coupling_channel=None, collapse_rate_threshold=1e-08, **noise)[source]

Bases: DeviceModel

Fluxonium in a finite phase-grid basis.

The native Hamiltonian is \(4E_C n^2 + E_L(\varphi+2\pi\varphi_{ext})^2/2 -E_J\cos\varphi\) in ordinary GHz.

The chip’s default RWA() keeps bands whose energy-level index weights sum to zero, so it can discard near-resonant transitions of this uneven spectrum. Compare with Exact(), or list every band to keep in RWA(keep_bands=...), which replaces the default selection.

Parameters:
  • E_C (float) – Positive charging, Josephson, and inductive energies in GHz.

  • E_J (float) – Positive charging, Josephson, and inductive energies in GHz.

  • E_L (float) – Positive charging, Josephson, and inductive energies in GHz.

  • phi_ext (float, default 0.0) – External reduced flux \(\Phi_{ext}/\Phi_0\).

  • levels (int or None, default None) – Number of eigenstates projected into the chip, required when basis="eigen". None uses the native dimension for the native basis.

  • label (str or None, default None) – Device label.

  • num_basis (int, keyword-only, default 400) – Odd-or-even phase-grid size, at least 3.

  • phi_max (float, keyword-only, default 5*pi) – Positive half-width of the phase grid.

  • basis ({None, "native", "eigen"}, keyword-only) – Requested solver basis. None inherits the chip policy and uses the native basis for standalone resolution. native keeps the phase grid, and eigen projects onto levels energy states.

  • collapse_model ({"fermi_golden", "ladder"}, default "fermi_golden") – Relaxation construction. If T1 is set, the Fermi-golden-rule option requires a coupling_channel.

  • coupling_channel ({None, "charge", "flux"}, default None) – Physical operator used for matrix-element relaxation: "charge" selects \(n\), and "flux" selects \(\varphi\).

  • collapse_rate_threshold (float, default 1e-8) – Non-negative dimensionless cutoff on squared matrix-element ratios relative to the selected 0 -> 1 transition.

  • T1 (float or None) – Relaxation and dephasing times in ns. None disables each channel.

  • T2 (float or None) – Relaxation and dephasing times in ns. None disables each channel.

  • thermal_occupation (float or None) – Mean thermal occupation (dimensionless). None disables thermal absorption.

  • noise (keyword arguments) – The constructor also accepts these inherited noise fields as keyword arguments for compatibility with the declarative device API.

References

See Manucharyan et al., Science 326, 113 (2009), https://doi.org/10.1126/science.1175552, for the fluxonium Hamiltonian.

tunable_param_names = ('E_C', 'E_J', 'E_L', 'phi_ext')

Parameters eligible for inverse design. DeviceModel derives these from declared fields unless the class or an ancestor supplies a tuple. Explicit tuples remain authoritative when inherited; an empty tuple excludes the device from inverse design. Plain BaseDevice subclasses default to an empty tuple without derivation.

approximation = 'Finite phase-grid model with a second-order charge kinetic operator; accuracy is governed by num_basis and phi_max.'

Declared approximation-regime statement surfaced by physics_notes() — the mechanism that keeps a model’s stated validity range attached to the class rather than buried in a docstring a caller may not read.

computational = True

Whether this device represents a computational qubit, as opposed to e.g. a bus resonator or a coupler element.

requires_projection_levels: ClassVar[bool] = True
structural_setting_names = ('num_basis', 'phi_max', 'basis', 'projection_levels', 'collapse_model', 'coupling_channel', 'collapse_rate_threshold')
E_C: Scalar = Parameter(default=unbound, positive=True, nonnegative=False, serialize=True, unit='GHz', symbol='E_C', noise=False, kw_only=False, required=False)
E_J: Scalar = Parameter(default=unbound, positive=True, nonnegative=False, serialize=True, unit='GHz', symbol='E_J', noise=False, kw_only=False, required=False)
E_L: Scalar = Parameter(default=unbound, positive=True, nonnegative=False, serialize=True, unit='GHz', symbol='E_L', noise=False, kw_only=False, required=False)
phi_ext: Scalar = Parameter(default=0.0, positive=False, nonnegative=False, serialize=True, unit=None, symbol='\\varphi_{\\mathrm{ext}}', noise=False, kw_only=False, required=False)
dissipation(op, p)[source]

Return device-local Lindblad channels.

Parameters:
  • op (LocalOps) – Local operator namespace.

  • p (ParameterNamespace) – Symbolic declared parameters.

  • T1 (The base channels implement)

  • T2

  • Subclasses (and thermal occupation.)

  • ``super().dissipation(op (may append channels with) –

  • p)``.

local_space()[source]

Return the authored finite phase-grid space.

local_hamiltonian(op, p)[source]

Return the native fluxonium Hamiltonian in ordinary GHz.

Parameters:
property freq: Any

Return the isolated 0-to-1 transition in GHz.

eigenenergies()[source]

Return isolated energies shifted to zero at the ground state.

eigenvectors()[source]

Return the isolated energy-ordered phase-grid eigenvectors.

charge_coupling_operator()[source]

Return the authored charge operator.

phase_coupling_operator()[source]

Return the authored phase operator.

flux_coupling_operator()[source]

Return the authored flux-line phase operator.

physics_notes()[source]

Return base device notes plus the declared approximation, if any.

to_dict()[source]

Serialize common device state and declared parameter values.

classmethod from_dict(data)[source]

Reconstruct from serialized constructor data.

Parameters:

data (mapping) – Record produced by to_dict().