Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxscheurer/cppe
C++ and Python library for Polarizable Embedding
https://github.com/maxscheurer/cppe
embedding-models hartree-fock quantum-chemistry
Last synced: about 2 months ago
JSON representation
C++ and Python library for Polarizable Embedding
- Host: GitHub
- URL: https://github.com/maxscheurer/cppe
- Owner: maxscheurer
- License: other
- Created: 2018-01-16T15:26:48.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-01T06:45:41.000Z (about 2 months ago)
- Last Synced: 2024-08-02T08:03:56.517Z (about 2 months ago)
- Topics: embedding-models, hartree-fock, quantum-chemistry
- Language: C++
- Homepage:
- Size: 4.56 MB
- Stars: 21
- Watchers: 4
- Forks: 5
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
![CI](https://github.com/maxscheurer/cppe/workflows/CI/badge.svg)
[![Documentation Status](https://readthedocs.org/projects/cppe/badge/?version=latest)](https://cppe.readthedocs.io/en/latest/?badge=latest)
[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/maxscheurer/cppe.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/maxscheurer/cppe/context:cpp)[![Conda](https://img.shields.io/conda/v/conda-forge/cppe)](https://anaconda.org/conda-forge/cppe)
[![PyPI](https://img.shields.io/pypi/v/cppe)](https://pypi.org/project/cppe/)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:
- [PySCF](https://github.com/pyscf/pyscf)
- [Psi4](https://github.com/psi4/psi4)
- [Q-Chem](https://www.q-chem.com)
- [VeloxChem](https://veloxchem.org)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](https://github.com/maxscheurer/cppe_examples).
## Installation
### Conda
The easiest way to install CPPE is via `conda`:
```
conda install cppe -c conda-forge
```### Build from Source
Manual builds can be done using CMake by running
```
git clone https://github.com/maxscheurer/cppe
cd cppe; mkdir build; cd build
cmake ..
make
```### pip/setuptools
Another 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), and OpenMP parallelization is **disabled** in the `setup.py`/`pip` installation.
Alternatively, CPPE can be built from source 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
**Papers:** | [![](https://img.shields.io/badge/DOI-10.1021/acs.jctc.9b00758-blue)](https://doi.org/10.1021/acs.jctc.9b00758) [![](https://img.shields.io/badge/DOI-10.1021/acs.jctc.1c00225-blue)](https://pubs.acs.org/doi/10.1021/acs.jctc.1c00225)
-----------| --------------------------------------------------------------------------------------------------------------------------------------
**Code:** | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3345696.svg)](https://doi.org/10.5281/zenodo.3345696)**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.9b00758If you use the linear-scaling FMM implementation, please also cite:
**Efficient Open-Source Implementations of Linear-Scaling Polarizable Embedding: Use Octrees to Save the Trees**
Maximilian Scheurer, Peter Reinholdt, Jógvan Magnus Haugaard Olsen, Andreas Dreuw, and Jacob Kongsted;
_Journal of Chemical Theory and Computation_ 2021,
DOI: 10.1021/acs.jctc.1c00225## 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/ct10038032 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](https://arxiv.org/abs/2005.12351)