• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bin/H06-Apr-2019-13,39810,590

cmake/H06-Apr-2019-486451

doc/H06-Apr-2019-933824

lib/H06-Apr-2019-10,0919,106

src/H03-May-2022-13,26810,197

CHANGESH A D06-Apr-20191,008 2917

COPYINGH A D06-Apr-201934.3 KiB674553

COPYING.LESSERH A D06-Apr-20197.5 KiB166128

INSTALLH A D06-Apr-2019490 1612

LICENSEH A D06-Apr-20191 KiB1815

MakefileH A D06-Apr-20191.5 KiB8064

READMEH A D06-Apr-2019353 118

README_CMake.mdH A D06-Apr-20193.5 KiB7554

appveyor.ymlH A D06-Apr-2019518 2722

autogen.shH A D06-Apr-201988 114

configure.acH A D06-Apr-201913.8 KiB580493

README

1LIBINT - a library for the evaluation of molecular integrals of two-body
2operators over Gaussian functions
3Copyright (C) 1996-2014 Edward F. Valeev and Justin T. Fermann
4
5See INSTALL for installation intructions.
6
7Contact info:
8  o project page: http://sf.net/projects/libint/
9  o other info - http://libint.valeyev.net/
10  o e-mail - libint@valeyev.edu
11

README_CMake.md

1# Libint
2
3### History
4
5This is the Libint project (http://evaleev.github.io/libint/) by
6Prof. Edward F. Valeev (@evaleev) with early roots by Prof. Justin T.
7Fermann.
8
9Libint1 has source available on sourceforge
10(https://sourceforge.net/projects/libint/files/v1-releases/) or in this repository as a branch on GitHub
11(https://github.com/evaleev/libint/tree/v1) and primarily
12builds with `make`. Libint1 separates the build process for derivative integrals.
13
14Libint2 has source available on GitHub (https://github.com/evaleev/libint) and,
15as distributed, builds with `make`. Libint2 integrates the build process for
16derivative integrals.
17
18Libint1 and Libderiv1 have been in the *ab initio* quantum chemistry package Psi4
19(http://psicode.org/, https://github.com/psi4/psi4) since 2009. Internal to Psi4, it
20has, since about 2014, built with `cmake`, as designed by @andysim.
21@ryanmrichard and @loriab have reworked the CMake build and extracted the
22project until suitable for `ExternalProject_Add`. As of version 1.2.0,
23Psi4's CMake build system for libint1 and libderiv1 source has been
24ported back to this main Libint repository as an alternate build system.
25
26#### Building
27
28```bash
29cmake -H. -Bobjdir \
30 -DMAX_AM_ERI=4
31cd objdir && make
32make install
33```
34
35The primary CMake option is `MAX_AM_ERI` to control the maximum angular
36momentum for integrals. This is a Psi4 quantity slightly different from
37those used internally by Libint and found in the installed header files:
38
39`MAX_AM_ERI` | `LIBINT_MAX_AM` | `LIBINT_OPT_AM` | `LIBDERIV_MAX_AM1` | `LIBDERIV_MAX_AM12`
40------------ | --------------- | --------------- | ------------------ | -------------------
413 | 4 | 4 | 3 | 2
424 | 5 | 3 | 4 | 3
43**5** | **6** | **3** | **5** | **4**
446 | 7 | 4 | 6 | 5
457 | 8 | 4 | 7 | 6
468 | 9 | 5 | 8 | 7
47
48For orientation on an atom such as Neon, the default **5** gets you conventional cc-pV5Z for energies, cc-pVQZ for gradients, cc-pVTZ for frequencies and density-fitted cc-pVQZ for energies, cc-pVTZ for gradients, cc-pVDZ for frequencies.
49
50The build is also responsive to
51
52* static/shared toggle `BUILD_SHARED_LIBS`
53* the install location `CMAKE_INSTALL_PREFIX`
54* of course, `CMAKE_C_COMPILER`, `CMAKE_CXX_COMPILER`, `CMAKE_C_FLAGS`, and `CMAKE_CXX_FLAGS`
55
56See [CMakeLists.txt](CMakeLists.txt) for options details and additional options. All these build options should be passed as `cmake -DOPTION`.
57
58#### Detecting
59
60This project installs with `LibintConfig.cmake` and `LibintConfigVersion.cmake` files suitable for use with CMake [`find_package()`](https://cmake.org/cmake/help/v3.2/command/find_package.html) in `CONFIG` mode.
61
62* `find_package(Libint)` - find any Libint libraries and headers
63* `find_package(Libint 1.2.0 EXACT CONFIG REQUIRED COMPONENTS shared 6)` - find Libint exactly version 1.2.0 built with shared libraries and `MAX_AM_ERI` >= 6 or die trying
64
65See [LibintConfig.cmake.in](cmake/LibintConfig.cmake.in) for details of how to detect the Config file and what CMake variables and targets are exported to your project.
66
67#### Using
68
69After `find_package(Libint ...)`,
70
71* test if package found with `if(${Libint_FOUND})` or `if(TARGET Libint::libint)`
72* link to library (establishes dependency), including header and definitions configuration with `target_link_libraries(mytarget Libint::libint)`
73* include header files using `target_include_directories(mytarget PRIVATE $<TARGET_PROPERTY:Libint::libint,INTERFACE_INCLUDE_DIRECTORIES>)`
74* compile target applying `-DUSING_Libint;-DMAX_AM_ERI=N` definition using `target_compile_definitions(mytarget PRIVATE $<TARGET_PROPERTY:Libint::libint,INTERFACE_COMPILE_DEFINITIONS>)`
75