Libint

Libint is a high-performance library for computing Gaussian integrals in quantum mechanics

This project is maintained by evaleev

libint

what is libint

libint is two things:

  1. a library of C/C++ functions for efficient evaluation of several kinds of two-body molecular integrals over Gaussian functions;
  2. the optimizing compiler ("code generator") that writes a Libint library.

who needs libint

Developers of scientific software, such as for molecular electronic structure. In molecular electronic structure theory Gaussian basis sets are standard because they allow efficient evaluation of matrix elements of operators (molecular integrals). Modern electronic structure programs spend considerable portion of their runtime computing the Coulomb two-electron integrals. While anyone can compute Gaussian integrals using simple formulas (see, for example, here and here), the efficient evaluation of many-body can be (relatively) complicated. Libint is an open library that anyone can use to compute a variety of two-electron integrals, most importantly the Coulomb two-electron integrals and their arbitrary-order geometric derivatives, over Gaussians of arbitrary angular momentum. Among other notable features is the support for the nonstandard two-electron integrals that appear in explicitly correlated R12 methods.

versions of libint

The older libint is version 1.1.x . It is incorporated into Psi package and can be used with MPQC program. It is no longer developed, and minimally supported; download it here.

The latest major version of Libint is 2 . Libint2 has been in use internally since 2004; in fact it is more stable than version 1. It has now been improved to production-ready status and officially released on April 25, 2011.

where libint is used

It is currently used by production releases of MPQC, ORCA, Psi, and CP2K packages.

how to get libint

The vast majority of users will not be interested in tinkering with the compiler -- and, thus, are recommended to download one of pre-generated libraries:

  1. MPQC users can download a Libint 2.0 library with support for Coulomb and R12 integrals over up to l=7 functions here;
  2. Electronic structure enthusiasts who want to experiment with Libint should simply download the library configured for MPQC (see iter 1) and obtain the programmer guide and test program here;
  3. ORCA users do not need to obtain Libint -- Libint version 2 has been integrated into ORCA;
  4. Psi users do not need to obtain Libint -- Libint version 1 has been integrated into Psi.

If you want to download the Libint compiler to generate a custom Libint library -- you can check it out from the source repository! (Read the wiki for instructions).

license and warranty

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Refer to the full text of the GNU General Public License. You can obtain the most up-to-date version of GPL if you write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

copyright

For version 1: Copyright (C) 1996-2014 Edward F. Valeev and Justin T. Fermann.

For version 2: Copyright (C) 2004-2014 Edward F. Valeev.