Polyquant uses C++20. This is required because the CI operations use https://en.cppreference.com/w/cpp/header/bit.
-
libeigen/eigen Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
-
boostorg/boost Super-project for modularized Boost
-
mcodev31/libmsym molecular point group symmetry lib
-
catchorg/Catch2 A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
Polyquant
uses Catch2 for testing. -
nlohmann/json JSON for Modern C++
Polyquant
usesnlohmann/json
to parse the MolSSI/QCSchema-like input format -
evaleev/libint Libint is a high-performance library for computing Gaussian integrals in quantum mechanics
Polyquant
usesevaleev/libint
to calculate integrals over gaussian basis functions. To convert for qmcpack you need to configure with -with-cartgauss-ordering=gamessThe
libint
branch has a configured library compatible with Polyquant. It is recommended to build the libint branch, install, and then build the main branch. -
BlueBrain/HighFive HighFive - Header-only C++ HDF5 interface
Polyquant
usesBlueBrain/HighFive
to dump HDF5 files for use with QMCPACK and for restarts.
- include_what_you_use
include_what_you_use
lets you check that the headers aren't including too much unnecessary stuff.
Polyquant
uses a combination of libraries to generate documentations from comments included in the source:
-
Polyquant
usesclang-format
to format all of thehpp
andcpp
files -
Polyquant
usescmake-format
to format all of theCMakeLists.txt
pacman -Syu clang
yay -Syu cmake-format include-what-you-use doxygen
pip install sphinx sphinx-rtd-theme breathe exhale m2r --user