Skip to content

Alireza-Lashkaripour/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:

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.

About

The main repository of Open Quantum Platform (OpenQP)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Fortran 93.1%
  • Python 6.3%
  • Other 0.6%