Library API

Libecpint 1.0.2

page index

[ ]()

Libecpint is a C++ library for the efficient evaluation of integrals over ab initio effective core potentials, using a mixture of generated, recursive code and Gauss-Chebyshev quadrature. It is designed to be standalone and generic, and is now in its first stable release. If you experience any problems please raise an issue here; contributions and suggestions are also welcome.

New in first full release

  • Analytical 1st and 2nd derivatives;

  • Integration now >10x faster;

  • New, high level API, with ECP library;

  • Automated testing suite.

Patch 1

  • Bug fix in screening of on-ECP type 2 integrals

  • Improvements in CMake build steps, thanks to nabbelbabbel/moritzBens

Patch 2

  • Fix for memory leaks in derivative routines

  • Minor changes to CMake files


  • A modern C++ compiler, at least C++11 standard library is required. This has been tested with:

    • gcc (v6.3.0 and above)

    • clang (v10.0.0 and above), you may need the CXX flag “-std=c++14”

    • icpc (v20.2.1), may also need the CXX flag “-std=c++14”

  • CMake/CTest build tools (v3.12 and higher)

  • Python (2.7 or above, including 3 and higher)

Additionally, if you wish to regenerate the radial code (see below), Python >=3.6 is required with numpy and sympy.


Please refer to the main documentation here.

Acknowledging usage

If you use this library in your program and find it helpful, that’s great! Any feedback would be much appreciated. If you publish results using this library, please consider citing the following paper detailing the implementation:

R. A. Shaw, J. G. Hill, J. Chem. Phys. 147, 074108 (2017); doi: 10.1063/1.4986887

A full bibtex citation can be found in CITATION in the main directory.

Class Hierarchy

File Hierarchy

Full API


Classes and Structs