Advanced Modelica language topics > The Modelica compiler
Determination of parameter values and performance optimization
Model parameters can be classified into three categories:
Structural parameters
for which values must be determined during the compilation of Modelica code to determine static properties of a model, e.g. array dimensions, number of variables, etc.
Free parameters
which are fixed (i.e., their fixed1 attributes are "true") and not structural and whose values are given by literal expressions.
Dependent parameters
which do not fit into one of the two preceding categories (i.e. non-structural and not free).
Structural and dependent parameters are always evaluated during compilation. It follows that the user cannot modify them in an imported Simcenter Amesim submodel, and changes must be done in the original Modelica source code.
By default, the values of all free model parameters can be modified in an imported Simcenter Amesim submodel. Hence, the values of these parameters are unknown during the optimization phase, when the flattened form is being translated to C. That behavior is often very convenient because models can be quickly parameterized without recompilation. However, the default behavior sometimes results in poor optimization: the optimized model contains equations that could have been removed if the values of some parameters had been known at optimization time. To remedy that inconvenience, it is possible to evaluate all parameters by selecting the compiler option Evaluate parameters evaluate parameters (see the figure Figure 34).
1
For constants and parameters, the attribute
fixed
is true by default. For other variables,
fixed
is false by default (Modelica Language Specification section 8.6).
Source: https://docs.sw.siemens.com/en-US/doc/254352342/PL20250521841123434.amesim_collection.Modelica_Platform/Determination_of_parameter_values_and_performance_optimization · retrieved 2026-07-17