From b1b0dd4fe982e975720b40afdfd6e53ad1807c2b Mon Sep 17 00:00:00 2001 From: Henrik Tidefelt Date: Wed, 31 Mar 2021 23:59:21 +0200 Subject: [PATCH] Clarify "unexpanded" expression of declaration equation --- chapters/classes.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chapters/classes.tex b/chapters/classes.tex index 852e259e8..2cf511f50 100644 --- a/chapters/classes.tex +++ b/chapters/classes.tex @@ -282,8 +282,9 @@ \subsubsection{Prefix Rules}\label{prefix-rules} \subsection{Acyclic Bindings of Constants and Parameters}\label{acyclic-bindings-of-constants-and-parameters} -For a constant or parameter \lstinline!v! with declaration equation, the unexpanded expression of the declaration equation in the flattended model must not depend on \lstinline!v! itself, neither directly nor indirectly via other variables' declaration equations. +For a constant or parameter \lstinline!v! with declaration equation, the expression of the declaration equation in the flattended model must not depend on \lstinline!v! itself, neither directly nor indirectly via other variables' declaration equations. To satisfy this condition, dependencies shall be removed as needed by applying simplifications based on values of constants (except with \lstinline!Evaluate = false!) and all other \willbedefined{structural parameters} (\cref{component-variability-prefixes-discrete-parameter-constant}) that don't depend on \lstinline!v!. +It is not permitted to expand a non-scalar declaration equation into scalar equations to satisfy the condition. That the value of a structural parameter is used for these simplifications does not mean that it has to be determined during translation, but if \lstinline!v! is found to be a structural parameter, then a Modelica tool will be able to break all cycles involving \lstinline!v! by making some (possibly none or all) of the other structural parameters determined during translation. Hence, evaluation of a constant or structural parameter can never require solving systems of equations; they can always be sorted so that they can be solved one at a time with the natural causality (i.e., the declaration equation is used to determine the value of the component to which it belongs).