Skip to content

Commit f9b67a5

Browse files
author
Volker Waurich
committed
TaskGraph handles Algorithms, improved warnings
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@16326 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent cf4aa90 commit f9b67a5

File tree

1 file changed

+58
-1
lines changed

1 file changed

+58
-1
lines changed

Compiler/BackEnd/HpcOmTaskGraph.mo

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,17 @@ algorithm
236236
desc = (eqString +& " FOR " +& varString);
237237
descLst = desc::iEqDesc;
238238
then descLst;
239+
case(BackendDAE.SINGLEALGORITHM(eqn = i, vars = vs), BackendDAE.EQSYSTEM(orderedEqs = orderedEqs, orderedVars = orderedVars, matching= BackendDAE.MATCHING(ass2 = ass2)),_)
240+
equation
241+
//get the equation string
242+
eqnLst = BackendEquation.equationList(orderedEqs);
243+
eqn = listGet(eqnLst,i);
244+
eqString = BackendDump.equationString(eqn);
245+
eqDescLst = stringListStringChar(eqString);
246+
eqDescLst = List.map(eqDescLst,prepareXML);
247+
eqString = stringCharListString(eqDescLst);
248+
descLst = eqString::iEqDesc;
249+
then descLst;
239250
else
240251
equation
241252
desc = ("no singleEquation");
@@ -362,6 +373,18 @@ algorithm
362373
tmpVars = List.filter1OnTrue(tmpVars, isTupleMember, varIdc);
363374
print(List.toString(tmpVars, tupleToString, "Component " +& BackendDump.strongComponentString(component) +& " unsolved vars_post", "{", ";", "}", true) +& "\n");
364375
then tmpVars;
376+
case(BackendDAE.SINGLEALGORITHM(vars=varIdc),_)
377+
equation
378+
tmpVars = getVarsBySCC(component,incidenceMatrix);
379+
print(List.toString(tmpVars, tupleToString, "Component " +& BackendDump.strongComponentString(component) +& " unsolved vars_pre", "{", ";", "}", true) +& "\n");
380+
tmpVars = List.filter1OnTrue(tmpVars, isTupleMember, varIdc);
381+
print(List.toString(tmpVars, tupleToString, "Component " +& BackendDump.strongComponentString(component) +& " unsolved vars_post", "{", ";", "}", true) +& "\n");
382+
then tmpVars;
383+
else
384+
equation
385+
print("getUnsolvedVarsBySCC failed\n");
386+
387+
then fail();
365388
end matchcontinue;
366389
end getUnsolvedVarsBySCC;
367390

@@ -433,7 +456,12 @@ algorithm
433456
eqnVars = getVarsByEqn(eqnIdx,incidenceMatrix);
434457
dumpStr = List.toString(eqnVars, tupleToString, "", "{", ";", "}", true);
435458
print("Eqn " +& intString(eqnIdx) +& " vars: " +& dumpStr +& "\n");
436-
//print("Error in createTaskGraph1! Unsupported component-type Equationsystem with jacType varying.\n");
459+
then eqnVars;
460+
case (BackendDAE.SINGLEALGORITHM(eqn=eqnIdx),_)
461+
equation
462+
eqnVars = getVarsByEqn(eqnIdx,incidenceMatrix);
463+
dumpStr = List.toString(eqnVars, tupleToString, "", "{", ";", "}", true);
464+
print("Eqn " +& intString(eqnIdx) +& " vars: " +& dumpStr +& "\n");
437465
then eqnVars;
438466
else
439467
equation
@@ -587,6 +615,35 @@ algorithm
587615
equation
588616
tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
589617
then iSccIdx+1;
618+
case(BackendDAE.SINGLEALGORITHM(vars = compVarIdc),_,_)
619+
equation
620+
tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
621+
then iSccIdx+1;
622+
case(BackendDAE.MIXEDEQUATIONSYSTEM(disc_vars = compVarIdc),_,_)
623+
equation
624+
print("MIXEDEQUATIONSYSTEMS is not supported yet\n");
625+
//tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
626+
then fail();
627+
case(BackendDAE.SINGLEARRAY(vars = compVarIdc),_,_)
628+
equation
629+
print("SINGLEARRAY not is supported yet\n");
630+
//tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
631+
then fail();
632+
case(BackendDAE.SINGLECOMPLEXEQUATION(vars = compVarIdc),_,_)
633+
equation
634+
print("SINGLECOMPLEXEQUATION is not supported yet\n");
635+
//tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
636+
then fail();
637+
case(BackendDAE.SINGLEIFEQUATION(vars = compVarIdc),_,_)
638+
equation
639+
print("SINGLEIFEQUATION is not supported yet\n");
640+
//tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
641+
then fail();
642+
case(BackendDAE.TORNSYSTEM(tearingvars = compVarIdc),_,_)
643+
equation
644+
print("TORNSYSTEM is not supported yet\n");
645+
//tmpVarSccMapping = List.fold1(compVarIdc,updateMapping,iSccIdx,varSccMapping);
646+
then fail();
590647
else
591648
equation
592649
print("createVarSccMapping0 - Unsupported component-type.");

0 commit comments

Comments
 (0)