Difference between revisions of "Simulator"

From ProcessDB
Jump to navigation Jump to search
Line 3: Line 3:
 
* [https://computation.llnl.gov/casc/sundials/main.html CVODE] - a public domain, robust, and fast stiff ODE solver;
 
* [https://computation.llnl.gov/casc/sundials/main.html CVODE] - a public domain, robust, and fast stiff ODE solver;
 
* interpreter - our custom code for evaluating mathematical expressions, conditionals, and functions;
 
* interpreter - our custom code for evaluating mathematical expressions, conditionals, and functions;
* simulator core - our custom code that integrates CVODE and the interpreter as well as control flow, biological event processing, and output for plotting or other use.
+
* simulator core - our custom code that integrates CVODE and the interpreter, manages control flow, processes biological events, and outputs data for plotting or other use.
  
 
As an end user, mostly, you do not need to know about this simulator or think about it.  However, there are some reasons you may want to be familiar with how it works.  In particular, if the output is not as you expect then an understanding of what the simulator is doing may help you understand why the output is the way it is or, in some cases, change the input to the simulator so that the output is what you expect. Note in the latter case, this is not like optimizing model parameters and does not represent a problem in the simulator. Instead, there are inputs to the simulator that are critical to performing a correct numerical integration of a system of ordinary differential equations such as the tolerances of the system. Tolerances are domain specific (i.e., specific to your model) and an automatic selection of them is not always possible.
 
As an end user, mostly, you do not need to know about this simulator or think about it.  However, there are some reasons you may want to be familiar with how it works.  In particular, if the output is not as you expect then an understanding of what the simulator is doing may help you understand why the output is the way it is or, in some cases, change the input to the simulator so that the output is what you expect. Note in the latter case, this is not like optimizing model parameters and does not represent a problem in the simulator. Instead, there are inputs to the simulator that are critical to performing a correct numerical integration of a system of ordinary differential equations such as the tolerances of the system. Tolerances are domain specific (i.e., specific to your model) and an automatic selection of them is not always possible.

Revision as of 11:36, 29 October 2015

The ProcessDB simulator is custom designed for the types of models typically seen in biological modeling. This custom design includes necessary features for biological modeling, such as discrete events, and increases the speed of performing a simulation by up to sixteen times. Our simulator is composed of three parts:

  • CVODE - a public domain, robust, and fast stiff ODE solver;
  • interpreter - our custom code for evaluating mathematical expressions, conditionals, and functions;
  • simulator core - our custom code that integrates CVODE and the interpreter, manages control flow, processes biological events, and outputs data for plotting or other use.

As an end user, mostly, you do not need to know about this simulator or think about it. However, there are some reasons you may want to be familiar with how it works. In particular, if the output is not as you expect then an understanding of what the simulator is doing may help you understand why the output is the way it is or, in some cases, change the input to the simulator so that the output is what you expect. Note in the latter case, this is not like optimizing model parameters and does not represent a problem in the simulator. Instead, there are inputs to the simulator that are critical to performing a correct numerical integration of a system of ordinary differential equations such as the tolerances of the system. Tolerances are domain specific (i.e., specific to your model) and an automatic selection of them is not always possible.

Negative Numbers

As stated in the CVODE FAQ, negative values may be present in a simulation for variables that cannot be negative in the physical world. This is normal as long as the magnitude of those values is comparable or less than the absolute tolerance.