Skip to content

Commit

Permalink
- changed default solver to dassl2 (or from now it's called dassl)
Browse files Browse the repository at this point in the history
   - for now old default solver renamed to dasslold


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@7950 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Willi Braun committed Feb 17, 2011
1 parent eb204c4 commit 805990a
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 13 deletions.
4 changes: 2 additions & 2 deletions Compiler/Main/Main.mo
Expand Up @@ -937,8 +937,8 @@ algorithm
a_cref = Absyn.pathToCref(classname);
file_dir = CevalScript.getFileDir(a_cref, ap);
Debug.fcall("execstat",print, "*** Main -> simcodgen -> generateFunctions: " +& realString(clock()) +& "\n" );
methodflag = RTOpts.debugFlag("SetNewDassl");
methodbyflag = Util.if_(methodflag,"dassl2","dassl");
methodflag = RTOpts.debugFlag("SetOldDassl");
methodbyflag = Util.if_(methodflag,"dasslold","dassl");
simSettings = SimCode.createSimulationSettings(0.0, 1.0, 500, 1e-6,methodbyflag,"","plt",".*");
(_,_,_,_) = SimCode.generateModelCode(p, dae, indexed_dlow_1, Env.getFunctionTree(cache), classname, cname_str, file_dir, ass1, ass2, m, mt, comps, SOME(simSettings));
then
Expand Down
6 changes: 3 additions & 3 deletions Compiler/Script/CevalScript.mo
Expand Up @@ -165,7 +165,7 @@ public constant DAE.Exp defaultNumberOfIntervals = DAE.ICONST(500) "default
public constant DAE.Exp defaultStepSize = DAE.RCONST(0.002) "default stepSize";
public constant DAE.Exp defaultTolerance = DAE.RCONST(1e-6) "default tolerance";
public constant DAE.Exp defaultMethod = DAE.SCONST("dassl") "default method";
public constant DAE.Exp dassl2Method = DAE.SCONST("dassl2")"new method for testing";
public constant DAE.Exp dassl2Method = DAE.SCONST("dasslold")"new method for testing";
public constant DAE.Exp defaultFileNamePrefix = DAE.SCONST("") "default fileNamePrefix";
public constant DAE.Exp defaultStoreInTemp = DAE.BCONST(false) "default storeInTemp";
public constant DAE.Exp defaultNoClean = DAE.BCONST(false) "default noClean";
Expand Down Expand Up @@ -356,7 +356,7 @@ algorithm
// search inside annotation(experiment(...))
case (inSymTab, inModelPath, inFileNamePrefix)
equation
methodflag = RTOpts.debugFlag("SetNewDassl");
methodflag = RTOpts.debugFlag("SetOldDassl");
methodbyflag = Util.if_(methodflag,dassl2SimulationOptions,defaultSimulationOptions);
defaults = setFileNamePrefixInSimulationOptions(methodbyflag, inFileNamePrefix);

Expand Down Expand Up @@ -386,7 +386,7 @@ algorithm
// if we fail, just use the defaults
case (inSymTab, inModelPath, inFileNamePrefix)
equation
methodflag = RTOpts.debugFlag("SetNewDassl");
methodflag = RTOpts.debugFlag("SetOldDassl");
methodbyflag = Util.if_(methodflag,dassl2SimulationOptions,defaultSimulationOptions);
defaults = setFileNamePrefixInSimulationOptions(methodbyflag, inFileNamePrefix);
then
Expand Down
6 changes: 4 additions & 2 deletions c_runtime/simulation_events.cpp
Expand Up @@ -90,7 +90,7 @@ initializeEventData()
gout_old = new double[globalData->nZeroCrossing];
gout_backup = new double[globalData->nZeroCrossing];
gout_res = new modelica_boolean[globalData->nZeroCrossing];
backuprelations = new modelica_boolean[globalData->nRelations];
backuprelations = new modelica_boolean[globalData->nZeroCrossing];
h_saved = new double[globalData->nHelpVars];
x_saved = new double[globalData->nStates];
xd_saved = new double[globalData->nStates];
Expand All @@ -112,7 +112,7 @@ initializeEventData()
memset(gout_old, 0, sizeof(double) * globalData->nZeroCrossing);
memset(gout_backup, 0, sizeof(double) * globalData->nZeroCrossing);
memset(gout_res, 0, sizeof(modelica_boolean) * globalData->nZeroCrossing);
memset(backuprelations, 0, sizeof(modelica_boolean) * globalData->nRelations);
memset(backuprelations, 0, sizeof(modelica_boolean) * globalData->nZeroCrossing);
memset(h_saved, 0, sizeof(double) * globalData->nHelpVars);
memset(x_saved, 0, sizeof(double) * globalData->nStates);
memset(xd_saved, 0, sizeof(double) * globalData->nStates);
Expand Down Expand Up @@ -1164,6 +1164,7 @@ EventHandle(int flag)
int needToIterate = 0;
int IterationNum = 0;
functionDAE(needToIterate);
functionAliasEquations();
if (sim_verbose)
{
sim_result->emit();
Expand All @@ -1182,6 +1183,7 @@ EventHandle(int flag)
}
saveall();
functionDAE(needToIterate);
functionAliasEquations();
if (sim_verbose)
{
sim_result->emit();
Expand Down
12 changes: 6 additions & 6 deletions c_runtime/simulation_runtime.cpp
Expand Up @@ -422,9 +422,9 @@ callSolver(int argc, char**argv, string method, string outputFormat,
if (sim_verbose) {
cout << "No Recognized solver, using dassl." << endl;
}
//retVal = solver_main(argc,argv,start,stop,stepSize,outputSteps,tolerance,3);
retVal = dassl_main(argc, argv, start, stop, stepSize, outputSteps,
tolerance);
retVal = solver_main(argc,argv,start,stop,stepSize,outputSteps,tolerance,3);
//retVal = dassl_main(argc, argv, start, stop, stepSize, outputSteps,
//tolerance);
} else if (method == std::string("euler")) {
if (sim_verbose) {
cout << "Recognized solver: " << method << "." << endl;
Expand All @@ -435,7 +435,7 @@ callSolver(int argc, char**argv, string method, string outputFormat,
cout << "Recognized solver: " << method << "." << endl;
}
retVal = solver_main(argc, argv, start, stop, stepSize, outputSteps, tolerance, 2);
} else if (method == std::string("dassl2")) {
} else if (method == std::string("dassl2") || method == std::string("dassl")) {
if (sim_verbose) {
cout << "Recognized solver: " << method << "." << endl;
}
Expand Down Expand Up @@ -469,11 +469,11 @@ callSolver(int argc, char**argv, string method, string outputFormat,
}
retVal = solver_main(argc, argv, start, stop, stepSize, outputSteps, tolerance, 4);
}
} else if (method == std::string("dassl")) {
/*} else if (method == std::string("dassl")) {
if (sim_verbose) {
cout << "Recognized solver: " << method << "." << endl;
}
retVal = dassl_main(argc, argv, start, stop, stepSize, outputSteps, tolerance);
retVal = dassl_main(argc, argv, start, stop, stepSize, outputSteps, tolerance);*/
} else {
cout << "Unrecognized solver: " << method
<< "; valid solvers are dassl,euler,rungekutta,dassl2,inline-euler or inline-rungekutta."
Expand Down

0 comments on commit 805990a

Please sign in to comment.