Skip to content

Open-Quantum-Platform/openqp

Repository files navigation

Open Quantum Platform: OpenQP

August 23, 2024

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
  • LibXC Integration to support a variety of exchange-correlation functionals
  • 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:

Citing OpenQP

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

Contributors

Legal Notice

See the separate LICENSE file.