Metadata-Version: 2.3
Name: eta-mistral
Version: 1.0.3
Summary: Pinch based optimization for placement of decentral energy converters. Provides thermodynamically optimal and spatially feasible cross-linking technologies for supply systems of production sites.
License: BSD-2-Clause
Keywords: optimization,graph based modeling,networks
Author: Technical University of Darmstadt, Institute for Production Management, Technology and Machine Tools (PTW)
Author-email: m.frank@ptw.tu-darmstadt.de
Requires-Python: >=3.11,<3.14
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Dist: backports-datetime-fromisoformat (==2.0.0)
Requires-Dist: bokeh (>=3.7.3,<4.0.0)
Requires-Dist: colorama (>=0.4.6,<0.5.0)
Requires-Dist: dash (>=3.0.4,<4.0.0)
Requires-Dist: dash-bootstrap-components (>=2.0.3,<3.0.0)
Requires-Dist: fmpy (>=0.3.23,<0.4.0)
Requires-Dist: igraph (>=0.11.8,<0.12.0)
Requires-Dist: matplotlib (>=3.10.3,<4.0.0)
Requires-Dist: networkx (>=3.5,<4.0)
Requires-Dist: numpy (>=2.2.6,<3.0.0)
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
Requires-Dist: pandas (>=2.2.3,<3.0.0)
Requires-Dist: pyomo (>=6.9.2,<7.0.0)
Requires-Dist: pyqtgraph (>=0.13.7,<0.14.0)
Requires-Dist: pyside6 (>=6.9.1,<7.0.0)
Requires-Dist: pywin32 (>=310,<311) ; sys_platform == "win32"
Requires-Dist: stable_baselines3 (>=2.1,<3.0)
Project-URL: Bug Tracker, https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral/-/issues
Project-URL: Changelog, https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral/-/blob/publication-adaptions/CHANGELOG.md
Project-URL: Documentation, https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral/-/tree/publication-adaptions/docs
Project-URL: Homepage, https://www.ptw.tu-darmstadt.de
Project-URL: Repository, https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral
Description-Content-Type: text/markdown

# ETA MISTRAL

[![pipeline](https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral/badges/main/pipeline.svg)](https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral/-/commits/main)
[![license](https://img.shields.io/badge/License-BSD--2--Clause-blue.svg)](LICENSE)

This repository implements the MISTRAL method for pinch-based optimization of decentral energy
converter placement. It provides a CLI to configure backend optimization and a web interface for
plotting and graph-based visualization of the modelled system.

## Key Features

- Pinch-based placement optimization for decentral energy converters
- CLI-driven experiment configuration
- Dash web interface for interactive plotting
- Graph representation of the modelled energy system

## Overview

Following the CLI workflow:

![flow diagram](./docs/images/flow_chart_mistral_method.png)

Module overview for development:

![module overview](./docs/images/modul_overview_mistral.png)

## Installation

Python `>=3.11,<3.14` is required.

To install the project along with its development dependencies:

    poetry install

Followed by:

    poetry run pre-commit install

## Quick Start

See `examples/experiment/` for a runnable experiment entry point and configuration.

## Examples

    poetry run python -m examples.experiment.main

Plotting-only workflow:

    poetry run python -m examples.experiment.main_plot

## Documentation

Sphinx sources are in `docs/`. Browse on GitLab: [docs/](https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public/eta-mistral/-/tree/publication-adaptions/docs)

Build locally:

```
poetry install --with dev
cd docs && make html
```

## Development

See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, tests, and merge request workflow.

Pre-commit ensures that the repository accepts your commit, automatically fixes some code styling
problems and provides hints for better coding.

Before submitting a merge request:

    poetry run pytest
    poetry run pre-commit run --all-files

### Adding dependencies

    poetry add <package-name>@latest

## Important Note for the CLI Application

Do not forget to close (Ctrl+C) the Dash server when exiting the application.

## Related software

- [eta-fabrik public group](https://git.ptw.maschinenbau.tu-darmstadt.de/eta-fabrik/public) — related ETA optimization and modeling repositories

## Solver and third-party requirements

Backend optimization may require third-party solvers depending on configuration. This package is licensed under **BSD-2-Clause**. Any solver or runtime dependencies (commercial or open-source) are separate products with their own licenses and terms.

## Citation

For academic use, cite this repository using [CITATION.cff](CITATION.cff). See [AUTHORS.rst](AUTHORS.rst)
for further contributors.

## License

BSD-2-Clause — see [LICENSE](LICENSE). See also [CHANGELOG.md](CHANGELOG.md) and [SECURITY.md](SECURITY.md).

