This README is a list of Julia projects, packages, and organizations for quantum information science and technology and related fields, such as condensed matter physics. It includes links to related lists and other resources.
If you would like to add a project to this list, please feel free to make a pull request. If you don't have time to make a pull request, please open an issue.
- The names of these packages typically end in
.jl
. In particular, the suffix is included to distinguish packages from similarly-named non-Julia packages. - The date of the most recent development activity appears just after the name of the package.
- Blurbs taken from the sites should be in italics (asterisks in markdown)
- Packages that support quantum information packages (e.g. tensor packages) are included here. Exactly where to cut this off is not clear.
- TODO: How to organize ? By organization for some software seems useful. Within orgs: alphabetically?, popularity? ...
- TutorialForPhysicists.jl (11 2019) including lists of packages for physics. The gihub page. The author says
- this is out of date and 2) See this.
- Cliffords.jl (04 2020) - Efficient calculation of Clifford circuits.
- QuantumTomography.jl (05 2020) - Quantum state- and process tomography.
- QGL.jl (04 2018) - A performance orientated QGL compiler. This is a Julia reimplemenation of QGL.jl (05 2020) (Quantum Gate Language), a python library.
- MESolve.jl (05 2020) - Master Equation Solver.
- QuantumInfo.jl (04 2020) - Library for quantum information related calculations.
- QSimulator.jl (11 2019) - Unitary and Lindbladian evolution.
- RandomQuantum.jl (12 2019) - Package for generating random quantum states and processes according to a number of natural distributions.
- PAPA.jl (12 2019) - PAirwise Perturbative Ansatz for Better Estimation And Runtime.
- SchattenNorms.jl (01 2019) - Schatten norms, including completely bounded norms, such as Kitaev's diamond norm (ubiquitous in, e.g., quantum information processing
- MathieuFunctions.jl (03 2020) - For computing anharmonic quantum oscillator energies.
- Qlab.jl (05 2020) - Generic lab tools.
- Instruments.jl (05 2020) - Instrument Control.
A group of quantum developers around Bao Fu Si (Temple).
The QuantumBFS org maintains a mostly integrated set of about 20 packages for quantum computaion. They are centered around Yao.jl.
- Yao.jl (03 2020) - Extensible, Efficient Quantum Algorithm Design for Humans. yaoquantum.org.
Jutho Jutho Haegeman's tensor code
- TensorOperations.jl (05 2020) - tensor contractions and related operations.
- WignerSymbols.jl (02 2020) - computing Wigner symbols and related quantities.
- LinearMaps.jl (04 2020) - defining and working with linear maps, also known as linear transformations or linear operators acting on vectors. The only requirement for a LinearMap is that it can act on a vector (by multiplication) efficiently.
- TensorKit.jl (05 2020) - large-scale tensor computations, with a hint of category theory
- ITensors.jl (05 2020) - efficient tensor computations and tensor network calculations
- NDTensors.jl (05 2020) - n-dimensional sparse tensors.
- PEPS.jl (05 2020) - Projected entangled pair states.
Quantum Optics (QOJulia)
- QuantumOptics.jl (05 2020) - a numerical framework written in Julia that makes it easy to simulate various kinds of quantum systems. It is inspired by the Quantum Optics Toolbox for MATLAB and the Python framework QuTiP. This is evidently more general than quantum optics.
IITiS PAN (Institute of Theoretical and Applied Informatics of the Polish Academy of Sciences)
- QuantumInformation.jl (08 2019) - numerical computation in quantum information theory.
- QSWalk.jl (04 2020) - simulating the evolution of open quantum systems on graphs.
- QContinuousMeasurement.jl (11 2020)
- ContinuousMeasurementFI (05 2018) Fisher information for magnetometry and frequency estimation with continuously monitored spin systems, with independent Markovian noise acting on each spin.
- QuasiHamiltonianRTN (11 2018) evaluating the dynamics of a quantum system affected by one or more sources of random telegraph noise
- ExpmV.jl function for computing
expm(t*A)*v
whenA
is sparse, without explicitly computingexpm(A)
(Based on original by Marcus P da Silva) - QuantumSpatialSearch (11 2018)
The following are used to model super-conducting architectures.
- AdmittanceModels.jl (12 2019) - Analysis of linear systems using admittance models
- DiscretePDEs.jl (10 2019) - Partial differential equations using Discrete Exterior Calculus
- DiscreteExteriorCalculus.jl (10 2019) - Discrete differential geometry on simplicial complexes
Superconducting qubits and quantum resonators. The majority of these packages were last updated no later than (05 2019)
- ILog2 a fast implementation integer-valued, base 2 logarithm
Some tensor packages appear above. Repeat them ? Link them ?
Here is discussion on tensor packages.
- SymmetricTensors.jl (05 2020) - Framework for symmetric tensors
- Tensors.jl (02 2020) - Efficient computations with symmetric and non-symmetric tensors with support for automatic differentiation. The author says this is for real tensors. So quantum applications may be limited. Or the author may say "real" for "genuine".
- TensorCast.jl (05 2020) - It slices, it dices, it splices!
- OMEinsum.jl (06 2020) - One More Einsum for Julia! With runtime order-specification and high-level adjoints for AD
- TensorNetworkAD.jl (08 2019) - Algorithms that combine tensor network methods with automatic differentiation.
- Einsum.jl (02 2019) - Einstein summation notation
- Tullio.jl (12 2020)
- MERA.jl (04 2020) - some basic Multiscale Entaglement Renormalization Ansatz algorithms
- Schrodinger.jl (04 2020) - Fast and easy simulation of quantum mechanical systems.
- Grassmann.jl (05 2020) - ⟨Leibniz-Grassmann-Clifford⟩ differential geometric algebra / multivector simplicial complex
- QuantumLab.jl (05 2020) - A workbench for Quantum Chemistry and Quantum Physics.
- DFTK.jl (06 2020) - Density-functional toolkit is a library of Julia routines for experimentation with plane-wave density-functional theory (DFT), as implemented in much larger production codes such as Abinit, Quantum Espresso and VASP.
- JuliaMolSim (06 2020) - Molecular Simulation in Julia. Note that DFTK.jl, listed above, is in this org.
- Molly.jl (05 2020) - Molecular dynamics
- ProteinEnsembles.jl (10 2019) - Generate and perturb protein structural ensembles using the ExProSE algorithm
The date of last activity is shown in parentheses.
- JuliaQuantum (12 2016)
- TensorToolbox.jl (09 2017) See the author Jutho's [replacement packages]((https://github.com/Jutho)
- NCon.jl recommended replacement: TensorOperations.jl