MESMO
An open-source Python tool for the modeling, simulation and optimization of multi-scale electric and thermal distribution systems along with distributed energy resources.
https://github.com/mesmo-dev/mesmo
Category: Energy Systems
Sub Category: Energy System Modeling Frameworks
Keywords
multi-energy-systems optimal-power-flow smart-grid
Last synced: about 6 hours ago
JSON representation
Repository metadata
MESMO - Multi-Energy System Modeling and Optimization
- Host: GitHub
- URL: https://github.com/mesmo-dev/mesmo
- Owner: mesmo-dev
- License: mit
- Created: 2019-08-07T21:30:17.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2024-09-03T21:16:31.000Z (8 months ago)
- Last Synced: 2025-04-17T22:58:56.336Z (10 days ago)
- Topics: multi-energy-systems, optimal-power-flow, smart-grid
- Language: Python
- Homepage: https://mesmo-dev.github.io/mesmo
- Size: 440 MB
- Stars: 54
- Watchers: 11
- Forks: 12
- Open Issues: 15
- Releases: 6
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.md
- License: LICENSE
- Citation: CITATION.bib
README.md
Work in progress: The repository is under active development and interfaces may change without notice. Please use GitHub issues for raising problems, questions, comments and feedback.
What is MESMO?
MESMO stand for "Multi-Energy System Modeling and Optimization" and is an open-source Python tool for the modeling, simulation and optimization of multi-scale electric and thermal distribution systems along with distributed energy resources (DERs), such as flexible building loads, electric vehicle (EV) chargers, distributed generators (DGs) and energy storage systems (ESS).
Features
MESMO implements 1) non-linear models for simulation-based analysis and 2) convex models for optimization-based analysis of electric grids, thermal grids and DERs. Through high-level interfaces, MESMO enables modeling operation problems for both traditional scenario-based simulation as well as optimization-based decision support. An emphasis of MESMO is on the modeling of multi-energy systems, i.e. the coupling of multi-commodity and multi-scale energy systems.
- Electric grid modeling
- Simulation: Non-linear modeling of steady-state nodal voltage / branch flows / losses, for multi-phase / unbalanced AC networks.
- Optimization: Linear approximate modeling via global or local approximation, for multi-phase / unbalanced AC networks.
- Thermal grid modeling
- Simulation: Non-linear modeling of steady-state nodal pressure head / branch flow / pump losses, for radial district heating / cooling systems.
- Optimization: Linear approximate modeling via global or local approximation, for radial district heating / cooling systems.
- Distributed energy resource (DER) modeling
- Simulation & optimization: Time series models for non-dispatchable / fixed DERs.
- Optimization: Linear state-space models for dispatchable / flexible DERs.
- Currently implemented DER models: Conventional fixed loads, generic flexible loads, flexible thermal building loads, non-dispatchable generators, controllable electric / thermal generators, electric / thermal energy storage systems, combined heat-and-power plants.
- Solution interfaces
- Simulation: Solution of non-linear power flow problems for electric / thermal grids.
- Optimization: Solution of convex optimization problems for electric / thermal grids and DERs, through third-party numerical optimization solvers.
- Generic optimization problem interface: Supports defining custom constraints and objective terms to augment the built-in models. Enables retrieving duals / DLMPs for the study of decentralized / distributed control architectures for energy systems.
- High-level problem interfaces: Nominal operation problem for simulation-based studies; Optimal operation problem for optimization-based studies.
Documentation
The documentation is located at mesmo-dev.github.io/mesmo.
Installation
MESMO has not yet been deployed to Python pip
/ conda
package indexes, but can be installed in a local development environment as follows:
- Install
conda
-based Python distribution¹ such as Anaconda or Miniconda or Miniforge. - Clone or download the repository. Ensure that the
cobmo
submodule directory is loaded as well. - In
conda
-enabled shell (e.g. Anaconda Prompt), run:cd path_to_mesmo_repository
conda create -n mesmo -c conda-forge python=3.10 contextily cvxpy numpy pandas scipy
conda activate mesmo
python development_setup.py
- On Intel CPUs²:
conda install -c conda-forge "libblas=*=*mkl"
MESMO ships with HiGHS as default optimization solver³, but also supports Gurobi and any CVXPY-supported solvers.
For notes ¹/²/³ and alternative installation guide, see docs/installation.md.
Contributing
If you are keen to contribute to this project, please see docs/contributing.md.
Publications
Information on citing MESMO and a list of related publications is available at docs/publications.md.
Acknowledgements
- MESMO is developed in collaboration between TUMCREATE, the Institute for High Performance Computing, A*STAR and the Chair of Renewable and Sustainable Energy Systems, TUM.
- Sebastian Troitzsch implemented the initial version of MESMO and maintains this repository.
- Sarmad Hanif and Kai Zhang developed the underlying electric grid modeling, fixed-point power flow solution and electric grid approximation methodologies.
- Arif Ahmed implemented the implicit Z-bus power flow solution method & overhead line type definitions.
- Mischa Grussmann developed the thermal grid modeling and approximation methodologies.
- Verena Kleinschmidt implemented several multi-energy DER models, such as the heating plant and CHP plant models.
- Sebastian Troitzsch and Tom Schelo implemented the optimization problem class.
- This work was financially supported by the Singapore National Research Foundation under its Campus for Research Excellence And Technological Enterprise (CREATE) programme.
Citation (CITATION.bib)
@misc{mesmo, author = {Sebastian Troitzsch and Verena Kleinschmidt and Tom Schelo and Arif Ahmed}, title = {{MESMO - Multi-Energy System Modeling and Optimization}}, year = 2021, howpublished = {Version 0.5.0, Zenodo}, doi = {10.5281/zenodo.3523568}, url = {https://doi.org/10.5281/zenodo.3523568} }
Owner metadata
- Name: mesmo-dev
- Login: mesmo-dev
- Email:
- Kind: organization
- Description: Multi-Energy System Modeling & Optimization (MESMO)
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/86105350?v=4
- Repositories: 2
- Last ynced at: 2023-03-05T01:59:26.070Z
- Profile URL: https://github.com/mesmo-dev
GitHub Events
Total
- Watch event: 13
- Fork event: 1
Last Year
- Watch event: 13
- Fork event: 1
Committers metadata
Last synced: 6 days ago
Total Commits: 1,575
Total Committers: 5
Avg Commits per committer: 315.0
Development Distribution Score (DDS): 0.095
Commits in past year: 4
Committers in past year: 2
Avg Commits per committer in past year: 2.0
Development Distribution Score (DDS) in past year: 0.25
Name | Commits | |
---|---|---|
Sebastian Troitzsch | s@t****h | 1425 |
kai zhang | k****g@t****g | 68 |
Sebastian Troitzsch | s****h | 56 |
Tom Schelo | t****o@m****m | 21 |
Arif Ahmed | a****5@g****m | 5 |
Committer domains:
- me.com: 1
- tum-create.edu.sg: 1
- troitzs.ch: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 23
Total pull requests: 8
Average time to close issues: 6 months
Average time to close pull requests: 7 days
Total issue authors: 6
Total pull request authors: 3
Average comments per issue: 1.17
Average comments per pull request: 0.13
Merged pull request: 7
Bot issues: 0
Bot pull requests: 1
Past year issues: 0
Past year pull requests: 1
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 1
Top Issue Authors
- stroitzsch (17)
- miladkzm (2)
- Aliadavid (1)
- eeenadeem (1)
- ishankholkar (1)
- jjgybill (1)
Top Pull Request Authors
- stroitzsch (4)
- miladkzm (3)
- dependabot[bot] (1)
Top Issue Labels
- enhancement (13)
- question (2)
- bug (2)
- documentation (1)
Top Pull Request Labels
- dependencies (1)
Dependencies
- furo *
- myst-parser *
- recommonmark *
- sphinx *
- sphinx-copybutton *
- sphinx-multiversion *
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
- peaceiris/actions-gh-pages v3 composite
- actions/checkout v2 composite
- actions/download-artifact v2 composite
- actions/upload-artifact v2 composite
- conda-incubator/setup-miniconda v2 composite
- psf/black stable composite
- stefanzweifel/git-auto-commit-action v4 composite
- actions/checkout v2 composite
- codacy/codacy-coverage-reporter-action v1 composite
- codecov/codecov-action v2 composite
- conda-incubator/setup-miniconda v2 composite
- condaforge/miniforge3 latest build
Score: 5.84354441703136