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
- Efficient electrostatic embedding QM/MM by ESPF QM/MM
- Spin-Orbit Coupling by Relativistic MRSF-TDDFT
- Ionization Potential/Electron Affinity by EKT-MRSF-TDDFT
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=ONto replace the default ERI based on Rys Quadrature withlibint. - Use
-DLINALG_LIB_INT64=OFFto 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:
- Mironov V, Komarov K, Li J, Gerasimov I, Mazaheri M, Park W, Lashkaripour A, Oh M, Nakata H, Ishimura K, Huix-Rotllant M, Lee S, and Choi CH. "OpenQP: A Quantum Chemical Platform Featuring MRSF-TDDFT with an Emphasis on Open-source Ecosystem" Journal of Chemical Theory and Computation, 2024
- Park W, Komarov K, Lee S, and Choi CH. "Mixed-Reference Spin-Flip Time-Dependent Density Functional Theory: Multireference Advantages with the Practicality of Linear Response Theory." The Journal of Physical Chemistry Letters. 2023 Sep 28;14(39):8896-908.
- Lee S, Filatov M, Lee S, and Choi CH. "Eliminating Spin-Contamination of Spin-Flip Time-Dependent Density Functional Theory Within Linear Response Formalism by the Use of Zeroth-Order Mixed-Reference (MR) Reduced Density Matrix." The Journal of Chemical Physics, vol. 149, no. 10, 2018.
- Lee S, Kim EE, Nakata H, Lee S, and Choi CH. "Efficient Implementations of Analytic Energy Gradient for Mixed-Reference Spin-Flip Time-Dependent Density Functional Theory (MRSF-TDDFT)." The Journal of Chemical Physics, vol. 150, no. 18, 2019.
Contributors
- Cheol Ho Choi, Kyungpook National University, South Korea, cheolho.choi@gmail.com, https://www.openqp.org
- Seunghoon Lee, Seoul National University, South Korea, seunghoonlee89@gmail.com
- Vladimir Mironov, vladimir.a.mironov@gmail.com
- Konstantin Komarov, constlike@gmail.com
- Jingbai Li, Hoffmann Institute of Advanced Materials, China, lijingbai2009@gmail.com
- Igor Gerasimov, i.s.ger@yandex.ru
- Hiroya Nakata, Fukui Institute for Fundamental Chemistry, Japan, nakata.hiro07@gmail.com
- Mohsen Mazaherifar, Kyungpook National University, South Korea, moh.mazaheri@gmail.com
Legal Notice
See the separate LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 50.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae78719d88b007140316819c00d79e60cdc034067ff81982c9dce6b823544f78
|
|
| MD5 |
4029996f7bc562626d731ccff4804ef7
|
|
| BLAKE2b-256 |
2f8c01d3577d202b7d1ddcfb1e6c0371aeb72270111879bb1ccefd171320a5ff
|
File details
Details for the file pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 50.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70da6d286544f9702e93c333560327037979346362e3e477a86fa4b0dd396661
|
|
| MD5 |
c5918d7f849532ea5a4e720ac87c74e7
|
|
| BLAKE2b-256 |
34ab52bda7826aa65681a24794b78688d9babca5d58c4263aeb23eb5c9bd4a7e
|
File details
Details for the file pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 50.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0a66f21bb0ab6105bad9d8df6a2f2211bc86e00d00cdf529243a6734b5a724
|
|
| MD5 |
ca7df0f71c1fb5ccb9ac1ccb594e3084
|
|
| BLAKE2b-256 |
c674c11c4629a251f1298cfd1347adf60bcb793c40f95a8a9c447fb08dee4fae
|
File details
Details for the file pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 50.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81a257ea27924faaaf4a6fd44f3ffcb823bbbcec6fd4eda7fe426be37c078fb3
|
|
| MD5 |
4c438f6a30c260ae0e687994e36eade0
|
|
| BLAKE2b-256 |
5998858192aae38d974576765cb3917e6bed02cb4c0f35cd012c1d03e9951e55
|
File details
Details for the file pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 50.6 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4aadfd4bb1705d37b4bbaf6262e72785e7c74c4e81928cd28e2d8c6cacbeb42d
|
|
| MD5 |
c800293afa9c971f9a1fd1bea4929add
|
|
| BLAKE2b-256 |
2ec14187c9822e21dfddbcc2a6d3a4873089f8a1e5da7bf46e8df2ff3bdea2f2
|