Guide Stinespring dilation circuit construction and p-VQD variational dynamics in Yao.jl for open quantum system simulation
Guide Claude when implementing Stinespring dilation circuits and variational quantum dynamics (p-VQD) in Yao.jl. This skill covers both converting Kraus operators into quantum circuits and running the variational time-stepping loop.
Invoke when writing Yao.jl circuit code, implementing Stinespring dilation, debugging variational optimization, or during early Yao.jl warm-up/familiarization.
Yao.jl — quantum circuit construction (chain, put, control, matblock), register management, measurementYaoBlocks.jl — custom gate blocks from matricesOptim.jl — BFGS fallback optimizerJLD2.jl — serializationCairoMakie.jl — result plots{K_j^(k)}data/kraus/{model}_bath{j}_step{n}.jld2Save to data/circuit/{model}_dynamics.jld2 with keys:
t — time arraydensity_matrices — Vector of density matrices at each time stepexpectation_values — Dict of observable tracescircuit_params — variational parameters θ at each stepEmbed Kraus operators into a unitary on system + ancilla qubits.
Construction: Given r Kraus operators {K_1, ..., K_r} each d×d:
n_anc = ceil(Int, log2(r)) qubits. Pad r to next power of 2 if needed.V = [K_1; K_2; ...; K_r; zeros...] of size (d * 2^n_anc) × d.matblock(U).Two modes:
measure! + register reset.Implement both. Default to (a).
Parameterized circuit V(θ_n) for system Hamiltonian evolution at each time step.
Method: Projected Variational Quantum Dynamics (Barison et al. 2021)
At each time step t_n → t_{n+1}:
classical-baselines dynamics for spin-boson and dimermeasure! collapses the register. Use measure (no bang) if you need the pre-measurement state. For density matrix simulation, use DensityMatrix register type.Stage 4 of 5. Depends on: kraus-extraction (Kraus operator inputs), classical-baselines (validation targets). Feeds into: benchmark-scaling (full pipeline results).