QDpack (Quantum Dynamics Package) is a free open-source software package (LGPL), implemented in C, for calculating the time-evolution of quantum systems. QDpack includes solvers for both unitary and dissipative dynamics, which can be applied to arbitrary quantum systems as long the total numbers of states is moderate (~100 to 300, depending on the stiffness of the problem). QDpack is a low-level C library. In order to solve a particular problem a C program needs to be created. A good starting point is one of the many examples that are included in the distribution tarball. It is often sufficient to create a new definition of a Hamiltonian to get started with a new calculation.
Change Log
- 2010-10-01: qdpack 1.1: Added steady-state solver for driven systems, routines for calculating wigner and Q functions, minor bug fixes, sparse matrix support for steady state calculations.
- 2008-06-01: qdpack 1.0: First public release.
Download
Features
- Unitary evolution with arbitrary time-dependent Hamiltonians.
- Dissipative evolution using the Lindblad master equation formalism, with arbitrary time-dependent Hamiltonian.
- Evolution (unitary and dissipative) in time-dependent basis (i.e. instantaneous eigenbasis of a time-dependent Hamiltonian).
- Calculation of expectation values of arbitrary operators as a function of time.
- Calculation of steady state for time-independent systems.
- Calculation of two-time expectation values (correlation functions) of arbitrary operators as a function of time.
- Calculation of entanglement measures for two-level quantum systems.
- Pre-configured Hamiltonians:
- Coupled qubits (spin chains, etc.).
- Two-level system coupled to a single-mode harmonic oscillator (Jaynes-Cummings model).
- Multiple qubits (two-level system) coupled to a single-mode harmonic oscillator (Qubits coupled via a harmonic oscillator bus).
- Two coupled single-mode harmonic oscillators.
Build and install instructions for Ubuntu Linux
- Requirements: CBLAS, CLAPACK, GSL and UMFPACK (for sparse matrices) . First install these packages. In Ubuntu Linux, run:
sudo apt-get install libblas-dev liblapack-dev
sudo apt-get install libatlas-base-dev libatlas3gf-sse2
sudo apt-get install libgsl0-dev libgsl0-dbg
sudo apt-get install libf2c2 libf2c2-dev f2c
sudo apt-get install libsuitesparse-dev
Download and unpack the QD package tarball: tar zxfv qdpack-1.1.tar.gz
Edit the Makefile. Make sure that the CFLAGS and LDLIBS correctly specifies the locations of the dependency libraries (i.e., BLAS, LAPACK, GSL, etc.).
Run "make" to compile, and optionally "make install".
Edit the simulation files run_qubits.c, run_ho.c, etc., compile and run a simulation by running e.g. "./run_qubits ...", etc. The simulation produces output files in "tab-separated values" (TSV) format which are stored in the "data" directory.
Documentation
To get started get started using the QD package
have a look at this example, as well as the examples that are included in the source
code distribution.
Also, the QDpack source code is partially documented using Doxygen,
which automatically generates API reference pages that can be found in the source code distribution.
Copyright © Robert Johansson