QuTiP pulse models#
Install the optional qutip extra and select "backend": "qutip" in the run
configuration. The pulse experiments provide a
complete model, qsbit control-program generation and result plots.
uv run --frozen --extra qutip qsbit-sim --backend qutip --help-backend
uv run --frozen --extra qutip qsbit-sim --backend qutip --generate-config > qutip.json
uv run --frozen --extra qutip qsbit-sim --backend qutip --backend-schema > qutip.schema.json
Fill in the required model and solver parameters before running the generated
configuration. backend_options owns the physical model; profile mappings
select waveforms by operation and supply their target, axis, amplitude and duration.
Hamiltonian and dissipation#
Each entry in subsystems defines a truncated oscillator with levels states.
Its index is the event target. Set profile.qubits to the number of entries,
including any explicitly modeled coupler. The total Hilbert-space dimension is
the product of the level counts and must not exceed max_dimension.
With $\hbar=1$, the undriven Hamiltonian is
$$ H_0=\sum_j\left[\Delta_j n_j+\frac{\alpha_j}{2}n_j(n_j-1)\right] +\sum_{(j,k)}g_{jk}(a_j^\dagger a_k+a_k^\dagger a_j). $$
detuning_rad_ns, anharmonicity_rad_ns and coupling strength_rad_ns specify
$\Delta_j$, $\alpha_j$ and $g_{jk}$ in radians per nanosecond. Detunings use one
common rotating frame. initial_populations supplies one nonnegative probability
per level, summing to one. Reset initializes the tensor product of these diagonal
density matrices.
t1_ns, thermal_occupation and tphi_ns define the Lindblad operators
$$ L_{j,-}=\sqrt{(\bar n_j+1)/T_{1,j}},a_j,\qquad L_{j,+}=\sqrt{\bar n_j/T_{1,j}},a_j^\dagger,\qquad L_{j,\phi}=\sqrt{2/T_{\phi,j}},n_j. $$
A null lifetime disables that channel. For two levels at zero temperature, $P_1(t)=P_1(0)e^{-t/T_1}$ and $1/T_2=1/(2T_1)+1/T_\phi$. At nonzero thermal occupation, the two-level population decay rate is $(2\bar n+1)/T_1$.
QuTiP mesolve advances the persistent density matrix through every elapsed
interval, including idle time and acquisition. solver sets rtol, atol,
max_step_ns and max_steps. Choose a maximum step smaller than the narrowest
waveform feature and verify convergence by tightening these settings. Numerical
integration does not advance CPU or TCU time.
Waveforms#
Each waveforms entry has a unique operation, shape, phase_rad and
frequency_rad_ns. For an event starting at $s$ with duration $D$, its envelope
uses elapsed time $u=t-s$:
Shape |
Envelope |
|---|---|
|
Constant unit envelope. |
|
$G(u)=\exp[-(u-D/2)^2/(2\sigma^2)]$ with |
|
$G(u)+i\beta G’(u)$ with |
|
Linear interpolation of the configured |
Sample times must strictly increase from zero to the event duration. Gaussian envelopes are truncated at the event boundaries without subtracting their endpoints.
For X and Y events, the complex drive is
$$ \Omega(t)=A f(t-s)e^{i(\phi-\omega t+\theta)},\qquad H_d(t)=\frac{\Re\Omega(t)}2(a+a^\dagger) +\frac{\Im\Omega(t)}2 i(a^\dagger-a), $$
where $A$ is the event amplitude, $\phi$ is phase_rad, $\omega$ is
frequency_rad_ns, and $\theta$ is zero for X and $\pi/2$ for Y. Carrier phase
uses absolute simulation time. Splitting a pulse at another device event preserves
its envelope origin and carrier phase.
A Z event changes the oscillator frequency by adding $A f(t-s)n$ to the
Hamiltonian. It requires a real envelope with zero carrier frequency and phase.
All active drives and fixed couplings evolve jointly. Ideal gate and
gate_output operations are unsupported; two-subsystem interactions arise from
the configured Hamiltonian.
Measurement and readout#
At acquisition end, the backend samples an oscillator level and projects the
joint density matrix onto that level. Without a readout entry, level zero
returns false and every excited level returns true. The projected state persists
for subsequent operations. Result delivery follows the profile’s
discriminator_delay and receiver clocks.
A readout entry configures a classical IQ assignment model for one target:
Field |
Meaning |
|---|---|
|
Steady-state I and Q values for each level. |
|
Exponential response time. The response starts at zero for each acquisition. |
|
Independent white-noise strength in each quadrature. A bin of width $\delta t$ has standard deviation $\sigma/\sqrt{\delta t}$. |
|
Maximum bin width; equal-width bins cover the complete acquisition. |
|
Rotation applied to the integrated IQ value before classification. |
|
Return true when the rotated I component exceeds this value. |
For the sampled level $l$, the mean record is $\mu_l(1-e^{-u/\tau})$. Each bin contains its exact average response plus Gaussian noise. Classification uses the arithmetic mean of the bins. The model does not simulate a resonator quantum state, continuous measurement backaction, or state transitions within the readout record. Quantum relaxation still acts through the acquisition interval before the final projective sample.
measurements optionally names a JSONL diagnostics file, resolved from the process
working directory. The first measurement after each reset creates or replaces
the file; subsequent measurements append records. Configuration checks leave
the file unchanged. Each measurement records its tick, reference,
pre-projection level probabilities, sampled level and returned bit.
Configured readout adds integrated IQ, bin-end timestamps and IQ samples.
State output and reproducibility#
The backend exports a density matrix. Subsystem zero is the least significant mixed-radix digit: for level counts $d_0,d_1,\ldots$, basis index $l_0+d_0l_1+d_0d_1l_2+\cdots$ represents those oscillator levels. The summary includes the resolved backend options. Reset seeds level sampling and readout noise from the profile seed. Changing the execution-batch limit does not consume additional random draws.
The model uses a rotating-wave Hamiltonian, truncated oscillator levels and Markovian dissipation. Hardware comparisons require calibrated frequencies, couplings, delivered waveforms and readout parameters.
The solver interface follows QuTiP’s time-dependent dynamics and Lindblad master equation documentation.