Models are a way of sharing knowledge.
A modeling tool shouldn’t obscure the underlying model by:
- Requiring tons of housekeeping code to hook up the model with various solvers.
- Requiring modelers to compose their models in a general-purpose language instead of a language with specialized language elements and operators for building ODE-based models.
- Using lots of cryptic icons to compose a model graphically when a few lines of code representing the fundamental model equations would be more clear.
- Not providing a way to easily reuse code within or between models.
- Requiring the user to manually carry inputs and outputs between different tools for model development, execution, analysis and data visualization.
- Making it difficult to manage sets of parameters and create reusable simulation scenarios by not supplying a scripting capability.
Magnolia is an environment specifically designed for modeling systems whose behavior can be described by systems of differential equations. Magnolia provides the tools for developing models using an equation-based modeling language, scripting the execution of simulations using either the Python programming language or a simple command-based language, and for interactively exploring model behavior using an intuitive user interface.
The Magnolia modeling language provides functions, operators and language elements which make coding ordinary differential equation models easy, while providing enough flexibility to be useful for large, complex models. Indicating that a variable in the model is calculated by numerical integration requires a single line of code. Built-in operators exist for many signal/waveform generators. Language constructs are provided to indicate when and under what conditions statements/equations should be evaluated. Discrete events are supported via a simple but flexible mechanism. Standard arithmetic, trigonometric, relational and logical operators are supported, as well as logical, integer and string data types.
Moreover, Magnolia takes care of all the housekeeping chores related to logging model outputs, incorporating discrete behavior with continuous variables, applying parameter values prior to model execution, and detecting error conditions. Magnolia also has powerful syntactical and semantic model checkers which help you catch modeling errors early.
Understanding model predictions can be challenging for large or complex models. Magnolia provides multiple workflows for executing, analyzing and visualizing model predictions.
- Fully interactive GUI-driven active plots allow you to assign sliders to constants and watch model outputs change in real time as parameter values are adjusted. Sliders allow modelers to perform simple sensitivity analyses on model parameters, interactively execute “what-if” scenarios, and gain intuitive understand of how model behavior depends on parameter values.
- An interactive command prompt allows the model to be controlled using the Python language.
- Scripting capabilities are provided so that simulation scenarios can be scripted using either the Python language, or a simple command-based language. Python provides a powerful language for scripting complex analyses, while the command-based language provides an easy-to-learn capability for quickly setting up parameter values, executing runs, and plotting outputs.
For detailed examples of how our modeling and scripting languages can be used to encode, run and execute your mathematical model, visit our examples page.