Time-Dependent Hamiltonians

Time-dependent Hamiltonian helpers.

class openquantumsim.timedep.InterpolatedCoefficient(times, values)

Bases: object

Linearly interpolated scalar coefficient for time-dependent operators.

Parameters:
  • times (ndarray[tuple[Any, ...], dtype[float64]])

  • values (ndarray[tuple[Any, ...], dtype[complex128]])

times: ndarray[tuple[Any, ...], dtype[float64]]
values: ndarray[tuple[Any, ...], dtype[complex128]]
class openquantumsim.timedep.HamiltonianTerm(operator, coefficient)

Bases: object

One term coefficient(t) * operator in a time-dependent Hamiltonian.

Parameters:
operator: Operator
coefficient: Number | Callable[[float], object] | InterpolatedCoefficient
class openquantumsim.timedep.TimeDependentHamiltonian(base, terms)

Bases: object

Hamiltonian of the form H0 + sum_i f_i(t) H_i.

Parameters:
base: Operator
terms: tuple[HamiltonianTerm, ...]
property shape: tuple[int, int]

Matrix shape.

property dim: int

Matrix dimension.

property space: HilbertSpace | None

Hilbert-space descriptor from the base operator.

to_numpy(t)

Evaluate H(t) as a dense NumPy matrix.

Parameters:

t (float)

Return type:

ndarray[tuple[Any, …], dtype[complex128]]

at(t)

Evaluate H(t) and return it as an Operator.

Parameters:

t (float)

Return type:

Operator

openquantumsim.timedep.time_dependent_hamiltonian(base, terms)

Build H(t) = base + sum_i coefficient_i(t) * operator_i.

Parameters:
Return type:

TimeDependentHamiltonian