Software Open Access
Schlegel, Fabian;
Fombonne, Clement;
Hänsch, Susann;
Krull, Benjamin;
Lehnigk, Ronald;
Meller, Richard
<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
<leader>00000nmm##2200000uu#4500</leader>
<controlfield tag="005">20260326073800.0</controlfield>
<datafield tag="773" ind1=" " ind2=" ">
<subfield code="a">https://www.hzdr.de/publications/Publ-39434</subfield>
<subfield code="i">isIdenticalTo</subfield>
<subfield code="n">url</subfield>
</datafield>
<datafield tag="773" ind1=" " ind2=" ">
<subfield code="a">10.14278/rodare.3093</subfield>
<subfield code="i">isVersionOf</subfield>
<subfield code="n">doi</subfield>
</datafield>
<datafield tag="024" ind1=" " ind2=" ">
<subfield code="a">10.14278/rodare.4566</subfield>
<subfield code="2">doi</subfield>
</datafield>
<datafield tag="980" ind1=" " ind2=" ">
<subfield code="a">user-rodare</subfield>
</datafield>
<datafield tag="650" ind1="1" ind2="7">
<subfield code="a">cc-by</subfield>
<subfield code="2">opendefinition.org</subfield>
</datafield>
<datafield tag="245" ind1=" " ind2=" ">
<subfield code="a">Multiphase Python Repository by HZDR</subfield>
</datafield>
<datafield tag="520" ind1=" " ind2=" ">
<subfield code="a"><p>The <code>multiphasepy</code> is a Python toolkit for building, running, and maintaining CFD simulation case collections for the software released by the OpenFOAM Foundation (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.</p> <p>At its core, <code>multiphasepy</code> 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 both on workstations and Slurm-based HPC systems. Using a container-based software environment (e.g. Apptainer or Docker) the case collection becomes fully portable. An integrated Copier template allows the creation and maintenance of multiple independent case collections.</p> <p>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.</p> Command-Line Tools <p>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 <code>mpy&lt;function&gt;</code> and provide <code>--help</code> for detailed usage information.</p> Workflow Management <ul> <li><strong>mpycopy</strong> : Copy and render templated cases</li> <li><strong>mpydocker</strong> : Launch customizable Docker development environments</li> <li><strong>mpywatch</strong> : Progress display and real-time data visualization</li> <li><strong>mpyworkflow</strong> : Create and manage cases projects allowing batch processing</li> </ul> Data Processing <ul> <li><strong>mpyconv</strong> : Convert data files between formats</li> <li><strong>mpypost</strong> : Mathematical post-processing operations</li> <li><strong>mpyvisualize</strong> : Visualize simulation result files</li> </ul> Quality Assurance <ul> <li><strong>mpytest</strong> : Run CFD code functionality tests</li> <li><strong>mpyfuzzy</strong> : Evaluate simulation goodness using fuzzy logic</li> <li><strong>mpyhooks</strong> : Run git hooks for code quality checks</li> </ul> Utilities <ul> <li><strong>mpyidentify</strong> : Identify file types and associate tags</li> <li><strong>mpyrpcmp</strong> : Compare two repositories (file-based)</li> <li><strong>mpyrpdiff</strong> : Compare repositories using git diff</li> <li><strong>mpyshrun</strong> : Wrap shell commands with logging</li> </ul> Publishing <ul> <li><strong>mpypublish</strong> : Publish software to Rodare repository</li> </ul> Installation <p>The <code>multiphasepy</code> package requires Python 3.12 or newer.</p> <p>Install the latest release from Gitlab PyPI:</p> <pre><code class="language-bash">python -m pip install multiphasepy --extra-index-url https://codebase.helmholtz.cloud/api/v4/projects/8786/packages/pypi/simple </code></pre> <p>For full environment setup and platform-specific notes, see the installation guide in the documentation.</p> Acknowledgements <p>OpenFOAM® is a registered trade mark of OpenCFD Limited, producer and distributor of the OpenFOAM® software via &lt;www.openfoam.com&gt;. 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 &lt;www.openfoam.org&gt;.</p></subfield>
</datafield>
<datafield tag="980" ind1=" " ind2=" ">
<subfield code="a">software</subfield>
</datafield>
<datafield tag="856" ind1="4" ind2=" ">
<subfield code="s">15618</subfield>
<subfield code="u">https://rodare.hzdr.de/record/4566/files/CHANGELOG.md</subfield>
<subfield code="z">md5:af3b14545062975c87ead91871528514</subfield>
</datafield>
<datafield tag="856" ind1="4" ind2=" ">
<subfield code="s">119045</subfield>
<subfield code="u">https://rodare.hzdr.de/record/4566/files/multiphasepy-3.0.1-py3-none-any.whl</subfield>
<subfield code="z">md5:639df073cc71c71cdbaa58a8fcd24f98</subfield>
</datafield>
<datafield tag="856" ind1="4" ind2=" ">
<subfield code="s">85406</subfield>
<subfield code="u">https://rodare.hzdr.de/record/4566/files/multiphasepy-3.0.1.tar.gz</subfield>
<subfield code="z">md5:a4b23a4b2c814c5de39a49af10db2bcf</subfield>
</datafield>
<datafield tag="100" ind1=" " ind2=" ">
<subfield code="a">Schlegel, Fabian</subfield>
<subfield code="u">Helmholtz-Zentrum Dresden - Rossendorf e.V.</subfield>
<subfield code="0">(orcid)0000-0003-3824-9568</subfield>
</datafield>
<datafield tag="542" ind1=" " ind2=" ">
<subfield code="l">open</subfield>
</datafield>
<datafield tag="540" ind1=" " ind2=" ">
<subfield code="u">https://opensource.org/licenses/GPL-3.0</subfield>
<subfield code="a">GNU General Public License v3.0 or later</subfield>
</datafield>
<datafield tag="653" ind1=" " ind2=" ">
<subfield code="a">Python</subfield>
</datafield>
<datafield tag="653" ind1=" " ind2=" ">
<subfield code="a">Numerical Simulations</subfield>
</datafield>
<datafield tag="653" ind1=" " ind2=" ">
<subfield code="a">Post-Processing</subfield>
</datafield>
<datafield tag="653" ind1=" " ind2=" ">
<subfield code="a">Gitlab</subfield>
</datafield>
<controlfield tag="001">4566</controlfield>
<datafield tag="041" ind1=" " ind2=" ">
<subfield code="a">eng</subfield>
</datafield>
<datafield tag="260" ind1=" " ind2=" ">
<subfield code="c">2026-03-20</subfield>
</datafield>
<datafield tag="700" ind1=" " ind2=" ">
<subfield code="a">Fombonne, Clement</subfield>
<subfield code="u">Framatome S.A.S.</subfield>
</datafield>
<datafield tag="700" ind1=" " ind2=" ">
<subfield code="a">Hänsch, Susann</subfield>
<subfield code="u">Helmholtz-Zentrum Dresden - Rossendorf e.V.</subfield>
<subfield code="0">(orcid)0000-0003-1296-5566</subfield>
</datafield>
<datafield tag="700" ind1=" " ind2=" ">
<subfield code="a">Krull, Benjamin</subfield>
<subfield code="u">Helmholtz-Zentrum Dresden - Rossendorf e.V.</subfield>
<subfield code="0">(orcid)0000-0002-5394-0384</subfield>
</datafield>
<datafield tag="700" ind1=" " ind2=" ">
<subfield code="a">Lehnigk, Ronald</subfield>
<subfield code="u">Helmholtz-Zentrum Dresden - Rossendorf e.V.</subfield>
<subfield code="0">(orcid)0000-0002-5408-7370</subfield>
</datafield>
<datafield tag="700" ind1=" " ind2=" ">
<subfield code="a">Meller, Richard</subfield>
<subfield code="u">Helmholtz-Zentrum Dresden - Rossendorf e.V.</subfield>
<subfield code="0">(orcid)0000-0002-3801-2555</subfield>
</datafield>
<datafield tag="909" ind1="C" ind2="O">
<subfield code="o">oai:rodare.hzdr.de:4566</subfield>
<subfield code="p">software</subfield>
<subfield code="p">user-rodare</subfield>
</datafield>
</record>
| All versions | This version | |
|---|---|---|
| Views | 17,231 | 63 |
| Downloads | 4,885 | 15 |
| Data volume | 137.0 MB | 787.6 kB |
| Unique views | 12,495 | 60 |
| Unique downloads | 4,403 | 13 |