Simint - Vectorized Electron Repulsion Integrals
Introduction
Simint is a vectorized implementation of the Obara-Saika (OS) method of calculating electron repulsion integrals. Speedup is gained by vectorizing the primitive loop of the OS algorithm, with additional vectorization and optimizations left to the compiler.
Currently, Simint is limited to calculating ERI up to AM=7. It is not necessary to compile up to that high of angular momentum; a lower angular momentum can be selected at compile time with the SIMINT_MAXAM cmake option.
Simint is capable of calculating ERI with the angular momentum in any order. That is, it is possible to calculate (ds|ds) and (sd|ds) directly, without permutation of the resulting integrals.
As of v0.4, primitive screening is available. See the example for how to enable or disable it. GCC support has also been added.
See also http://www.cc.gatech.edu/~echow/ipcc/ for information about the Intel Parallel Computing Center at Georgia Tech
The C++ source code for the generator is available on GitHub at https://github.com/simint-chem/simint-generator
Citation
License
Released under the 3-clause BSD License. See LICENSE for details.
Requirements
Simint (currently) uses intrinsics for the Intel compiler. As such, it will not work with other compilers, although such a feature is planned.
- C/C++ Compiler
- Intel compiler (v15 or above)
- GCC (v4.9.4 or above)
- CMake (v3.0 or above)
- Intel CPU
See the README for details
Downloads
This library is still somewhat experimental, and currently supports only integrals up to AM=7. The functionality has been benchmarked and validated against several other integral packages. It is believed to be correct, however, as with all software, bugs are always possible.
Last update: 2017-03-28 (see CHANGELOG for details)
- simint-v0.7.tar.bz2 (see README for how to compile)