panxl / helpme

helPME: an efficient library for particle mesh Ewald

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Language grade: C/C++ Language grade: Python

About

helPME: an efficient library for particle mesh Ewald. The recursive acronym is a tip of the hat to early open source software tools and reflects the recursive algorithms that are key to helPME's support for arbitrary operators. The library is freely available and is designed to be easy to use, with minimal setup code required.

Features

  • Available as a single C++ header.
  • Support for C++/C/Fortran/Python bindings.
  • Arbitrary operators including r-1 (Coulomb) and r-6 (dispersion).
  • Ability to use any floating point precision mode, selectable at run time.
  • Three dimensional parallel decomposition with MPI.
  • OpenMP parallel threading within each MPI instance (still a work in progress).
  • Support for arbitrary triclinic lattices and orientations thereof.
  • Arbitrary order multipoles supported (still a work in progress).
  • Memory for coordinates and forces is taken directly from the caller's pool, avoiding copies.

License

helPME is distributed under the BSD-3-clause open source license, as described in the LICENSE file in the top level of the repository. Some external dependencies are used that are licensed under different terms, as enumerated below.

Dependencies

Requirements

helPME is written in C++11, and should work with any modern (well, non-ancient) C++ compiler. Python and Fortran bindings are optional, and are built by default.

Authors

Andrew C. Simmonett (NIH) Lori A. Burns (GA Tech) Daniel R. Roe (NIH) Bernard R. Brooks (NIH)

About

helPME: an efficient library for particle mesh Ewald

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 88.2%Language:CMake 3.9%Language:Python 3.2%Language:Fortran 3.0%Language:C 1.5%Language:Shell 0.3%