PMMoTo
The Porous Media Morphology and Topology (PMMoTo) toolkit is an open-source Python library for analyzing, modeling, and characterizing the structure of porous materials. Built with Cython and C++ and designed for distributed memory systems using MPI, PMMoTo includes parallelized implementations of connected components analysis, morphological operations (e.g., dilation and erosion), and Euclidean distance transforms. Unlike many tools that focus on image-based analysis, PMMoTo is specifically designed for synthetically generated porous media, such as sphere packings and molecular dynamics simulations.
Website
PMMoTo Website: https://tmweigand.github.io/PMMoTo/
Installation
PMMoTo requires MPI (see https://tmweigand.github.io/PMMoTo/user_guide/installation.html)
Standard
-
Clone the repository:
git clone https://github.com/tmweigand/PMMoTo.git cd PMMoTo
-
Install the package:
pip install .
Development - including testing
For detailed instructions, see https://tmweigand.github.io/PMMoTo/developer_guide/installation.html
-
Clone the repository:
git clone https://github.com/tmweigand/PMMoTo.git cd PMMoTo
-
Install in editable mode with dev dependencies:
pip install -e .[dev]
Citing
If you use PMMoTo in your research, please cite the relevant publication (too come).
Community Guidelines
Contributions and community feedback is welcomed!
Contributing
- Fork the repo and create a branch.
- Make your changes and submit a pull request.
- Ensure tests pass.
Reporting Issues
- Use GitHub Issues.
- Include details: steps to reproduce, expected vs. actual behavior, and system info.
Support
- See the docs and examples.
- For questions, open a discussion or file an issue.
License
This project is licensed under the MIT License. See LICENSE for details.
Contact
For questions, issues, or contributions, please open an issue or pull request on GitHub.
Metadata
Release files for pmmoto 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pmmoto-1.0.7.tar.gz | 12.9 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pmmoto-1.0.7-cp311-cp311-musllinux_1_2_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux musl 1.2+ x86-64 | Details |
| pmmoto-1.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| pmmoto-1.0.7-cp311-cp311-macosx_11_0_arm64.whl | CPython 3.11 | CPython 3.11 | macOS 11.0+ ARM64 | Details |
| pmmoto-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl | CPython 3.11 | CPython 3.11 | macOS 10.9+ x86-64 | Details |
Total release size: 38.5 MB
Release files / pmmoto-1.0.7.tar.gz
| Download URL | pmmoto-1.0.7.tar.gz |
|---|---|
| Size | 12.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d465f33448049431796c8547a52ca69d654f6535bc7c136aafe1d489f4db3620
|
|
BLAKE2b-256 checksum How to use checksums |
521af0df39ca6b53bfc2260bc45a04b13e28c4b2e2db5edd0305ddfaf7d41279
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pmmoto-1.0.7-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | pmmoto-1.0.7-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 11.1 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
8a3cdbbf22b5307cb666435174c0802f3d98976e3160ecc2e1a2c87599c8257c
|
|
BLAKE2b-256 checksum How to use checksums |
60f2405a4427a0d8cbb6d2c9a60c302a7a94299a3e542743f553cc4e014b8496
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pmmoto-1.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pmmoto-1.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 10.2 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ef30fd1785557d215b4492c1138dec48ae8ec37f7b85d4d3bc88ebfab3d9ab9d
|
|
BLAKE2b-256 checksum How to use checksums |
a7e36fd29edbc8ce78ef860b4af6eae884baa5d023ba2c9deade94d4f727f74b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pmmoto-1.0.7-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | pmmoto-1.0.7-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a41b0e46d354e78e4e8e5d91630b1a9fb67033b5f9129282a9d137917e5520ef
|
|
BLAKE2b-256 checksum How to use checksums |
dfa22d17efdace3be35542e7538eeec997b6eda702521f4b04f921a6870c1887
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pmmoto-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | pmmoto-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
9282212857d0aa43e7e02624e160559f31cc1a19c037d226071c86120b630195
|
|
BLAKE2b-256 checksum How to use checksums |
3d39cf36bbee76b6d7adecefbf2582ac65a87f13ed6d261e630a380f473a63c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|