Release notes¶
quchip 0.3.2¶
Changes since v0.3.1.
Network noise API¶
Passive network components now use
thermal_occupation; replace previousoccupationandloss_occupationarguments and saved parameter keys.Amplifiers require explicit
added_noise. Temperature, noise-figure, andnoise_frequencyconstructor arguments have been removed; convert these inputs to noise quanta before declaring components. See the network-noise migration guidance.
API documentation¶
Added parameter options, defaults, units,
Nonebehavior, result shapes, and physics references across public constructors and methods.Reuse inherited backend contracts and suppress empty type-only parameter tables. A coverage check detects missing descriptions and stale names.
Serve README images from the documentation site for consistent rendering.
Development and releases¶
PR fast and pre-merge test selections cover the suite without repeating the fast tests on Python 3.11. Merges require checks against current
main.Remove post-merge test reruns, make benchmarks manual, and fail change classification when Git cannot read the compared revisions.
Tagged releases verify package metadata and release notes, publish to PyPI, and create the corresponding GitHub Release after publication.
quchip 0.3.1¶
Changes since v0.3.0.
Measurements and fridge noise¶
VNA.measure()captures the driven steady-state response, internal mode amplitudes and photon numbers, and output noise spectra. Receiver bandwidth, integration time, calibration and repeated IQ sampling reuse those results without another physical solve.Fridge noise propagates through declared attenuators, isolators, circulators, filters and amplifiers. Measurements report output noise density and contributions by source, including cross-output IQ covariance.
result.measure()samples saved quantum states after either Schrödinger or master-equation evolution. Joint measurements preserve correlations and support assignment errors and calibrated conditional IQ distributions.result.iq_readout()uses captured downstream wiring;IQReadout.from_wiring()uses a supplied wired model. Both transform supplied conditional coherent fields and accumulate receiver noise without requiring a readout pulse. These detector models do not infer IQ signals from qubit populations or add measurement backaction to the simulated evolution.
Documentation¶
Added section navigation and aligned page titles across headings, sidebars and the README.
Extended the fridge guide with steady-state versus sampled resonator responses and Rabi counts and IQ using the same wiring.
Moved the Purcell calculation into Focused studies, retaining its existing URL.
Shortened the cookbook to practical API choices and common pitfalls; example-authoring guidance now lives under Contribute.
Public names and compatibility¶
Public names now distinguish bath occupation, jump rates and network ports:
Previous name |
Preferred name |
|---|---|
|
|
|
|
|
|
|
|
|
|
The previous names remain compatibility aliases through 0.4 and are scheduled
for removal in 0.5. Old thermal constructor arguments, parameter bindings,
noise configurations and saved device dictionaries are accepted. Parameter
discovery and new serialized dictionaries use thermal_occupation only;
supplying both spellings in one update raises an error. The value is the bath’s
mean occupation, not an initial qubit population. Jump rates include absorption
and dephasing channels and are not generally emitted photon fluxes.
The new measurement results are named StateMeasurement and StateSamples
for saved quantum states, and VNAMeasurement, VNAMeasurementStatistics and
VNAMeasurementSamples for VNA calculations. result.measure(...) and
VNA.measure(...) keep their existing call syntax. fit_a_dress is unchanged.
quchip 0.3.0¶
Changes since v0.2.1.
New features¶
Added steady-state solves and batches with observables and numerical diagnostics.
Added
PortNetworkfor coherent inputs, measured output fields, passive components, reference-plane delays, filters, and amplifiers. Includes reusable network blocks, SLH composition, instantaneous algebraic feedback, and network/S-parameter plots.Added VNA scattering matrices, phase-conjugate response, parameter and pump sweeps, finite-power spectroscopy, output spectra, and correlations.
Added pulse-aware automatic time grids and
frame="auto".Added explicit state-storage choices, saved-state lookup, and observable interpolation.
Added per-channel jump rates and cumulative jump counts from stored states.
Added forward-mode JAX differentiation through local eigensystems.
Improvements and fixes¶
Accelerated eligible static QuTiP simulations with automatic diagonal propagation and passive-linear VNA calculations with mode-space solves.
Fixed density-matrix solver routing and excluded cascades from automatic diagonal propagation.
Made calculation snapshots independent of later model edits and parameter updates independent of binding order.
Retained Hamiltonian corrections, controls, and loss channels through supported reductions; added composable state/operator maps.
Corrected partitioning for interactions spanning multiple devices and made failed batches identify the failing point.
Updated examples, backend guidance, and extension documentation. Added
py.typedand removed the unused Optax dependency.
Migrating from 0.2.1¶
Labels are immutable; create a replacement component to rename one. Replace
device.dressed_freqand chip-bounddevice.drive_freqwithchip.freq(device).Local state indices, populations, and Pauli operators use isolated energy levels; excited-state Z is −1.
Replace
population_array()/overlap_array()withpopulation()/overlap()(NumPy on QuTiP, JAX on dynamiqs).Set
states="all","final", or"none"instead of native storage options. For the old nearest-time behavior, passmethod="nearest"tostate_at()/dm_at(); the default is now"exact".chip.parametersincludes unset optional fields asNone. Skip them before numerical conversion; unchanged rebinding still works.Replace deprecated fitting arguments
coupling_targets,observable_targets, andfit_parameterswithconstraints,vary, andstart. Fitting defaults toevaluator="full"; choose"local"explicitly.Replace reduction metadata key
"folded_into"with"coupling". Keep the returned chip’s effective terms; parameter summaries no longer reconstruct the reduction.Custom signal transforms use
parameter()/setting()instead of_parameter_names; custom reductions implementretained_hamiltonian(ctx)andembedding(ctx). See extensions.Saved models require
format_version: 1; recreate older models from Python declarations.