Skip to content

chrinide/openqp

 
 

Repository files navigation

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
  • OpenTrustRegion library for stable SCF convergence
  • MOKIT for adopting better initial guess from pyscf/ORCA

Upcoming Features

Quickstart

  • pip install openqp or
  • Ready to Use Docker Image of openqp/openqp or
  • 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

Pip install

cd openqp
pip install .

or

Detailed 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) maintained by Choi Group at KNU.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Fortran 91.2%
  • Python 8.1%
  • CMake 0.4%
  • C 0.2%
  • C++ 0.1%
  • Dockerfile 0.0%