Skip to content

Commit

Permalink
- remove shared from incidence matrix calcualtion because it is not n…
Browse files Browse the repository at this point in the history
…eeded

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@12851 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Jens Frenkel committed Sep 10, 2012
1 parent 3908d3f commit fc57a6d
Show file tree
Hide file tree
Showing 11 changed files with 467 additions and 163 deletions.
362 changes: 341 additions & 21 deletions Compiler/BackEnd/BackendDAEOptimize.mo

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions Compiler/BackEnd/BackendDAETransform.mo
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,7 @@ algorithm
evars = BackendDAEUtil.listVar1({});
syst = BackendDAE.EQSYSTEM(vars_1,eqns_1,NONE(),NONE(),BackendDAE.NO_MATCHING());
shared = BackendDAE.SHARED(evars,evars,av,eeqns,eeqns,constrs,clsAttrs,cache,env,funcs,BackendDAE.EVENT_INFO({},{}),{},BackendDAE.ALGEQSYSTEM(),{});
(m,mt) = BackendDAEUtil.incidenceMatrix(syst, shared, BackendDAE.ABSOLUTE());
(m,mt) = BackendDAEUtil.incidenceMatrix(syst,BackendDAE.ABSOLUTE());
// calculate jacobian. If constant, linear system of equations. Otherwise nonlinear
jac = BackendDAEUtil.calculateJacobian(vars_1, eqns_1, m, true,shared);
// Jacobian of a Linear System is always linear
Expand Down Expand Up @@ -2755,12 +2755,12 @@ algorithm
(syst,shared) = replaceDummyDer(stateexpcall, dummyderexp, syst, shared, changedeqns)
"We need to change variables in the differentiated equations and in the equations having the dummy derivative" ;
syst = makeAlgebraic(syst, state);
(syst,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.updateIncidenceMatrixScalar(syst, shared,BackendDAE.SOLVABLE(), changedeqns,mapEqnIncRow,mapIncRowEqn);
(syst,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.updateIncidenceMatrixScalar(syst,BackendDAE.SOLVABLE(), changedeqns,mapEqnIncRow,mapIncRowEqn);
// print("new DAE:");
// BackendDump.dumpEqSystem(syst);
// BackendDump.dump(BackendDAE.DAE({syst},shared));
// print("new IM:");
// (_,m,_) = BackendDAEUtil.getIncidenceMatrixfromOption(syst,shared,BackendDAE.SOLVABLE());
// (_,m,_) = BackendDAEUtil.getIncidenceMatrixfromOption(syst,BackendDAE.SOLVABLE());
// BackendDump.dumpIncidenceMatrix(m);
// BackendDump.dumpStateVariables(BackendVariable.daeVars(syst));
then
Expand Down
186 changes: 82 additions & 104 deletions Compiler/BackEnd/BackendDAEUtil.mo

Large diffs are not rendered by default.

12 changes: 9 additions & 3 deletions Compiler/BackEnd/BackendEquation.mo
Original file line number Diff line number Diff line change
Expand Up @@ -1256,16 +1256,16 @@ public function equationRemove "function: equationRemove
author: Frenkel TUD 2012-09
Removes the equations from the array on the given possitoin but
does not scale down the array size"
input BackendDAE.EquationArray inEquationArray;
input Integer inPos "1 based index";
input BackendDAE.EquationArray inEquationArray;
output BackendDAE.EquationArray outEquationArray;
algorithm
outEquationArray := matchcontinue (inEquationArray,inPos)
outEquationArray := matchcontinue (inPos,inEquationArray)
local
Integer numberOfElement,arrSize,size,size1,eqnsize;
array<Option<BackendDAE.Equation>> equOptArr;
BackendDAE.Equation eqn;
case (BackendDAE.EQUATION_ARRAY(size=size,numberOfElement=numberOfElement,arrSize=arrSize,equOptArr=equOptArr),_)
case (_,BackendDAE.EQUATION_ARRAY(size=size,numberOfElement=numberOfElement,arrSize=arrSize,equOptArr=equOptArr))
equation
true = intLe(inPos,numberOfElement);
SOME(eqn) = equOptArr[inPos];
Expand All @@ -1274,6 +1274,12 @@ algorithm
size1 = size - eqnsize;
then
BackendDAE.EQUATION_ARRAY(size1,numberOfElement,arrSize,equOptArr);
case (_,BackendDAE.EQUATION_ARRAY(size=size,numberOfElement=numberOfElement,arrSize=arrSize,equOptArr=equOptArr))
equation
true = intLe(inPos,numberOfElement);
NONE() = equOptArr[inPos];
then
inEquationArray;
else
equation
Debug.fprintln(Flags.FAILTRACE, "- BackendDAE.equationRemove failed");
Expand Down
26 changes: 13 additions & 13 deletions Compiler/BackEnd/IndexReduction.mo
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ algorithm
ass2 = consArrayUpdate(b, inAss2,e1,-1);
syst = BackendDAE.EQSYSTEM(v1,eqns_1,SOME(m),SOME(mt),matching);
changedEqns = List.unique(List.map1r(changedEqns,arrayGet,imapIncRowEqn));
(syst,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.updateIncidenceMatrixScalar(syst, shared,BackendDAE.SOLVABLE(), changedEqns, imapEqnIncRow, imapIncRowEqn);
(syst,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.updateIncidenceMatrixScalar(syst,BackendDAE.SOLVABLE(), changedEqns, imapEqnIncRow, imapIncRowEqn);
Debug.fcall(Flags.BLT_DUMP, BackendDump.debugStrCrefStrCrefStr,("Found Alias State ",cr," := ",scr,"\n Update Incidence Matrix: "));
Debug.fcall(Flags.BLT_DUMP, BackendDump.debuglst,(changedEqns,intString," ","\n"));
changedEqns = List.consOnTrue(b, e1, mapEqnIncRow[e]);
Expand Down Expand Up @@ -570,7 +570,7 @@ algorithm
eqnslst1 = listAppend(eqnslst1,eqnslst);
Debug.fcall(Flags.BLT_DUMP, print, "Update Incidence Matrix: ");
Debug.fcall(Flags.BLT_DUMP, BackendDump.debuglst,(eqnslst1,intString," ","\n"));
(syst,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.updateIncidenceMatrixScalar(syst, shared,BackendDAE.SOLVABLE(), eqnslst1, imapEqnIncRow, imapIncRowEqn);
(syst,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.updateIncidenceMatrixScalar(syst,BackendDAE.SOLVABLE(), eqnslst1, imapEqnIncRow, imapIncRowEqn);
orgEqnsLst = BackendDAETransform.addOrgEqn(inOrgEqnsLst,e,eqn);
// collect changed equations
barray = List.fold(ilst1,setBArrayCheckSize,ibarray);
Expand Down Expand Up @@ -930,7 +930,7 @@ algorithm
Debug.fcall(Flags.BLT_DUMP, print, "highest Order Derivatives:\n");
Debug.fcall(Flags.BLT_DUMP, BackendDump.dumpVarsArray, hov);
// iterate comps
(syst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(syst,ishared,BackendDAE.NORMAL());
(syst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(syst,BackendDAE.NORMAL());
Debug.fcall(Flags.BLT_DUMP, print, "Index Reduced System:\n");
Debug.fcall(Flags.BLT_DUMP, BackendDump.dumpEqSystem,syst);
comps = BackendDAETransform.tarjanAlgorithm(m,mt,ass1,ass2);
Expand All @@ -952,7 +952,7 @@ algorithm
vec2 = Util.arrayExpand(nv1-nv, ass2, -1);
syst = BackendVariable.expandVarsDAE(ndummystates,syst);
(syst,shared,ht) = addDummyStates(dummyStates,syst,shared,iHt);
(syst,m,_,_,_) = BackendDAEUtil.getIncidenceMatrixScalar(syst,shared,BackendDAE.NORMAL());
(syst,m,_,_,_) = BackendDAEUtil.getIncidenceMatrixScalar(syst,BackendDAE.NORMAL());
Debug.fcall(Flags.BLT_DUMP, print, "Full System:\n");
Debug.fcall(Flags.BLT_DUMP, BackendDump.dumpEqSystem,syst);
Matching.matchingExternalsetIncidenceMatrix(nv1,ne1,m);
Expand Down Expand Up @@ -1703,7 +1703,7 @@ algorithm
true = intGt(varSize,1);
false = intGt(eqnsSize,varSize);
Debug.fcall(Flags.BLT_DUMP, print, "try to select dummy vars heuristic based\n");
(syst,_,_,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(BackendDAE.EQSYSTEM(vars,eqns,NONE(),NONE(),BackendDAE.NO_MATCHING()),ishared,BackendDAE.NORMAL());
(syst,_,_,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(BackendDAE.EQSYSTEM(vars,eqns,NONE(),NONE(),BackendDAE.NO_MATCHING()),BackendDAE.NORMAL());
Debug.fcall(Flags.BLT_DUMP, BackendDump.dumpEqSystem, syst);
varlst = BackendDAEUtil.varList(vars);
crlst = List.map(varlst,BackendVariable.varCref);
Expand Down Expand Up @@ -2178,7 +2178,7 @@ algorithm
syst = List.fold(selecteqns,BackendEquation.equationAddDAE,syst);
changedeqns = List.intRange2(size,size+listLength(selecteqns));
// ToDO Fix this, thers chould be used updateIncidenceMatrixScalar
//syst = BackendDAEUtil.updateIncidenceMatrix(syst, ishared, changedeqns);
//syst = BackendDAEUtil.updateIncidenceMatrix(syst, changedeqns);
shared = BackendDAEUtil.whenClauseAddDAE(wclst,ishared);
(hov1,lov,dummystates) = selectDummyStates(listAppend(states,dstates),1,varSize,vars,hov,inLov,inDummyStates);
then
Expand Down Expand Up @@ -2239,7 +2239,7 @@ algorithm
syst = List.fold(selecteqns,BackendEquation.equationAddDAE,syst);
changedeqns = List.intRange2(size,size+listLength(selecteqns));
// ToDO Fix this, thers chould be used updateIncidenceMatrixScalar
//syst = BackendDAEUtil.updateIncidenceMatrix(syst, ishared, changedeqns);
//syst = BackendDAEUtil.updateIncidenceMatrix(syst, changedeqns);
shared = BackendDAEUtil.whenClauseAddDAE(wclst,ishared);
(hov1,lov,dummystates) = selectDummyStates(listAppend(states,dstates),1,varSize,vars,hov,inLov,inDummyStates);
then
Expand Down Expand Up @@ -3338,7 +3338,7 @@ algorithm
case (syst as BackendDAE.EQSYSTEM(orderedVars=vars, orderedEqs=eqns),(shared, b1))
equation
BackendDump.dumpEqSystem(syst);
(m,mt) = BackendDAEUtil.incidenceMatrix(syst, shared, BackendDAE.NORMAL());
(m,mt) = BackendDAEUtil.incidenceMatrix(syst,BackendDAE.NORMAL());
BackendDump.dumpIncidenceMatrixT(mt);

SOME(jac) = BackendDAEUtil.calculateJacobian(vars, eqns, m, true,shared);
Expand Down Expand Up @@ -3834,9 +3834,9 @@ algorithm
equation
vars = BackendVariable.daeVars(isyst);
eqns = BackendEquation.daeEqns(isyst);
//(_,m,mt) = BackendDAEUtil.getIncidenceMatrix(isyst,ishared,BackendDAE.NORMAL());
//(_,m,mt) = BackendDAEUtil.getIncidenceMatrix(isyst,BackendDAE.NORMAL());
mapIncRowEqn = listArray(List.intRange(arrayLength(m)));
//(_,m,mt,_,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(isyst,ishared,BackendDAE.NORMAL());
//(_,m,mt,_,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(isyst,BackendDAE.NORMAL());
graph = GraphML.getGraph("G",false);
((_,graph)) = BackendVariable.traverseBackendDAEVars(vars,addVarGraph,(1,graph));
neqns = BackendDAEUtil.equationArraySize(eqns);
Expand All @@ -3851,9 +3851,9 @@ algorithm
equation
vars = BackendVariable.daeVars(isyst);
eqns = BackendEquation.daeEqns(isyst);
//(_,m,mt) = BackendDAEUtil.getIncidenceMatrix(isyst,ishared,BackendDAE.NORMAL());
//(_,m,mt) = BackendDAEUtil.getIncidenceMatrix(isyst,BackendDAE.NORMAL());
//mapIncRowEqn = listArray(List.intRange(arrayLength(m)));
(_,m,mt,_,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(isyst,ishared,BackendDAE.NORMAL());
(_,m,mt,_,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(isyst,BackendDAE.NORMAL());
graph = GraphML.getGraph("G",false);
((_,_,graph)) = BackendVariable.traverseBackendDAEVars(vars,addVarGraphMatch,(1,vec1,graph));
//neqns = BackendDAEUtil.equationArraySize(eqns);
Expand All @@ -3870,7 +3870,7 @@ algorithm
equation
vars = BackendVariable.daeVars(isyst);
eqns = BackendEquation.daeEqns(isyst);
(_,m,mt,_,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(isyst,ishared,BackendDAE.NORMAL());
(_,m,mt,_,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(isyst,BackendDAE.NORMAL());
graph = GraphML.getGraph("G",false);
((_,graph)) = BackendVariable.traverseBackendDAEVars(vars,addVarGraph,(1,graph));
neqns = BackendDAEUtil.equationSize(eqns);
Expand Down
4 changes: 2 additions & 2 deletions Compiler/BackEnd/Matching.mo
Original file line number Diff line number Diff line change
Expand Up @@ -5995,7 +5995,7 @@ algorithm
testMatchingAlgorithms1(matchingAlgorithms,syst,ishared,inMatchingOptions);

System.realtimeTick(BackendDAE.RT_PROFILER0);
(_,m,_) := BackendDAEUtil.getIncidenceMatrixfromOption(syst,ishared,BackendDAE.NORMAL());
(_,m,_) := BackendDAEUtil.getIncidenceMatrixfromOption(syst,BackendDAE.NORMAL());
matchingExternalsetIncidenceMatrix(nv,ne,m);
cheapID := 3;
t := System.realtimeTock(BackendDAE.RT_PROFILER0);
Expand Down Expand Up @@ -6218,7 +6218,7 @@ algorithm
setrandArray(nv,randarr1);
eqns1 = randSortSystem1(ne,-1,randarr,eqns,BackendDAEUtil.listEquation({}),BackendDAEUtil.equationNth,BackendEquation.equationAdd);
vars1 = randSortSystem1(nv,0,randarr1,vars,BackendDAEUtil.emptyVars(),BackendVariable.getVarAt,BackendVariable.addVar);
(syst,_,_) = BackendDAEUtil.getIncidenceMatrix(BackendDAE.EQSYSTEM(vars1,eqns1,NONE(),NONE(),BackendDAE.NO_MATCHING()),ishared,BackendDAE.NORMAL());
(syst,_,_) = BackendDAEUtil.getIncidenceMatrix(BackendDAE.EQSYSTEM(vars1,eqns1,NONE(),NONE(),BackendDAE.NO_MATCHING()),BackendDAE.NORMAL());
then
syst;
end match;
Expand Down
14 changes: 7 additions & 7 deletions Compiler/BackEnd/OnRelaxation.mo
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ algorithm
vars = BackendDAEUtil.listVar1(var_lst);

subsyst = BackendDAE.EQSYSTEM(vars,eqns,NONE(),NONE(),BackendDAE.NO_MATCHING());
(subsyst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(subsyst, shared, BackendDAE.ABSOLUTE());
(subsyst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(subsyst, BackendDAE.ABSOLUTE());
BackendDump.dumpEqSystem(subsyst);

// Vector Matching a=f(..),f(..)=a
Expand All @@ -180,7 +180,7 @@ algorithm

// Boeser hack fuer FourBar
/*
(subsyst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(subsyst, shared, BackendDAE.ABSOLUTE());
(subsyst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(subsyst, BackendDAE.ABSOLUTE());
temp::_ = mapEqnIncRow[72];
_ = arrayUpdate(ass1,90,temp);
_ = arrayUpdate(ass2,temp,90);
Expand All @@ -197,7 +197,7 @@ algorithm
*/

// Matching based on Enhanced Adiacency Matrix, take care of the solvability - theems to be good but not good enough
// (subsyst,_,_) = BackendDAEUtil.getIncidenceMatrix(subsyst, shared, BackendDAE.ABSOLUTE());
// (subsyst,_,_) = BackendDAEUtil.getIncidenceMatrix(subsyst, BackendDAE.ABSOLUTE());
// BackendDump.dumpEqSystem(subsyst);
// dumpJacMatrix(jac,1,1,size,vars);
m1 = arrayCreate(size,{});
Expand Down Expand Up @@ -242,7 +242,7 @@ algorithm
ass1 = BackendDAETransform.varAssignmentNonScalar(1,size,ass1,mapIncRowEqn,{});
ass22 = BackendDAETransform.eqnAssignmentNonScalar(1,arrayLength(mapEqnIncRow),mapEqnIncRow,ass2,{});
eorphans = List.unique(List.map1r(eorphans,arrayGet,mapIncRowEqn));
(subsyst,m,mt) = BackendDAEUtil.getIncidenceMatrix(subsyst, shared, BackendDAE.ABSOLUTE());
(subsyst,m,mt) = BackendDAEUtil.getIncidenceMatrix(subsyst, BackendDAE.ABSOLUTE());
// BackendDump.dumpIncidenceMatrix(m);
// BackendDump.dumpIncidenceMatrixT(mt);

Expand Down Expand Up @@ -320,7 +320,7 @@ algorithm
//_ = BackendDAEUtil.traverseBackendDAEExpsEqnsWithUpdate(eqns, replaceFinalParameter, BackendVariable.daeKnVars(shared));

subsyst = BackendDAE.EQSYSTEM(vars,eqns,NONE(),NONE(),BackendDAE.NO_MATCHING());
(subsyst,m,mt) = BackendDAEUtil.getIncidenceMatrix(subsyst, shared, BackendDAE.ABSOLUTE());
(subsyst,m,mt) = BackendDAEUtil.getIncidenceMatrix(subsyst, BackendDAE.ABSOLUTE());
// BackendDump.dumpEqSystem(subsyst);
// IndexReduction.dumpSystemGraphML(subsyst,shared,NONE(),intString(size) +& "SystemIndexed.graphml");
SOME(jac) = BackendDAEUtil.calculateJacobian(vars, eqns, m, true,ishared);
Expand Down Expand Up @@ -352,7 +352,7 @@ algorithm
vars = BackendVariable.addVars(var_lst, vars);
eqns = BackendEquation.addEquations(neweqns, teqns);
subsyst = BackendDAE.EQSYSTEM(vars,eqns,NONE(),NONE(),BackendDAE.NO_MATCHING());
(subsyst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(subsyst, shared, BackendDAE.NORMAL());
(subsyst,m,mt,mapEqnIncRow,mapIncRowEqn) = BackendDAEUtil.getIncidenceMatrixScalar(subsyst, BackendDAE.NORMAL());
print("Relaxed System:\n");
BackendDump.dumpEqSystem(subsyst);
Expand All @@ -368,7 +368,7 @@ algorithm
BackendDump.dumpEqSystem(subsyst);
*/

// (syst,_,_) = BackendDAEUtil.getIncidenceMatrix(syst, shared, BackendDAE.NORMAL());
// (syst,_,_) = BackendDAEUtil.getIncidenceMatrix(syst, BackendDAE.NORMAL());
// BackendDump.dumpEqSystem(syst);
// (i1,i2,i3) = countOperations1(syst,shared);
// print("Add Operations: " +& intString(i1) +& "\n");
Expand Down
10 changes: 5 additions & 5 deletions Compiler/BackEnd/SimCodeUtil.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2127,7 +2127,7 @@ algorithm

case ((syst as BackendDAE.EQSYSTEM(orderedVars=vars,matching=BackendDAE.MATCHING(ass1=ass1,ass2=ass2,comps=comps)))::systs,_,_,_,odeEquations,algebraicEquations,allEquations,_)
equation
(syst,_,_) = BackendDAEUtil.getIncidenceMatrixfromOption(syst, shared, BackendDAE.ABSOLUTE());
(syst,_,_) = BackendDAEUtil.getIncidenceMatrixfromOption(syst, BackendDAE.ABSOLUTE());
stateeqnsmark = arrayCreate(BackendDAEUtil.equationArraySizeDAE(syst), 0);
stateeqnsmark = BackendDAEUtil.markStateEquations(syst, stateeqnsmark, ass1, ass2);
(odeEquations1,algebraicEquations1,allEquations1,uniqueEqIndex,tempvars) = createEquationsForSystem1(stateeqnsmark, syst, shared, comps, helpVarInfo,iuniqueEqIndex,itempvars);
Expand Down Expand Up @@ -4393,7 +4393,7 @@ algorithm
knvars_1 = BackendEquation.equationsVars(eqns_1,knvars);
syst = BackendDAE.EQSYSTEM(vars_1,eqns_1,NONE(),NONE(),BackendDAE.NO_MATCHING());
shared = BackendDAE.SHARED(knvars_1,exvars,ave,eeqns,eeqns,constrs,clsAttrs,cache,env,funcs,ev,eoc,BackendDAE.ALGEQSYSTEM(),{});
(m,mt) = BackendDAEUtil.incidenceMatrix(syst, shared, BackendDAE.ABSOLUTE());
(m,mt) = BackendDAEUtil.incidenceMatrix(syst, BackendDAE.ABSOLUTE());
jac = BackendDAEUtil.calculateJacobian(vars_1, eqns_1, m, false,ishared) "calculate jacobian. If constant, linear system of equations. Otherwise nonlinear" ;
jac_tp = BackendDAEUtil.analyzeJacobian(vars_1,eqns_1,jac);
// if BackendDAEUtil.JAC_NONLINEAR() then set to time_varying
Expand Down Expand Up @@ -4448,7 +4448,7 @@ algorithm
knvars_1 = BackendEquation.equationsVars(eqns_1,knvars);
syst = BackendDAE.EQSYSTEM(vars_1,eqns_1,NONE(),NONE(),BackendDAE.NO_MATCHING());
shared = BackendDAE.SHARED(knvars_1,exvars,ave,eeqns,eeqns,constrs,clsAttrs,cache,env,funcs,ev,eoc,BackendDAE.ALGEQSYSTEM(),{});
(m,mt) = BackendDAEUtil.incidenceMatrix(syst, shared, BackendDAE.ABSOLUTE());
(m,mt) = BackendDAEUtil.incidenceMatrix(syst, BackendDAE.ABSOLUTE());
syst = BackendDAE.EQSYSTEM(vars_1,eqns_1,SOME(m),SOME(mt),BackendDAE.NO_MATCHING());
subsystem_dae = BackendDAE.DAE({syst},shared);
(subsystem_dae_1 as BackendDAE.DAE(eqs={BackendDAE.EQSYSTEM(matching=BackendDAE.MATCHING(v1,v2,comps))})) = BackendDAEUtil.transformBackendDAE(subsystem_dae,SOME((BackendDAE.NO_INDEX_REDUCTION(), BackendDAE.EXACT())),NONE(),NONE());
Expand Down Expand Up @@ -5238,7 +5238,7 @@ algorithm

case (block_ as _::_::_,mixedEvent,syst as BackendDAE.EQSYSTEM(orderedVars=v,orderedEqs=eqn),shared as BackendDAE.SHARED(knownVars=kv,functionTree=funcs), helpVarInfo,_,_)
equation
(m,mT) = BackendDAEUtil.incidenceMatrix(syst, shared, BackendDAE.NORMAL());
(m,mT) = BackendDAEUtil.incidenceMatrix(syst, BackendDAE.NORMAL());
//mT = BackendDAEUtil.transposeMatrix(m);
SOME(jac) = BackendDAEUtil.calculateJacobian(v, eqn, m, false,shared);
((simVars,_)) = BackendVariable.traverseBackendDAEVars(v,traversingdlowvarToSimvar,({},kv));
Expand Down Expand Up @@ -6140,7 +6140,7 @@ algorithm
funcs = DAEUtil.avlTreeNew();
syst = BackendDAE.EQSYSTEM(v,pe,NONE(),NONE(),BackendDAE.NO_MATCHING());
shared = BackendDAE.SHARED(kn,extobj,alisvars,emptyeqns,emptyeqns,constrs,clsAttrs,cache,env,funcs,BackendDAE.EVENT_INFO({},{}),extObjClasses,BackendDAE.PARAMETERSYSTEM(),{});
(syst,m,mT) = BackendDAEUtil.getIncidenceMatrixfromOption(syst,shared,BackendDAE.NORMAL());
(syst,m,mT) = BackendDAEUtil.getIncidenceMatrixfromOption(syst,BackendDAE.NORMAL());
paramdlow = BackendDAE.DAE({syst},shared);
//mT = BackendDAEUtil.transposeMatrix(m);
v1 = listArray(lv1);
Expand Down

0 comments on commit fc57a6d

Please sign in to comment.