Interface to ERD by N. Flocke and V. Lotrich¶
Code author: Andrew C. Simmonett and Benjamin P. Pritchard
Section author: Lori A. Burns
These are the AcesIII electron repulsion integrals that have
been partially interfaced into libmints. Enabling erd and adding
set integral_package erd
(do this in ~/.psi4rc
for universal
effect) runs libderiv from Libint for derivative integrals and erd for
non-derivative integrals.
Warning
The interface between erd and libderiv is not fully
debugged. So analytic gradients, particularly density-fitted ones,
are wrong, as are ESP calculations and some energies for long-range
corrected (“omega”) functionals. Insofar as faulty answers are
anticipated with INTEGRAL_PACKAGE erd
, PSI4 will
throw an error if you try to execute that class of computation. But
there may be more, so use with caution.
Warning
erd seems to be having some problems with Intel 2018 compilers. presently disabled in conda package.
Installation¶
Binary
If using PSI4 built from source, and anaconda or miniconda has already been installed (instructions at Quick Installation), erd can be obtained through
conda install erd -c psi4
. Then enable it as a feature with ENABLE_erd, hint its location with CMAKE_PREFIX_PATH, and rebuild PSI4 to detect erd and activate dependent code.
To remove a conda installation,
conda remove erd
.
Source
How to configure erd for building Psi4¶
Role and Dependencies
Role — In PSI4, ERD is a library that provides alternate integrals.
Downstream Dependencies — PSI4 (\(\Leftarrow\) optional) erd
Upstream Dependencies — erd \(\Leftarrow\) Fortran
CMake Variables
ENABLE_erd — CMake variable toggling whether PSI4 builds with erd
CMAKE_PREFIX_PATH — CMake list variable to specify where pre-built dependencies can be found. For erd, set to an installation directory containing
include/ERD/ERD_MANGLE.h
erd_DIR — CMake variable to specify where pre-built erd can be found. Set to installation directory containing
share/cmake/erd/erdConfig.cmake
CMAKE_DISABLE_FIND_PACKAGE_erd — CMake variable to force internal build of erd instead of detecting pre-built
CMAKE_INSIST_FIND_PACKAGE_erd — CMake variable to force detecting pre-built erd and not falling back on internal build
Examples
Build bundled
>>> cmake -DENABLE_erd=ON
Build without erd
>>> cmake
Link against pre-built
>>> cmake -DENABLE_erd=ON -DCMAKE_PREFIX_PATH=/path/to/erd/root>>> cmake -DENABLE_erd=ON -Derd_DIR=/path/to/erd/configdir
Build bundled despite pre-built being detectable
>>> cmake -DENABLE_erd=ON -DCMAKE_PREFIX_PATH=/path/to/unwanted/erd/root/and/wanted/other/dependencies/root -DCMAKE_DISABLE_FIND_PACKAGE_erd=ON