Skip to content

Commit

Permalink
Fix adding dummy states in index reduction (#7625)
Browse files Browse the repository at this point in the history
- Change case in makeAllDummyVarandDummyDerivativeRepl1 to check for
  StateSelect.Prefer like the comment says.
  • Loading branch information
perost committed Jun 28, 2021
1 parent dc65eb9 commit 2adbd1a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
11 changes: 11 additions & 0 deletions OMCompiler/Compiler/BackEnd/BackendVariable.mo
Expand Up @@ -515,6 +515,17 @@ algorithm
end match;
end varStateSelectNever;

public function varStateSelectPrefer
"Returns true, if the state select attribute is DAE.PREFER()"
input BackendDAE.Var inVar;
output Boolean isPrefer;
algorithm
isPrefer := match(varStateSelect(inVar))
case DAE.PREFER() then true;
else false;
end match;
end varStateSelectPrefer;

public function setVarStateSelect "Sets the state select attribute of a variable."
input BackendDAE.Var inVar;
input DAE.StateSelect stateSelect;
Expand Down
2 changes: 1 addition & 1 deletion OMCompiler/Compiler/BackEnd/IndexReduction.mo
Expand Up @@ -3808,7 +3808,7 @@ algorithm
then (BackendDAE.VAR(name,BackendDAE.DUMMY_STATE(),dir,prl,tp,bind,tplExp,dim,source,attr,ts,hideResult,comment,ct,io,false),(vars,so,varlst,ht));
// regular variable with StateSelect.Prefer
case (var as BackendDAE.VAR(name,BackendDAE.VARIABLE(),dir,prl,tp,bind,tplExp,dim,source,attr,ts,hideResult,comment,ct,io),(vars,so,varlst,ht))
guard(BackendVariable.varStateSelectNever(var))
guard(BackendVariable.varStateSelectPrefer(var))
equation
// add replacement for each derivative
(varlst,ht) = makeAllDummyVarandDummyDerivativeRepl1(1,1,name,name,var,vars,so,varlst,ht);
Expand Down

0 comments on commit 2adbd1a

Please sign in to comment.