quchip.control.batch¶
Batch / sweep-axis machinery for QuantumSequence.
Batch axes and per-entry handles expand a scheduled sequence into
per-point overrides consumed by SolveBatch.
QuantumSequence (in sequence.py) is the scheduler; it delegates
its vary / zip / build_batch surface here. The split keeps the
scheduler focused on timing semantics and the sweep bookkeeping isolated.
All sweep axes stay JAX-traceable: pulse parameters, delays, and envelope
fields flow into SolveProblem without Python-side concretization.
Classes
|
One batchable axis over a scheduled entry or sequence-level field. |
|
Reference to a scheduled delay entry. |
|
Reference to one scheduled pulse entry. |
|
Multiple |
- class quchip.control.batch.BatchAxis(owner, target_kind, field, values, name, entry_index=None, entry_field=None, entry=None)[source]¶
Bases:
objectOne batchable axis over a scheduled entry or sequence-level field.
Created by
PulseHandle.vary(),DelayHandle.vary(), orQuantumSequence.vary(), and consumed byQuantumSequence.build_batch().- Parameters:
- owner: QuantumSequence¶
- values: Any¶
- entry: Any = None¶
The scheduled entry object this axis references (
Nonefor sequence-level axes).build_batchvalidates it against the sequence by identity, so an axis silently pointing at the wrong entry after the sequence was modified is impossible.
- class quchip.control.batch.ZippedBatchAxis(axes)[source]¶
Bases:
objectMultiple
BatchAxisobjects swept pairwise as one dimension.
- class quchip.control.batch.PulseHandle(sequence, entry_index)[source]¶
Bases:
_BaseEntryHandleReference to one scheduled pulse entry.
Sweepable fields:
freq,phase,start_time, and any public envelope attribute (e.g.amplitude,duration,sigmas).- Parameters:
sequence (QuantumSequence)
entry_index (int)
- class quchip.control.batch.DelayHandle(sequence, entry_index)[source]¶
Bases:
_BaseEntryHandleReference to a scheduled delay entry. Only
durationis sweepable.- Parameters:
sequence (QuantumSequence)
entry_index (int)