Solver

class Solver(static_hamiltonian, driving_operators=None, noise_operators=None)

Solver for the time-dependent Schrödinger equation.

The solver converts the supplied static Hamiltonian, driving operators, and optional noise operators into generator matrices, then combines them with time-dependent Signal / SignalSum objects during propagation. It does so by discretizing each time segment into short steps and approximating each step with a matrix exponential of the local generator. Use solve_batch() to propagate one or more initial states over a single time segment, and solve_time_segment_sequence() to stitch together multiple segments.

Parameters:
  • static_hamiltonian (ndarray | Array) – Static Hamiltonian of the segment.

  • driving_operators (Sequence[ndarray | Array] | None) – Optional driving operators multiplying the time-dependent drive signals.

  • noise_operators (Sequence[ndarray | Array] | None) – Optional operators multiplying shot-dependent quasistatic-noise coefficients.

Methods

make_generator_without_noise(unp_inner, ...)

Build a generator factory that optionally injects noise coefficients.

solve_batch(y0, t_span[, t_eval, ...])

Propagate one or more initial conditions through a single time span.

Attributes

drive_generators

Per-drive generators (\(-2\pi i\) times each driving operator), or None.

noise_generators

Per-noise-term generators (\(-2\pi i\) times each noise operator), or None.

static_generator

Static-Hamiltonian generator \(-2\pi i H_0\) driving the evolution.