TimePropagation#

class cuquantum.densitymat.TimePropagation(
operator,
is_hermitian=True,
scope='split',
approach='krylov',
scope_config=None,
approach_config=None,
)[source]#

Time propagation of a quantum state under the action of an operator.

The propagation advances pure states according to the Schrodinger equation and mixed states according to the Liouvillian equation.

Parameters:
  • operator – The Operator governing the time evolution.

  • is_hermitian – Whether the operator is Hermitian.

  • scope – Propagation scope. Accepts "split" or a cudm.TimePropagationScopeKind enum value.

  • approach – Propagation approach. Accepts "krylov" or a cudm.TimePropagationApproachKind enum value.

  • scope_config – Optional scope-specific configuration (TDVPConfig).

  • approach_config – Optional approach-specific configuration (KrylovConfig).

Methods

__init__(
operator: Operator,
is_hermitian: bool = True,
scope: str | TimePropagationScopeKind = 'split',
approach: str | TimePropagationApproachKind = 'krylov',
scope_config: TDVPConfig | None = None,
approach_config: KrylovConfig | None = None,
) None[source]#
compute(
dt: float | complex | tuple,
t: float,
params: ndarray | ndarray | Sequence[float] | None,
state_in: State,
state_out: State,
) None[source]#

Compute the time propagation of a quantum state.

Parameters:
  • dt – Time step. Accepts a real float, a complex number, or a (real, imag) tuple. The real and imaginary parts are passed separately to the C API.

  • t – Current time value passed to all callback functions.

  • params – Additional callback parameters. Element type must be float64.

  • state_in – Input quantum state.

  • state_out – Output quantum state (will be overwritten with propagated result).

configure(
scope_config: TDVPConfig | None = None,
approach_config: KrylovConfig | None = None,
) None[source]#

Update the propagation configuration.

If the propagation has already been instantiated, the new configuration will be applied on the next prepare() or compute() call.

Parameters:
  • scope_config – Scope-specific configuration (TDVPConfig).

  • approach_config – Approach-specific configuration (KrylovConfig).

prepare(
ctx: WorkStream,
state_in: State,
state_out: State,
compute_type: str | None = None,
) None[source]#

Prepare the time propagation for computation.

Parameters:
  • ctx – Library context containing workspace, stream and other configuration.

  • state_in – Representative input quantum state.

  • state_out – Representative output quantum state.

  • compute_type – CUDA compute type string (e.g. "complex128").