Design Concepts
Numerus Platforms
Numerus Model Builder uses two separate platforms for creating and running simulations. The design platform represents capsules and components visually and interacts with the user to capture the content and relationships among model elements. It subsequently represents this visual model in a textual program using the Novascript language. The runtime platform is an execution environment for interpreting the Novascript program and carrying out the simulation. The workflow is depicted below
Numerus has implemented several runtime platforms. Along with the Java-based platform JNSRT (Java Novascript Runtime) included with Numerus Model Builder, there are two runtime platforms for Web-deployed simulations; one in Javascript for browser-side execution and a second (under development) for server-side execution,
Structure of a Novascript Program
A Novascript (NS) program captures in text the content and structural relationships presented by the visual user-designed model. A sample Novascript program is shown on the right. (Click the thumbnail and enlarge as needed).
It consists of the three sections shown below.
The Globals section contains all globally defined variables, constants, functions and parameters. The order in which they are loaded is shown here. (The Prelude, etc. sections of the NMB Desktop are described below).
The Schemas section is a list of class definitions, one for each capsule contained in the model. A schema contains entries for each component (including code chips, controls, displays and plug-ins), and local methods. Entries for those components that are rich with properties (e.g. sliders, graphs, etc.) only specify input connections in their schema entries. All additional properties are contained in the Properties section.
The Properties section (a Javascript object bound to the global variable _props) details the definitions of property-rich components with entries defining their properties. It also includes metadata identifying the title, author and date, and clock parameters (i.e., start, stop, dt and integration method).