helPME-py: A Python Utility for Particle Mesh Ewald based on helPME
Project description
helPME-py: A Python Utility for Particle Mesh Ewald Based on helPME
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.
helPME-py is a refactorization of the helPME repository aimed to provide an
efficient and modular Python utility for performing Particle Mesh Ewald
calculations. The build system and documentation have been revamped, and
functionality that was originally only available in the C++ layer has been
exposed with Python bindings. The easiest way to install helPME-py is
using pip:
pip install helpme-py
Because helPME-py focuses on adapting helPME for distribution as a Python package, several features of the original package are not available in helPME-py, including:
- Availability as a single C++ header.
- Support for Fortran bindings.
Additionally, error function evaluations above a certain threshold value
are screened out and assumed to be equal to one, which presents a speed
gain for some real-space calculations at the expense of some amount of
error. The default threshold value is 6, which introduces a maximum
error on the order of 10-17, which is just at double
precision. This value may be changed upon compilation by specifying
a new value with the ERF_SCREEN_VAL CMake option.
Features
- Support for C++/C/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-py and helPME are 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
Required for Building
- CMake required if building the code (BSD-3-clause license).
- FFTW required to carry out fast Fourier transforms (GPL license).
- pybind11 required to build Python bindings (BSD-3-clause license).
Optional for Building
- OpenMP for threading (licenses vary).
- MPI for multiprocessing (BSD-3-clause license).
- BLAS for using optimized linear algebra routines (licenses vary).
- MKL for using optimized linear algebra routines (ISSL license).
Required for Testing
- Catch2 required for unit testing (BSL license).
Optional for Testing
- gcovr for generating coverage reports (BSD-3-clause license).
Required for Documentation
- Sphinx required for generating documentation (BSD-2-clause license).
- Doxygen required for generating C++ documentation (GPL-2.0 license).
Optional for Documentation
- LaTeX for generating PDF documentation (LPPL license).
- Breathe for rendering Doxygen output with Sphinx (BSD-3-clause license).
- Exhale for summarizing Doxygen output rendered with Breathe (BSD-3-clause license).
- Furo theme for Sphinx documentation (MIT license).
Requirements
helPME-py is written in C++17, and should work with any modern C++ compiler. There are no other requirements once the Python bindings are built, though NumPy is recommended.
helPME Authors
Andrew C. Simmonett (NIH) Lori A. Burns (GA Tech) Daniel R. Roe (NIH) Bernard R. Brooks (NIH)
helPME-py Authors
John P. Pederson (GA Tech)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file helpme_py-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 15.0 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
123dbb2c120e98765339943da525b9fc4034dc58b73db53e33a31c76fe6916ee
|
|
| MD5 |
02b50e590317e61aaf649ff66fe536d9
|
|
| BLAKE2b-256 |
7c84903ed9249f501cd7d7ff84d57124a9522fb0b05cb59c8f4e7822f0582340
|
File details
Details for the file helpme_py-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b7195738bc383f3f7080d4bb2cb23a1d1f601f279f0c2d3d4def33c00b8278
|
|
| MD5 |
d10f662786ea878bc7522238994a3668
|
|
| BLAKE2b-256 |
bf72aa0952ac58861fddd8f9e72cc8666b24728e0894e3da4d5bacdc745625f7
|
File details
Details for the file helpme_py-0.2.1-cp314-cp314-macosx_13_0_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp314-cp314-macosx_13_0_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.14, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc50dabb4eee5e3dffb1f3938a4f4d0c25fce232814b25655c8fa9916341b6c5
|
|
| MD5 |
e24ade3e7ed9a042daca1b7c7b007db6
|
|
| BLAKE2b-256 |
0437c184dac16e6d745841ba0fd90f395cf7ac8301c20ead2308f9a92dd98818
|
File details
Details for the file helpme_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 15.0 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95f6a196cb83a87e2253776f64b50f8cf6be5db2b02d2b500a29b826707d8de9
|
|
| MD5 |
bb52520b34f066abefe2ac5a7ffc59f4
|
|
| BLAKE2b-256 |
527a58c09bc667bc35fbf24288c93d4e66d07c2adf6c6d49dce3db3844b7ee99
|
File details
Details for the file helpme_py-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91dbd01253516dddbd81ef8a7b0f6b547a00773264c21da4641571b605879861
|
|
| MD5 |
592f088218bc3ab1c999665bbe093bbe
|
|
| BLAKE2b-256 |
11d816af592054501df2006e53a8ee8e614444a9543d499d4c1b91a28e882041
|
File details
Details for the file helpme_py-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.13, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0578fabb64cd38324966320a0183d5902ad30287e925e47e8e7de20fb13f4966
|
|
| MD5 |
888b1e45755348546cc3d512b71f05c1
|
|
| BLAKE2b-256 |
7a12c1960c19a31063a759b0af39facffcb04a382a89271aa0a5a51db6875c02
|
File details
Details for the file helpme_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 15.0 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
986222a7abc83ccc643cecf219be92cd77a724013b3515079556861b60947baa
|
|
| MD5 |
c6acb9582da692ba94c22e49961cd84c
|
|
| BLAKE2b-256 |
b8a09d6ed5bfa2ab98b43268323b413883f5a3d86a46f35ab69db162f9a28275
|
File details
Details for the file helpme_py-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1ef8d26cad4b0836798ba482e6610ef821c9f7eaaa376b72bbdb0a6493225bf
|
|
| MD5 |
77623b4c5ff7682b32d62fd3124363da
|
|
| BLAKE2b-256 |
6176ccfd80a11391376b452734fb6fe017f64d494f4502a46f2f9d7d064dca5d
|
File details
Details for the file helpme_py-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.12, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
897f2c96b00c2696335abf63b8eaa0d57c9b1163388cfd67e510d454ab406c9a
|
|
| MD5 |
b4218cd806f04d33ac20b7562aee177f
|
|
| BLAKE2b-256 |
6b7b82c642decb717876e0ef6be38b36eade5b26f1c56f2096f5b4b43767a46b
|
File details
Details for the file helpme_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 14.9 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c69890dc418c74f3e43f97b31fa8ac7eea97e64eda240d4379a871c25366ea3
|
|
| MD5 |
4a33b284425f4de5643f7ad96bcdb912
|
|
| BLAKE2b-256 |
6d6c5641662fbc574c17005296dacb784194e2f358541cd7309c1e0c74a89b28
|
File details
Details for the file helpme_py-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc25fe2591c7868c69db52a5b506efd44cc4dc1c348a7ae59711a019a015c3c4
|
|
| MD5 |
77c2d4d7ebdb1f141ec981b81b019fea
|
|
| BLAKE2b-256 |
edc0bdd4d7fc7e22dea76be00566f8fca5c4268b94dd4a90db02a7b4d3260e22
|
File details
Details for the file helpme_py-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.11, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a48f1d12fe86ed31b0e36ae37f9fee45c0b80889caa4ef5f2d5c171d06a5efd
|
|
| MD5 |
ec87d1f9ba21c8beff08daf719cf58ff
|
|
| BLAKE2b-256 |
338090ef9ecba49e142679f329bd232c9b6623e54ce2a12dd514c78acd515c41
|
File details
Details for the file helpme_py-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 14.9 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b33646fe091bcfd3e0cfef0cbe8b5d3989f7f936c7c36e726b68baeb56273785
|
|
| MD5 |
5476b85b4e5a54172ceb8c3190798c55
|
|
| BLAKE2b-256 |
85ab61e5437eb0b3efb0c2bca6f98633d68f5cd49e5a9dafc8421c1427197f28
|
File details
Details for the file helpme_py-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73979a7999456165681deb3ed8bb3051f9c089f148a5cfea37c5286e59a141cf
|
|
| MD5 |
0446728e65d46b00b16e33f76958c0f0
|
|
| BLAKE2b-256 |
78b19be930fea85d77ad9621af4e1bb1852b9fd82f5e4585187c0992e3bca001
|
File details
Details for the file helpme_py-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl.
File metadata
- Download URL: helpme_py-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.10, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e23d682364e5dcd2698d84ad1b26403da8d263e9953b2c3af2fce6e681fdc5de
|
|
| MD5 |
70a248064f3082af0f192568cb6ff038
|
|
| BLAKE2b-256 |
305ba4fe71cf8afb91ac17b31d12ff3a01eaa40d30aa9e5879f30b97817db68b
|