Skip to content

Marmot runner #1203

Description

@Godelaine

Describe the current behavior

3 runners are available in pypowsybl: a rao run (Rao.run), run_voltage_monitoring, run_angle_monitoring

Describe the expected behavior

We'd like to also have a 4th runner: run_marmot. Marmot documentation is available here: https://powsybl.readthedocs.io/projects/openrao/en/stable/algorithms/marmot.html and the java Marmot code here
https://github.com/powsybl/powsybl-open-rao/tree/main/ra-optimisation/search-tree-rao/src/main/java/com/powsybl/openrao/searchtreerao/marmot.

This function would need the following inputs:

Then, the binding to Java Marmot code needs to be performed.

Finally, run_Marmot will output a RaoResult object but pypowsybl java api will include features allowing to fetch individual rao result objects (one per timestamp).

A few tests are expected in test_rao, that can be transcoded from java, either from MarmotTest or from cucumber tests, for instance 4_2_generator_constraints_json_1 feature.

An example notebook is also expected in pypowsybl notebooks, meant as a tutorial.

Describe the motivation

No response

Extra Information

This is based on an ongoing development in open-rao, powsybl/powsybl-open-rao#1699.
Do not adapt run_Marmot to ICS inputs as is done in Java code (we can alternatively use ICS inputs or json time coupled constraints in Java code)

Metadata

Metadata

Assignees

Labels

Release 06/2026raoThis issue or PR relates to the Python API of OpenRAO

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions