A high-performance quantum chemistry package designed for parallel OSV-MP2 and MBE(3)-OSV-MP2 calculations on CPU and GPU architectures.
- Hartree Fock
- OSV-MP2, MBE(3)-OSV-MP2, and MBE(3)-OSV-MP2 with global corrections
- Density fitting: incore, outcore and direct
- Without density fitting (for HF on GPU only): direct
- Energy
- Gradients for HF and MP2
- numpy
- scipy
- psutil
- pyscf
- mpi4py
- h5py (mpi-io)
- cuda-toolkit
- cupy
- gpu4pyscf
- openMM
- ParmEd
Verify that all required dependencies are installed by running:
python check_dependency.pyFrom your project root (where the ./src directory is located), execute the following:
mkdir build && cd build
cmake ../src
cmake --build . -j8- Manual BLAS Path: Use this if auto-detection fails.
cmake ../src -DBLAS_ROOT=/PATH_TO_BLAS/include
- Multiple CUDA Architectures:
cmake ../src -DCUDA_ARCHITECTURES="75;80;86"
Add the following to your shell configuration (e.g., .bashrc) or run them in your current session:
# Replace PATH_TO_OSVMP2 with your actual installation path
export OSVPATH=PATH_TO_OSVMP2
export PYTHONPATH=$OSVPATH:$PYTHONPATH
export osvmp2=$OSVPATH/osvmp2/opt_df.pyFor detailed configuration examples, please refer to the examples/ directory.
To run a calculation using ncore CPU cores:
mpirun -np ncore python $osvmp2 xxx.inp- Set the
ngpuparameter within your.inpfile. - The number of MPI processes (
ncore) must be equal to the number of GPUs (ngpu).
mpirun -np ngpu python $osvmp2 xxx.inpIf OSVMP2 contributes to your research, please cite the following papers:
-
CPU platform: Liang, Q.; Yang, J. Third-Order Many-Body Expansion of OSV-MP2 Wave Function for Low-Order Scaling Analytical Gradient Computation. J. Chem. Theory Comput. 2021, 17, 6841–6860. doi:10.1021/acs.jctc.1c00561
-
GPU platform: Liang, Q.; Yang, J. Multi-GPU MBE(3)-OSV-MP2 for performant large-scale ab initio calculations. arXiv: 2603.16575, 2026. https://arxiv.org/abs/2603.16575
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.