quchip.devices.qubit¶
An ideal two-level system with a declared transition frequency.
Classes
|
Ideal two-level device with |
- class quchip.devices.qubit.Qubit(freq=unbound, *, levels=2, label=None, T1=None, T2=None, thermal_occupation=None)[source]¶
Bases:
FockDeviceIdeal two-level device with
H/h = freq * |1><1|.- Parameters:
freq (float) – Positive transition frequency in GHz. Can be a JAX tracer.
levels (int, default 2) – Must equal two. Use a transmon model to include higher levels.
label (str or None, default None) – Device label.
Noneselects an automatic label.T1 (float or None, default None) – Energy-relaxation time in ns.
Nonedisables relaxation.T2 (float or None, default None) – Total coherence time in ns.
Nonedisables pure dephasing. If both times are set,T2 <= 2*T1. At zero thermal occupation, the pure-dephasing rate is1/T2 - 1/(2*T1).thermal_occupation (float or None, default None) – Dimensionless bath occupation.
Nonedisables thermal absorption.
Notes
Relaxation and dephasing use the standard device channels. With two levels,
n = |1><1|anda = |0><1|. A frame atfreqremoves the free Hamiltonian. The model contains no leakage levels or circuit parameters.- computational = True¶
Whether this device represents a computational qubit, as opposed to e.g. a bus resonator or a coupler element.
- approximation = 'Ideal two-level system; higher levels and leakage are omitted.'¶
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.
- dressed_fit_target_fields = (('freq', 'freq'),)¶
(dressed_observable, declared_field)pairs used when this device appears in the desired-chip form offit_a_dress. Empty means that the model makes no automatic dressed-target claim; circuit-level models can remain fixed until the user supplies explicit constraints.
- dressed_fit_param_names = ('freq',)¶
Bare parameters normally varied to reproduce
dressed_fit_target_fields. This remains separate fromtunable_param_names: a model may expose parameters for sweeps without claiming that inverse design can identify all of them from its default dressed observables.
- freq: Scalar = Parameter(default=unbound, positive=True, nonnegative=False, serialize=True, unit='GHz', symbol='\\omega', noise=False, kw_only=False, required=False)¶
- local_hamiltonian(op, p)[source]¶
Return the two-level Hamiltonian in GHz.
- Parameters:
op (LocalOps) – Local two-level operator namespace.
p (ParameterNamespace) – Symbolic transition frequency.
- tunable_param_names = ('freq',)¶
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.