Skip to content

Commit e797d75

Browse files
committed
- remove helpVars from Backend (was used to handle when-conditions and sample-calls)
- revise event-system (c-runtime) - unfortunately break other runtimes (please contact me, if you need more detailed information) git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14982 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent b87a47c commit e797d75

File tree

22 files changed

+445
-1489
lines changed

22 files changed

+445
-1489
lines changed

Compiler/BackEnd/BackendQSS.mo

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ algorithm
9292
list<SimCode.SimEqSystem> eqs;
9393
list<list<Integer>> s;
9494
list<DAE.ComponentRef> states,disc,algs;
95-
list<SimCode.SampleCondition> sampleConditions;
9695
BackendDAE.EquationArray eqsdae;
9796
BackendDAE.Shared shared;
9897
list<BackendDAE.ZeroCrossing> zeroCrossings;
@@ -101,7 +100,7 @@ algorithm
101100
SimCode.SimCode sc;
102101
Integer offset;
103102

104-
case (dlow as BackendDAE.DAE({BackendDAE.EQSYSTEM(orderedEqs=eqsdae)},shared), sc as SimCode.SIMCODE(odeEquations={eqs},sampleConditions=sampleConditions,zeroCrossings=zeroCrossings))
103+
case (dlow as BackendDAE.DAE({BackendDAE.EQSYSTEM(orderedEqs=eqsdae)},shared), sc as SimCode.SIMCODE(odeEquations={eqs},zeroCrossings=zeroCrossings))
105104
equation
106105
print("\n ----------------------------\n");
107106
print("BackEndQSS analysis initialized");
@@ -110,7 +109,6 @@ algorithm
110109
stateVarsList = List.filterOnTrue(orderedVarsList,BackendVariable.isStateVar);
111110
discVarsLst = List.filterOnTrue(orderedVarsList,isDiscreteVar);
112111
disc = List.map(discVarsLst,BackendVariable.varCref);
113-
disc = listAppend(disc, createDummyVars(listLength(sampleConditions)));
114112
(eqsindex,zc_exps) = getEquationsWithDiscont(zeroCrossings);
115113
offset = listLength(disc);
116114
disc = listAppend(disc, newDiscreteVariables(getEquations(eqsdae,eqsindex),0));
@@ -730,56 +728,42 @@ algorithm
730728
end matchcontinue;
731729
end getInitExp;
732730

733-
function getStartTime
734-
input SimCode.SampleCondition cond;
735-
output String s;
736-
algorithm
737-
s:=
738-
match (cond)
739-
local
740-
DAE.Exp start;
741-
// lochel: first argument of sample becomes an unique index in BackendDAECreate
742-
case ((DAE.CALL(path=Absyn.IDENT(name="sample"), expLst=(_::start:: _)),_) )
743-
then ExpressionDump.printExpStr(replaceVars(start,{},{},{}));
744-
end match;
745-
end getStartTime;
746-
747731
public function generateDInit
748732
input list<DAE.ComponentRef> disc;
749-
input list<SimCode.SampleCondition> sample;
733+
//input list<SimCode.SampleCondition> sample;
750734
input SimCode.SimVars vars;
751735
input Integer acc;
752736
input Integer total;
753737
input Integer nWhenClause;
754738
output String out;
755739
algorithm
756-
out:=matchcontinue(disc,sample,vars,acc,total,nWhenClause)
740+
out:=matchcontinue(disc,vars,acc,total,nWhenClause)
757741
local
758742
list<DAE.ComponentRef> tail;
759743
DAE.ComponentRef cref;
760744
String s;
761745
list<SimCode.SimVar> intAlgVars;
762746
list<SimCode.SimVar> boolAlgVars;
763747
list<SimCode.SimVar> algVars;
764-
case ({},_,_,_,_,_) then "";
765-
case (cref::tail,_,_,_,_,_)
748+
case ({},_,_,_,_) then "";
749+
case (cref::tail,_,_,_,_)
766750
equation
767751
true = total - acc -1 < nWhenClause;
768752
s=stringAppend("","d[");
769753
s=stringAppend(s,intString(acc+1));
770754
s=stringAppend(s,"]:=");
771-
s=stringAppend(s,getStartTime(listNth(sample,total-acc-2)));
755+
//s=stringAppend(s,getStartTime(listNth({},total-acc-2)));
772756
s=stringAppend(s,";\n");
773-
then stringAppend(s,generateDInit(tail,sample,vars,acc+1,total,nWhenClause));
757+
then stringAppend(s,generateDInit(tail,vars,acc+1,total,nWhenClause));
774758

775-
case (cref::tail,_,SimCode.SIMVARS(intAlgVars=intAlgVars,boolAlgVars=boolAlgVars,algVars=algVars),_,_,_)
759+
case (cref::tail,SimCode.SIMVARS(intAlgVars=intAlgVars,boolAlgVars=boolAlgVars,algVars=algVars),_,_,_)
776760
equation
777761
s=stringAppend("","d[");
778762
s=stringAppend(s,intString(acc+1));
779763
s=stringAppend(s,"]:=");
780764
s=stringAppend(s,getInitExp(listAppend(algVars,listAppend(intAlgVars,boolAlgVars)),cref));
781765
s=stringAppend(s,"\n");
782-
then stringAppend(s,generateDInit(tail,sample,vars,acc+1,total,nWhenClause));
766+
then stringAppend(s,generateDInit(tail,vars,acc+1,total,nWhenClause));
783767

