Installing the library ====================== The installation is performed via ``cmake`` and requires: * a Fortran and a C compiler * a Python 3 interpreter * the ``numpy``, ``cffi`` and optionally ``pyscf`` python libraries. PySCF is used for evaluating orbitals and is thus required for integral calculation. * BLAS and LAPACK Fortran libraries * optionally, an MPI library for parallelization * optionally, the HDF5 library for HDF5 formatted and parallel I/O (requires a parallel fortran build of HDF5) * optionally, the TREXIO library for I/O For reference, these requirements can be installed on some Debian-based GNU/Linux systems with: .. code-block:: bash sudo apt install cmake gcc gfortran python3 python3-pip libblas-dev liblapack-dev pip3 install --user numpy scipy cffi "h5py==3.0.*" pyscf Build instructions ^^^^^^^^^^^^^^^^^^ To install, create a build directory: .. code-block:: bash mkdir build && cd build and invoke ``cmake``: .. code-block:: bash cmake .. Optional cmake arguments are: * ``-DCMAKE_BUILD_TYPE=DEBUG/RELEASE`` to set the build type, no default * ``-DPYSCF=ON/OFF`` to enable/disable using pyscf for orbitals, defaults to ``ON`` * ``-DPARALLEL=ON/OFF`` to enable/disable using MPI for parallelization, defaults to ``ON`` * ``-DUSE_OMP=ON/OFF`` to enable/disable using OpenMP for parallelization, defaults to ``OFF`` Then, call ``make`` to build the library components and executables: .. code-block:: bash make make install For further details and tips on the build process see :ref:`faq`. Afterwards, the build directory should include the following content (not a complete list): .. code-block:: none build ├── bin/ └── tchint_standalone ├── include/ └── ├── lib/ ├── └── libtchint.so ├── python/ ├── tchint.py └── libplugin.so └── tests/ └── tchint_unit_tests A source encyclopedia can be created by running ``cmake`` in the ``doc`` subdirectory and then building the ``doxy`` target: .. code-block:: bash mkdir doc/build cd doc/build cmake .. make doxy Testing ^^^^^^^ All current tests are standalone unit/regression tests that are part of the ``tests/tchint_unit_tests`` and ``tests/tchint_ints_tests``. executables in the build directory. They can be run by invoking ``ctest`` in the build directory.