Global variablesΒΆ

A simulation may use custom variables using the @variables keyword. We call these global variables to distinguish them from local phase variables.

Global variables can be useful if the same value occurs at several places in the script, and this value need to be changed. Then only one single change in the script is necessary. For example, if a script defines several @phase descriptions, and each has the same stop condition, this stop condition may include a global variable.

To set a global variable, use the @variables keyword:

@variables x=1, y=2

creates a variable x with value 1, and a variable y with value 2.

A variable name must be a valid name.

Variables can be used when setting values to parameters or other variables, for example:

@variables x = 10
n_subjects = 100 + x

It is possible to change the value of a variable (outside a @phase) by simply reassigning the new value:

@variables x = 10
n_subjects = 100 + x

x = 1
beta = x

The @variables keyword is only needed when initializing a global variable. You can change the value of a global variable after the @variables statement:

@variables x=1

Global variables can also be used in a phase block, but their value cannot be changed within a phase. Local phase variables can change values within a phase.

Note that the value of parameters do not work as variables: It is not possible to refer to a parameter to access its value, like it is possible with variables:

alpha_v = 0.5
alpha_w = alpha_v / 10  # Does not work
@variables alpha = 0.5
alpha_v = alpha
alpha_w = alpha / 10  # Works