Skip to content

Commit

Permalink
Adjust generation of start-value equations
Browse files Browse the repository at this point in the history
  • Loading branch information
lochel authored and OpenModelica-Hudson committed Mar 31, 2017
1 parent 280c5ba commit 74f4678
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 12 deletions.
6 changes: 3 additions & 3 deletions Compiler/SimCode/SimCodeUtil.mo
Expand Up @@ -6515,7 +6515,7 @@ algorithm
BackendDAE.Var var;
BackendDAE.Equation initialEquation;
list<BackendDAE.Equation> eqns;
DAE.ComponentRef name;
DAE.ComponentRef cref;
DAE.Exp startExp;
DAE.ElementSource source;
BackendDAE.Variables av;
Expand All @@ -6526,14 +6526,14 @@ algorithm
// expressions, e.g. parameter values, as start. NOTE: such start
// attributes can then not be changed in the text file, since the initial
// calc. will override those entries!
case (var as BackendDAE.VAR(varName=name, source=source), (eqns, av, allPrimaryParameters))
case (var as BackendDAE.VAR(varName=cref, source=source), (eqns, av, allPrimaryParameters))
equation
startExp = BackendVariable.varStartValueFail(var);
parameters = Expression.getAllCrefs(startExp);
true = BackendVariable.areAllCrefsInVarList(parameters, allPrimaryParameters) "add equations if the start value depends only on primary parameters";
false = Expression.isConst(startExp) "don't add equations for constant start values";
SimCodeVar.NOALIAS() = getAliasVar(var, SOME(av));
initialEquation = BackendDAE.SOLVED_EQUATION(name, startExp, source, BackendDAE.EQ_ATTR_DEFAULT_UNKNOWN);
initialEquation = BackendDAE.SOLVED_EQUATION(ComponentReference.crefPrefixStart(cref), startExp, source, BackendDAE.EQ_ATTR_DEFAULT_INITIAL);
then (var, (initialEquation :: eqns, av, allPrimaryParameters));

else (inVar,inTpl);
Expand Down
10 changes: 1 addition & 9 deletions Compiler/Template/CodegenC.tpl
Expand Up @@ -2981,16 +2981,8 @@ template functionUpdateBoundVariableAttributes(SimCode simCode, list<SimEqSystem
if (ACTIVE_STREAM(LOG_INIT)) messageClose(LOG_INIT);
/* start ****************************************************** */
infoStreamPrint(LOG_INIT, 1, "updating primary start-values");
<%(startValueEquations |> eq as SES_SIMPLE_ASSIGN(__) => equation_call(eq, modelNamePrefix) ; separator="\n")%>
infoStreamPrint(LOG_INIT, 1, "updating start-values");
<%startValueEquations |> SES_SIMPLE_ASSIGN(__) =>
<<
<%crefAttributes(cref)%>.start = <%cref(cref)%>;
infoStreamPrint(LOG_INIT, 0, "%s(start=<%crefToPrintfArg(cref)%>)", <%crefVarInfo(cref)%>.name, (<%crefType(cref)%>) <%crefAttributes(cref)%>.start);
>>
;separator="\n"
%>
if (ACTIVE_STREAM(LOG_INIT)) messageClose(LOG_INIT);
TRACE_POP
Expand Down

0 comments on commit 74f4678

Please sign in to comment.