Mosaik is a simulation compositor for Smart Grid simulations.
It lets you re-use existing simulators and couple them to simulate large-scale Smart Grid scenarios. Mosaik offers powerful mechanisms to specify and compose these scenarios.
License: LGPL
A simple demo scenario with mosaik:
>>> import mosaik
>>> sim_config = {
... 'ExampleSim': {'python': 'example_sim.mosaik:ExampleSim'},
... }
>>> def create_scenario(world):
... sim_1 = world.start('ExampleSim')
... sim_2 = world.start('ExampleSim')
... a_set = [sim_1.A(init_val=0) for i in range(3)]
... b_set = sim_2.B.create(2, init_val=0)
... for i, j in zip(a_set, b_set):
... world.connect(i, j, ('val_out', 'val_in'))
...
>>> world = mosaik.World(sim_config)
>>> create_scenario(world)
2022-11-21 15:39:48.554 | INFO | mosaik.scenario:start:255 - Starting "ExampleSim" as "ExampleSim-0" ...
2022-11-21 15:39:48.555 | INFO | mosaik.scenario:start:255 - Starting "ExampleSim" as "ExampleSim-1" ...
>>> world.run(until=2)
2022-11-21 15:40:05.187 | INFO | mosaik.scenario:run:532 - Starting simulation.
100%|█████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 539.56steps/s]
2022-11-21 15:40:05.193 | INFO | mosaik.scenario:run:576 - Simulation finished successfully.
Mosaik requires Python >= 3.8. Use pip to install it, preferably into a virtualenv:
$ pip install mosaik
The documentation is available at https://mosaik.readthedocs.io.
Please report bugs and ideas for improvement to our issue tracker.
If you want to cite mosaik, e.g. in a work in which you use mosaik, you can use this publication:
C. Steinbrink, M. Blank-Babazadeh, A. El-Ama, S. Holly, B. Lüers, M. Nebel-Wenner, R.P. Ramirez Acosta, T. Raub, J.S. Schwarz, S. Stark, A. Nieße, and S. Lehnhoff, “CPES Testing with mosaik: Co-Simulation Planning, Execution and Analysis”, Applied Sciences, vol. 9, no. 5, 2019.
Or as bibtex:
@Article{app9050923,
AUTHOR = {Steinbrink, Cornelius and Blank-Babazadeh, Marita and El-Ama, André and Holly, Stefanie and Lüers, Bengt and Nebel-Wenner, Marvin and Ramírez Acosta, Rebeca P. and Raub, Thomas and Schwarz, Jan Sören and Stark, Sanja and Nieße, Astrid and Lehnhoff, Sebastian},
TITLE = {CPES Testing with mosaik: Co-Simulation Planning, Execution and Analysis},
JOURNAL = {Applied Sciences},
VOLUME = {9},
YEAR = {2019},
NUMBER = {5},
ARTICLE-NUMBER = {923},
URL = {https://www.mdpi.com/2076-3417/9/5/923},
ISSN = {2076-3417},
DOI = {10.3390/app9050923}
}
You have a question, a feature request or want to generally discuss the amazing possibilities with co-simulation and mosaik? We are curious to hear from you! Join us on GitHub Discussions.