Skip to content

maxscheurer/cppe

Repository files navigation

Build Status Documentation Status

CPPE is an open-source, light-weight C++ and Python library for Polarizable Embedding (PE)1,2 calculations. It provides an easy-to-use API to implement PE for ground-state self-consistent field (SCF) calculations and post-SCF methods. A convenient Python interface is also available.

CPPE enables PE calculations in the following programs:

Linear scaling electric field computations in CPPE are achieved through autogenerated code by the fmmgen library.3

Examples for the open-source Python-driven programs can be found here.

Installation

The easiest way to install CPPE is via pip:

pip install cppe

Note that CPPE will be built from source and a C++14 compatible compiler is required (see below). If the compiler supports OpenMP, it will also be enabled for the CPPE build.

Manual builds can be done using CMake by running

git clone https://github.com/maxscheurer/cppe
cd cppe; mkdir build; cd build
cmake ..
make -j4

Alternatively, CPPE can be installed using the setup.py script with

git clone https://github.com/maxscheurer/cppe
cd cppe
python setup.py install

Python interface

If the Python interface should be built, specify the CMake option -DENABLE_PYTHON_INTERFACE=ON. If pybind11 is not installed, CMake will automatically download pybind11 and install it locally. Installing through setup.py will always build the Python interface.

Dependencies

  • C++ 14 compiler
  • Python >= 3.6 (interpreter and development packages)

Tests

The tests can be run with

python setup.py build_ext -i; python setup.py test

for the setup.py build, or

source setup_environment.sh; py.test

for the CMake build.

Citation

DOI

The journal article describing CPPE can be found here.

CPPE: An Open-Source C++ and Python Library for Polarizable Embedding
Maximilian Scheurer, Peter Reinholdt, Erik Rosendahl Kjellgren, Jógvan Magnus Haugaard Olsen, Andreas Dreuw, and Jacob Kongsted; Journal of Chemical Theory and Computation 2019 15 (11), 6154-6163, DOI: 10.1021/acs.jctc.9b00758

Literature

1 Olsen, J. M. H.; Aidas, K.; Kongsted, J. (2010). Excited States in Solution through Polarizable Embedding. J. Chem. Theory Comput., 6 (12), 3721–3734. https://doi.org/10.1021/ct1003803

2 Olsen, J. M. H.; Kongsted, J. (2011). Molecular Properties through Polarizable Embedding. Advances in Quantum Chemistry (Vol. 61). https://doi.org/10.1016/B978-0-12-386013-2.00003-6

3 Pepper, R.; Fangohr, H. (2020). fmmgen: Automatic Code Generation of Operators for Cartesian Fast Multipole and Barnes-Hut Methods. arXiv:2005.12351