**Basic Principles and Work Flow**

Important principles To describe the work with the MOSAICmodeling environment the following basic principles need to be mentioned:

- Mathematic expressions are written symbolically so that they can be seen in the environment just as they would appear in a publication on written on paper.
- Equations and functions are created separately and then assembled to equation systems.
- In the same way equation systems can be added to other equation systems.
- Every equation, function and equation system must have a notation that contains an explanation for each symbol used in the mathematical expressions.
- The calculation of an equation system is separated from its creation.

- This makes the equation systems more reusable. In particular:An equation system does not contain any specific values for its variables and parameters.
- An equation system does not contain any information about which are the design variables and which are the iteration variables.
- An equation system does not contain information about the maximum values of indices.
- Such pieces of information are kept in an object called evaluation.

**General modeling procedure** To build up a new model from scratch you have to adhere to the following procedure.

- Create a notation object containing information for all symbols that you will use.
- Create the equations and assemble them to an equation system. (If necessary, you can sub-divide your model into several equation systems, which can be added to a superior equation system in a second step.)
- If you need functional calculations you can create function objects.
- Instances of function objects can be added into the equation system.
- Once you have created your equation system, create an evaluation object that contains all information necessary to specify a problem to be solved based on the equation system. This step includes-Specication of maximum index values (e.g. number of components)-Classication of the variables into design and iteration variables.-Giving values to the design variables and parameters, as well as, providing guess values for the iteration variables.
- With all necessary information gathered, create a problem solving program code in one of the languages provided by MOSAICmodeling. Depending on what code generator you used you can either
- compile and execute the code on the solver which allows you to see the results directly in the MOSAICmodeling user interface
- copy the code and use it in your own modeling environment.