Skip to main content

Python bindings for MSH-QC quantum mechanics library

Project description

MSHQC - Multi-State High-Quality Calculations

License: MIT C++17 Python 3.8-3.13 PyPI version

MSHQC is a high-performance, open-source quantum chemistry library implementing modern electronic structure methods with seamless Python bindings. Designed for both accuracy and extreme computational efficiency, it leverages a highly optimized C++ core utilizing hardware-specific vectorization (AVX2/FMA).

🚀 The "Ultimate" Computational Engine

Under the hood, MSHQC is built on a heavily optimized scientific computing stack to handle extremely large-scale out-of-core calculations:

  • libcint: High-performance analytical integral engine for electron repulsion integrals (ERI).
  • TBLIS: Fast tensor contraction framework that avoids explicit multidimensional array transposition.
  • HDF5: Out-of-core data handling for massive tensor storage (specifically optimized for ABI stability).
  • Eigen3: Modern C++ template library for linear algebra, heavily vectorized.
  • BLIS / OpenBLAS & LAPACKE: Multithreaded standard linear algebra backend.
  • nanobind: Lightweight, highly efficient Python/C++ binding interface (replacing Pybind11).
  • Jemalloc (Optional): Scalable and fragmentation-resistant memory allocator.

🌟 Features

1. Self-Consistent Field (SCF)

  • Restricted, Unrestricted, and Restricted Open-shell Hartree-Fock (RHF, UHF, ROHF).
  • DIIS convergence acceleration.
  • Cholesky Decomposition Variants (CD-RHF, CD-UHF, CD-ROHF).

2. Perturbation Theory (MPn)

  • Møller-Plesset MP2 & MP3 (Restricted and Unrestricted).
  • Orbital-Optimized MP2/MP3 (OMP2/OMP3).
  • Cholesky Decomposition Variants (CD-RMP2/3, CD-UMP2/3, CD-OMP2/3).

3. Multi-Configurational Methods (MCSCF)

  • Complete Active Space SCF (CASSCF) & State-Averaged CASSCF (SA-CASSCF).
  • Complete Active Space Perturbation Theory 2nd order (CASPT2).
  • Cholesky Decomposition Variants (CD-CASSCF, CD-SA-CASSCF).
  • Cholesky Decomposition Perturbation Theories (CD-CASPT2, CD-SA-CASPT2, CD-SA-CASPT3).

4. Advanced Tooling

  • Integral Transformations: Cholesky decomposition for ERI and Four-Index Transformations.
  • Gradients: Analytical and numerical gradients, and geometry optimization.
  • Properties: Natural orbitals, transition density matrices, and one-particle density matrices (OPDM).

📦 Installation

Option A: Install Pre-compiled Wheels via PyPI (Recommended)

MSHQC is continuously tested and deployed via GitHub Actions. Pre-compiled, manylinux-compatible wheels are available for Python 3.10 through 3.13.

pip install mshqc
Option B: Compiling from Source (Super-Turbo Mode)

If you want to compile MSHQC locally to leverage -march=native optimizations for your specific CPU architecture, we highly recommend using an isolated Conda environment to manage the complex C++ library dependencies.
1. System Requirements

    C++ Compiler: GCC 7+ or Clang 5+ (Must support C++17, AVX2, and FMA).

    CMake: Version 3.18 or higher.

    Build Tools: Ninja, Make, ccache (recommended).

2. Conda Environment Setup

To prevent linking errors, install the complete "Ultimate Stack" via conda-forge:
Bash

# Create and activate environment
conda create -n mshqc_env python=3.12
conda activate mshqc_env

# Install critical C++ libraries and build tools
conda install -y -c conda-forge \
    cmake make compilers eigen pkg-config \
    "hdf5=1.14.3" pip libcint tblis liblapacke openblas

# Install Python-level build requirements
python -m pip install build wheel nanobind numpy scipy

3. Build and Install

Clone the repository and install it in editable mode:
Bash

git clone [https://github.com/syahrulhidayat/mshqc.git](https://github.com/syahrulhidayat/mshqc.git)
cd mshqc

# Compile and install the Python bindings
pip install -e .

(Note: The build system automatically detects the Conda environment and links against the optimized versions of libcint, TBLIS, and HDF5).
💻 Quick Start
Python

import mshqc
import numpy as np

# Set up your calculation parameters
# (Refer to the official documentation for detailed API usage)
print(f"MSHQC Version: {mshqc.__version__}")

🛠️ Development & CI/CD

This project utilizes GitHub Actions for continuous integration. Upon pushing to specified branches or tagging releases, the pipeline automatically:

    Compiles the C++ core with Universal HPC optimizations.

    Generates Python bindings via nanobind.

    Repairs Linux binaries using auditwheel to ensure cross-platform compatibility.

    Deploys the wheels to PyPI and a public facing repository.

🐛 Bug Reports & Contributions

If you encounter any issues, compile errors, or have feature requests, please report them on the Issue Tracker. Code contributions, bug fixes, and documentation improvements are highly appreciated.
📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mshqc-1.0.0.dev95-cp313-cp313-manylinux_2_39_x86_64.whl (70.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

mshqc-1.0.0.dev95-cp312-cp312-manylinux_2_39_x86_64.whl (70.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

mshqc-1.0.0.dev95-cp311-cp311-manylinux_2_39_x86_64.whl (70.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

mshqc-1.0.0.dev95-cp310-cp310-manylinux_2_39_x86_64.whl (70.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

File details

Details for the file mshqc-1.0.0.dev95-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mshqc-1.0.0.dev95-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 4c9808912d2bd0b1517542fdd8101cbcf56e3d21cc51ebf1eacba1a8cb143d6f
MD5 6232f39f9cb592d8bc7f662cece0a6c8
BLAKE2b-256 421f0d3c235f826737bb33c1e8b2218043484db771bab6667f82223f9bf152ed

See more details on using hashes here.

File details

Details for the file mshqc-1.0.0.dev95-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mshqc-1.0.0.dev95-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 670df45ed60175dccdf4efa27494de69f44d73a8d40f4e6721499c264dd5557c
MD5 d90cc6de805e1ea8fbde5ea8c40f2806
BLAKE2b-256 83a2d3cb579b6a3fd15a3353dace4a44ae2778a4d99552d59f464d32cda896e9

See more details on using hashes here.

File details

Details for the file mshqc-1.0.0.dev95-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mshqc-1.0.0.dev95-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 c6673e41c878542e174d2dd0e453e17f0d119c8464155f5bd7e33800690c444f
MD5 a4370fec202eec5087cf8c8f5843b473
BLAKE2b-256 06924ac605429b2a7a163b8e8af5679a90668aa7d52da83a345e7418682b98ba

See more details on using hashes here.

File details

Details for the file mshqc-1.0.0.dev95-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for mshqc-1.0.0.dev95-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5a3ff7cebd93c5f4dbbcf138de3eb15b112b2d4fc62fd4083aa02ed842a7f9c6
MD5 a99dac655409bdf8f0462b42a2b60156
BLAKE2b-256 0a6baeeb782f75efc5e722dc71951994703657c0da234f56a110fa6856b0fb1f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page