quchip.engine.problem¶
Package engine physics and solve inputs into frozen solve requests.
Responsibilities¶
Resolve the chip frame.
Flatten
e_opsinto solver-ready bands withdecompose_eops().Build an
EngineResultfor each variant and pack it into a singleSolveProblem, or merge homogeneous variants into aSolveBatch(Nidentical skeletons with per-elementScalarModulationsignals).
Collapse operators enter the standard Lindblad master equation
dρ/dt = −i[H, ρ] + Σₖ D[Lₖ]ρ. Rates are stored in 1/ns.
Functions
|
Assign omitted QuTiP seeds in logical point order before grouping. |
|
Package homogeneous |
|
Resolve, assemble, and package a frozen |
|
Resolve the frame and keep authored observables and state specifications. |
|
Dispatch each captured backend's requests and restore the original point order. |
Classes
|
Shared solve metadata reused across a homogeneous problem batch. |
- class quchip.engine.problem.SolveProblemContext(chip, tlist, e_ops, resolved_frame, approximation, _base_result, solver, options, run_args, states=None, dissipation=True, automatic_sampling=False)[source]¶
Bases:
objectShared solve metadata reused across a homogeneous problem batch.
Built once by
prepare_solve_problem_context(), so sweep points can skip redundant observable normalization.- tlist: Any¶
- e_ops: Any¶
- resolved_frame: Any¶
- approximation: Approximation¶
- quchip.engine.problem.prepare_solve_problem_context(chip, tlist, *, solver=None, options=None, e_ops=None, drive_ops=None, approximation=None, frame=None, states=None, dissipation=True, run_args=None, initial_states=None, _product_space=False)[source]¶
Resolve the frame and keep authored observables and state specifications.
Observables and states are materialized only after assembly resolves every local solver basis. The default ground state stays lazy, so callers that supply an explicit state do not pay for unused state construction.
frameoverrides the chip’s declared frame. For"auto", the solve windowtlist[-1] - tlist[0]gives the duration used for weights.tlistdefines the actual interval. Scheduled signals keep their absolute times, including operations partly or fully outside this interval.
- quchip.engine.problem.build_solve_batch_from_results(context, engine_results, *, initial_states=None)[source]¶
Package homogeneous
EngineResult`s as one :class:`SolveBatch.All results must share the same static term objects and the same number of dynamic terms. Each slot’s operator payloads must match, by identity or by canonical fingerprint.
initial_states=Nonegives every point one shared default start. IndividualNoneentries reuse that start. The batch shares one static Hamiltonian, frame, and start time.
- quchip.engine.problem.build_solve_problem(chip, drive_ops, tlist, *, solver=None, options=None, e_ops=None, initial_state=None, approximation=None, frame=None, states=None, dissipation=True, run_args=None, _initial_states=None, _product_space=False)[source]¶
Resolve, assemble, and package a frozen
SolveProblem.Equivalent to
prepare_solve_problem_context()followed bybuild_engine_result(). For many variants that share one chip configuration, use that two-step form withbuild_solve_batch_from_results().frameoverrides the chip’s declared frame and follows the same operation-aware"auto"resolution asprepare_solve_problem_context().