QuantumPropagators

Github v0.8.3

The QuantumPropagators package implements methods for simulating the time dynamics of a quantum system. It is the numerical backend for all packages implementing methods of optimal control within the JuliaQuantumControl organization.

The purpose is this package is to:

  • Implement the piecewise-constant propagation methods that have been traditionally used in quantum control, based on an expansion of the time evolution operator into Chebychev polynomials (closed systems) or Newton polynomials (open systems),
  • Delegate to third-party packages that implement state-of-the-art methods for time-continuous dynamics (DifferentialEquations.jl).
  • Define data structures for "dynamical generators" (time-dependent Hamiltonians or Liouvillians) that are relevant to quantum control. Specifically, this includes a well-defined notion of "control functions" and "control parameters" inside the Hamiltonian.
  • Define a general interface for a time propagators that is suitable for all aspects of quantum control. This includes the ability to efficiently tune control parameters or control functions while the propagation is running (for "sequential updates"), and the ability to propagate both forwards and backwards in time.

The focus on quantum control separates this package from other solutions for just simulating the time dynamics of a quantum system, e.g. within QuantumOptics.jl or directly with DifferentialEquations.jl. Also, while QuantumPropagators defines a general interface for dynamic generators, it is otherwise agnostic about the data structures to represent Hamiltonians or quantum states. This allows for the use of modeling frameworks like QuantumOptics.jl or of custom problem-specific data structures.

Contents

History

See the Releases on Github.