Skip to content

Commit

Permalink
- Check for simulation executable crashes.
Browse files Browse the repository at this point in the history
- Only send simulation flags if user specify them.

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@11601 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Mar 29, 2012
1 parent cc3c124 commit 4826c64
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
4 changes: 2 additions & 2 deletions OMEdit/OMEditGUI/Helper.cpp
Expand Up @@ -139,8 +139,8 @@ QString Helper::exportToOMNotebook = QString("Exporting model to OMNotebook");
QString Helper::importFromOMNotebook = QString("Importing model from OMNotebook");
/* Simulation Messages */
QString Helper::ModelicaSimulationMethods = "dassl,dassl2,euler,rungekutta,dopri5,inline-euler,inline-rungekutta";
QString Helper::ModelicaInitializationMethods = "none,state";
QString Helper::ModelicaOptimizationMethods = "nelder_mead_ex,nelder_mead_ex2,simplex,newuoa";
QString Helper::ModelicaInitializationMethods = ",none,state";
QString Helper::ModelicaOptimizationMethods = ",nelder_mead_ex,nelder_mead_ex2,simplex,newuoa";
QString Helper::ModelicaSimulationOutputFormats = "mat,plt,csv,empty";

QString Helper::fontSizes = QString("6,7,8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72");
Expand Down
23 changes: 13 additions & 10 deletions OMEdit/OMEditGUI/SimulationWidget.cpp
Expand Up @@ -143,25 +143,25 @@ void SimulationWidget::setUpForm()
// Simulation Flags Tab
mpSimulationFlagsTab = new QWidget;
// Model Setup File
mpModelSetupFileLabel = new QLabel(tr("Model Setup File:"));
mpModelSetupFileLabel = new QLabel(tr("Model Setup File (Optional):"));
mpModelSetupFileTextBox = new QLineEdit;
mpModelSetupFileBrowseButton = new QPushButton(Helper::browse);
connect(mpModelSetupFileBrowseButton, SIGNAL(clicked()), SLOT(browseModelSetupFile()));
// Initialization Methods
mpInitializationMethodLabel = new QLabel(tr("Initialization Method:"));
mpInitializationMethodLabel = new QLabel(tr("Initialization Method (Optional):"));
mpInitializationMethodComboBox = new QComboBox;
mpInitializationMethodComboBox->addItems(Helper::ModelicaInitializationMethods.toLower().split(","));
// Optimization Methods
mpOptimizationMethodLabel = new QLabel(tr("Optimization Method:"));
mpOptimizationMethodLabel = new QLabel(tr("Optimization Method (Optional):"));
mpOptimizationMethodComboBox = new QComboBox;
mpOptimizationMethodComboBox->addItems(Helper::ModelicaOptimizationMethods.toLower().split(","));
// Equation System Initialization File
mpEquationSystemInitializationFileLabel = new QLabel(tr("Equation System Initialization File:"));
mpEquationSystemInitializationFileLabel = new QLabel(tr("Equation System Initialization File (Optional):"));
mpEquationSystemInitializationFileTextBox = new QLineEdit;
mpEquationSystemInitializationFileBrowseButton = new QPushButton(Helper::browse);
connect(mpEquationSystemInitializationFileBrowseButton, SIGNAL(clicked()), SLOT(browseEquationSystemInitializationFile()));
// Equation System time
mpEquationSystemInitializationTimeLabel = new QLabel(tr("Equation System Initialization Time:"));
mpEquationSystemInitializationTimeLabel = new QLabel(tr("Equation System Initialization Time (Optional):"));
mpEquationSystemInitializationTimeTextBox = new QLineEdit;
// Logging
mpLogStatsCheckBox = new QCheckBox(tr("Stats"));
Expand All @@ -182,7 +182,7 @@ void SimulationWidget::setUpForm()
pLoggingGroupLayout->addWidget(mpLogNonLinearSystemsCheckBox);
pLoggingGroupLayout->addWidget(mpLogZeroCrossingsCheckBox);
pLoggingGroupLayout->addWidget(mpLogDebugCheckBox);
mpLoggingGroup = new QGroupBox(tr("Logging"));
mpLoggingGroup = new QGroupBox(tr("Logging (Optional)"));
mpLoggingGroup->setLayout(pLoggingGroupLayout);
// set Output Tab Layout
QGridLayout *pSimulationFlagsTabLayout = new QGridLayout;
Expand Down Expand Up @@ -361,16 +361,19 @@ void SimulationWidget::simulate()
}
// setup simulation flags
// setup initiaization method flag
simulationFlags.append(tr("-iim"));
simulationFlags.append(mpInitializationMethodComboBox->currentText());
if (!mpInitializationMethodComboBox->currentText().isEmpty())
{
simulationFlags.append(tr("-iim"));
simulationFlags.append(mpInitializationMethodComboBox->currentText());
}
// setup Model Setup file flag
if (!mpModelSetupFileTextBox->text().isEmpty())
{
simulationFlags.append(tr("-f"));
simulationFlags.append(mpModelSetupFileTextBox->text());
}
// setup Optimization Method flag
if (!mpModelSetupFileTextBox->text().isEmpty())
if (!mpOptimizationMethodComboBox->currentText().isEmpty())
{
simulationFlags.append(tr("-iom"));
simulationFlags.append(mpOptimizationMethodComboBox->currentText());
Expand Down Expand Up @@ -541,7 +544,7 @@ void SimulationWidget::simulateModel(QString simulationParameters, QStringList s
// we set the Progress Dialog box to hide when we cancel the simulation, so don't show user the plotting view just return.
if (mpProgressDialog->isHidden())
return;
if (mpSimulationProcess->exitCode() != 0)
if (mpSimulationProcess->exitCode() != 0 || mpSimulationProcess->exitStatus() == QProcess::CrashExit)
{
QMessageBox::critical(this, Helper::applicationName + " - Error", GUIMessages::getMessage(GUIMessages::ERROR_OCCURRED).
arg(mpSimulationProcess->errorString().append(" ").append(mpSimulationProcess->readAllStandardError())),
Expand Down

0 comments on commit 4826c64

Please sign in to comment.