Skip to main content

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

C C++ Python License

Build Coverage Deployment Docs

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

Optional for Building

Required for Testing

Optional for Testing

Required for Documentation

Optional for Documentation

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

helpme_py-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

helpme_py-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

helpme_py-0.2.1-cp314-cp314-macosx_13_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

helpme_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

helpme_py-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

helpme_py-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

helpme_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

helpme_py-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

helpme_py-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

helpme_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl (14.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

helpme_py-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

helpme_py-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

helpme_py-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl (14.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

helpme_py-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

helpme_py-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

File details

Details for the file helpme_py-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 123dbb2c120e98765339943da525b9fc4034dc58b73db53e33a31c76fe6916ee
MD5 02b50e590317e61aaf649ff66fe536d9
BLAKE2b-256 7c84903ed9249f501cd7d7ff84d57124a9522fb0b05cb59c8f4e7822f0582340

See more details on using hashes here.

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

File hashes

Hashes for helpme_py-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2b7195738bc383f3f7080d4bb2cb23a1d1f601f279f0c2d3d4def33c00b8278
MD5 d10f662786ea878bc7522238994a3668
BLAKE2b-256 bf72aa0952ac58861fddd8f9e72cc8666b24728e0894e3da4d5bacdc745625f7

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp314-cp314-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 fc50dabb4eee5e3dffb1f3938a4f4d0c25fce232814b25655c8fa9916341b6c5
MD5 e24ade3e7ed9a042daca1b7c7b007db6
BLAKE2b-256 0437c184dac16e6d745841ba0fd90f395cf7ac8301c20ead2308f9a92dd98818

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95f6a196cb83a87e2253776f64b50f8cf6be5db2b02d2b500a29b826707d8de9
MD5 bb52520b34f066abefe2ac5a7ffc59f4
BLAKE2b-256 527a58c09bc667bc35fbf24288c93d4e66d07c2adf6c6d49dce3db3844b7ee99

See more details on using hashes here.

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

File hashes

Hashes for helpme_py-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91dbd01253516dddbd81ef8a7b0f6b547a00773264c21da4641571b605879861
MD5 592f088218bc3ab1c999665bbe093bbe
BLAKE2b-256 11d816af592054501df2006e53a8ee8e614444a9543d499d4c1b91a28e882041

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0578fabb64cd38324966320a0183d5902ad30287e925e47e8e7de20fb13f4966
MD5 888b1e45755348546cc3d512b71f05c1
BLAKE2b-256 7a12c1960c19a31063a759b0af39facffcb04a382a89271aa0a5a51db6875c02

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 986222a7abc83ccc643cecf219be92cd77a724013b3515079556861b60947baa
MD5 c6acb9582da692ba94c22e49961cd84c
BLAKE2b-256 b8a09d6ed5bfa2ab98b43268323b413883f5a3d86a46f35ab69db162f9a28275

See more details on using hashes here.

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

File hashes

Hashes for helpme_py-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1ef8d26cad4b0836798ba482e6610ef821c9f7eaaa376b72bbdb0a6493225bf
MD5 77623b4c5ff7682b32d62fd3124363da
BLAKE2b-256 6176ccfd80a11391376b452734fb6fe017f64d494f4502a46f2f9d7d064dca5d

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 897f2c96b00c2696335abf63b8eaa0d57c9b1163388cfd67e510d454ab406c9a
MD5 b4218cd806f04d33ac20b7562aee177f
BLAKE2b-256 6b7b82c642decb717876e0ef6be38b36eade5b26f1c56f2096f5b4b43767a46b

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c69890dc418c74f3e43f97b31fa8ac7eea97e64eda240d4379a871c25366ea3
MD5 4a33b284425f4de5643f7ad96bcdb912
BLAKE2b-256 6d6c5641662fbc574c17005296dacb784194e2f358541cd7309c1e0c74a89b28

See more details on using hashes here.

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

File hashes

Hashes for helpme_py-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc25fe2591c7868c69db52a5b506efd44cc4dc1c348a7ae59711a019a015c3c4
MD5 77c2d4d7ebdb1f141ec981b81b019fea
BLAKE2b-256 edc0bdd4d7fc7e22dea76be00566f8fca5c4268b94dd4a90db02a7b4d3260e22

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4a48f1d12fe86ed31b0e36ae37f9fee45c0b80889caa4ef5f2d5c171d06a5efd
MD5 ec87d1f9ba21c8beff08daf719cf58ff
BLAKE2b-256 338090ef9ecba49e142679f329bd232c9b6623e54ce2a12dd514c78acd515c41

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b33646fe091bcfd3e0cfef0cbe8b5d3989f7f936c7c36e726b68baeb56273785
MD5 5476b85b4e5a54172ceb8c3190798c55
BLAKE2b-256 85ab61e5437eb0b3efb0c2bca6f98633d68f5cd49e5a9dafc8421c1427197f28

See more details on using hashes here.

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

File hashes

Hashes for helpme_py-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 73979a7999456165681deb3ed8bb3051f9c089f148a5cfea37c5286e59a141cf
MD5 0446728e65d46b00b16e33f76958c0f0
BLAKE2b-256 78b19be930fea85d77ad9621af4e1bb1852b9fd82f5e4585187c0992e3bca001

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e23d682364e5dcd2698d84ad1b26403da8d263e9953b2c3af2fce6e681fdc5de
MD5 70a248064f3082af0f192568cb6ff038
BLAKE2b-256 305ba4fe71cf8afb91ac17b31d12ff3a01eaa40d30aa9e5879f30b97817db68b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page