Skip to content

Commit c8d9c43

Browse files
author
Jens Frenkel
committed
- use flag for debug print in reduceIndexDummyDerX to run testsuite
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@9246 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent e44740f commit c8d9c43

File tree

2 files changed

+57
-40
lines changed

2 files changed

+57
-40
lines changed

Compiler/BackEnd/BackendDAETransform.mo

Lines changed: 47 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1866,22 +1866,26 @@ algorithm
18661866
list<tuple<DAE.ComponentRef,Integer>> states;
18671867
BackendDAE.Assignments ass1,ass2;
18681868
array<BackendDAE.Value> vec1,vec2;
1869+
String smeqs;
18691870

18701871
case (BackendDAE.REDUCE_INDEX(),dae,m,mt,inFunctions,ass1,ass2,derivedAlgs,derivedMultiEqn,(so,orgEqnsLst))
18711872
equation
18721873
eqns = BackendDAEEXT.getMarkedEqns();
18731874
diff_eqns = BackendDAEEXT.getDifferentiatedEqns();
18741875
eqns_1 = Util.listSetDifferenceOnTrue(eqns, diff_eqns, intEq);
1875-
print("marked equations:");print(Util.stringDelimitList(Util.listMap(eqns_1,intString),","));
1876-
print("\n");
1877-
print(BackendDump.dumpMarkedEqns(dae, eqns));
1878-
1876+
Debug.fcall("bltdump", print, "Reduce Index\n");
1877+
Debug.fcall("bltdump", print, "marked equations: ");
1878+
Debug.fcall("bltdump", BackendDump.debuglst, (eqns_1,intString));
1879+
Debug.fcall("bltdump", print, "\n");
1880+
smeqs = BackendDump.dumpMarkedEqns(dae, eqns);
1881+
Debug.fcall("bltdump", print, smeqs);
18791882
(dae,deqns,derivedAlgs1,derivedMultiEqn1,orgEqns,so1) = differentiateEqnsX(dae,eqns_1,inFunctions,derivedAlgs,derivedMultiEqn,so);
18801883
//dae = replaceStateOrder(deqns,dae,so1);
1881-
print("Update Incidence Matrix: "); BackendDump.debuglst((deqns,intString)); print("\n");
1884+
Debug.fcall("bltdump", print, "Update Incidence Matrix: ");
1885+
Debug.fcall("bltdump", BackendDump.debuglst,(deqns,intString));
1886+
Debug.fcall("bltdump", print, "\n");
18821887
(m,mt) = BackendDAEUtil.updateIncidenceMatrix(dae, m, mt, deqns);
1883-
print("new DAE:");
1884-
BackendDump.dump(dae);
1888+
Debug.fcall("bltdump", BackendDump.dump, dae);
18851889
then
18861890
(dae,m,mt,ass1,ass2,derivedAlgs1,derivedMultiEqn1,(so1,orgEqns::orgEqnsLst));
18871891

@@ -1892,22 +1896,18 @@ algorithm
18921896
equation
18931897
vec1 = assignmentsVector(ass1);
18941898
vec2 = assignmentsVector(ass2);
1895-
BackendDump.dumpMatching(vec1);
1896-
BackendDump.dumpMatching(vec2);
1899+
Debug.fcall("bltdump", print, "Reduce Index Endstep\n");
1900+
Debug.fcall("bltdump", BackendDump.dumpMatching, vec1);
1901+
Debug.fcall("bltdump", BackendDump.dumpMatching, vec2);
18971902
(orgEqnsLst1,ae1,al1,wclst1) = replaceStateOrderOrgEqns(orgEqnsLst,ae,al,wclst,so);
1898-
dumpEqnsX(orgEqnsLst);
1899-
dumpStateOrder(so);
1903+
Debug.fcall("bltdump", dumpEqnsX, orgEqnsLst);
1904+
Debug.fcall("bltdump", dumpStateOrder, so);
19001905
states = statesCandidates(dae,so);
19011906
(dae,m,mt,states,ass1,ass2) = selectDummyStates(orgEqnsLst1,so,dae,m,mt,states,ass1,ass2);
1902-
print("new DAE:");
1903-
BackendDump.dump(dae);
1904-
BackendDump.dumpIncidenceMatrix(m);
1905-
BackendDump.dumpIncidenceMatrixT(mt);
19061907
vec1 = assignmentsVector(ass1);
19071908
vec2 = assignmentsVector(ass2);
1908-
BackendDump.dumpMatching(vec1);
1909-
BackendDump.dumpMatching(vec2);
1910-
then (dae,m,mt,ass1,ass2,derivedAlgs,derivedMultiEqn,(so,orgEqnsLst));
1909+
Debug.fcall("bltdump", BackendDump.bltdump, ("new DAE:",dae,m,mt,vec1,vec2,{}));
1910+
then (dae,m,mt,ass1,ass2,derivedAlgs,derivedMultiEqn,(so,orgEqnsLst));
19111911

