finesse.model.Model.add_parameter¶
- Model.add_parameter(name, value, *, description=None, dtype=<class 'float'>, units='', is_geometric=False, changeable_during_simulation=True)[source]¶
Adds a new parameter to the Model. This can be used to add a custom parameter to the model that are not defined by elements themselves.
- Parameters
- namestr
Name of the parameter
- valuenumeric | symbolic
The initial value of the parameter, this can be a simple numeric value or some FINESSE symbolic
- desriptionstr, optional
A descritive text of what this parameter is
- dtypestr, optional
The datatype, typically float, int, bool
- unitsstr, optional
Units of the parameter for display purposes
- is_geometricbool, optional
Whether this parameter is being used to recompute what the ABCD state of the model is. This should only be true if this is directly used to set what the ABCD matrices are. If you are just using a reference of this for another geometric parameter this does not have to be True.
- changeable_during_simulationbool, optional
Whether this parameter is allowed to be changed during the simulation
- add_to_model_namespacebool, optional
Whether to add this to the main model namespace or not
Examples
Here we add some new parameters:
>>> import finesse >>> model = finesse.Model() >>> A = model.add_parameter('A', 1, units='W') >>> B = model.add_parameter('B', A.ref +1)
These act like normal element parameters, so references can be made to make symbolic equations and links between elements. These will be unparsed as variables in KatScript:
>>> print(model.unparse()) variable A value=1.0 units='W' variable B value=(A+1)