ipie stands for Intelligent Python-based Imaginary-time Evolution with a focus on simplicity and speed.
ipie inherits a lot of QMC features from pauxy.
Copyright by Joonho Lee (joonholee@g.harvard.edu)
ipie is a Python-based auxiliary-field quantum Monte Carlo (AFQMC) package, designed for simplicity and computational efficiency. The package has seen substantial improvements in modularity, functionality, and compatibility since its first release.
- Ground State Energy Estimation: Calculate ground state energies of ab-initio systems with phaseless AFQMC.
- Distributed Hamiltonian Simulations: Run large-scale simulations distributed across multiple CPUs or GPUs, enabling calculations on systems too large for a single node or GPU card.
- GPU Acceleration: Support both CPU and GPU calculations, with GPU acceleration provided by CuPy/CUDA and CUDA-aware MPI.
- Extended AFQMC Algorithms: Includes free projection AFQMC, finite temperature AFQMC, AFQMC for electron-phonon systems, and automatic differentiation for property calculation.
- Simple Data Analysis
- Other legacy features from pauxy
For technical details, see our latest release papers:
- [J. Chem. Theory Comput., 2023, 19(1): 109-121](https://pubs.acs.org/doi/10.1021/acs.jctc.2c00934)
- [J. Chem. Phys. 161, 162502 (2024)](https://doi.org/10.1063/5.0225596)
Linux and Mac OS wheels are available for installation via pip:
$ pip install ipie
For development, clone the repository:
$ git clone https://github.com/linusjoonho/ipie.git
Navigate to the top-level ipie directory and run:
$ pip install -r requirements.txt $ pip install -e .
To build ipie with MPI support (via mpi4py), install with:
$ pip install -e .[mpi]
This requires a working MPI installation on your machine, which can be installed via conda:
conda install openmpi
Refer to the mpi4py documentation for alternative installation options.
For GPU support, cupy is required and can be installed as outlined on the Cupy website. For CUDA-aware MPI, consider conda-forge.
Unit tests and driver tests are included. To run all tests:
$ pytest -v
More extensive parallel tests are executed in the CI; see .github/workflows/ci.yml for details.
ipie also provides optimized implementations for certain functions involving multiple Slater determinant trials using C/C++ code, which can be built for enhanced performance. To compile these functions into a shared library, navigate to the ipie/lib/wicks folder and use CMake and Make:
$ cmake . $ make
Documentation and tutorials are available at ReadTheDocs.