This repo is still in the early stages of development, there will be breaking API changes
Qiskit Dynamics is an open-source project for building, transforming, and solving time-dependent quantum systems in Qiskit.
The goal of Qiskit Dynamics is to provide access to different numerical methods for solving differential equations, and to automate common processes typically performed by hand, e.g. applying frame transformations or rotating wave approximations to system and control Hamiltonians.
Qiskit Dynamics can be configured to use either NumPy or JAX as the backend for array operations. NumPy is the default, and JAX is an optional dependency. JAX provides just-in-time compilation, automatic differentiation, and GPU execution, and therefore is well-suited to tasks involving repeated evaluation of functions with different parameters; E.g. simulating a model of a quantum system over a range of parameter values, or optimizing the parameters of control sequence.
Reference documentation may be found here, including tutorials, user guide, API reference, and Discussions.
Qiskit Dynamics may be installed using pip via:
pip install qiskit-dynamics
Additionally, Qiskit Dynamics may be installed simultaneously with the CPU version of JAX via:
pip install "qiskit-dynamics[jax]"
Installing JAX with GPU support must be done manually, for instructions refer to the JAX installation guide.
If you'd like to contribute to Qiskit Dynamics, please take a look at our contribution guidelines. This project adheres to Qiskit's code of conduct. By participating, you are expected to uphold this code.
We use GitHub issues for tracking requests and bugs. Please join the Qiskit Slack community and use our #qiskit-dynamics channel for discussion and simple questions. For questions that are more suited for a forum we use the Qiskit tag in the Stack Exchange.
Qiskit Dynamics is the work of many people who contribute to the project at different levels. If you use Qiskit, please cite as per the included BibTeX file.