Skip to content

Commit 6ae5bb3

Browse files
committed
fix in Idas solver for event handling, added reinit before Idas call.
fix in cpp template in event iteration if discrete variable has changed. git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14012 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 991b036 commit 6ae5bb3

File tree

4 files changed

+540
-549
lines changed

4 files changed

+540
-549
lines changed

Compiler/Template/CodegenCpp.tpl

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3462,13 +3462,13 @@ case SIMCODE(modelInfo = MODELINFO(vars = vars as SIMVARS(__)))
34623462
34633463
<%{
34643464
(vars.algVars |> SIMVAR(__) =>
3465-
'_event_handling.save(<%cref(name)%>,"<%cref(name)%>");'
3465+
'_event_handling.saveDiscreteVar(<%cref(name)%>,"<%cref(name)%>");'
34663466
;separator="\n"),
34673467
(vars.intAlgVars |> SIMVAR(__) =>
3468-
'_event_handling.save(<%cref(name)%>,"<%cref(name)%>");'
3468+
'_event_handling.saveDiscreteVar(<%cref(name)%>,"<%cref(name)%>");'
34693469
;separator="\n"),
34703470
(vars.boolAlgVars |> SIMVAR(__) =>
3471-
'_event_handling.save(<%cref(name)%>,"<%cref(name)%>");'
3471+
'_event_handling.saveDiscreteVar(<%cref(name)%>,"<%cref(name)%>");'
34723472
;separator="\n")}
34733473
;separator="\n"%>
34743474
@@ -6330,8 +6330,6 @@ template handleSystemEvents2(Integer index1, Exp relation, Text &varDecls /*BUFP
63306330
if(events[<%zerocrossingIndex%>])
63316331
{
63326332
checkConditions(<%zerocrossingIndex%>,false);
6333-
_event_handling.addEvent(<%zerocrossingIndex%>);
6334-
handleEvent(<%zerocrossingIndex%>);
63356333
}
63366334
>>
63376335
end handleSystemEvents2;
@@ -6621,7 +6619,7 @@ template checkForDiscreteEvents(list<ComponentRef> discreteModelVars,SimCode sim
66216619
::=
66226620

66236621
let changediscreteVars = (discreteModelVars |> var => match var case CREF_QUAL(__) case CREF_IDENT(__) then
6624-
'if (_event_handling.change(<%cref(var)%>,"<%cref(var)%>")) { restart=true; }'
6622+
'if (_event_handling.changeDiscreteVar(<%cref(var)%>,"<%cref(var)%>")) { restart=true; }'
66256623
;separator="\n")
66266624
match simCode
66276625
case SIMCODE(modelInfo = MODELINFO(__)) then

0 commit comments

Comments
 (0)