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.
Metadata
Release files for PyOpenQP 1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
Total release size: 253.1 MB
Release files / pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyopenqp-1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 50.6 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae78719d88b007140316819c00d79e60cdc034067ff81982c9dce6b823544f78
|
|
BLAKE2b-256 checksum How to use checksums |
2f8c01d3577d202b7d1ddcfb1e6c0371aeb72270111879bb1ccefd171320a5ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|
Release files / pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyopenqp-1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 50.6 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
70da6d286544f9702e93c333560327037979346362e3e477a86fa4b0dd396661
|
|
BLAKE2b-256 checksum How to use checksums |
34ab52bda7826aa65681a24794b78688d9babca5d58c4263aeb23eb5c9bd4a7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|
Release files / pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyopenqp-1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 50.6 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6b0a66f21bb0ab6105bad9d8df6a2f2211bc86e00d00cdf529243a6734b5a724
|
|
BLAKE2b-256 checksum How to use checksums |
c674c11c4629a251f1298cfd1347adf60bcb793c40f95a8a9c447fb08dee4fae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|
Release files / pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyopenqp-1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 50.6 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
81a257ea27924faaaf4a6fd44f3ffcb823bbbcec6fd4eda7fe426be37c078fb3
|
|
BLAKE2b-256 checksum How to use checksums |
5998858192aae38d974576765cb3917e6bed02cb4c0f35cd012c1d03e9951e55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|
Release files / pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pyopenqp-1.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 50.6 MB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4aadfd4bb1705d37b4bbaf6262e72785e7c74c4e81928cd28e2d8c6cacbeb42d
|
|
BLAKE2b-256 checksum How to use checksums |
2ec14187c9822e21dfddbcc2a6d3a4873089f8a1e5da7bf46e8df2ff3bdea2f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|