Skip to content
This repository has been archived by the owner on May 18, 2019. It is now read-only.

Commit

Permalink
Set fixed attribute in globalKnownVars for ...
Browse files Browse the repository at this point in the history
parameters depending on non-fixed parameters also to false
  • Loading branch information
ptaeuber authored and OpenModelica-Hudson committed Feb 8, 2017
1 parent d9d4df5 commit e4c31ea
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
6 changes: 5 additions & 1 deletion Compiler/BackEnd/BackendDAEUtil.mo
Original file line number Diff line number Diff line change
Expand Up @@ -6800,6 +6800,7 @@ protected
tuple<BackendDAEFunc.StructurallySingularSystemHandlerFunc, String, BackendDAEFunc.stateDeselectionFunc, String> daeHandler;
tuple<BackendDAEFunc.matchingAlgorithmFunc, String> matchingAlgorithm;
BackendDAE.InlineData inlineData;
BackendDAE.Variables globalKnownVars;
algorithm
preOptModules := getPreOptModules(strPreOptModules);
postOptModules := getPostOptModules(strPostOptModules);
Expand Down Expand Up @@ -6844,11 +6845,14 @@ algorithm
end if;

// generate system for initialization
(outInitDAE, outUseHomotopy, outInitDAE_lambda0, outRemovedInitialEquationLst, outPrimaryParameters, outAllPrimaryParameters) := Initialization.solveInitialSystem(dae);
(outInitDAE, outUseHomotopy, outInitDAE_lambda0, outRemovedInitialEquationLst, outPrimaryParameters, outAllPrimaryParameters, globalKnownVars) := Initialization.solveInitialSystem(dae);

// use function tree from initDAE further for simDAE
simDAE := BackendDAEUtil.setFunctionTree(dae, BackendDAEUtil.getFunctions(outInitDAE.shared));

// Set updated globalKnownVars
simDAE := setDAEGlobalKnownVars(simDAE, globalKnownVars);

simDAE := BackendDAEOptimize.addInitialStmtsToAlgorithms(simDAE);
simDAE := Initialization.removeInitializationStuff(simDAE);

Expand Down
5 changes: 4 additions & 1 deletion Compiler/BackEnd/Initialization.mo
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ public function solveInitialSystem "author: lochel
output list<BackendDAE.Equation> outRemovedInitialEquations;
output list<BackendDAE.Var> outPrimaryParameters "already sorted";
output list<BackendDAE.Var> outAllPrimaryParameters "already sorted";
output BackendDAE.Variables outGlobalKnownVars;
protected
BackendDAE.BackendDAE dae;
BackendDAE.BackendDAE initdae;
Expand Down Expand Up @@ -116,7 +117,7 @@ algorithm
//end if;
execStat("inlineWhenForInitialization (initialization)");

(dae, initVars, outPrimaryParameters, outAllPrimaryParameters) := selectInitializationVariablesDAE(dae);
(dae, initVars, outPrimaryParameters, outAllPrimaryParameters, outGlobalKnownVars) := selectInitializationVariablesDAE(dae);
// if Flags.isSet(Flags.DUMP_INITIAL_SYSTEM) then
// BackendDump.dumpVarList(outPrimaryParameters, "selected primary parameters");
// BackendDump.dumpVarList(outAllPrimaryParameters, "selected all primary parameters");
Expand Down Expand Up @@ -782,6 +783,7 @@ protected function selectInitializationVariablesDAE "author: lochel
output BackendDAE.Variables outInitVars;
output list<BackendDAE.Var> outPrimaryParameters = {};
output list<BackendDAE.Var> outAllPrimaryParameters = {};
output BackendDAE.Variables outGlobalKnownVars = dae.shared.globalKnownVars;
protected
BackendDAE.Variables allParameters, otherVariables;
BackendDAE.EquationArray allParameterEqns;
Expand Down Expand Up @@ -844,6 +846,7 @@ algorithm
otherVariables := BackendVariable.addVar(p, otherVariables);
p := BackendVariable.setVarFixed(p, false);
outInitVars := BackendVariable.addVar(p, outInitVars);
outGlobalKnownVars := BackendVariable.addVar(p, outGlobalKnownVars);
else
outAllPrimaryParameters := p::outAllPrimaryParameters;
bindExp := BackendVariable.varBindExpStartValueNoFail(p);
Expand Down

0 comments on commit e4c31ea

Please sign in to comment.