Execution environment🔗
In Modelon Impact the execution environment is the area where a model is compiled and a custom function is executed. The environment is well-defined and enables reproducibility of result.
The execution environment can be described as a container where the main parts are:
- Operation System
- Optimica Compiler Toolkit, including a Modelica compiler, simulation and optimization solvers and a Python environment.
- Public and documented Python libraries for custom function development
A user interacts with the execution environment by starting a compilation or execution of a custom function, either manually by pressing the play button from within the Modelon Impact UI or programmatically using the Modelon Impact client libraries.
Choosing an execution environment🔗
A user selects which execution environment to use on the server profile page at login, in the Compiler and solver dropdown. The choice will be cached in the browser and remembered.
| Choice | Compiler and solver version | Intended use |
|---|---|---|
| Stable (default) | The most recent versioned execution environment. Moves to the next one when it is released. | Everyday work. |
| Latest | Continuously updated with changes that are not part of a release yet, including any upcoming breaking changes. | Verifying upcoming changes against user models. |
| A versioned execution environment, selected by version number | That version only, updated with backwards compatible patch updates. | Results that have to stay reproducible over a long period. |
Warning
Latest does not maintain numerical compatibility. An update can change the results of a simulation that a user ran the day before, require different solver settings, or stop a model from compiling. It is not recommended for everyday work.
Which versions are available, and for how long, is described in update strategy. The Platform Information section in the release notes provides a summary of what’s included in a specific version.
Relation between execution environment and libraries, custom functions and REST-API🔗
Libraries, custom functions, and the REST-API are decoupled from the execution environment. This modularization makes it possible to freely combine a specific version of an execution environment with a library version and custom function.
Note
A library version and custom function is often developed and tested with a specific version of the execution environment. Update strategy and release notes provide further information on best practice and compatibility.