NeuralQuantumStates.jl is a Julia package under development to facilitate the training of neural quantum states (NQS) by variational Monte Carlo (VMC).
The package aims to provide an efficient and extensible environment for the simulation of closed many-body quantum systems by exploiting the power of neural networks and modern computational resources. Inspired by established Python libraries such as NetKet and jVMC, NeuralQuantumStates.jl focuses on providing a machine learning toolbox for quantum many-body systems in a Julia-based environment.
This package is a work in progress. Most of the functionality still needs to be implemented. The performance still needs to be optimized for both CPU and GPU. The API for this package might still be unstable.
If you still want to try it out, you can install it from the Julia REPL by entering:
julia> import Pkg; Pkg.add("https://github.com/cevenkadir/NeuralQuantumStates.jl")For information on using this package, check out the in-development documentation.
-
Latticesmodule to generate any Bravais lattice. -
Networksmodule to generate canonical artificial neural networks (ANN) via Flux.jl. (work in progress) -
VarStatesmodule to define variational quantum states. (work in progress) -
Hilbertsmodule to define Hilbert spaces. -
Operatorsmodule to define arbitrary quantum operators on a computational basis. -
Samplersmodule to sample variational quantum states with Markov chain Monte-Carlo (MCMC) methods. -
Handlersmodule to optimize variational quantum states with gradient-based methods. - Support for distributed and parallel computing via MPI.jl.
- GPU support via CUDA.jl, AMDGPU.jl, and Metal.jl.
If you think you have found a bug or have a feature request, you can open an issue.
If you use this package in your work, we would appreciate the following reference as in CITATION.bib.