@@ -1829,7 +1829,7 @@ algorithm
18291829 list<SimCode.SimEqSystem> algorithmAndEquationAsserts;
18301830 //list<DAE.Statement> algorithmAndEquationAsserts;
18311831 list<DAE.Constraint> constraints;
1832- list<BackendDAE.ZeroCrossing> zeroCrossings, sampleZC;
1832+ list<BackendDAE.ZeroCrossing> zeroCrossings, sampleZC, relations ;
18331833 list<SimCode.SimWhenClause> whenClauses;
18341834 list<SimCode.SampleCondition> sampleConditions;
18351835 list<BackendDAE.Equation> sampleEqns;
@@ -1872,7 +1872,8 @@ algorithm
18721872 extObjInfo = createExtObjInfo(shared);
18731873
18741874 whenClauses = createSimWhenClauses(dlow2, helpVarInfo);
1875- zeroCrossings = getZeroCrossings(dlow2, ifcpp);
1875+ zeroCrossings = Util.if_(ifcpp,getRelations(dlow2),getZeroCrossings(dlow2));
1876+ relations = getRelations(dlow2);
18761877 sampleZC = getSamples(dlow2);
18771878 zeroCrossings = Util.if_(ifcpp,listAppend(zeroCrossings,sampleZC),zeroCrossings);
18781879 (sampleConditions, helpVarInfo) = prepareSampleConditions(sampleZC,helpVarInfo,{});
@@ -1952,6 +1953,7 @@ algorithm
19521953 algorithmAndEquationAsserts,
19531954 constraints,
19541955 zeroCrossings,
1956+ relations,
19551957 sampleConditions,
19561958 sampleEquations,
19571959 helpVarInfo,
@@ -2202,7 +2204,7 @@ algorithm
22022204 list<SimCode.SimEqSystem> allEquations,algebraicEquations,residualEquations,startValueEquations,parameterEquations,removedEquations,sampleEquations,algorithmAndEquationAsserts;
22032205 list<SimCode.SimEqSystem> initialEquations;
22042206 list<DAE.Constraint> constraints;
2205- list<BackendDAE.ZeroCrossing> zeroCrossings;
2207+ list<BackendDAE.ZeroCrossing> zeroCrossings, relations ;
22062208 list<SimCode.SampleCondition> sampleConditions;
22072209 list<SimCode.HelpVarInfo> helpVarInfo;
22082210 list<SimCode.SimWhenClause> whenClauses;
@@ -2221,11 +2223,11 @@ algorithm
22212223 list<SimCode.Function> functions;
22222224
22232225 case (SimCode.SIMCODE(modelInfo,literals,recordDecls,externalFunctionIncludes,allEquations,odeEquations,algebraicEquations,residualEquations,initialEquations,startValueEquations,
2224- parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,sampleConditions,sampleEquations,helpVarInfo,whenClauses,
2226+ parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,relations, sampleConditions,sampleEquations,helpVarInfo,whenClauses,
22252227 discreteModelVars,extObjInfo,makefileParams,delayedExps,_,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT),inJacobians)
22262228 then
22272229 SimCode.SIMCODE(modelInfo,literals,recordDecls,externalFunctionIncludes,allEquations,odeEquations,algebraicEquations,residualEquations,initialEquations,startValueEquations,
2228- parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,sampleConditions,sampleEquations,helpVarInfo,whenClauses,
2230+ parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,relations, sampleConditions,sampleEquations,helpVarInfo,whenClauses,
22292231 discreteModelVars,extObjInfo,makefileParams,delayedExps,inJacobians,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT);
22302232
22312233 end match;
@@ -6916,26 +6918,39 @@ end traverseSampleAndReplacewithH;
69166918
69176919protected function getZeroCrossings
69186920 input BackendDAE.BackendDAE dlow;
6919- input Boolean inifcpp;
69206921 output list<BackendDAE.ZeroCrossing> zc;
69216922algorithm
6922- zc := matchcontinue (dlow, inifcpp )
6923+ zc := matchcontinue (dlow)
69236924
6924- case (BackendDAE.DAE(shared=BackendDAE.SHARED(eventInfo=BackendDAE.EVENT_INFO(zeroCrossingLst=zc))),false )
6925+ case (BackendDAE.DAE(shared=BackendDAE.SHARED(eventInfo=BackendDAE.EVENT_INFO(zeroCrossingLst=zc))))
69256926 then
69266927 zc;
6928+
6929+ case (_)
6930+ equation
6931+ Error.addMessage(Error.INTERNAL_ERROR, {"getZeroCrossings failed"});
6932+ then
6933+ fail();
6934+ end matchcontinue;
6935+ end getZeroCrossings;
69276936
6928- case (BackendDAE.DAE(shared=BackendDAE.SHARED(eventInfo=BackendDAE.EVENT_INFO(relationsLst=zc))),true)
6937+ protected function getRelations
6938+ input BackendDAE.BackendDAE dlow;
6939+ output list<BackendDAE.ZeroCrossing> zc;
6940+ algorithm
6941+ zc := matchcontinue (dlow)
6942+
6943+ case (BackendDAE.DAE(shared=BackendDAE.SHARED(eventInfo=BackendDAE.EVENT_INFO(relationsLst=zc))))
69296944 then
69306945 zc;
69316946
6932- case (_,_ )
6947+ case (_)
69336948 equation
69346949 Error.addMessage(Error.INTERNAL_ERROR, {"getZeroCrossings failed"});
69356950 then
69366951 fail();
69376952 end matchcontinue;
6938- end getZeroCrossings ;
6953+ end getRelations ;
69396954
69406955protected function getSamples
69416956 input BackendDAE.BackendDAE dlow;
@@ -12564,7 +12579,7 @@ algorithm
1256412579 list<SimCode.SimEqSystem> allEquations,algebraicEquations,residualEquations,startValueEquations,parameterEquations,removedEquations,sampleEquations,algorithmAndEquationAsserts;
1256512580 list<SimCode.SimEqSystem> initialEquations;
1256612581 list<DAE.Constraint> constraints;
12567- list<BackendDAE.ZeroCrossing> zeroCrossings;
12582+ list<BackendDAE.ZeroCrossing> zeroCrossings, relations ;
1256812583 list<SimCode.SampleCondition> sampleConditions;
1256912584 list<SimCode.HelpVarInfo> helpVarInfo;
1257012585 list<SimCode.SimWhenClause> whenClauses;
@@ -12591,7 +12606,7 @@ algorithm
1259112606 inSimCode;
1259212607
1259312608 case SimCode.SIMCODE(modelInfo,literals,recordDecls,externalFunctionIncludes,allEquations,odeEquations,algebraicEquations,residualEquations,initialEquations,startValueEquations,
12594- parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,sampleConditions,sampleEquations,helpVarInfo,whenClauses,
12609+ parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,relations, sampleConditions,sampleEquations,helpVarInfo,whenClauses,
1259512610 discreteModelVars,extObjInfo,makefileParams,delayedExps,jacobianMatrixes,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT)
1259612611 equation
1259712612 SimCode.MODELINFO(name, directory, varInfo, vars, functions, labels) = modelInfo;
@@ -12607,7 +12622,7 @@ algorithm
1260712622 modelInfo = SimCode.MODELINFO(name, directory, varInfo, vars, functions, labels);
1260812623 then
1260912624 SimCode.SIMCODE(modelInfo,literals,recordDecls,externalFunctionIncludes,allEquations,odeEquations,algebraicEquations,residualEquations,initialEquations,startValueEquations,
12610- parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,sampleConditions,sampleEquations,helpVarInfo,whenClauses,
12625+ parameterEquations,removedEquations,algorithmAndEquationAsserts,constraints,zeroCrossings,relations, sampleConditions,sampleEquations,helpVarInfo,whenClauses,
1261112626 discreteModelVars,extObjInfo,makefileParams,delayedExps,jacobianMatrixes,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT);
1261212627
1261312628 case inSimCode
@@ -12878,7 +12893,7 @@ algorithm
1287812893 list<SimCode.SimEqSystem> removedEquations;
1287912894 list<SimCode.SimEqSystem> algorithmAndEquationAsserts;
1288012895 list<DAE.Constraint> constraints;
12881- list<BackendDAE.ZeroCrossing> zeroCrossings;
12896+ list<BackendDAE.ZeroCrossing> zeroCrossings, relations ;
1288212897 list<SimCode.SampleCondition> sampleConditions;
1288312898 list<SimCode.SimEqSystem> sampleEquations;
1288412899 list<SimCode.HelpVarInfo> helpVarInfo;
@@ -12894,7 +12909,14 @@ algorithm
1289412909 SimCode.HashTableCrefToSimVar crefToSimVarHT "hidden from typeview - used by cref2simvar() for cref -> SIMVAR lookup available in templates.";
1289512910 A a;
1289612911
12897- case (SimCode.SIMCODE(modelInfo, literals, recordDecls, externalFunctionIncludes, allEquations, odeEquations, algebraicEquations, residualEquations, initialEquations, startValueEquations, parameterEquations, removedEquations, algorithmAndEquationAsserts, constraints, zeroCrossings, sampleConditions, sampleEquations, helpVarInfo, whenClauses, discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT),_,a)
12912+ case (SimCode.SIMCODE(modelInfo, literals, recordDecls, externalFunctionIncludes,
12913+ allEquations, odeEquations, algebraicEquations, residualEquations,
12914+ initialEquations, startValueEquations, parameterEquations,
12915+ removedEquations, algorithmAndEquationAsserts, constraints,
12916+ zeroCrossings, relations, sampleConditions, sampleEquations,
12917+ helpVarInfo, whenClauses, discreteModelVars, extObjInfo,
12918+ makefileParams, delayedExps, jacobianMatrixes,
12919+ simulationSettingsOpt, fileNamePrefix, crefToSimVarHT),_,a)
1289812920 equation
1289912921 (literals,a) = List.mapFoldTuple(literals,func,a);
1290012922 (allEquations,a) = traverseExpsEqSystems(allEquations,func,a,{});
@@ -12914,7 +12936,14 @@ algorithm
1291412936 /* TODO:extObjInfo */
1291512937 /* TODO:delayedExps */
1291612938 /* TODO:jacobianMatrixes */
12917- then (SimCode.SIMCODE(modelInfo, literals, recordDecls, externalFunctionIncludes, allEquations, odeEquations, algebraicEquations, residualEquations, initialEquations, startValueEquations, parameterEquations, removedEquations, algorithmAndEquationAsserts, constraints, zeroCrossings, sampleConditions, sampleEquations, helpVarInfo, whenClauses, discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT),a);
12939+ then (SimCode.SIMCODE(modelInfo, literals, recordDecls, externalFunctionIncludes,
12940+ allEquations, odeEquations, algebraicEquations, residualEquations,
12941+ initialEquations, startValueEquations, parameterEquations,
12942+ removedEquations, algorithmAndEquationAsserts, constraints,
12943+ zeroCrossings, relations, sampleConditions, sampleEquations,
12944+ helpVarInfo, whenClauses, discreteModelVars, extObjInfo,
12945+ makefileParams, delayedExps, jacobianMatrixes,
12946+ simulationSettingsOpt, fileNamePrefix, crefToSimVarHT),a);
1291812947 end match;
1291912948end traverseExpsSimCode;
1292012949
@@ -13058,7 +13087,7 @@ algorithm
1305813087 list<SimCode.SimEqSystem> removedEquations;
1305913088 list<SimCode.SimEqSystem> algorithmAndEquationAsserts;
1306013089 list<DAE.Constraint> constraints;
13061- list<BackendDAE.ZeroCrossing> zeroCrossings;
13090+ list<BackendDAE.ZeroCrossing> zeroCrossings, relations ;
1306213091 list<SimCode.SampleCondition> sampleConditions;
1306313092 list<SimCode.SimEqSystem> sampleEquations;
1306413093 list<SimCode.HelpVarInfo> helpVarInfo;
@@ -13073,8 +13102,22 @@ algorithm
1307313102 //*** a protected section *** not exported to SimCodeTV
1307413103 SimCode.HashTableCrefToSimVar crefToSimVarHT "hidden from typeview - used by cref2simvar() for cref -> SIMVAR lookup available in templates.";
1307513104
13076- case (SimCode.SIMCODE(modelInfo, _, recordDecls, externalFunctionIncludes, allEquations, odeEquations, algebraicEquations, residualEquations, initialEquations, startValueEquations, parameterEquations, removedEquations, algorithmAndEquationAsserts, constraints, zeroCrossings, sampleConditions, sampleEquations, helpVarInfo, whenClauses, discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT),_)
13077- then SimCode.SIMCODE(modelInfo, literals, recordDecls, externalFunctionIncludes, allEquations, odeEquations, algebraicEquations, residualEquations, initialEquations, startValueEquations, parameterEquations, removedEquations, algorithmAndEquationAsserts, constraints, zeroCrossings, sampleConditions, sampleEquations, helpVarInfo, whenClauses, discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT);
13105+ case (SimCode.SIMCODE(modelInfo, _, recordDecls, externalFunctionIncludes,
13106+ allEquations, odeEquations, algebraicEquations, residualEquations,
13107+ initialEquations, startValueEquations, parameterEquations,
13108+ removedEquations, algorithmAndEquationAsserts, constraints,
13109+ zeroCrossings, relations, sampleConditions, sampleEquations,
13110+ helpVarInfo, whenClauses, discreteModelVars, extObjInfo,
13111+ makefileParams, delayedExps, jacobianMatrixes,
13112+ simulationSettingsOpt, fileNamePrefix, crefToSimVarHT),_)
13113+ then SimCode.SIMCODE(modelInfo, literals, recordDecls, externalFunctionIncludes,
13114+ allEquations, odeEquations, algebraicEquations, residualEquations,
13115+ initialEquations, startValueEquations, parameterEquations,
13116+ removedEquations, algorithmAndEquationAsserts, constraints,
13117+ zeroCrossings, relations, sampleConditions, sampleEquations,
13118+ helpVarInfo, whenClauses, discreteModelVars, extObjInfo,
13119+ makefileParams, delayedExps, jacobianMatrixes,
13120+ simulationSettingsOpt, fileNamePrefix, crefToSimVarHT);
1307813121 end match;
1307913122end setSimCodeLiterals;
1308013123
0 commit comments