A basis-function independent interface library providing the types of integrals needed for electronic structure theory calculations.
- The same interface independent of the type of basis function or the precise integral backend.
More documentation will follow ...
For building gint
the following things are required:
-
cmake
>= 3.0.0 -
A compiler supporting
C++11
:clang
starting fromclang-3.5
andgcc
starting fromgcc-5
should work. -
swig
>= 2.0.11 -
python
>= 3.4, including the development headers -
The usual build process mentioned below will automatically build the
lazyten
linear algebra library as well. This requires furtherSee github.com/lazyten/lazyten for more details about
lazyten
's dependencies. -
If
gint
should be linked with third-party libraries to compute any integrals, the requirements of these will be needed as well. See the section Interfacing with external libraries.
In order to actually use the gint
python module once it has been built,
the following python
packages are required:
On a recent Debian/Ubuntu you can install all these dependencies by running
apt-get install cmake swig python3-dev libopenblas-dev liblapack-dev libarmadillo-dev \
python3-numpy
as root.
This basic build builds gint
along with one or more
third-party libraries to compute the integrals as well as tests.
The basic sequence of steps is
# Configure inside build directory
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/opt -DAUTOCHECKOUT_MISSING_REPOS=ON ${OPTIONS} ..
cmake --build .
# Test and install the build
ctest
cmake --build . --target install
where ${OPTIONS}
is one of the cmake
options mentioned in the next section.
Currently gint
can be build with a couple of external libraries for performing
the integral computation.
Edward Valeev's libint
library
is enabled by passing the option -DGINT_ENABLE_LIBINT=ON
to cmake
.
This will automaticall download, unpack, compile and link to libint
.
Next to the dependencies mentioned before, building libint
requires:
- Eigen3
- BLAS
- Autoconf
- GNU Multiprecision library
On Debian/Ubuntu the command
apt-get install libeigen3-dev libopenblas-dev autoconf libgmp-dev
should install all of these.
The second supported Gaussian integral library is libcint
by Qiming Sun. It can be enabled by the option -DGINT_ENABLE_LIBCINT=ON
,
which will again compile libcint
along gint
.
Further external dependencies required by libcint
:
- BLAS
sturmint
is currently not released (but this is planned for the near future).
It can be enabled using the option -DGINT_ENABLE_STURMINT=ON
.