QuantumControl.jl

Github v0.11.1

QuantumControl.jl is a Julia framework for quantum dynamics and control.

Quantum optimal control [18] attempts to steer a quantum system in some desired way by finding optimal control parameters or control fields inside the system Hamiltonian or Liouvillian. Typical control tasks are the preparation of a specific quantum state or the realization of a logical gate in a quantum computer ("pulse level control"). Thus, quantum control theory is a critical part of realizing quantum technologies at the lowest level. Numerical methods of open-loop quantum control (methods that do not involve measurement feedback from a physical quantum device) such as Krotov's method [914] and GRAPE [15, 16] address the control problem by simulating the dynamics of the system and then iteratively improving the value of a functional that encodes the desired outcome.

Functional

Mathematically, the control problem is the minimization of a functional of the form

\[J(\{ϵ_l(t)\}) = J_T(\{|Ψ_k(T)⟩\}) + λ_a \, \underbrace{∑_l \int_{0}^{T} g_a(ϵ_l(t)) \, dt}_{=J_a(\{ϵ_l(t)\})} + λ_b \, \underbrace{∑_k \int_{0}^{T} g_b(|Ψ_k(t)⟩) \, dt}_{=J_b(\{|Ψ_k(t)⟩\})}\,,\]

where $\{ϵ_l(t)\}$ is a set of control functions defined between the initial time $t=0$ and the final time $t=T$, and $\{|Ψ_k(t)⟩\}$ is a set of "trajectories" evolving from a set of initial states $\{|\Psi_k(t=0)⟩\}$ under the controls $\{ϵ_l(t)\}$. The full functional consists of the final-time functional $J_T$, a control-dependent running cost $J_a$ weighted by $λ_a$, and sometimes a state-dependent running cost $J_b$ weighted by $λ_b$. The states can be Hilbert space vectors or density matrices, and the equation of motion is implicit, typically the Schrödinger or Liouville equation.

The QuantumControl.jl package provides a single coherent API for solving the quantum control problem with the packages in the JuliaQuantumControl organization. Different optimization methods target specific variants of the above functional.

Getting Started

Contents

Examples

API

Sub-Packages

History

See the Releases on Github.