19121912
case (BackendDAE.REDUCE_INDEX(),dae,m,mt,_,_,_,_,_,_)
19131913
equation
@@ -1928,7 +1928,7 @@ algorithm
19281928
then
19291929
fail();
19301930

1931-
case (_,_,_,_,_,_,_,_,_,_)
1931+
else
19321932
equation
19331933
Error.addMessage(Error.INTERNAL_ERROR, {"- BackendDAETransform.reduceIndexDummyDerX failed!"});
19341934
then
@@ -2026,15 +2026,15 @@ algorithm
20262026
Integer leneqns;
20272027
case (false,inEquationArray,inInteger,inEquation)
20282028
equation
2029-
print("Replace Eqn with diffeqn "); print(intString(inInteger)); print("\n");
2029+
Debug.fcall("bltdump", BackendDump.debugStrIntStr, (("Replace Eqn with diffeqn "),inInteger,"\n"));
20302030
eqns = BackendEquation.equationSetnth(inEquationArray,inInteger-1,inEquation);
20312031
then
20322032
(inInteger,eqns);
20332033
case (true,inEquationArray,inInteger,inEquation)
20342034
equation
20352035
eqns = BackendEquation.equationAdd(inEquation,inEquationArray);
20362036
leneqns = BackendDAEUtil.equationSize(eqns);
2037-
print("Add diffEqn "); print(intString(leneqns)); print(" old eqn"); print(intString(inInteger)); print("\n");
2037+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, (("Add diffEqn "),leneqns," old eqn",inInteger,"\n"));
20382038
BackendDAEEXT.markDifferentiated(inInteger) "length gives index of new equation Mark equation as differentiated so it won\'t be differentiated again" ;
20392039
then
20402040
(leneqns,eqns);
@@ -2165,20 +2165,21 @@ algorithm
21652165
case ({},inStateOrd,inBackendDAE,m,mt,inStates,ass1,ass2) then (inBackendDAE,m,mt,inStates,ass1,ass2);
21662166
case ((e,orgeqn)::rest,inStateOrd,(dae as BackendDAE.DAE(v,kv,ev,av,eqns,seqns,ie,ae,al,BackendDAE.EVENT_INFO(wclst,zc),eoc)),m,mt,inStates,ass1,ass2)
21672167
equation
2168-
print("Select Dummy State from Eqn "); print(intString(e)); print(" "); print(BackendDump.equationStr(orgeqn)); print("\n");
2168+
Debug.fcall("bltdump", BackendDump.debugStrIntStr, (("Select Dummy State from Eqn "),e," "));
2169+
Debug.fcall("bltdump", print ,BackendDump.equationStr(orgeqn));
21692170
// get candidates
21702171
str = Util.stringDelimitList(Util.listMap(inStates,dumpStates)," : ");
2171-
print("Candidates: "); print(str); print("\n");
2172+
Debug.fcall("bltdump", print, "\nCandidates: " +& str +& "\n");
21722173
// get Jacobian
21732174
jac = calculateJacobian(orgeqn,ae,al,inStates);
21742175
str = Util.stringDelimitList(Util.listMap(jac,ExpressionDump.printExpStr)," : ");
2175-
print("Jac: "); print(str); print("\n");
2176+
Debug.fcall("bltdump", print, "Jac: " +& str +& "\n");
21762177
// analyse jac -> get dummy derivative candidate
21772178
(dummydercand,dyndummydercand) = analyseJac(jac,inStates);
21782179
str = Util.stringDelimitList(Util.listMap(dummydercand,dumpStates1)," : ");
2179-
print("Dummy DerCandidates: "); print(str); print("\n");
2180+
Debug.fcall("bltdump", print, "Dummy DerCandidates: " +& str +& "\n");
21802181
str = Util.stringDelimitList(Util.listMap(dyndummydercand,dumpStates1)," : ");
2181-
print("Dynamic DummyDer Candidates: "); print(str); print("\n");
2182+
Debug.fcall("bltdump", print, "Dynamic DummyDer Candidates: " +& str +& "\n");
21822183
// add derived equation at the end
21832184
eqns_1 = BackendEquation.equationAdd(orgeqn,eqns);
21842185
ep = arrayLength(m)+1;
@@ -2238,9 +2239,9 @@ algorithm
22382239
ass1 = assignmentsExpand(ass1, 1);
22392240
ass2 = assignmentsExpand(ass2, 1);
22402241
ast = getAssigned(stateno,ass1,ass2);
2241-
print("Assign: "); print(intString(stateno)); print(" "); print(intString(ep)); print("\n");
2242+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",stateno," ",ep,"\n"));
22422243
(ass1,ass2) = assign(stateno, ep, ass1, ass2);
2243-
print("Assign: "); print(intString(ep)); print(" "); print(intString(ast)); print("\n");
2244+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",ep," ",ast,"\n"));
22442245
(ass1,ass2) = assign(ep, ast, ass1, ass2);
22452246
then
22462247
(dae,m,mt,states,ass1,ass2);
@@ -2283,23 +2284,25 @@ algorithm
22832284
ep1 = ep+1;
22842285
ep2 = ep+2;
22852286
ep3 = ep+3;
2286-
print("Update Incidence Matrix: "); BackendDump.debuglst(({ep1,ep2,ep3},intString)); print("\n");
2287+
Debug.fcall("bltdump", print, "Update Incidence Matrix: ");
2288+
Debug.fcall("bltdump", BackendDump.debuglst,({ep1,ep2,ep3},intString));
2289+
Debug.fcall("bltdump", print, "\n");
22872290
(m,mt) = BackendDAEUtil.updateIncidenceMatrix(dae, m, mt, {ep1,ep2,ep3});
22882291
ass1 = assignmentsExpand(ass1, 4);
22892292
ass2 = assignmentsExpand(ass2, 4);
22902293
ast = getAssigned(stateno,ass1,ass2);
22912294
ast1 = getAssigned(stateno1,ass1,ass2);
2292-
print("Assign: "); print(intString(stateno)); print(" "); print(intString(ep)); print("\n");
2295+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",stateno," ",ep,"\n"));
22932296
(ass1,ass2) = assign(stateno, ep, ass1, ass2);
2294-
print("Assign: "); print(intString(stateno1)); print(" "); print(intString(ep1)); print("\n");
2297+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",stateno1," ",ep1,"\n"));
22952298
(ass1,ass2) = assign(stateno1, ep1, ass1, ass2);
2296-
print("Assign: "); print(intString(ep)); print(" "); print(intString(ast)); print("\n");
2299+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",ep," ",ast,"\n"));
22972300
(ass1,ass2) = assign(ep, ast, ass1, ass2);
2298-
print("Assign: "); print(intString(ep1)); print(" "); print(intString(ast1)); print("\n");
2301+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",ep1," ",ast1,"\n"));
22992302
(ass1,ass2) = assign(ep1, ast1, ass1, ass2);
2300-
print("Assign: "); print(intString(ep2)); print(" "); print(intString(ep2)); print("\n");
2303+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",ep2," ",ep2,"\n"));
23012304
(ass1,ass2) = assign(ep2, ep2, ass1, ass2);
2302-
print("Assign: "); print(intString(ep3)); print(" "); print(intString(ep3)); print("\n");
2305+
Debug.fcall("bltdump", BackendDump.debugStrIntStrIntString, ("Assign: ",ep3," ",ep3,"\n"));
23032306
(ass1,ass2) = assign(ep3, ep3, ass1, ass2);
23042307
then
23052308
(dae,m,mt,states,ass1,ass2);
@@ -2378,10 +2381,12 @@ algorithm
23782381
case (dummystates,stateindx,dae,m,mt,states,inStateOrd)
23792382
equation
23802383
(state,stateno) = selectDummyState(dummystates, stateindx, dae, m, mt);
2381-
print("Selected ");print(ComponentReference.printComponentRefStr(state));print(" as dummy state\n");
2382-
print(" From candidates:");print(Util.stringDelimitList(Util.listMap(dummystates,ComponentReference.printComponentRefStr),", "));print("\n");
2384+
Debug.fcall("bltdump", BackendDump.debugStrCrefStr, ("Selected ",state," as dummy state\n"));
2385+
Debug.fcall("bltdump", print ," From candidates:");
2386+
Debug.fcall("bltdump", BackendDump.debuglst ,(dummystates,ComponentReference.printComponentRefStr));
2387+
Debug.fcall("bltdump", print ,"\n");
23832388
(dummy_der,dae) = newDummyVar(state, dae, DAE.NEW_DUMMY_DER(state,dummystates));
2384-
print("Chosen dummy: ");print(ComponentReference.printComponentRefStr(dummy_der));print("\n");
2389+
Debug.fcall("bltdump", BackendDump.debugStrCrefStr, ("Chosen dummy: ",dummy_der," as dummy state\n"));
23852390
changedeqns = BackendDAEUtil.eqnsForVarWithStates(mt, stateno);
23862391
stateexp = Expression.crefExp(state);
23872392
tp = Expression.typeof(stateexp);
@@ -2390,13 +2395,15 @@ algorithm
23902395
(dae,m,mt) = replaceDummyDer(stateexpcall, dummyderexp, dae, m, mt, changedeqns)
23912396
"We need to change variables in the differentiated equations and in the equations having the dummy derivative" ;
23922397
dae = makeAlgebraic(dae, state);
2393-
print("Update Incidence Matrix: "); BackendDump.debuglst((changedeqns,intString)); print("\n");
2398+
Debug.fcall("bltdump", print ,"Update Incidence Matrix: ");
2399+
Debug.fcall("bltdump", BackendDump.debuglst, (changedeqns,intString));
2400+
Debug.fcall("bltdump", print ,"\n");
23942401
(m,mt) = BackendDAEUtil.updateIncidenceMatrix(dae, m, mt, changedeqns);
23952402
// update statecandidates
23962403
states = updateStateCandidates(state,states,inStateOrd,BackendVariable.daeVars(dae));
23972404
then
23982405
(dae,m,mt,states,state,dummy_der,stateno);
2399-
case (_,_,_,_,_,_,_)
2406+
else
24002407
equation
24012408
print("selectDummyDerivative failed");
24022409
then fail();

Compiler/BackEnd/BackendDump.mo

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1898,6 +1898,16 @@ algorithm
18981898
print(a +& intString(b) +& c);
18991899
end debugStrIntStr;
19001900

1901+
public function debugStrIntStrIntString
1902+
input tuple<String,Integer,String,Integer,String> inTpl;
1903+
protected
1904+
String a,c,e;
1905+
Integer b,d;
1906+
algorithm
1907+
(a,b,c,d,e) := inTpl;
1908+
print(a +& intString(b) +& c +& intString(d) +& e);
1909+
end debugStrIntStrIntString;
1910+
19011911
public function debugCrefStrIntStr
19021912
input tuple<DAE.ComponentRef,String,Integer,String> inTpl;
19031913
protected

0 commit comments

Comments
 (0)