The goal here is to create and maintain an environment that will produce quick, accurate, meaningful solutions to hard-to-solve differential and algebraic equations.

At the center of this environment are the numerical methods provided by OpenModelica. When it is time to get a numerical solution, the numerical solution is provided by executable code generated by OpenModelica tools.

But more is needed. We want to operate in both the Windows and Linux environments, and in both GUI and terminal (shell) environments. Further, we want to conduct both exploratory and protocol based simulation sessions.

We also want to create composite solutions, consisting of solution segments pasted together end-to-end with parameter space management and solution inspection and revision possible between solution segments.

ModelTools tools have been developed to meet these goals. More than twenty modeltools tools are available -- a few are essential and the rest are occasionally useful or never useful.

Each model is completely described in a single XML document which I call an XML model specification document. A model is surrounded by some additional folders and files (used by the modeltools tools) and the whole thing is called a project.

It is easy to switch from one project to another and all of the modeltools tools are aware of the switch, so additional tool setup is not needed.

Tools (both GUI and shell) are used to build Modelica's executable code. The XML model specification file is parsed, Modelica relevant information is extracted, the Modelica source code is written, the source code is compiled and the Modelica executable is emitted. The workflow is the same in Windows and Linux environments, but different tools are used.

Once the model's Modelica executable is available, solutions can be obtained either exploratory (interactively) or protocol based (scripted) in either a GUI or shell based setting.

A tool named modelsolver is used to conduct exploratory, interactive, GUI based simulation sessions in Windows. There are elements in the XML schema of the model specification file designed to support such sessions. Namely, there are elements available to create numerical and graphical widgets to populate solution display panels. A large mathematical model typically encourages the creation of a large number of display panels.

Solution display panels are updated at the end of each solution segment. So a typical exploratory protocol might involve restarting the solution, advancing the solution to get the model's control response, examining values at the end of the control period, changing one or more parameter values to simulate an event or intervention, continuing the solution to obtain the model's response to the intervention, restarting, backing up, etc.

Don't be fooled. There is some work to do to maintain the model's state so that solution segments can be pasted together end-to-end to get a composite solution. But once a model is properly specified, the modeltools tools take care of all of this automatically and out of sight.