Name | mosaik JSON |
Version |
3.3.2
JSON |
| download |
home_page | https://mosaik.offis.de |
Summary | Mosaik is a flexible Smart-Grid co-simulation framework. |
upload_time | 2024-04-12 12:40:06 |
maintainer | None |
docs_url | None |
author | mosaik development team |
requires_python | None |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
Mosaik
======
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
Example
-------
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.
Installation
------------
Mosaik requires Python >= 3.8. Use `pip`__ to install it, preferably into
a `virtualenv`__::
$ pip install mosaik
__ http://pip.readthedocs.org/en/latest/installing.html
__ http://virtualenv.readthedocs.org/en/latest/
Documentation, Source Code and Issues
-------------------------------------
The documentation is available at https://mosaik.readthedocs.io.
Please report bugs and ideas for improvement to our `issue tracker`__.
__ https://gitlab.com/mosaik/mosaik/-/issues
How to cite mosaik
------------------
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}
}
Get in touch, ask questions, discuss 💬
---------------------------------------
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 <https://github.com/orgs/OFFIS-mosaik/discussions>`_.
Changelog
=========
3.3.2 - 2024-04-12
------------------
- [FIX] Fix versioning issue
3.3.1 - 2024-04-12
------------------
- [FIX] Remote simulators didn't work with Python 3.12 (https://gitlab.com/mosaik/mosaik/-/issues/233)
3.3.0 - 2024-04-08
------------------
- [NEW] A simulator can now be connected to itself if the connection is weak or time_shifted (https://gitlab.com/mosaik/mosaik/-/issues/156)
- [NEW] mosaik now provides a couple of basic simulators (https://gitlab.com/mosaik/mosaik/-/issues/192 , https://mosaik.readthedocs.io/en/latest/ecosystem/index.html#mosaik-basic-simulators)
- [NEW] Simulators can return extra_info for their entities to be used in scenario script (https://gitlab.com/mosaik/mosaik/-/issues/197)
- [NEW] Simulators now can (and potentially must) be grouped in a scenario script for more fine-grained control over same-time loops (https://gitlab.com/mosaik/mosaik/-/issues/215)
- [IMPROVEMENT] Internal rework and refactoring of the time handling in mosaik (https://gitlab.com/mosaik/mosaik/-/issues/162)
3.2.0 - 2023-08-31
------------------
- [NEW] Visualizations for the simulation debug information (https://gitlab.com/mosaik/mosaik/-/issues/173)
- [NEW] Allow to open a new console for simulator (https://gitlab.com/mosaik/mosaik/-/issues/84)
- [FIX] Lift restriction of only one weak connection per cycle (https://gitlab.com/mosaik/mosaik/-/issues/151)
- [FIX] Incorrect triggering when adding several edges (https://gitlab.com/mosaik/mosaik/-/issues/92)
- [IMPROVEMENT] Switch from simpy to asycnio (https://gitlab.com/mosaik/mosaik/-/issues/103)
- [CHANGE] Removed support for Python 3.7, added support for Python 3.11 (https://gitlab.com/mosaik/mosaik/-/issues/171)
3.1.1 - 2023-01-11
------------------
- [FIX] Fix compatibilty with mosaik 2 simulators (https://gitlab.com/mosaik/mosaik/-/issues/152)
3.1.0 - 2022-11-23
------------------
- [NEW] Add progress bar to visualize simulation progress (https://gitlab.com/mosaik/mosaik/-/merge_requests/58)
- [NEW] Add type annotations (https://gitlab.com/mosaik/mosaik/-/issues/107)
- [NEW] Add proper logging (https://gitlab.com/mosaik/mosaik/-/issues/98)
- [DEPRECATED] Deprecated tags for set_data und async_requests (https://gitlab.com/mosaik/mosaik/-/issues/102)
- [CHANGE] Improved benchmarks with new result table (https://gitlab.com/mosaik/mosaik/-/issues/94)
- [FIX] Unexpected behavior of (time-based) simulators whose output is not used anymore (https://gitlab.com/mosaik/mosaik/-/issues/90)
- [FIX] Lazy stepping does not work (https://gitlab.com/mosaik/mosaik/-/issues/89)
- [FIX] Negative max_advance values in same time loop (https://gitlab.com/mosaik/mosaik/-/issues/82)
- [FIX] Initial data for time-shifted connection for hybrid simulator (https://gitlab.com/mosaik/mosaik/-/issues/81)
- [FIX] Bug related to None value for "dest_sim.next_step" in particular connection structure (https://gitlab.com/mosaik/mosaik/-/issues/80)
3.0.2 - 2022-06-01
------------------
- [CHANGE] Updated mosaik-api version to 3.0.2
3.0.1 - 2022-05-02
------------------
- [CHANGE] Set external events via highlevel function call
- [FIX] Allow PATCH version to be included in the mosaik-api version format
3.0.0 - 2021-06-07
------------------
- This is a major upgrade to improve the discrete-event capabilities. Simulators' steps
can now also be triggered by the output of other simulators.
- [NEW] Native support of discrete-event simulations
- [NEW] A global time resolution can be set for the scenario.
- [NEW] Simulators can request steps asynchronously via *set_event()* to react to external events.
- [NEW] Ability to specify output data as non-persistent (i.e. transient)
- [CHANGE] New api 3:
- Simulators have now a *type* ('time-based'|'event-based'|'hybrid').
- *time_resolution* is passed as argument of the *init* function.
- *max_advance* is passed as argument of the *step* function.
- [CHANGE] Update of the documentation
2.6.1 - 2021-06-04
------------------
- [CHANGE] Updated ReadTheDocs to support versioning
- [CHANGE] Updated setup: mosaik-api>=2.3,<3
- [CHANGE] Updated networkx version to 2.5
2.6.0 - 2020-05-08
------------------
- [NEW] The print of the simulation progress is now optional and can be disabled via a flag
world.run(END, print_progress=False).
- [NEW] Additional starters can now be added via external packages (the standard ones are
'python', 'cmd', and 'connect').
2.5.3 - 2020-04-30
------------------
- [FIX] Constrain simpy version to <4.0.0 due to simpy.io incompatibility
- [CHANGE] Updated Odysseus tutorial
- [CHANGE] Eliminated shifted_cache which reduces memory consumption
2.5.2 - 2019-11-01
------------------
- [NEW] Special characters are now allowed in path names
- [NEW] Compatible to the new versions of networkx
- [CHANGE] python 3.6, 3.7 and 3.8 are currently supported, python 3.4 and 3.5 not anymore.
- [FIX] Various minor internal changes
- [FIX] Various documentation updates and fixes
2.5.1 - 2018-11-29
------------------
- [NEW] When calling the world.start() command for a simulator, users can now set a predefined
value for the posix flag (e.g. True) to prevent automatic detection of the operating system.
This facilitates the creation of some co-simulation cases across OS (e.g. Windows and Linux).
2.5.0 - 2018-09-05
------------------
- [NEW] Connection option "time_shifted" added as alternative to async_requests. This will
make creating cyclic data dependencies between simulators more usable since usage of
set_data with an API implementation will no longer be needed.
2.4.0 - 2017-12-06
------------------
- [NEW] Compatible to the new versions of networkx, simpy and simpy.io
- [CHANGE] python 3.4, 3.5 and 3.6 are currently supported python 3.3 is no longer supported
- [FIX] Various bug fixes
2.3.0 - 2016-04-26
------------------
- [NEW] Allow passing environment vars to sup processes
- [FIX] Fixed a bug in the version validation which raised an error when using
a floating point for the version
2.2.0 - 2016-02-15
------------------
- [NEW] API version 2.2: Added an optional "setup_done()" method.
- [CHANGE] API version validation: The API version is no longer an integer but
a "major.minor" string. The *major* part has to match with mosaik's major
version. The *minor* part may be lower or equal to mosaik's minor version.
- [FIX] Various minor fixes and stability improvements.
- [FIX] Various documentation updates and fixes.
2.1.2 – 2014-10-29
------------------
- [FIX] ``World.shutdown()`` now checks if the socket still exists before
attempting to close it.
- [FIX] Fixed a bug that made the last extra method of a simulator shadow all
previous ones.
2.1.1 – 2014-10-28
------------------
- [NEW] ``World.run()`` now prints a warning if you forget to connect
a simulator's entities.
- [FIX] Fixed some problems with the data-flow cache.
2.1 – 2014-10-24
----------------
- [NEW] Mosaik can now perform real-time simulations. Before, this
functionality needed to be implemented by simulators. Now it’s just
``World.run(until=x, rt_factor=y)``, where ``rt_factor`` defines the
simulation speed relative to the wall-clock time (issue #24).
- [NEW] Simulators can now expose extra methods via their API that can be
called from a mosaik scenario. This allows you to, e.g., store static data in
a data base. These extra API methods need to be specified in the simulator’s
meta data (issue #26).
- [NEW] ``util.connect_many_to_one()`` helper function.
- [NEW] More and better documentation:
- Tutorial for integrating simulators, control strategies and for creating
scenarios.
- Sim API description
- Scenario API description
- Sim Manager documentation
- Scheduler documentation
- Discussion of design decisions
- Logo, colors, CI
- [NEW] Added ``util.sync_call()`` which eases calling proxied methods of
a simulator synchronously.
- [CHANGE] The *rel* attribute in the entity description returned by *create()*
is now optional.
- [CHANGE] Moved proxied methods from ``SimProxy`` to ``SimProxy.proxy`` in
order to avoid potential name clashes with other attributes.
- [CHANGE] Check a simulator’s models and extra API methods for potential name
clashes with the built-in API methods.
- [CHANGE] The argument *execution_graph* of ``World`` was renamed to *debug*.
The execution graph now also stores the time after a simulation step (in
addition to the time before the step).
- [FIX] issue #22: The asynchronous requests *get_data()* and *set_data()*
now check if the ``async_requests`` flag was set in ``World.connect()``.
- [FIX] issue #23: *finalize()* is now called for in-process Python
simulators.
- [FIX] issue #27: Dramatically improved simulation performance (30 times as
fast in some cases) if simulators use different step sizes (e.g. 1 minute and
1 hour) by improving some internal data structures.
2.0 – 2014-09-22
----------------
- Mosaik 2 is a complete rewrite of mosaik 1 in order to improve its
maintainability and flexibility.
- Removed features:
- The *mosl* DSL (including Eclipse xtext and Java) are now gone. Mosaik now
only uses Python.
- Mosaik now longer has executables but is now used as a library.
- The platform manager is gone.
- The database is now a separate package, see `mosaik-hdf5`__.
- The old web UI is gone.
- Mosaik now consists of four core components with the following feature sets:
- mosaik Sim API
- The API has bean cleaned up and simplified.
- Simulators and control strategies share the same API.
- There are only four calls from mosaik to a simulator: *init*, *create*,
*step* and *get_data*.
- Simulators / processes can make asynchronous requests to mosaik during a
step: *get_progress*, *get_related_entities*, *get_data*, *set_data*.
- ZeroMQ with JSON is replaced by plain network sockets with JSON.
- Scenarios:
- Pure Python is now used to describe scenarios. This offers you more
flexibility to create complex scenarios.
- Scenario creation simplified: Start a simulator to get a model factory.
Use the factory to create model instances (*entities*). Connect entities.
Run simulation.
- Connection rules are are no based on a primitive *connect* function that
only connects two entities with each other. On top of that, any
connection strategy can be implemented.
- Simulation Manager:
- Simulators written in Python 3 can be executed *in process*.
- Simulators can be started as external processes.
- Mosaik can connect to an already running instance of a simulator. This
can be used as a replacement for the now gone platform manager.
- Simulation execution:
- The simulation is now event-based. No schedule and no synchronization
points need to be computed.
- Simulators can have different and varying step sizes.
- Mosaik ecosystem:
- A high-level implementation of the mosaik 2 API currently exists for
Python__ and Java__.
- *mosaik-web* is a simple visualization for mosaik simulations. See
https://gitlab.com/mosaik/mosaik-web.
- *mosaik-pypower* is an adapter for the *PYPOWER* load flow analysis
library. See https://gitlab.com/mosaik/mosaik-pypower and
https://github.com/rwl/PYPOWER.
- *mosaik-csv* and *mosaik-householdsim* are simple demo simulators that you
can use to "simulate" CSV data sets and load-profile based households. See
https://gitlab.com/mosaik/mosaik-csv and
https://gitlab.com/mosaik/mosaik-householdsim.
- There is a repository containing a simple demo scenario for mosaik. See
https://gitlab.com/mosaik/mosaik-demo.
You can find information about older versions on the `history page`__
__ https://gitlab.com/mosaik/mosaik-hdf5
__ https://gitlab.com/mosaik/mosaik-api-python
__ https://gitlab.com/mosaik/mosaik-api-java
__ https://mosaik.readthedocs.org/en/latest/about/history.html
Authors
=======
The original concepts for mosaik were developed by Steffen Schütte and Stefan
Scherfke.
The author of mosaik version 2 is Stefan Scherfke.
Current and former members of the mosaik team: Sharaf Alsharif, Tobias Brandt, Reef Eilers, André El-Ama,
Bengt Lüers, Okko Nannen, Annika Ofenloch, Mostafa Ramezani, Thomas Raub,
Stefan Scherfke, Florian Schloegl, Eike Schulte, Steffen Schütte, Jan Sören Schwarz,
Cornelius Steinbrink, Malte Stomberg, Deborah Tolk
Raw data
{
"_id": null,
"home_page": "https://mosaik.offis.de",
"name": "mosaik",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "mosaik development team",
"author_email": "mosaik@offis.de",
"download_url": "https://files.pythonhosted.org/packages/d0/8e/6d44b4d2bd72b7d0ee24015836f89898504d8d5c2122947e712f487fb381/mosaik-3.3.2.tar.gz",
"platform": null,
"description": "Mosaik\n======\n\nMosaik is a simulation compositor for Smart Grid simulations.\n\nIt lets you re-use existing simulators and couple them to simulate large-scale\nSmart Grid scenarios. Mosaik offers powerful mechanisms to specify and compose\nthese scenarios.\n\nLicense: LGPL\n\nExample\n-------\n\nA simple demo scenario with mosaik::\n\n >>> import mosaik\n >>> sim_config = {\n ... 'ExampleSim': {'python': 'example_sim.mosaik:ExampleSim'},\n ... }\n >>> def create_scenario(world):\n ... sim_1 = world.start('ExampleSim')\n ... sim_2 = world.start('ExampleSim')\n ... a_set = [sim_1.A(init_val=0) for i in range(3)]\n ... b_set = sim_2.B.create(2, init_val=0)\n ... for i, j in zip(a_set, b_set):\n ... world.connect(i, j, ('val_out', 'val_in'))\n ...\n >>> world = mosaik.World(sim_config)\n >>> create_scenario(world)\n 2022-11-21 15:39:48.554 | INFO | mosaik.scenario:start:255 - Starting \"ExampleSim\" as \"ExampleSim-0\" ...\n 2022-11-21 15:39:48.555 | INFO | mosaik.scenario:start:255 - Starting \"ExampleSim\" as \"ExampleSim-1\" ...\n >>> world.run(until=2)\n 2022-11-21 15:40:05.187 | INFO | mosaik.scenario:run:532 - Starting simulation.\n 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:00<00:00, 539.56steps/s]\n 2022-11-21 15:40:05.193 | INFO | mosaik.scenario:run:576 - Simulation finished successfully.\n\n\nInstallation\n------------\n\nMosaik requires Python >= 3.8. Use `pip`__ to install it, preferably into\na `virtualenv`__::\n\n $ pip install mosaik\n\n__ http://pip.readthedocs.org/en/latest/installing.html\n__ http://virtualenv.readthedocs.org/en/latest/\n\nDocumentation, Source Code and Issues\n-------------------------------------\n\nThe documentation is available at https://mosaik.readthedocs.io.\n\nPlease report bugs and ideas for improvement to our `issue tracker`__.\n\n__ https://gitlab.com/mosaik/mosaik/-/issues\n\nHow to cite mosaik\n------------------\nIf you want to cite mosaik, e.g. in a work in which you use mosaik, you can use this publication::\n\n C. Steinbrink, M. Blank-Babazadeh, A. El-Ama, S. Holly, B. L\u00fcers, M. Nebel-Wenner, R.P. Ramirez Acosta, T. Raub, J.S. Schwarz, S. Stark, A. Nie\u00dfe, and S. Lehnhoff, \u201cCPES Testing with mosaik: Co-Simulation Planning, Execution and Analysis\u201d, Applied Sciences, vol. 9, no. 5, 2019.\n\nOr as bibtex::\n \n @Article{app9050923,\n AUTHOR = {Steinbrink, Cornelius and Blank-Babazadeh, Marita and El-Ama, Andr\u00e9 and Holly, Stefanie and L\u00fcers, Bengt and Nebel-Wenner, Marvin and Ram\u00edrez Acosta, Rebeca P. and Raub, Thomas and Schwarz, Jan S\u00f6ren and Stark, Sanja and Nie\u00dfe, Astrid and Lehnhoff, Sebastian},\n TITLE = {CPES Testing with mosaik: Co-Simulation Planning, Execution and Analysis},\n JOURNAL = {Applied Sciences},\n VOLUME = {9},\n YEAR = {2019},\n NUMBER = {5},\n ARTICLE-NUMBER = {923},\n URL = {https://www.mdpi.com/2076-3417/9/5/923},\n ISSN = {2076-3417},\n DOI = {10.3390/app9050923}\n }\n\nGet in touch, ask questions, discuss \ud83d\udcac\n---------------------------------------\nYou have a question, a feature request or want to generally discuss the amazing \npossibilities with co-simulation and mosaik? We are curious to hear from you! \nJoin us on `GitHub Discussions <https://github.com/orgs/OFFIS-mosaik/discussions>`_.\n\nChangelog\n=========\n\n3.3.2 - 2024-04-12\n------------------\n\n- [FIX] Fix versioning issue\n\n3.3.1 - 2024-04-12\n------------------\n\n- [FIX] Remote simulators didn't work with Python 3.12 (https://gitlab.com/mosaik/mosaik/-/issues/233)\n\n3.3.0 - 2024-04-08\n------------------\n- [NEW] A simulator can now be connected to itself if the connection is weak or time_shifted (https://gitlab.com/mosaik/mosaik/-/issues/156)\n- [NEW] mosaik now provides a couple of basic simulators (https://gitlab.com/mosaik/mosaik/-/issues/192 , https://mosaik.readthedocs.io/en/latest/ecosystem/index.html#mosaik-basic-simulators)\n- [NEW] Simulators can return extra_info for their entities to be used in scenario script (https://gitlab.com/mosaik/mosaik/-/issues/197)\n- [NEW] Simulators now can (and potentially must) be grouped in a scenario script for more fine-grained control over same-time loops (https://gitlab.com/mosaik/mosaik/-/issues/215)\n- [IMPROVEMENT] Internal rework and refactoring of the time handling in mosaik (https://gitlab.com/mosaik/mosaik/-/issues/162)\n\n\n3.2.0 - 2023-08-31\n------------------\n- [NEW] Visualizations for the simulation debug information (https://gitlab.com/mosaik/mosaik/-/issues/173)\n- [NEW] Allow to open a new console for simulator (https://gitlab.com/mosaik/mosaik/-/issues/84)\n- [FIX] Lift restriction of only one weak connection per cycle (https://gitlab.com/mosaik/mosaik/-/issues/151)\n- [FIX] Incorrect triggering when adding several edges (https://gitlab.com/mosaik/mosaik/-/issues/92)\n- [IMPROVEMENT] Switch from simpy to asycnio (https://gitlab.com/mosaik/mosaik/-/issues/103)\n- [CHANGE] Removed support for Python 3.7, added support for Python 3.11 (https://gitlab.com/mosaik/mosaik/-/issues/171)\n\n3.1.1 - 2023-01-11\n------------------\n\n- [FIX] Fix compatibilty with mosaik 2 simulators (https://gitlab.com/mosaik/mosaik/-/issues/152)\n\n3.1.0 - 2022-11-23\n------------------\n- [NEW] Add progress bar to visualize simulation progress (https://gitlab.com/mosaik/mosaik/-/merge_requests/58)\n- [NEW] Add type annotations (https://gitlab.com/mosaik/mosaik/-/issues/107)\n- [NEW] Add proper logging (https://gitlab.com/mosaik/mosaik/-/issues/98)\n- [DEPRECATED] Deprecated tags for set_data und async_requests (https://gitlab.com/mosaik/mosaik/-/issues/102)\n- [CHANGE] Improved benchmarks with new result table (https://gitlab.com/mosaik/mosaik/-/issues/94)\n- [FIX] Unexpected behavior of (time-based) simulators whose output is not used anymore (https://gitlab.com/mosaik/mosaik/-/issues/90)\n- [FIX] Lazy stepping does not work (https://gitlab.com/mosaik/mosaik/-/issues/89)\n- [FIX] Negative max_advance values in same time loop (https://gitlab.com/mosaik/mosaik/-/issues/82)\n- [FIX] Initial data for time-shifted connection for hybrid simulator (https://gitlab.com/mosaik/mosaik/-/issues/81)\n- [FIX] Bug related to None value for \"dest_sim.next_step\" in particular connection structure (https://gitlab.com/mosaik/mosaik/-/issues/80)\n\n3.0.2 - 2022-06-01\n------------------\n\n- [CHANGE] Updated mosaik-api version to 3.0.2\n\n3.0.1 - 2022-05-02\n------------------\n\n- [CHANGE] Set external events via highlevel function call\n- [FIX] Allow PATCH version to be included in the mosaik-api version format\n\n3.0.0 - 2021-06-07\n------------------\n\n- This is a major upgrade to improve the discrete-event capabilities. Simulators' steps\n can now also be triggered by the output of other simulators.\n\n- [NEW] Native support of discrete-event simulations\n- [NEW] A global time resolution can be set for the scenario.\n- [NEW] Simulators can request steps asynchronously via *set_event()* to react to external events.\n- [NEW] Ability to specify output data as non-persistent (i.e. transient)\n- [CHANGE] New api 3:\n - Simulators have now a *type* ('time-based'|'event-based'|'hybrid').\n - *time_resolution* is passed as argument of the *init* function.\n - *max_advance* is passed as argument of the *step* function.\n- [CHANGE] Update of the documentation\n\n2.6.1 - 2021-06-04\n------------------\n\n- [CHANGE] Updated ReadTheDocs to support versioning\n- [CHANGE] Updated setup: mosaik-api>=2.3,<3\n- [CHANGE] Updated networkx version to 2.5\n\n2.6.0 - 2020-05-08\n------------------\n\n- [NEW] The print of the simulation progress is now optional and can be disabled via a flag\n world.run(END, print_progress=False).\n- [NEW] Additional starters can now be added via external packages (the standard ones are\n 'python', 'cmd', and 'connect').\n\n2.5.3 - 2020-04-30\n------------------\n\n- [FIX] Constrain simpy version to <4.0.0 due to simpy.io incompatibility\n- [CHANGE] Updated Odysseus tutorial\n- [CHANGE] Eliminated shifted_cache which reduces memory consumption\n\n2.5.2 - 2019-11-01\n------------------\n\n- [NEW] Special characters are now allowed in path names\n- [NEW] Compatible to the new versions of networkx\n- [CHANGE] python 3.6, 3.7 and 3.8 are currently supported, python 3.4 and 3.5 not anymore.\n- [FIX] Various minor internal changes\n- [FIX] Various documentation updates and fixes\n\n2.5.1 - 2018-11-29\n------------------\n\n- [NEW] When calling the world.start() command for a simulator, users can now set a predefined\n value for the posix flag (e.g. True) to prevent automatic detection of the operating system.\n This facilitates the creation of some co-simulation cases across OS (e.g. Windows and Linux).\n\n2.5.0 - 2018-09-05\n------------------\n\n- [NEW] Connection option \"time_shifted\" added as alternative to async_requests. This will\n make creating cyclic data dependencies between simulators more usable since usage of\n set_data with an API implementation will no longer be needed.\n\n2.4.0 - 2017-12-06\n------------------\n\n- [NEW] Compatible to the new versions of networkx, simpy and simpy.io\n- [CHANGE] python 3.4, 3.5 and 3.6 are currently supported python 3.3 is no longer supported\n- [FIX] Various bug fixes\n\n2.3.0 - 2016-04-26\n------------------\n\n- [NEW] Allow passing environment vars to sup processes\n- [FIX] Fixed a bug in the version validation which raised an error when using\n a floating point for the version\n\n2.2.0 - 2016-02-15\n------------------\n\n- [NEW] API version 2.2: Added an optional \"setup_done()\" method.\n\n- [CHANGE]\u00a0API version validation: The API version is no longer an integer but\n a \"major.minor\" string. The *major* part has to match with mosaik's major\n version. The *minor* part may be lower or equal to mosaik's minor version.\n\n- [FIX] Various minor fixes and stability improvements.\n\n- [FIX]\u00a0Various documentation updates and fixes.\n\n2.1.2 \u2013 2014-10-29\n------------------\n\n- [FIX]\u00a0``World.shutdown()`` now checks if the socket still exists before\n attempting to close it.\n\n- [FIX]\u00a0Fixed a bug that made the last extra method of a simulator shadow all\n previous ones.\n\n2.1.1 \u2013 2014-10-28\n------------------\n\n- [NEW] ``World.run()`` now prints a warning if you forget to connect\n a simulator's entities.\n- [FIX]\u00a0Fixed some problems with the data-flow cache.\n\n2.1 \u2013 2014-10-24\n----------------\n\n- [NEW]\u00a0Mosaik can now perform real-time simulations. Before, this\n functionality needed to be implemented by simulators. Now it\u2019s just\n ``World.run(until=x, rt_factor=y)``, where ``rt_factor`` defines the\n simulation speed relative to the wall-clock time (issue #24).\n\n- [NEW]\u00a0Simulators can now expose extra methods via their API that can be\n called from a mosaik scenario. This allows you to, e.g., store static data in\n a data base. These extra API methods need to be specified in the simulator\u2019s\n meta data (issue #26).\n\n- [NEW] ``util.connect_many_to_one()`` helper function.\n\n- [NEW]\u00a0More and better documentation:\n\n - Tutorial for integrating simulators, control strategies and for creating\n scenarios.\n\n - Sim API description\n\n - Scenario API description\n\n - Sim Manager documentation\n\n - Scheduler documentation\n\n - Discussion of design decisions\n\n - Logo, colors, CI\n\n- [NEW] Added ``util.sync_call()`` which eases calling proxied methods of\n a simulator synchronously.\n\n- [CHANGE] The *rel* attribute in the entity description returned by *create()*\n is now optional.\n\n- [CHANGE]\u00a0Moved proxied methods from ``SimProxy`` to ``SimProxy.proxy`` in\n order to avoid potential name clashes with other attributes.\n\n- [CHANGE]\u00a0Check a simulator\u2019s models and extra API methods for potential name\n clashes with the built-in API methods.\n\n- [CHANGE]\u00a0The argument *execution_graph* of ``World`` was renamed to *debug*.\n The execution graph now also stores the time after a simulation step (in\n addition to the time before the step).\n\n- [FIX] issue #22: The asynchronous requests *get_data()* and *set_data()*\n now check if the ``async_requests`` flag was set in ``World.connect()``.\n\n- [FIX] issue #23: *finalize()* is now called for in-process Python\n simulators.\n\n- [FIX] issue #27: Dramatically improved simulation performance (30 times as\n fast in some cases) if simulators use different step sizes (e.g. 1 minute and\n 1 hour) by improving some internal data structures.\n\n\n2.0 \u2013 2014-09-22\n----------------\n\n- Mosaik 2 is a complete rewrite of mosaik 1 in order to improve its\n maintainability and flexibility.\n\n- Removed features:\n\n - The *mosl* DSL (including Eclipse xtext and Java) are now gone. Mosaik now\n only uses Python.\n\n - Mosaik now longer has executables but is now used as a library.\n\n - The platform manager is gone.\n\n - The database is now a separate package, see `mosaik-hdf5`__.\n\n - The old web UI is gone.\n\n- Mosaik now consists of four core components with the following feature sets:\n\n - mosaik Sim API\n\n - The API has bean cleaned up and simplified.\n\n - Simulators and control strategies share the same API.\n\n - There are only four calls from mosaik to a simulator: *init*, *create*,\n *step* and *get_data*.\n\n - Simulators / processes can make asynchronous requests to mosaik during a\n step: *get_progress*, *get_related_entities*, *get_data*, *set_data*.\n\n - ZeroMQ with JSON is replaced by plain network sockets with JSON.\n\n - Scenarios:\n\n - Pure Python is now used to describe scenarios. This offers you more\n flexibility to create complex scenarios.\n\n - Scenario creation simplified: Start a simulator to get a model factory.\n Use the factory to create model instances (*entities*). Connect entities.\n Run simulation.\n\n - Connection rules are are no based on a primitive *connect* function that\n only connects two entities with each other. On top of that, any\n connection strategy can be implemented.\n\n - Simulation Manager:\n\n - Simulators written in Python 3 can be executed *in process*.\n\n - Simulators can be started as external processes.\n\n - Mosaik can connect to an already running instance of a simulator. This\n can be used as a replacement for the now gone platform manager.\n\n - Simulation execution:\n\n - The simulation is now event-based. No schedule and no synchronization\n points need to be computed.\n\n - Simulators can have different and varying step sizes.\n\n- Mosaik ecosystem:\n\n - A high-level implementation of the mosaik 2 API currently exists for\n Python__ and Java__.\n\n - *mosaik-web* is a simple visualization for mosaik simulations. See\n https://gitlab.com/mosaik/mosaik-web.\n\n - *mosaik-pypower* is an adapter for the *PYPOWER* load flow analysis\n library. See https://gitlab.com/mosaik/mosaik-pypower and\n https://github.com/rwl/PYPOWER.\n\n - *mosaik-csv* and *mosaik-householdsim* are simple demo simulators that you\n can use to \"simulate\" CSV data sets and load-profile based households. See\n https://gitlab.com/mosaik/mosaik-csv and\n https://gitlab.com/mosaik/mosaik-householdsim.\n\n - There is a repository containing a simple demo scenario for mosaik. See\n https://gitlab.com/mosaik/mosaik-demo.\n\n\n You can find information about older versions on the `history page`__\n\n__ https://gitlab.com/mosaik/mosaik-hdf5\n__ https://gitlab.com/mosaik/mosaik-api-python\n__ https://gitlab.com/mosaik/mosaik-api-java\n__ https://mosaik.readthedocs.org/en/latest/about/history.html\n\n\nAuthors\n=======\n\nThe original concepts for mosaik were developed by Steffen Sch\u00fctte and Stefan\nScherfke.\n\nThe author of mosaik version 2 is Stefan Scherfke.\n\nCurrent and former members of the mosaik team: Sharaf Alsharif, Tobias Brandt, Reef Eilers, Andr\u00e9 El-Ama,\nBengt L\u00fcers, Okko Nannen, Annika Ofenloch, Mostafa Ramezani, Thomas Raub,\nStefan Scherfke, Florian Schloegl, Eike Schulte, Steffen Sch\u00fctte, Jan S\u00f6ren Schwarz,\nCornelius Steinbrink, Malte Stomberg, Deborah Tolk\n",
"bugtrack_url": null,
"license": null,
"summary": "Mosaik is a flexible Smart-Grid co-simulation framework.",
"version": "3.3.2",
"project_urls": {
"Homepage": "https://mosaik.offis.de"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8e4da4113d657c2771f918116d1dcb54f163e4781aa32fb2e767acb612cb392b",
"md5": "ad8fde7ea4d917510a448625651d793d",
"sha256": "c95bb4cd50d5c71335ea0f80d7c9c6f1d8077da9ed62969afc36d6024a4eef8f"
},
"downloads": -1,
"filename": "mosaik-3.3.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "ad8fde7ea4d917510a448625651d793d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 64608,
"upload_time": "2024-04-12T12:40:04",
"upload_time_iso_8601": "2024-04-12T12:40:04.337379Z",
"url": "https://files.pythonhosted.org/packages/8e/4d/a4113d657c2771f918116d1dcb54f163e4781aa32fb2e767acb612cb392b/mosaik-3.3.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d08e6d44b4d2bd72b7d0ee24015836f89898504d8d5c2122947e712f487fb381",
"md5": "0bb7123f0b59c94da5e2efe45ddd2e99",
"sha256": "089eea09beee47828e159f30b09251b91b41533243b78b359bd37fd54b94f3f2"
},
"downloads": -1,
"filename": "mosaik-3.3.2.tar.gz",
"has_sig": false,
"md5_digest": "0bb7123f0b59c94da5e2efe45ddd2e99",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 81496,
"upload_time": "2024-04-12T12:40:06",
"upload_time_iso_8601": "2024-04-12T12:40:06.738411Z",
"url": "https://files.pythonhosted.org/packages/d0/8e/6d44b4d2bd72b7d0ee24015836f89898504d8d5c2122947e712f487fb381/mosaik-3.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-12 12:40:06",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "mosaik"
}