qdk_chemistry.algorithms.propagator package

QDK/Chemistry propagator module.

class qdk_chemistry.algorithms.propagator.MagnusPropagator

Bases: Propagator

Magnus propagator for time-dependent Hamiltonian simulation.

Evaluates the effective Hamiltonian for an interval \([t_1, t_2]\) via the Magnus expansion. Currently only the leading-order (order 1, time averaging) term is implemented, and only for DrivenContainer Hamiltonians \(H(t) = H_0 + f(t)\,H_1\), for which the drive integral reduces to a scalar quadrature and

\[H_\text{eff} = H_0 + \bar f\,H_1, \qquad \bar f = \frac{1}{\delta t}\int_{t_1}^{t_2} f(t')\,\mathrm{d}t'.\]

Since \(\Omega_1 = -\mathrm{i}\int_{t_1}^{t_2}H(t')\,\mathrm{d}t'\), the propagator returns the Hermitian effective Hamiltonian \(H_\text{eff} = \mathrm{i}\Omega_1 / \delta t\). A time-stepping integrator then applies \(\exp(-\mathrm{i}\,\delta t\,H_\text{eff}) = \exp(\Omega_1)\), where \(\delta t = t_2 - t_1\). For sufficiently smooth \(H(t)\), this has \(O(\delta t^3)\) local error and second-order global accuracy over a fixed evolution interval.

Requesting an order greater than 1, or passing any other container type, raises NotImplementedError.

__init__()

Initialize the Magnus propagator.

name()

Return magnus as the algorithm name.

Return type:

str

class qdk_chemistry.algorithms.propagator.MagnusPropagatorSettings

Bases: Settings

Settings for the Magnus propagator.

order

Magnus expansion order (default = 1). Only the leading-order term (order 1, time averaging) is currently implemented; any larger value raises NotImplementedError when the propagator runs.

Type:

int

__init__()

Initialize settings with default Magnus expansion order.

class qdk_chemistry.algorithms.propagator.Propagator

Bases: Algorithm

Abstract base for propagator algorithms.

A propagator maps a time-dependent Hamiltonian and a time interval \([t_1, t_2]\) to an effective time-independent QubitOperator:

\[H_{\mathrm{eff}} = \frac{1}{\delta t} \int_{t_1}^{t_2} H(t')\,\mathrm{d}t'\]

Concrete implementations may compute the integral analytically, numerically, or via other approximation schemes.

__init__()

Initialize the Propagator.

type_name()

Return propagator as the algorithm type name.

Return type:

str

class qdk_chemistry.algorithms.propagator.PropagatorFactory

Bases: AlgorithmFactory

Factory class for creating Propagator instances.

algorithm_type_name()

Return propagator as the algorithm type name.

Return type:

str

default_algorithm_name()

Return magnus as the default algorithm name.

Return type:

str

Submodules