Model Translation
Models in Magnolia are specified using the CSL language, a computer language specifically designed for representing systems of ordinary differential equations (which allows the modeling of many kinds of continuous or hybrid discrete/continuous systems and processes). This language contains a variety of syntactical elements which make specification of equations, as well as when and how to evaluate those equations, easy to program.
In order to make solution of these systems of equations as fast as possible, the equations are translated into source code for an optimized programming language (Java, in this case) and combined with numerical libraries that do the basic mathematical computations very quickly. This translation process is usually transparent to the user; it happens very quickly when a model is loaded into Magnolia from the file system, or before a model executes.
The model is built in-memory using a Java compiler installed along with Magnolia. Once built, the in-memory version of the model can be executed, have parameter values changed, or be scripted using one of the techniques described in subsequent sections.
While this translation adds a small amount of overhead to each time the model is built, the corresponding increase in performance typically far exceeds the time spent translating the code.