Parameters
Like InitialConditions, the Parameters field of scotch model JSON files is a dictionary. Each key is the name of a parameter, as a string. Each value is a string expression for the value of that
parameter.
"Parameters" : {
"alpha" : "1/10",
"beta" : "1 + sin(2 * pi * time)"
}
Values are required to be strings because parameter values are parsed into expressions that can be evaluated as lambdas. This allows a number of functions to be used :
sin,sinh,arcsin,arcsinhcos,cosh,arccos,arccoshtan,tanh,arctan,arctanhexp,expm1( exp(x) - 1 )log,log10,log2,log1p( log(1+x) )ceil,floor,abssincsquare,sqrtsign( returns +1 or -1 )time
A number of reserved keywords also allow access to constants and to the explicit value of time :
pitime( allows time-dependent parameter rates to be used )
As an example, sin(2 * pi * sqrt(F) * time) is a legal part of a parameter value, if you have declared F as a state variable; this particular example allows parameters to vary sinusoidally in time.
The time keyword is replaced by the numerical value of time during simulation. Parameters can therefore be state-dependent and time-dependent; they cannot, however, be written in terms of other parameters.
All numerical values are cast as floats, so expressions like 1/10 will be evaluated as 0.1.
Allowed operators are :
+-*/**(,)
Currently, custom functions that cannot be written with this syntax will not evaluate.