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.


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.



  • ERD is available as a conda package for Linux and macOS.

  • 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. 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.


  • If using PSI4 built from source and you want erd built from from source also, enable it as a feature with ENABLE_erd, and let the build system fetch and build it and activate dependent code.

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


  1. Build bundled
>>> cmake -DENABLE_erd=ON
  1. Build without erd
>>> cmake
  1. 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
  1. 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