Changeset aafc860 in OpenModelica


Ignore:
Timestamp:
2021-01-22T13:11:18+01:00 (3 years ago)
Author:
Andreas <38031952+AnHeuermann@…>
Branches:
Added-citation-metadata, maintenance/v1.17, maintenance/v1.18, maintenance/v1.19, maintenance/v1.20, maintenance/v1.21, maintenance/v1.22, maintenance/v1.23, master, omlib-staging
Children:
c2c52350
Parents:
9220249b
git-author:
AnHeuermann <andreas.heuermann@…> (01/21/21 16:17:59)
git-committer:
Andreas <38031952+AnHeuermann@…> (01/22/21 13:11:18)
Message:

Adding initEquations_lambda0 to DAE

Location:
OMCompiler/Compiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • OMCompiler/Compiler/BackEnd/DAEMode.mo

    ra136b96 raafc860  
    8181  output BackendDAE.BackendDAE outDAEmode;
    8282  output BackendDAE.BackendDAE outInitDAE;
     83  output Option<BackendDAE.BackendDAE> outInitDAE_lambda0_option;
    8384  output list<BackendDAE.Equation> outRemovedInitialEquationLst;
    8485 protected
     
    125126
    126127    // generate system for initialization
    127     (outInitDAE, _, outRemovedInitialEquationLst, globalKnownVars, dae) := Initialization.solveInitialSystem(dae);
     128    (outInitDAE, outInitDAE_lambda0_option, outRemovedInitialEquationLst, globalKnownVars, dae) := Initialization.solveInitialSystem(dae);
    128129
    129130    // use function tree from initDAE further for simDAE
  • OMCompiler/Compiler/SimCode/SimCodeMain.mo

    r5defbb3 raafc860  
    11081108      BackendDAE.BackendDAE initDAE;
    11091109      list<BackendDAE.Equation> removedInitialEquationLst;
     1110      Option<BackendDAE.BackendDAE> initDAE_lambda0_option;
    11101111      Real fsize;
    11111112      Absyn.ComponentRef classNameCref;
     
    11541155
    11551156      //BackendDump.printBackendDAE(dlow);
    1156       (bdae, initDAE, removedInitialEquationLst) := DAEMode.getEqSystemDAEmode(dlow,inFileNamePrefix);
     1157      (bdae, initDAE, initDAE_lambda0_option, removedInitialEquationLst) := DAEMode.getEqSystemDAEmode(dlow, inFileNamePrefix);
    11571158      ExecStat.execStat("Backend");
    11581159
     
    11661167      end if;
    11671168
    1168       (libs, file_dir, timeSimCode, timeTemplates) := generateModelCodeDAE(bdae, initDAE, removedInitialEquationLst, SymbolTable.getAbsyn(), className, filenameprefix, inSimSettingsOpt, args);
     1169      (libs, file_dir, timeSimCode, timeTemplates) := generateModelCodeDAE(bdae, initDAE, initDAE_lambda0_option, removedInitialEquationLst, SymbolTable.getAbsyn(), className, filenameprefix, inSimSettingsOpt, args);
    11691170      timeSimCode := System.realtimeTock(ClockIndexes.RT_CLOCK_SIMCODE);
    11701171      timeTemplates := System.realtimeTock(ClockIndexes.RT_CLOCK_TEMPLATES);
     
    11991200  input BackendDAE.BackendDAE inBackendDAE;
    12001201  input BackendDAE.BackendDAE inInitDAE;
     1202  input Option<BackendDAE.BackendDAE> initDAE_lambda0_option;
    12011203  input list<BackendDAE.Equation> inRemovedInitialEquationLst;
    12021204  input Absyn.Program p;
     
    12221224  list<SimCodeVar.SimVar> tempVars = {};
    12231225  BackendDAE.BackendDAE emptyBDAE;
     1226  BackendDAE.BackendDAE initDAE_lambda0;
    12241227
    12251228  SimCode.ModelInfo modelInfo;
     
    12561259  SimCode.JacobianMatrix symDAESparsPattern;
    12571260  list<SimCode.JacobianMatrix> symJacs, SymbolicJacs, SymbolicJacsNLS, SymbolicJacsTemp, SymbolicJacsStateSelect;
    1258   list<SimCode.SimEqSystem> initialEquations, removedInitialEquations, jacobianEquations;
     1261  list<SimCode.SimEqSystem> initialEquations;
     1262  list<SimCode.SimEqSystem> initialEquations_lambda0;
     1263  list<SimCode.SimEqSystem> removedInitialEquations, jacobianEquations;
    12591264  list<SimCodeVar.SimVar> jacobianSimvars, seedVars;
    12601265  list<SimCode.SimEqSystem> startValueEquations;        // --> updateBoundStartValues
     
    12941299    // generate equations for initDAE
    12951300    (initialEquations, uniqueEqIndex, tempVars) := SimCodeUtil.createInitialEquations(inInitDAE, uniqueEqIndex, tempVars);
    1296     //initialEquations := listReverse(initialEquations);
     1301
     1302    // generate equations for initDAE_lambda0
     1303    if isSome(initDAE_lambda0_option) then
     1304      SOME(initDAE_lambda0) := initDAE_lambda0_option;
     1305      (initialEquations_lambda0, uniqueEqIndex, tempVars) := SimCodeUtil.createInitialEquations_lambda0(initDAE_lambda0, uniqueEqIndex, tempVars);
     1306    else
     1307      initialEquations_lambda0 := {};
     1308    end if;
    12971309
    12981310    // generate equations for removed initial equations
     
    13391351    (initialEquations, modelInfo, SymbolicJacsTemp) := SimCodeUtil.addAlgebraicLoopsModelInfo(initialEquations, modelInfo);
    13401352    SymbolicJacsNLS := listAppend(SymbolicJacsTemp, SymbolicJacsNLS);
     1353    (initialEquations_lambda0, modelInfo, SymbolicJacsTemp) := SimCodeUtil.addAlgebraicLoopsModelInfo(initialEquations_lambda0, modelInfo);
     1354    SymbolicJacsNLS := listAppend(SymbolicJacsTemp, SymbolicJacsNLS);
    13411355    (parameterEquations, modelInfo, SymbolicJacsTemp) := SimCodeUtil.addAlgebraicLoopsModelInfo(parameterEquations, modelInfo);
    13421356    SymbolicJacsNLS := listAppend(SymbolicJacsTemp, SymbolicJacsNLS);
     
    14231437      clockedPartitions           = {},
    14241438      initialEquations            = initialEquations,
    1425       initialEquations_lambda0    = {},
     1439      initialEquations_lambda0    = initialEquations_lambda0,
    14261440      removedInitialEquations     = removedInitialEquations,
    14271441      startValueEquations         = startValueEquations,
Note: See TracChangeset for help on using the changeset viewer.