Using Model Parameters
Understanding how to define and use model parameters
Custom named parameters can be defined at the level of an entire model. Those can be used in blocks by referring to them by name rather than using literals (like
21.0) when defining the value of a block parameter.
Each parameter must have a name that is a valid Python identifier. In short, this means
some_valueis accepted but
A namewill be rejected because of the space. Two parameters may not have the same name.
The value of a parameter will be evaluated following Python syntax. It is possible to use simple expressions in the value fields. The packages
np(numpy) are preloaded in the environment where parameters are evaluated.
Model parameters can be added via the
+button and removed via
Model parameters can not depend from each other and the order in which they will be evaluated is undefined. Please refer to the below section on
Initialization scriptfor an alternative.
Once defined at the model level, parameters can be referred to in the block parameter inputs fields.
It is not possible to use expressions in block parameter input fields.
The default value of a model parameter can be defined in the model editor, but it is often useful to run parameter sweeps over a model in order to find the optimal values for a given system. Parameters defined in the model editor can be overridden when running simulations from the notebook. This will not change the default values specified in the model editor.
As an alternative to the list of model parameters in the model editor, it is possible to write an initialization script in Python that computes various parameters and makes them available to the model compiler. This allows pre-computing various parameters with values that depend on each other and in a well defined order. To use an initialization script:
- write a standalone Python script file using your favorite code editor
- upload the file to the collimator project as a data file, its extension must be
- select the file in the model settings under "Initialization script"
- all the local and global variables defined in the script will be available from the block parameter input fields