Release of MOSAIC 2.0

After months of hard work on the new version we are happy to announce the release of MOSAIC 2.0.

A lot of effort has been put into making the MOSAIC code more stable and open for more extensions. The most obvious change you will notice when you look at the graphical user interface:


Many buttons now use symbols instead of textual labels and the user interface in general is now divided into the main groups “Model”, “Simulation”, “Optimization”, and “Miscellaneous”. The workflow in the “Model” part of MOSAIC goes straight from left to right, starting with the notation and finally ending with the equation system. The actually available editors still depend on the features that you need for your work, of course, as disabled features are removed from the user interface to not distract you. All the editors are now organized in a way that you can edit the current model element while at the same time always seeing the current description in the upper part of the editor. So you never forget to enter a description in the equation editor again 😉

The most notable new feature that we want to draw your attention to is called “Evaluation Tests” and located inside the simulation editor. The simulation editor is now divided into the subsections “Equation System”, “Specifications”, and “Evaluation” as follows:

  • Equation System: Generic System, Indexing, Instantiated System
  • Specifications: Variables, Parameters, Namespaces, Import
  • Evaluation: Code Generation, Results


With the “Evaluation Tests” feature you will be able to calculate on the one hand the function values of MOSAIC functions with explicitly specified body and on the other hand the first iteration of the whole system (based on the guess values, design variables, parameters and the initial function calculation). Calculating the first iteration of the equation system shows in which single equations you have the biggest distance from a solution, giving a hint which initial guesses may be the worst. The respective buttons are located in Simulation->Specifications->Variables (“Test Calc” and “Test Iter”). If you want to try out this feature and cannot see the buttons yet, contact us and we will enable it for you.


Another change that could be relevant for your work is directly related to the functions in MOSAIC: it is not possible anymore to use vector-valued inputs or outputs in functions that are defined with the setting “Specify formula”! That is one reason why the summation symbol is not allowed inside the body definition of a function anymore. Additionally, specifying a function with parameters and using an interface for function definition is mutually exclusive, so you either load an interface to set all inputs and the output of the function, or you define the function body explicitly and load a parameter list to identify quantities/constants that are not passed to the function as a variable. In case you so far used a so-called “Param Set Index” in your functions connected with a parameter list, you have to change your workflow slightly, as starting with MOSAIC 2.0 the function parameter index is a property of the function application instead of the function itself. So the parameter index is added in the equation system editor when all the function calls and the connections to inputs and outputs are defined.


In the editor for equation systems the parts related to flowsheeting (i.e. Ports&Streams) is aggregated in a new sub editor with the obvious name “flowsheeting” (see figure above, between “Functions” and “Preview”). When using connectors or transformations within an equation system it is now possible to open the respective connector/transformation directly out of the equation system editor via right click menu. The “User-defined Name” that can be entered in the same editor will be visible in the “Simulation” part of MOSAIC to exactly identify the subsystems later on (see “Namespaces” tab in Simulation->Specification).

Just one more thing: you can enable/disable the use of engineering units in the extras tab.