Skip to content

Commit

Permalink
Introduce VarKind SEED_VAR for SimVars
Browse files Browse the repository at this point in the history
Distinguish seed vars from STATE_DER during Cpp code generation
without attempting to guess from the context. This partly reverts 7186674.
See: PowerSystems.Examples.Spot.AC1ph_DC.Line
  • Loading branch information
rfranke committed Apr 3, 2016
1 parent aea896c commit 948feba
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
1 change: 1 addition & 0 deletions Compiler/BackEnd/BackendDAE.mo
Expand Up @@ -252,6 +252,7 @@ uniontype VarKind "variable kind"
record EXTOBJ Absyn.Path fullClassName; end EXTOBJ;
record JAC_VAR end JAC_VAR;
record JAC_DIFF_VAR end JAC_DIFF_VAR;
record SEED_VAR end SEED_VAR;
record OPT_CONSTR end OPT_CONSTR;
record OPT_FCONSTR end OPT_FCONSTR;
record OPT_INPUT_WITH_DER end OPT_INPUT_WITH_DER;
Expand Down
10 changes: 9 additions & 1 deletion Compiler/SimCode/SimCodeUtil.mo
Expand Up @@ -4180,10 +4180,18 @@ protected
algorithm
for m in inJacobianMatrices loop
(_, seedVars, _, _, _, _, _) := m;
outVars := listAppend(outVars, seedVars);
outVars := listAppend(seedVars, outVars);
end for;
outVars := List.map1(outVars, setSimVarKind, BackendDAE.SEED_VAR());
end collectAllSeedVars;

protected function setSimVarKind
input output SimCodeVar.SimVar simVar;
input BackendDAE.VarKind varKind;
algorithm
simVar.varKind := varKind;
end setSimVarKind;

protected function sortSparsePattern
input list<SimCodeVar.SimVar> inSimVars;
input list<tuple<DAE.ComponentRef, list<DAE.ComponentRef>>> inSparsePattern;
Expand Down
4 changes: 2 additions & 2 deletions Compiler/Template/CodegenCppCommon.tpl
Expand Up @@ -466,11 +466,11 @@ template daeExpCrefRhsArrayBox(ComponentRef cr, DAE.Type ty, Context context, Te
cref2simvar(cr, simCode) |> var as SIMVAR(index=i) =>
match varKind
case STATE(__) then
let statvar = representationCref1(cr, var, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, context, useFlatArrayNotation)
let statvar = '__z[<%i%>]'
let tmpArr = daeExpCrefRhsArrayBox2(statvar, ty, context, preExp, varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace)
tmpArr
case STATE_DER(__) then
let statvar = representationCref2(cr, var, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName)
let statvar = '__zDot[<%i%>]'
let tmpArr = daeExpCrefRhsArrayBox2(statvar, ty, context, preExp, varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace)
tmpArr
else
Expand Down

0 comments on commit 948feba

Please sign in to comment.