The JuliaQuantumControl organization collects packages implementing a comprehensive collection of methods of open-loop quantum optimal control.
Quantum optimal control theory 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. 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 and GRAPE 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.
The packages in JuliaQuantumControl that implement specific individual methods should be used via the high-level package QuantumControl.jl
.
Package | Version | CI Status | Coverage | Description |
---|---|---|---|---|
⭐️ QuantumPropagators.jl | Simulate the time evolution of quantum systems (docs) | |||
⭐️ QuantumControl.jl | Framework for Quantum Dynamics and Control (docs) | |||
QuantumGradientGenerators.jl | Dynamic Gradients for Quantum Control (docs) | |||
Krotov.jl | Krotov's method of optimal control (docs) | |||
GRAPE.jl | Gradient Ascent Pulse Engineering method (docs) | |||
TwoQubitWeylChamber.jl | Optimizing two-qubit gates in the Weyl chamber (docs) | |||
QuantumControlTestUtils.jl | Tools for testing and benchmarking (docs) |
Read the QuantumControl.jl
documentation for a comprehensive description of the framework.
Support is also available in the #quantumcontrol
channel in the Julia Slack.
The QuantumControl.jl
package can be installed via the standard Pkg manager:
pkg> add QuantumControl
You may also want to install additional packages from the JuliaQuantumControl organization as needed:
pkg> add QuantumPropagators
pkg> add Krotov
pkg> add GRAPE
Development or pre-release use of JuliaQuantumControl packages requires a dev-installation of all packages. To facilitate this, we provide a development environment for the entire organization in the JuliaQuantumControl
repository . Cloning that repository provides a Makefile
to develop across all packages. In order to use this Makefile
, it is strongly recommended that you use Unix as a development platform (Linux, macOS, or WSL on Windows).
See the dev-environment README for details.