QuantumControl.jl
QuantumControl.jl is a Julia framework for quantum dynamics and control.
Quantum optimal control [1–8] 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 [9–14] 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
See the installation instructions on Github.
Look at a simple example for a state-to-state transition with GRAPE to get a feeling for how the
QuantumControl
package is intended to be used, or look at the larger list of Examples.Read the Glossary and Overview to understand the philosophy of the framework.
Contents
Examples
API
Sub-Packages
History
See the Releases on Github.