quchip.extensions.devices

Reference device models, including device-owned time dependence and loss.

Classes

FrequencyModulatedMode([frequency, ...])

Harmonic mode with a prescribed sinusoidal frequency variation.

LossyKerrCavity([freq, kerr, levels, label, ...])

Kerr cavity with an intrinsic two-photon-loss channel.

class quchip.extensions.devices.FrequencyModulatedMode(frequency=unbound, modulation_amplitude=unbound, modulation_frequency=unbound, modulation_phase=0.0, *, levels=10, label=None, T1=None, T2=None, thermal_population=None)[source]

Bases: FockDevice

Harmonic mode with a prescribed sinusoidal frequency variation.

approximation = 'Single harmonic mode in a fixed Fock basis with an externally prescribed sinusoidal frequency coefficient.'

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.

frequency: Scalar = Parameter(default=unbound, positive=True, nonnegative=False, serialize=True, unit='GHz', symbol='\\omega_0', noise=False, kw_only=False, required=False)
modulation_amplitude: Scalar = Parameter(default=unbound, positive=False, nonnegative=False, serialize=True, unit='GHz', symbol='\\delta\\omega', noise=False, kw_only=False, required=False)
modulation_frequency: Scalar = Parameter(default=unbound, positive=True, nonnegative=False, serialize=True, unit='GHz', symbol='\\nu_m', noise=False, kw_only=False, required=False)
modulation_phase: Scalar = Parameter(default=0.0, positive=False, nonnegative=False, serialize=True, unit='rad', symbol='\\phi_m', noise=False, kw_only=False, required=False)
property freq: Any

Bare reference frequency in GHz.

local_hamiltonian(op, p)[source]

Declare this device’s local Hamiltonian in its Fock space.

Parameters:
Return type:

PhysicsExpr

time_terms(op, p)[source]

Return local time-dependent Hamiltonian terms beyond the static model.

Parameters:
Return type:

tuple[TimeDependentTerm, …]

tunable_param_names = ('frequency', 'modulation_amplitude', 'modulation_frequency', 'modulation_phase')

Bare parameters this device exposes as differentiable / tunable scalars. fit_a_dress walks 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 DeviceModel lineage — the default is derived: every declared parameter() field, in declaration order (see DeviceModel.__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) BaseDevice subclass there is no derivation; the default stays empty unless the subclass declares its own tuple — e.g. Fluxonium uses ("E_C", "E_J", "E_L", "phi_ext").

class quchip.extensions.devices.LossyKerrCavity(freq=unbound, kerr=unbound, *, levels=30, label=None, T1=None, T2=None, thermal_population=None, two_photon_loss_rate=unbound)[source]

Bases: KerrCavity

Kerr cavity with an intrinsic two-photon-loss channel.

two_photon_loss_rate: Scalar = Parameter(default=unbound, positive=False, nonnegative=True, serialize=True, unit='1/ns', symbol='\\kappa_2', noise=True, kw_only=True, required=False)
dissipation(op, p)[source]

Return device-local Lindblad channels.

The base channels implement T1, T2, and thermal occupation. Subclasses may append channels with super().dissipation(op, p).

Parameters:
Return type:

tuple[CollapseChannel, …]