Skip to main content

Python bindings for the Open Quantum Platform (Fortran core + Python wrapper)

Project description

Open Quantum Platform: OpenQP

Open Quantum Platform (OpenQP) is a quantum chemical platform featuring cutting-edge capabilities like Mixed-Reference Spin-Flip (MRSF)-TDDFT with an emphasis on open-source ecosystem.

Key Features

  • Autonomous Modules of Quantum Chemistry Theories for Easy Interoperability
  • Flexible prototyping through a Python wrapper, PyOQP
  • Ground and Excited State Properties by MRSF-TDDFT
  • Nonadiabatic Coupling based on TLF Technology using MRSF-TDDFT
  • New Exchange-Correlation Functionals of DTCAM series for MRSF-TDDFT
  • Ground State Properties by HF and DFT theories
  • Geometry Optimization, Transition State Search, and Conical Intersection Search by SciPy and DL-Find
  • PyRAI2MD Integration to support Artificial Intelligence Ab Initio Molecular Dynamics
  • LibXC Integration to support a variety of exchange-correlation functionals
  • basis_set_exchange Integration to support a variety of basis sets
  • libecpint Integration to support a variety of Effective Core Potentials
  • Support for Molden File Format for visualization, compatible with many graphic software tools
  • DFT-D4 Dispersion Correction
  • OpenMP and MPI Parallelization and BLAS/LAPACK Optimization for high performance

Upcoming Features

Quickstart

  • Ready to Use Docker Image of openqp/openqp
  • Building from Source Files Using the Instructions Below.

Requirements

  • GCC, G++, Gfortran: Version >= 8
  • CMake: Version >= 3.25
  • cffi: Perform pip install cffi
  • ninja (optional)
  • MPI Library: OpenMPI For MPI Support. Consult detailed documentation for other MPI libraries

Download the Source Files

git clone https://github.com/Open-Quantum-Platform/openqp.git

Compile

OpenMP Support
cd openqp
cmake -B build -G Ninja -DUSE_LIBINT=OFF -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_INSTALL_PREFIX=. -DENABLE_OPENMP=ON -DLINALG_LIB_INT64=OFF
ninja -C build install
cd pyoqp
pip install .
OpenMP and MPI Support
cd openqp
cmake -B build -G Ninja -DUSE_LIBINT=OFF -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=mpif90 -DCMAKE_INSTALL_PREFIX=. -DENABLE_OPENMP=ON -DLINALG_LIB_INT64=OFF -DENABLE_MPI=ON
ninja -C build install
cd pyoqp
pip install .
OpenMP and MPI Support using make
cd openqp
cmake -B build -DUSE_LIBINT=OFF -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=mpif90 -DCMAKE_INSTALL_PREFIX=. -DENABLE_OPENMP=ON -DLINALG_LIB_INT64=OFF -DENABLE_MPI=ON
make -C build install
cd pyoqp
pip install .
  • Use -DUSE_LIBINT=ON to replace the default ERI based on Rys Quadrature with libint.
  • Use -DLINALG_LIB_INT64=OFF to ensure compatibility with third-party software like libdlfind compiled with 32-bit BLAS.

Environmental Settings

export OPENQP_ROOT=/path/to/openqp                           # Path to the Root of openqp
export OMP_NUM_THREADS=4                                     # The number of cores to be used for OpenMP runs
export LD_LIBRARY_PATH=$OPENQP_ROOT/lib:$LD_LIBRARY_PATH

Special Environmental Settings for MKL Math Library:

export MKL_INTERFACE_LAYER="@_MKL_INTERFACE_LAYER@"
export MKL_THREADING_LAYER=SEQUENTIAL

Test

openqp --run_tests all     # Run all tests from all folders in examples

Run

For OpenMP or sequential run:

openqp any_example_file.inp

For OpenMP and MPI run:

mpirun -np number_of_mpi openqp any_example_file.inp

Detailed Documentation

For more in-depth information, visit:

Input Generator

Easily create input files for OpenQP using our Web-based Input Generator.

Citing OpenQP

If you use OpenQP in your research, please cite the following papers:

Contributors

Legal Notice

See the separate LICENSE file.

Project details


Release history Release notifications | RSS feed

This version

1.1

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.

pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (50.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (50.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (50.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (50.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (50.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ae78719d88b007140316819c00d79e60cdc034067ff81982c9dce6b823544f78
MD5 4029996f7bc562626d731ccff4804ef7
BLAKE2b-256 2f8c01d3577d202b7d1ddcfb1e6c0371aeb72270111879bb1ccefd171320a5ff

See more details on using hashes here.

File details

Details for the file pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70da6d286544f9702e93c333560327037979346362e3e477a86fa4b0dd396661
MD5 c5918d7f849532ea5a4e720ac87c74e7
BLAKE2b-256 34ab52bda7826aa65681a24794b78688d9babca5d58c4263aeb23eb5c9bd4a7e

See more details on using hashes here.

File details

Details for the file pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b0a66f21bb0ab6105bad9d8df6a2f2211bc86e00d00cdf529243a6734b5a724
MD5 ca7df0f71c1fb5ccb9ac1ccb594e3084
BLAKE2b-256 c674c11c4629a251f1298cfd1347adf60bcb793c40f95a8a9c447fb08dee4fae

See more details on using hashes here.

File details

Details for the file pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81a257ea27924faaaf4a6fd44f3ffcb823bbbcec6fd4eda7fe426be37c078fb3
MD5 4c438f6a30c260ae0e687994e36eade0
BLAKE2b-256 5998858192aae38d974576765cb3917e6bed02cb4c0f35cd012c1d03e9951e55

See more details on using hashes here.

File details

Details for the file pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4aadfd4bb1705d37b4bbaf6262e72785e7c74c4e81928cd28e2d8c6cacbeb42d
MD5 c800293afa9c971f9a1fd1bea4929add
BLAKE2b-256 2ec14187c9822e21dfddbcc2a6d3a4873089f8a1e5da7bf46e8df2ff3bdea2f2

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