QITE and QRTE Workflows

Imaginary-time and real-time projected evolution via McLachlan updates.

Canonical entrypoint:

from qite.core import run_qite, run_qrte

Execution modes

Mode

Purpose

run

noiseless parameter evolution

eval-noise

noisy measurement

sweep

multi-noise statistics


Run

qite run \
  --molecule H2 \
  --steps 75 \
  --dtau 0.2

Equivalent Python:

from qite.core import run_qite

res = run_qite(
    molecule="H2",
    steps=75,
    dtau=0.2,
)

print(res["energy"])

Non-molecule expert mode

run_qite(...) and run_qrte(...) also accept a prebuilt qubit Hamiltonian:

import pennylane as qml

from qite.core import run_qite, run_qrte

H_model = qml.Hamiltonian(
    [1.0, 0.25],
    [qml.PauliZ(0), qml.PauliX(0)],
)

qite_res = run_qite(
    hamiltonian=H_model,
    num_qubits=1,
    reference_state=[1],
    ansatz_name="RY-CZ",
    steps=10,
    dtau=0.1,
    plot=False,
    show=False,
)

qrte_res = run_qrte(
    hamiltonian=H_model,
    num_qubits=1,
    reference_state=[1],
    ansatz_name="RY-CZ",
    steps=10,
    dt=0.05,
    plot=False,
    show=False,
)

Real-time run

qite run-qrte \
  --molecule H2 \
  --steps 50 \
  --dt 0.05

Equivalent Python:

from qite.core import run_qrte

res = run_qrte(
    molecule="H2",
    steps=50,
    dt=0.05,
)

print(res["energy"])
print(res["times"])

Use run_qrte() after a relevant state has already been identified or prepared. In practice that usually means:

  • prepare a ground state with run_vqe() or run_qite()

  • prepare an excited or approximate spectral reference with the excited-state tools

  • evolve that prepared state in time and analyze observables rather than energy minimization


Noisy evaluation

qite eval-noise \
  --molecule H2 \
  --dep 0.02

Noise sweep

qite eval-noise \
  --molecule H2 \
  --sweep-dep 0,0.02,0.04 \
  --seeds 0,1,2

Cache semantics

VarQITE / VarQRTE cache keys include:

  • molecule, geometry

  • canonical Pauli-term Hamiltonian fingerprints for prebuilt-Hamiltonian expert-mode runs

  • ansatz

  • ansatz_kwargs

  • steps, dtau or dt

  • solver parameters

  • seed

  • reference bitstrings for expert-mode Hamiltonian runs

  • initialization metadata for prepared-state VarQRTE runs

Ensures:

  • reproducible optimisation trajectories

  • noise evaluation does not invalidate optimisation cache

  • stale cache artifacts without runtime metadata are refreshed automatically instead of being trusted as benchmark inputs