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)