Skip to content

Deep learning quantum Monte Carlo for electrons in real space

License

Notifications You must be signed in to change notification settings

deepqmc/deepqmc

Repository files navigation

DeepQMC

checks coverage python pypi commits since last commit license code style Checked with pyright doi

DeepQMC is an open-source sowftware suite for variational optimization of deep-learning molecular wave functions. It implements the simulation of electronic ground and excited states using deep neural network trial wave functions. The package is based on JAX and Haiku and is configured through a cli build of Hydra.

The program solves the molecular Hamiltonian, allowing the use of effective core potentials. Excited states are obtained via a penalty-based excited-state optimization approach. A spin penalty allows states in a fixed spin sector to be targeted.

The software suite includes a general neural network wave function ansatz, that can be configured to obtain a wide range of molecular neural network wave functions. Config files for the instantiation of variants of PsiFormer, PauliNet, FermiNet and DeepErwin can be found under src/deepqmc/conf/ansatz.

Installation

Install and update to the latest release using Pip:

pip install -U deepqmc

To install DeepQMC from a local Git repository run:

git clone https://github.com/deepqmc/deepqmc
cd deepqmc
pip install -e .[dev]

If Pip complains about setup.py not being found, please update to the latest Pip version.

The above installation will result in the CPU version of JAX. However, running DeepQMC on the GPU is highly recommended. To enable GPU support make sure to upgrade JAX to match the CUDA and cuDNN versions of your system. For most users this can be achieved with:

# CUDA 12 installation
pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

If issues arise during the JAX installation visit the JAX Install Guide.

To validate the correct installation of DeepQMC and its dependencies run:

deepqmc

Documentation and exemplary usage

For further information about the DeepQMC package and tutorials covering the basic usage visit the documentation.

An introduction to the methodology, implementation details and exemplary experiments can be found in the associated software paper.

The penalty-based excited states approach and its implementation in DeepQMC is discussed in our recent paper on excited state optimization.

Citation

If you use DeepQMC for your work, please cite our implementation paper:

@article{10.1063/5.0157512,
    author = {Schätzle, Z. and Szabó, P. B. and Mezera, M. and Hermann, J. and Noé, F.},
    title = "{DeepQMC: An open-source software suite for variational optimization of deep-learning molecular wave functions}",
    journal = {The Journal of Chemical Physics},
    volume = {159},
    number = {9},
    pages = {094108},
    year = {2023},
    month = {09},
    issn = {0021-9606},
    doi = {10.1063/5.0157512},
    url = {https://doi.org/10.1063/5.0157512},
}

Experiments including excited state optimization should cite out excited state paper:

@article{10.1021/acs.jctc.4c00678,
    author = {Szabó, P. B. and Schätzle, Z. and Entwistle, M. and Noé, F.},
    title = "{An Improved Penalty-Based Excited-State Variational Monte Carlo Approach with Deep-Learning Ansatzes}",
    journal = {Journal of Chemical Theory and Computation},
    year = {2024},
    month = {08},
    issn = {1549-9618},
    doi = {10.1021/acs.jctc.4c00678},
    url = {https://doi.org/10.1021/acs.jctc.4c00678},
}

The repository can be cited as:

@software{deepqmc,
	author = {Hermann, J. and Schätzle, Z. and Szabó, P. B. and Mezera, M and {DeepQMC Contributors}},
	title = "{DeepQMC}",
	year = {2024},
	publisher = {Zenodo},
	copyright = {MIT},
	url = {https://github.com/deepqmc/deepqmc},
	doi = {10.5281/zenodo.3960826},
}