quchip.engine.pulse_space¶
Invariant excitation spaces for deterministic evolution.
Coordinates are product energy labels. Support proofs ignore scalar values; unknown support never supplies an exact reduction.
Functions
|
Return the excitation totals that a given initial state occupies, or |
|
Prove a union of total-index sectors invariant under the complete generator. |
Classes
|
- class quchip.engine.pulse_space.PulseSpace(dims: 'tuple[int, ...]', labels: 'tuple[str, ...]', totals: 'tuple[int, ...]', levels: 'np.ndarray', bases: 'Any')[source]¶
Bases:
object- property size¶
- property solver_dims¶
- property rows¶
- entries(backend, operator, support)[source]¶
Return the rows, columns and values of a resolved local operator on this space.
- embed(backend, operator, support)[source]¶
Gather a resolved local operator without a product-space allocation.
The backend chooses the storage of the result.
- authored(backend, operator, support)[source]¶
Lower a factored authored sum directly into energy coordinates.
- lift(state, backend)[source]¶
Expand a state into captured solver coordinates, after a memory check.
- quchip.engine.pulse_space.initial_totals(chip, state, resolution, cutoff=None)[source]¶
Return the excitation totals that a given initial state occupies, or
Nonewhen unknown.The planner places labels and an omitted state, which are dressed states. With
cutoff, a state with more than round-off weight on totals above it raises, and only totals up to the cutoff are returned.
- quchip.engine.pulse_space.plan_pulse_space(chip, operations, states, resolution, approximation, dissipation, *, whole=False)[source]¶
Prove a union of total-index sectors invariant under the complete generator.
Returns the space, the reason, and the boundary totals. Under an active excitation cutoff
K, every step of the closure stays inside[0, K], unknown support uses every label withN <= K, and the product space is never used.wholeselects that cutoff space after the initial states are checked. The boundary holds the retained totals that a generator change can move aboveK, or isNonewhen the changes are unknown or no cutoff is active.