Perform dimensional analysis on model
The DimensionalAnalysis property specifies whether to perform dimensional analysis on the model before simulation. It is a property of the CompileOptions object. CompileOptions holds the model's compile time options and is the object property of the configset object. When DimensionalAnalysis is set to true, the SimBiology® software checks whether the physical quantities of the units involved in reactions and rules, match and are applicable.
For example, consider a reaction a + b —> c. Using mass action kinetics, the reaction rate is defined as a*b*k, where k is the rate constant of the reaction. If you specify that initial amounts of a and b are 0.01M and 0.005M respectively, then units of k are 1/(M*second). If you specify k with another equivalent unit definition, for example, 1/[(moles/liter)*second], DimensionalAnalysis checks whether the physical quantities match. If the physical quantities do not match, you see an error and the model is not simulated.
Unit conversion requires dimensional analysis. If DimensionalAnalysis is off, and you turn UnitConversion on, then DimensionalAnalysis is turned on automatically. If UnitConversion is on and you turn off DimensionalAnalysis, then UnitConversion is turned off automatically.
If you have MATLAB® function calls in your model, dimensional analysis ignores any expressions containing function calls and generates a warning.
Valid physical quantities for reaction rates are amount/time, mass/time, or concentration/time.
|Applies to||Object: CompileOptions (in configset object)|
true or false. Default value is true.
Note: SimBiology allows exponentiation of any dimensionless quantity to any dimensionless power. For example, you can write the following expression if both x and a are dimensionless: (x + 3)^(a + 0.5)
This example shows how to retrieve and set DimensionalAnalysis from the default true to false in the default configuration set in a model object.
Import a model.
modelObj = sbmlimport('oscillator')
SimBiology Model - Oscillator Model Components: Models: 0 Parameters: 0 Reactions: 42 Rules: 0 Species: 23
Retrieve the configset object of the model object.
configsetObj = getconfigset(modelObj) Configuration Settings - default (active) SolverType: ode15s StopTime: 10.000000 SolverOptions: AbsoluteTolerance: 1.000000e-006 RelativeTolerance: 1.000000e-003 RuntimeOptions: StatesToLog: all CompileOptions: UnitConversion: true DimensionalAnalysis: true
Retrieve the CompileOptions object.
optionsObj = get(configsetObj,'CompileOptions') Compile Settings: UnitConversion: true DimensionalAnalysis: true
Assign a value of false to DimensionalAnalysis.