Skip to content

Commit

Permalink
- added SimCode.BackendMapping to store mapping information between b…
Browse files Browse the repository at this point in the history
…ackEnd structure and simCode structure

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@20161 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Volker Waurich committed Apr 16, 2014
1 parent 4a0fb3f commit b5b9485
Show file tree
Hide file tree
Showing 4 changed files with 448 additions and 82 deletions.
5 changes: 3 additions & 2 deletions Compiler/BackEnd/BackendQSS.mo
Expand Up @@ -1012,12 +1012,13 @@ algorithm
list<SimCode.SimEqSystem> eqs;
list<BackendDAE.TimeEvent> timeEvents;
Option<HpcOmScheduler.ScheduleSimCode> hpcOmSchedule;
Option<SimCode.BackendMapping> backendMapping;

case (SimCode.SIMCODE(modelInfo,literals,recordDecls,externalFunctionIncludes,allEquations,odeEquations,
algebraicEquations,residualEquations,useSymbolicInitialization,useHomotopy,initialEquations,startValueEquations,nominalValueEquations,minValueEquations,maxValueEquations,
parameterEquations,inlineEquations,removedEquations,algorithmAndEquationAsserts,equationsForZeroCrossings,jacobianEquations,stateSets,constraints,classAttributes,zeroCrossings,relations,
timeEvents,whenClauses,discreteModelVars,extObjInfo,makefileParams,
delayedExps,jacobianMatrixes,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT,hpcOmSchedule),_)
delayedExps,jacobianMatrixes,simulationSettingsOpt,fileNamePrefix,crefToSimVarHT,hpcOmSchedule,backendMapping),_)
equation
{eqs} = odeEquations;
eqs = List.map1(eqs,replaceZC,zc_exps);
Expand All @@ -1026,7 +1027,7 @@ algorithm
initialEquations, startValueEquations, nominalValueEquations, minValueEquations, maxValueEquations, parameterEquations, inlineEquations,
removedEquations, algorithmAndEquationAsserts, equationsForZeroCrossings, jacobianEquations, stateSets, constraints, classAttributes,
zeroCrossings, relations, timeEvents, whenClauses, discreteModelVars, extObjInfo,
makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT,hpcOmSchedule);
makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT,hpcOmSchedule,backendMapping);

end match;
end replaceDiscontsInOde;
Expand Down
5 changes: 3 additions & 2 deletions Compiler/BackEnd/HpcOmSimCode.mo
Expand Up @@ -172,6 +172,7 @@ algorithm
array<tuple<Integer,Integer,Integer>> eqNodeMapping, varNodeMapping;
Real graphCosts;
Integer graphOps;
Option<SimCode.BackendMapping> backendMapping;
case (BackendDAE.DAE(eqs=eqs), _, _, _, _, _, _, _, _, _, _, _) equation

//Setup
Expand Down Expand Up @@ -266,14 +267,14 @@ algorithm
Debug.execStat("hpcom dump schedule TaskGraph", GlobalScript.RT_CLOCK_EXECSTAT_HPCOM_MODULES);
SimCode.SIMCODE(modelInfo, simCodeLiterals, simCodeRecordDecls, simCodeExternalFunctionIncludes, allEquations, odeEquations, algebraicEquations, residualEquations, useSymbolicInitialization, useHomotopy, initialEquations, startValueEquations, nominalValueEquations, minValueEquations, maxValueEquations,
parameterEquations, inlineEquations, removedEquations, algorithmAndEquationAsserts, zeroCrossingsEquations, jacobianEquations, stateSets, constraints, classAttributes, zeroCrossings, relations, timeEvents, whenClauses,
discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT, _) = simCode;
discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT, _,backendMapping) = simCode;

checkOdeSystemSize(taskGraphOde,odeEquations);
Debug.execStat("hpcom check ODE system size", GlobalScript.RT_CLOCK_EXECSTAT_HPCOM_MODULES);

simCode = SimCode.SIMCODE(modelInfo, simCodeLiterals, simCodeRecordDecls, simCodeExternalFunctionIncludes, allEquations, odeEquations, algebraicEquations, residualEquations, useSymbolicInitialization, useHomotopy, initialEquations, startValueEquations, nominalValueEquations, minValueEquations, maxValueEquations,
parameterEquations, inlineEquations, removedEquations, algorithmAndEquationAsserts, zeroCrossingsEquations, jacobianEquations, stateSets, constraints, classAttributes, zeroCrossings, relations, timeEvents, whenClauses,
discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT, SOME(taskScheduleSimCode));
discreteModelVars, extObjInfo, makefileParams, delayedExps, jacobianMatrixes, simulationSettingsOpt, fileNamePrefix, crefToSimVarHT, SOME(taskScheduleSimCode),backendMapping);


analyzeCacheBehaviour(modelInfo, taskGraph1, taskGraphData1, eqs, filenamePrefix, schedulerInfo, schedule, sccSimEqMapping, criticalPaths, criticalPathsWoC, criticalPathInfo, allComps);
Expand Down
13 changes: 12 additions & 1 deletion Compiler/BackEnd/SimCode.mo
Expand Up @@ -116,10 +116,21 @@ uniontype SimCode
//*** a protected section *** not exported to SimCodeTV
HashTableCrefToSimVar crefToSimVarHT "hidden from typeview - used by cref2simvar() for cref -> SIMVAR lookup available in templates.";
Option<HpcOmScheduler.ScheduleSimCode> hpcOmSchedule;
Option<BackendMapping> backendMapping;
end SIMCODE;
end SimCode;


public
uniontype BackendMapping
record BACKENDMAPPING
BackendDAE.IncidenceMatrix m;
BackendDAE.IncidenceMatrixT mT;
list<tuple<Integer,list<Integer>>> eqMapping; //indx:order <simEq,{backendEq}>
list<tuple<Integer,Integer>> varMapping; //<simVar,backendVar>
end BACKENDMAPPING;
record NO_MAPPING
end NO_MAPPING;
end BackendMapping;

uniontype DelayedExpression
"Delayed expressions type"
Expand Down

0 comments on commit b5b9485

Please sign in to comment.