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