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. NumPy is a required dependency for the Python API.

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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c58d1783405ffe21878ad2caab12f9dfde0c1d804a0ed1b3a1cde52c0483060a
MD5 30fba17aa4c714a1029594c1d105666e
BLAKE2b-256 eeeb4d4f67cd6708bf1fe4593ff013e8ed7b80f1a4a674a59dac3781a6b2c87c

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d47fec7a38400820162d23f1d50d940f172b3918f558d798789e2dfee8afe7e8
MD5 720713b474c03f77f2c994090c72bf06
BLAKE2b-256 e6902eebdf55f3c0717c0e315e4b450743696d09602886cb54d9dae7666cad3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 60e12154337e29957408465e78b1e3b5c373fc748c435fef8ca517b52e9ae76e
MD5 ce7a1ef56ed5b24378c98d4e0e5ca363
BLAKE2b-256 e203375bd1782b499aece66164402e956070958b44ad4af0082bbbbbe3d4b72a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4b93ffe258039c37b99f77a063f4eba29b8074131adbc8292e6392e6c6452cc5
MD5 c2cb9b0504a94717edb08080adb0c243
BLAKE2b-256 9a46cab1ae81756d9203458dc4280edb9b60c4677e6cc9d7a76fb4e5e31bdc6c

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc352052a721421a8dda4460e255e3a6a2c2bf82ba8cce09108a4909fadc4ca1
MD5 86a3c88f7442acc04882e4c1a69ae32b
BLAKE2b-256 798717b540c2ee304e52b10bd016ce185f4a6c2ac38581ad36eb352ebd672d73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8073b2570544db8e30266c6baa21f77d10324e8e2d6c51ccf47f7abe9c75fa7e
MD5 76379a1fdc5d4cf7f8348d090cd01a3e
BLAKE2b-256 4b82630a15bc61455f4412354e98606a4686c18900c2c6aa2b727704d54e0c47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a44ee185cadf068f37bcb1917dee198884df7bea917f7f496d4d6962c5fc3c51
MD5 8e323325fa0e6afb50ba5259b4ad7240
BLAKE2b-256 6641b70a37b2acfde377c7073c245b61bc68fa4277a2092fdbaf822a71c1d4b1

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8303e5abfb9db505c218d29833c11e5e2205ee813d7410975c9397e30613932e
MD5 822cde466aab1b5b1ea24452e5e2dc0e
BLAKE2b-256 7993b6e6049356584fdb30d6c60e3fb8197ce4035a934f3f747067f51ceef655

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e535af0641dd4d0fc40230f7b415adc0a77d999877d32edfd54bd418a5b93cea
MD5 bfd8531ab68d8ca11b73a763df9407cd
BLAKE2b-256 a8e06da2cac1df1023e34edba14530d24fb5dacced83813f78c37e52e6821adf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d287e491f83da17364c9d56a546743ffd0695037ab56e0a7c0e5d5e1e19197a
MD5 a1eced05c1f837921924567f24fcbc49
BLAKE2b-256 80aa7d9280243e3c99fc639c5a1e0ee47ce25bdaf5d52439c75e07e9c5e9c598

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d360bccb6750c0c864254ebd931936ddc86ad1fbf074b6b2ddcf5638e605c473
MD5 93ed5c8965d17ecb0f5174bed782b33a
BLAKE2b-256 66a9d86d687d58f6c4976069061ce5b0536a7d8ab9cf62f3b23c9f4fbc91d2c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 db6dd707e599682a74b9d67d7bfbea458cd773b628b6896af103d8ed157884f8
MD5 a14b413cd73ce913bba5f34d23d10efb
BLAKE2b-256 a5336ea99a82512274a86820e61dd675b5e523356374d73e8297d159c403b250

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 734d0edd8642540e980c198a36c7bda85082421fc7a2a273866f35177f8e924e
MD5 4f02cb917dc3f6a111f289a5816ea896
BLAKE2b-256 b9d5012b570ddda8be1a93169ec9a2eecb0cd70803fcaf819bb12ed77c737d75

See more details on using hashes here.

File details

Details for the file helpme_py-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0b501b6ba8f295155b324e54b09591b577ef8f1b656162fc2f8a5467ad3b3c7f
MD5 a6373f1d335b0c2f5d865d3b8da4b11e
BLAKE2b-256 1b92d9bf6ff667b9329f709255833b1b95da9a02335f9a44bd013e6261578895

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for helpme_py-0.2.2-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d99c0b3daaf48381a4c76432b796fdbb75d0fb5625778fab0240f4c5a65bace3
MD5 87a13e46ad232d1d9617ac96df6fcf23
BLAKE2b-256 e99891b3740ae266291eae7c9a915581cb9dcf00da9756b3b38a7afedee88799

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