Skip to content

Commit

Permalink
Added alias variables and removed equations to generated code
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14433 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
smiz committed Dec 17, 2012
1 parent 2775ed3 commit 71032ce
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions Compiler/Template/CodegenAdevs.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,12 @@ case MODELINFO(vars = vars as SIMVARS(__)) then
'int get_<%cref(name)%>() const { return <%cref(name)%>; }') ;separator="\n"%>
<%(vars.boolParamVars |> SIMVAR(__) =>
'bool get_<%cref(name)%>() const { return <%cref(name)%>; }') ;separator="\n"%>
<%(vars.aliasVars |> SIMVAR(__) =>
'double get_<%cref(name)%>() const { return <%cref(name)%>; }') ;separator="\n"%>
<%(vars.intAliasVars |> SIMVAR(__) =>
'int get_<%cref(name)%>() const { return <%cref(name)%>; }') ;separator="\n"%>
<%(vars.boolAliasVars |> SIMVAR(__) =>
'bool get_<%cref(name)%>() const { return <%cref(name)%>; }') ;separator="\n"%>
>>
end makeGetAccessors;

Expand Down Expand Up @@ -258,6 +264,9 @@ case SIMCODE(modelInfo = MODELINFO(vars = vars as SIMVARS(__))) then
<%(vars.paramVars |> SIMVAR(__) => 'double <%cref(name)%>;') ;separator="\n"%>
<%(vars.intParamVars |> SIMVAR(__) => 'int <%cref(name)%>;') ;separator="\n"%>
<%(vars.boolParamVars |> SIMVAR(__) => 'bool <%cref(name)%>;') ;separator="\n"%>
<%(vars.aliasVars |> SIMVAR(__) => 'double <%cref(name)%>, $P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.intAliasVars |> SIMVAR(__) => 'int <%cref(name)%>, $P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.boolAliasVars |> SIMVAR(__) => 'bool <%cref(name)%>, $P$old<%cref(name)%>;') ;separator="\n"%>
>>
end makeMemberVariables;

Expand Down Expand Up @@ -627,6 +636,9 @@ case SIMCODE(modelInfo = MODELINFO(vars = vars as SIMVARS(__))) then
<%(vars.algVars |> SIMVAR(__) => '$P$old<%cref(name)%>=<%cref(name)%>;') ;separator="\n"%>
<%(vars.intAlgVars |> SIMVAR(__) => '$P$old<%cref(name)%>=<%cref(name)%>;') ;separator="\n"%>
<%(vars.boolAlgVars |> SIMVAR(__) => '$P$old<%cref(name)%>=<%cref(name)%>;') ;separator="\n"%>
<%(vars.aliasVars |> SIMVAR(__) => '$P$old<%cref(name)%>=<%cref(name)%>;') ;separator="\n"%>
<%(vars.intAliasVars |> SIMVAR(__) => '$P$old<%cref(name)%>=<%cref(name)%>;') ;separator="\n"%>
<%(vars.boolAliasVars |> SIMVAR(__) => '$P$old<%cref(name)%>=<%cref(name)%>;') ;separator="\n"%>
<%makeSaveDelays(delayedExps)%>
}
>>
Expand Down Expand Up @@ -668,6 +680,9 @@ case MODELINFO(vars = SIMVARS(__)) then
<%(vars.algVars |> SIMVAR(__) => '<%cref(name)%>=$P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.intAlgVars |> SIMVAR(__) => '<%cref(name)%>=$P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.boolAlgVars |> SIMVAR(__) => '<%cref(name)%>=$P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.aliasVars |> SIMVAR(__) => '<%cref(name)%>=$P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.intAliasVars |> SIMVAR(__) => '<%cref(name)%>=$P$old<%cref(name)%>;') ;separator="\n"%>
<%(vars.boolAliasVars |> SIMVAR(__) => '<%cref(name)%>=$P$old<%cref(name)%>;') ;separator="\n"%>
}
>>
end makeRestoreMemberVariables;
Expand Down Expand Up @@ -802,7 +817,7 @@ case SIMCODE(modelInfo = MODELINFO(vars = vars as SIMVARS(__))) then
<%(vars.stateVars |> SIMVAR(__) => '<%cref(name)%>=q[<%index%>];') ;separator="\n"%>
}
// Calculate the odes
<%allEqns(allEquations,whenClauses)%>
<%allEqns(allEquations,whenClauses,removedEquations)%>
if (atEvent && !reInit) reInit = check_for_new_events();
if (reInit)
{
Expand All @@ -813,18 +828,22 @@ case SIMCODE(modelInfo = MODELINFO(vars = vars as SIMVARS(__))) then
>>
end makeDerFuncCalculator;

template allEqns(list<SimEqSystem> allEquationsPlusWhen, list<SimWhenClause> whenClauses)
template allEqns(list<SimEqSystem> allEquationsPlusWhen, list<SimWhenClause> whenClauses, list<SimEqSystem> removedEqns)
::=
let &varDecls = buffer "" /*BUFD*/
let eqs = (allEquationsPlusWhen |> eq =>
equation_(eq, contextSimulationDiscrete, &varDecls /*BUFD*/)
;separator="\n")
let aliasEqs = (removedEqns |> eq =>
equation_(eq, contextSimulationDiscrete, &varDecls /*BUFD*/)
;separator="\n")
let reinit = (whenClauses |> when hasindex i0 =>
genreinits(when, &varDecls,i0)
;separator="\n")
<<
<%varDecls%>
<%eqs%>
<%aliasEqs%>
<%reinit%>
>>
end allEqns;
Expand Down

0 comments on commit 71032ce

Please sign in to comment.