@@ -2036,8 +2036,8 @@ algorithm
20362036 nv1 = BackendVariable . varsSize(BackendVariable . daeVars(syst));
20372037 ne1 = BackendDAEUtil . systemSize(syst);
20382038 ass1 = Util . arrayExpand(nv1- nv,ass1,-1 );
2039- ass2 = Util . arrayExpand(ne1- ne,ass2,-1 );
2040- true = BackendDAEEXT . setAssignment(nv1, ne1,ass2,ass1);
2039+ ass2 = Util . arrayExpand(ne1- ne,ass2,-1 );
2040+ true = BackendDAEEXT . setAssignment(ne1,nv1 ,ass2,ass1);
20412041 Matching . matchingExternalsetIncidenceMatrix(nv1, ne1, m);
20422042 BackendDAEEXT . matching(nv1, ne1, 5 , -1 , 0 . 0 , 0 );
20432043 BackendDAEEXT . getAssignment(ass2, ass1);
@@ -2220,7 +2220,8 @@ algorithm
22202220 indexmap = arrayCreate(nfreeStates + nv,-1 );
22212221 invindexmap = arrayCreate(nfreeStates,-1 );
22222222 // workaround to get state indexes
2223- (vars,(indexmap,invindexmap,_,nv1,_,_,_)) = BackendVariable . traverseBackendDAEVarsWithUpdate(vars,getStateIndexes,(indexmap,invindexmap,1 ,nv,nv,hovvars,{}));
2223+ nv1 = nv + nfreeStates;
2224+ (vars,(indexmap,invindexmap,_,_,_,_)) = BackendVariable . traverseBackendDAEVarsWithUpdate(vars,getStateIndexes,(indexmap,invindexmap,1 ,nv,hovvars,{}));
22242225 // BackendDump.dumpMatching(indexmap);
22252226 m1 = arrayCreate(ne1,{});
22262227 mT1 = arrayCreate(nv1,{});
@@ -2233,7 +2234,7 @@ algorithm
22332234 getIncidenceMatrixLevelEquations(eqnslst,vars,neqnarr,ne,m1,mT1,m,mapEqnIncRow,mapIncRowEqn,indexmap,funcs);
22342235 // match the variables not the equations, to have prevered states unmatched
22352236 vec1 = Util . arrayExpand(nfreeStates,ass1,-1 );
2236- vec2 = Util . arrayExpand(neqns,ass2,-1 );
2237+ vec2 = Util . arrayExpand(neqns,ass2,-1 );
22372238 true = BackendDAEEXT . setAssignment(nv1,ne1,vec1,vec2);
22382239 Matching . matchingExternalsetIncidenceMatrix(ne1, nv1, mT1);
22392240 BackendDAEEXT . matching(ne1, nv1, 3 , -1 , 0 . 0 , 0 );
@@ -2401,29 +2402,29 @@ algorithm
24012402end dumpBlock;
24022403
24032404protected function getStateIndexes
2404- input tuple< BackendDAE . Var , tuple< array< Integer > ,array< Integer > ,Integer ,Integer ,Integer , BackendDAE . Variables ,list< Integer >>> inTpl;
2405- output tuple< BackendDAE . Var , tuple< array< Integer > ,array< Integer > ,Integer ,Integer ,Integer , BackendDAE . Variables ,list< Integer >>> outTpl;
2405+ input tuple< BackendDAE . Var , tuple< array< Integer > ,array< Integer > ,Integer ,Integer ,BackendDAE . Variables ,list< Integer >>> inTpl;
2406+ output tuple< BackendDAE . Var , tuple< array< Integer > ,array< Integer > ,Integer ,Integer ,BackendDAE . Variables ,list< Integer >>> outTpl;
24062407algorithm
24072408 outTpl := matchcontinue(inTpl)
24082409 local
24092410 DAE . ComponentRef cr;
24102411 BackendDAE . Var v;
24112412 array< Integer > stateindexs,invmap;
2412- Integer indx,s,nv;
2413+ Integer indx,s,nv,newindx ;
24132414 BackendDAE . Variables hov;
24142415 list< Integer > derstatesindexs;
24152416 Option < DAE . ComponentRef > derName;
2416- case ((v as BackendDAE . VAR (varName= cr,varKind= BackendDAE . STATE (derName= _)),(stateindexs,invmap,indx,s, nv,hov,derstatesindexs)))
2417+ case ((v as BackendDAE . VAR (varName= cr,varKind= BackendDAE . STATE (derName= _)),(stateindexs,invmap,indx,nv,hov,derstatesindexs)))
24172418 equation
2418- (_::_,_ ) = BackendVariable . getVar(cr, hov);
2419- s = s + 1 ;
2420- _= arrayUpdate(stateindexs,indx,s );
2421- _= arrayUpdate(invmap,s- nv ,indx);
2419+ (_::_,{s} ) = BackendVariable . getVar(cr, hov);
2420+ newindx = nv + s ;
2421+ _= arrayUpdate(stateindexs,indx,newindx );
2422+ _= arrayUpdate(invmap,s,indx);
24222423 then
2423- ((v,(stateindexs,invmap,indx+ 1 ,s, nv,hov,indx::derstatesindexs)));
2424- case ((v,(stateindexs,invmap,indx,s ,nv,hov,derstatesindexs)))
2424+ ((v,(stateindexs,invmap,indx+ 1 ,nv,hov,indx::derstatesindexs)));
2425+ case ((v,(stateindexs,invmap,indx,nv,hov,derstatesindexs)))
24252426 then
2426- ((v,(stateindexs,invmap,indx+ 1 ,s, nv,hov,derstatesindexs)));
2427+ ((v,(stateindexs,invmap,indx+ 1 ,nv,hov,derstatesindexs)));
24272428 end matchcontinue;
24282429end getStateIndexes;
24292430
0 commit comments