784768
end matchcontinue;
785769
end generateDInit;
@@ -1024,8 +1008,6 @@ algorithm
10241008
list<DAE.Constraint> constraints;
10251009
list<DAE.ClassAttributes> classAttributes;
10261010
list<BackendDAE.ZeroCrossing> zeroCrossings,relations;
1027-
list<SimCode.SampleCondition> sampleConditions;
1028-
list<SimCode.HelpVarInfo> helpVarInfo;
10291011
list<SimCode.SimWhenClause> whenClauses;
10301012
list<DAE.ComponentRef> discreteModelVars;
10311013
SimCode.ExtObjInfo extObjInfo;
@@ -1040,7 +1022,7 @@ algorithm
10401022
case (SimCode.SIMCODE(modelInfo,literals,recordDecls,externalFunctionIncludes,allEquations,odeEquations,
10411023
algebraicEquations,residualEquations,useSymbolicInitialization,initialEquations,startValueEquations,
10421024
parameterEquations,inlineEquations,removedEquations,algorithmAndEquationAsserts,stateSets,constraints,classAttributes,zeroCrossings,relations,
1043-
sampleLookup,sampleConditions,sampleEquations,helpVarInfo,whenClauses,discreteModelVars,extObjInfo,makefileParams,
1025+
sampleLookup,whenClauses,discreteModelVars,extObjInfo,makefileParams,
10441026
delayedExps,jacobianMatrixes,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT),_)
10451027
equation
10461028
{eqs} = odeEquations;
@@ -1049,8 +1031,8 @@ algorithm
10491031
allEquations, {eqs}, algebraicEquations, residualEquations, useSymbolicInitialization,
10501032
initialEquations, startValueEquations, parameterEquations, inlineEquations,
10511033
removedEquations, algorithmAndEquationAsserts, stateSets, constraints, classAttributes,
1052-
zeroCrossings, relations, sampleLookup, sampleConditions, sampleEquations,
1053-
helpVarInfo, whenClauses, discreteModelVars, extObjInfo,
1034+
zeroCrossings, relations, sampleLookup,
1035+
whenClauses, discreteModelVars, extObjInfo,
10541036
makefileParams, delayedExps, jacobianMatrixes,
10551037
simulationSettingsOpt, fileNamePrefix, crefToSimVarHT);
10561038

Compiler/BackEnd/ResidualCmp.mo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,14 @@ algorithm
181181
(daevars,_,allEquations,allInitEquations) = generateEquationscollectVars(elementLst,{},1,{},{});
182182
// generate variable definitions
183183
simvars = SimCode.SIMVARS({},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{});
184-
varinfo = SimCode.VARINFO(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,NONE(),NONE());
184+
varinfo = SimCode.VARINFO(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,NONE(),NONE());
185185

186186
modelInfo = SimCode.MODELINFO(inClassName,fileDir,varinfo,simvars,functions,{});
187187
extObjInfo = SimCode.EXTOBJINFO({},{});
188188
makefileParams = SimCode.MAKEFILE_PARAMS("","","","","","","","","",includeDirs,libs,"");
189189
delayexp = SimCode.DELAYED_EXPRESSIONS({},0);
190190
hashTable = SimCodeUtil.emptyHashTable();
191-
rescmp = SimCode.SIMCODE(modelInfo,{},recordDecls,externalFunctionIncludes,{},{},{},allEquations,false,allInitEquations,{},{},{},{},{},{},{},{},{},{},BackendDAE.SAMPLE_LOOKUP(0,{}),{},{},{},{},{},extObjInfo,makefileParams,delayexp,{},NONE(),filenamePrefix,hashTable);
191+
rescmp = SimCode.SIMCODE(modelInfo,{},recordDecls,externalFunctionIncludes,{},{},{},allEquations,false,allInitEquations,{},{},{},{},{},{},{},{},{},{},BackendDAE.SAMPLE_LOOKUP(0,{}),{},{},extObjInfo,makefileParams,delayexp,{},NONE(),filenamePrefix,hashTable);
192192
then
193193
rescmp;
194194
else

Compiler/BackEnd/SimCode.mo

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ public
6161
type ExtConstructor = tuple<DAE.ComponentRef, String, list<DAE.Exp>>;
6262
type ExtDestructor = tuple<String, DAE.ComponentRef>;
6363
type ExtAlias = tuple<DAE.ComponentRef, DAE.ComponentRef>;
64-
type HelpVarInfo = tuple<Integer, DAE.Exp, Integer>; // helpvarindex, expression, whenclause index
65-
type SampleCondition = tuple<DAE.Exp,Integer>; // helpvarindex, expression,
6664
type JacobianColumn = tuple<list<SimEqSystem>, list<SimVar>, String>; // column equations, column vars, column length
6765
type JacobianMatrix = tuple<list<JacobianColumn>, // column
6866
list<SimVar>, // seed vars
@@ -100,9 +98,6 @@ uniontype SimCode
10098
list<BackendDAE.ZeroCrossing> zeroCrossings;
10199
list<BackendDAE.ZeroCrossing> relations;
102100
BackendDAE.SampleLookup sampleLookup;
103-
list<SampleCondition> sampleConditions;
104-
list<SimEqSystem> sampleEquations;
105-
list<HelpVarInfo> helpVarInfo;
106101
list<SimWhenClause> whenClauses;
107102
list<DAE.ComponentRef> discreteModelVars;
108103
ExtObjInfo extObjInfo;
@@ -169,7 +164,6 @@ end FileInfo;
169164
// Number of variables of various types in a Modelica model.
170165
uniontype VarInfo
171166
record VARINFO
172-
Integer numHelpVars;
173167
Integer numZeroCrossings;
174168
Integer numTimeEvents;
175169
Integer numRelations;

0 commit comments

Comments
 (0)