Metadata-Version: 2.4
Name: multiphasepy
Version: 4.0.0
Summary: Toolkit for reproducible multiphase CFD workflows.
Project-URL: Documentation, https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/
Project-URL: Repository, https://codebase.helmholtz.cloud/fwdc/public/python.git
Project-URL: Issues, https://codebase.helmholtz.cloud/fwdc/public/python/-/issues
Project-URL: Changelog, https://codebase.helmholtz.cloud/fwdc/public/python/-/blob/main/CHANGELOG.md
Project-URL: DOI, https://doi.org/10.14278/rodare.3093
Project-URL: HELMHOLTZ-Software, https://helmholtz.software/software/multiphase-python-repository-by-hzdr
Author-email: "Members of the Department of Computational Fluid Dynamics at Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR)" <f.schlegel@hzdr.de>
Maintainer-email: "Schlegel, Fabian" <f.schlegel@hzdr.de>, "Fombonne, Clement" <clement.fombonne@framatome.com>, "Hänsch, Susann" <s.haensch@hzdr.de>, "Krull, Benjamin" <b.krull@hzdr.de>, "Lehnigk, Ronald" <r.lehnigk@hzdr.de>, "Meller, Richard" <r.meller@hzdr.de>
License: GPL-3.0-or-later
Keywords: Gitlab,Numerical Simulations,Post-Processing,Python
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Requires-Dist: astropy>=6.1.3
Requires-Dist: copier>=9.2.0
Requires-Dist: dask>=2025.5.1
Requires-Dist: fabric>=3.2.2
Requires-Dist: gitpython>=3.1.45
Requires-Dist: identify>=2.6.12
Requires-Dist: jinja2>=3.1.2
Requires-Dist: markdown>=3.6
Requires-Dist: matplotlib>=3.10.8
Requires-Dist: mistune>=3.0.2
Requires-Dist: numpy<2.5.0,>=1.21.5
Requires-Dist: paramiko>=3.5.1
Requires-Dist: pygments==2.20.0
Requires-Dist: pyvista>=0.46.4
Requires-Dist: pyyaml==6.0.3
Requires-Dist: requests>=2.32.3
Requires-Dist: rich-argparse>=1.4.0
Requires-Dist: rich-click>=1.9.5
Requires-Dist: scikit-fuzzy>=0.5.0
Requires-Dist: scipy>=1.8.0
Requires-Dist: snakemake-executor-plugin-cluster-generic==1.0.9
Requires-Dist: snakemake==9.5.0
Requires-Dist: watchdog>=3.0.0
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: build; extra == 'dev'
Requires-Dist: myst-parser; extra == 'dev'
Requires-Dist: pre-commit>=3.8.0; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: requests-mock; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: sphinx; extra == 'dev'
Requires-Dist: sphinx-rtd-theme; extra == 'dev'
Requires-Dist: tox>=4.19; extra == 'dev'
Requires-Dist: xvfbwrapper>=0.2.18; extra == 'dev'
Description-Content-Type: text/markdown

# Multiphase Python Repository by HZDR

The `multiphasepy` package is a Python toolkit for building, running, and
maintaining CFD simulation case collections for the software released by the
[OpenFOAM Foundation](https://openfoam.org) (but also others, like Ansys Fluent
or Siemens Simcenter Star-CCM). It combines reusable library modules with
practical command-line tools to cover the full simulation lifecycle: case
templating, batch execution, monitoring, post-processing, validation support,
repository comparison, and publication workflows.

At its core, `multiphasepy` helps teams move from individual case setups to
scalable, structured projects containing a large collection of setups, e.g. a
validation database. Cases can be provided as templates that are parameterized
at runtime, metadata can be managed in a machine-readable way and cases can be
conveniently batch-processed with the workflow management tool
[Snakemake](https://snakemake.github.io/) both on workstations and
[Slurm](https://slurm.schedmd.com/)-based HPC systems. Using a container-based
software environment (e.g. [Apptainer](https://apptainer.org/) or
[Docker](https://www.docker.com/)) the case collection becomes fully portable.
An integrated [Copier](https://copier.readthedocs.io/) template allows the
creation and maintenance of multiple independent case collections.

Beyond execution, the package supports quality assurance and communication of
results: tools are included for automated checks, fuzzy-logic based evaluation,
data conversion, visualization, and generation of artifacts suitable for
reporting and dissemination. This makes multiphasepy a practical bridge
between day-to-day CFD case work and long-term, reproducible research software
operations in collaborative environments.

## Command-Line Tools

The multiphasepy package provides a comprehensive suite of command-line tools
for CFD workflow management, data processing, and quality assurance. All tools
follow the naming convention `mpy<function>` and provide `--help` for detailed
usage information.

### Workflow Management

- [**mpycopy**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpycopy.html)
: Copy and render templated cases
- [**mpydocker**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpycopy.html/cli-tools/mpydocker.html)
: Launch customizable Docker development environments
- [**mpywatch**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpywatch.html)
: Progress display and real-time data visualization
- [**mpyworkflow**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyworkflow.html)
: Create and manage cases projects allowing [batch processing](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/batch-processing.html)

### Data Processing

- [**mpyconv**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyconv.html)
: Convert data files between formats
- [**mpypost**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpypost.html)
: Mathematical post-processing operations
- [**mpyvisualize**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyvisualize.html)
: Visualize simulation result files

### Quality Assurance

- [**mpytest**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpytest.html)
: Run CFD code functionality tests
- [**mpyfuzzy**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyfuzzy.html)
: Evaluate simulation goodness using fuzzy logic
- [**mpyhooks**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyhooks.html)
: Run git hooks for code quality checks

### Utilities

- [**mpyidentify**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyidentify.html)
: Identify file types and associate tags
- [**mpyrpcmp**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyrpcmp.html)
: Compare two repositories (file-based)
- [**mpyrpdiff**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyrpdiff.html)
: Compare repositories using git diff
- [**mpyshrun**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpyshrun.html)
: Wrap shell commands with logging

### Publishing

- [**mpypublish**](https://multiphase-python-repository-by-hzdr.readthedocs.io/en/latest/cli-tools/mpypublish.html)
: Publish software to Rodare repository

## Installation

The `multiphasepy` package requires Python 3.12 or newer.

Install the latest release from PyPI:

```bash
pip install multiphasepy
```

For full environment setup and platform-specific notes, see the installation
guide in the documentation.

## How to cite us?

If you find that package useful, please cite as

```text
Schlegel et al. (2026). Multiphase Python Repository by HZDR. Rodare.
<https://doi.org/10.14278/rodare.3093>.
```

## Acknowledgements

OpenFOAM® is a registered trade mark of OpenCFD Limited, producer and
distributor of the OpenFOAM® software via
[www.openfoam.com](https://openfoam.com). The Multiphase Python Repository by
HZDR is not compatible with the software released by OpenCFD Limited, but is
developed for the software released by the OpenFOAM Foundation via
[www.openfoam.org](https://openfoam.org).
