Changeset 15469
- Timestamp:
- 2013-03-04T17:36:00+01:00 (11 years ago)
- Location:
- branches/OMEdit/OMEditGUI
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OMEdit/OMEditGUI/GUI/Dialogs/SimulationDialog.cpp
r15451 r15469 49 49 : QDialog(pParent, Qt::WindowTitleHint) 50 50 { 51 setWindow Title(QString(Helper::applicationName).append(" - ").append(Helper::simulation));51 setWindowIcon(QIcon(":/Resources/icons/simulate.png")); 52 52 setModal(true); 53 53 mpMainWindow = pParent; 54 resize(550, 550); 54 55 setUpForm(); 55 56 mpProgressDialog = new ProgressDialog(this); … … 62 63 { 63 64 // simulation widget heading 64 mpSimulationHeading = new Label (Helper::simulate);65 mpSimulationHeading = new Label; 65 66 mpSimulationHeading->setFont(QFont(Helper::systemFontInfo.family(), Helper::headingFontSize)); 66 67 // Horizontal separator … … 144 145 // Simulation Flags Tab 145 146 mpSimulationFlagsTab = new QWidget; 147 // Simulation Flags Tab scroll area 148 mpSimulationFlagsTabScrollArea = new QScrollArea; 149 mpSimulationFlagsTabScrollArea->setFrameShape(QFrame::NoFrame); 150 mpSimulationFlagsTabScrollArea->setBackgroundRole(QPalette::Base); 151 mpSimulationFlagsTabScrollArea->setWidgetResizable(true); 152 mpSimulationFlagsTabScrollArea->setWidget(mpSimulationFlagsTab); 146 153 // Model Setup File 147 154 mpModelSetupFileLabel = new Label(tr("Model Setup File (Optional):")); 155 mpModelSetupFileLabel->setToolTip(tr("Specifies a new setup XML file to the generated simulation code.")); 148 156 mpModelSetupFileTextBox = new QLineEdit; 149 157 mpModelSetupFileBrowseButton = new QPushButton(Helper::browse); … … 151 159 // Initialization Methods 152 160 mpInitializationMethodLabel = new Label(tr("Initialization Method (Optional):")); 161 mpInitializationMethodLabel->setToolTip(tr("Specifies the initialization method.")); 153 162 mpInitializationMethodComboBox = new QComboBox; 154 163 mpInitializationMethodComboBox->addItems(Helper::ModelicaInitializationMethods.toLower().split(",")); 155 164 // Optimization Methods 156 165 mpOptimizationMethodLabel = new Label(tr("Optimization Method (Optional):")); 166 mpOptimizationMethodLabel->setToolTip(tr("Specifies the initialization optimization method.")); 157 167 mpOptimizationMethodComboBox = new QComboBox; 158 168 mpOptimizationMethodComboBox->addItems(Helper::ModelicaOptimizationMethods.toLower().split(",")); 159 169 // Equation System Initialization File 160 170 mpEquationSystemInitializationFileLabel = new Label(tr("Equation System Initialization File (Optional):")); 171 mpEquationSystemInitializationFileLabel->setToolTip(tr("Specifies an external file for the initialization of the model.")); 161 172 mpEquationSystemInitializationFileTextBox = new QLineEdit; 162 173 mpEquationSystemInitializationFileBrowseButton = new QPushButton(Helper::browse); … … 164 175 // Equation System time 165 176 mpEquationSystemInitializationTimeLabel = new Label(tr("Equation System Initialization Time (Optional):")); 177 mpEquationSystemInitializationTimeLabel->setToolTip(tr("Specifies a time for the initialization of the model.")); 166 178 mpEquationSystemInitializationTimeTextBox = new QLineEdit; 179 // clock 180 mpClockLabel = new Label(tr("Clock (Optional):")); 181 mpClockComboBox = new QComboBox; 182 mpClockComboBox->addItems(Helper::clockOptions.split(",")); 183 // Linear Solvers 184 mpLinearSolverLabel = new Label(tr("Linear Solver (Optional):")); 185 mpLinearSolverComboBox = new QComboBox; 186 mpLinearSolverComboBox->addItems(Helper::linearSolvers.split(",")); 187 // Non Linear Solvers 188 mpNonLinearSolverLabel = new Label(tr("Non Linear Solver (Optional):")); 189 mpNonLinearSolverComboBox = new QComboBox; 190 mpNonLinearSolverComboBox->addItems(Helper::nonLinearSolvers.split(",")); 191 // time where the linearization of the model should be performed 192 mpLinearizationTimeLabel = new Label(tr("Linearization Time (Optional):")); 193 mpLinearizationTimeTextBox = new QLineEdit; 194 // output variables 195 mpOutputVariablesLabel = new Label(tr("Output Variables (Optional):")); 196 mpOutputVariablesLabel->setToolTip(tr("Comma separated list of variables. Output the variables at the end of the simulation to the standard output.")); 197 mpOutputVariablesTextBox = new QLineEdit; 167 198 // Logging 168 199 mpLogDasslSolverCheckBox = new QCheckBox(tr("DASSL Solver Information")); … … 204 235 // layout for logging group 205 236 QGridLayout *pLoggingGroupLayout = new QGridLayout; 206 pLoggingGroupLayout->addWidget(mpLogDasslSolverCheckBox );207 pLoggingGroupLayout->addWidget(mpLogDebugCheckBox );208 pLoggingGroupLayout->addWidget(mpLogDynamicStateSelectionCheckBox );209 pLoggingGroupLayout->addWidget(mpLogJacobianDynamicStateSelectionCheckBox );210 pLoggingGroupLayout->addWidget(mpLogEventsCheckBox );211 pLoggingGroupLayout->addWidget(mpLogVerboseEventsCheckBox );212 pLoggingGroupLayout->addWidget(mpLogInitializationCheckBox );213 pLoggingGroupLayout->addWidget(mpLogJacobianCheckBox );214 pLoggingGroupLayout->addWidget(mpLogNonLinearSystemsCheckBox );215 pLoggingGroupLayout->addWidget(mpLogVerboseNonLinearSystemsCheckBox );216 pLoggingGroupLayout->addWidget(mpLogJacobianNonLinearSystemsCheckBox );217 pLoggingGroupLayout->addWidget(mpLogResidualsInitializationCheckBox );218 pLoggingGroupLayout->addWidget(mpLogSimulationCheckBox );219 pLoggingGroupLayout->addWidget(mpLogSolverCheckBox );220 pLoggingGroupLayout->addWidget(mpLogFinalSolutionOfInitializationCheckBox );221 pLoggingGroupLayout->addWidget(mpLogStatsCheckBox );222 pLoggingGroupLayout->addWidget(mpLogUtilCheckBox );223 pLoggingGroupLayout->addWidget(mpLogZeroCrossingsCheckBox );237 pLoggingGroupLayout->addWidget(mpLogDasslSolverCheckBox, 0, 0); 238 pLoggingGroupLayout->addWidget(mpLogDebugCheckBox, 0, 1); 239 pLoggingGroupLayout->addWidget(mpLogDynamicStateSelectionCheckBox, 1, 0); 240 pLoggingGroupLayout->addWidget(mpLogJacobianDynamicStateSelectionCheckBox, 1, 1); 241 pLoggingGroupLayout->addWidget(mpLogEventsCheckBox, 2, 0); 242 pLoggingGroupLayout->addWidget(mpLogVerboseEventsCheckBox, 2, 1); 243 pLoggingGroupLayout->addWidget(mpLogInitializationCheckBox, 3, 0); 244 pLoggingGroupLayout->addWidget(mpLogJacobianCheckBox, 3, 1); 245 pLoggingGroupLayout->addWidget(mpLogNonLinearSystemsCheckBox, 4, 0); 246 pLoggingGroupLayout->addWidget(mpLogVerboseNonLinearSystemsCheckBox, 4, 1); 247 pLoggingGroupLayout->addWidget(mpLogJacobianNonLinearSystemsCheckBox, 5, 0); 248 pLoggingGroupLayout->addWidget(mpLogResidualsInitializationCheckBox, 5, 1); 249 pLoggingGroupLayout->addWidget(mpLogSimulationCheckBox, 6, 0); 250 pLoggingGroupLayout->addWidget(mpLogSolverCheckBox, 6, 1); 251 pLoggingGroupLayout->addWidget(mpLogFinalSolutionOfInitializationCheckBox, 7, 0); 252 pLoggingGroupLayout->addWidget(mpLogStatsCheckBox, 7, 1); 253 pLoggingGroupLayout->addWidget(mpLogUtilCheckBox, 8, 0); 254 pLoggingGroupLayout->addWidget(mpLogZeroCrossingsCheckBox, 8, 1); 224 255 mpLoggingGroupBox = new QGroupBox(tr("Logging (Optional)")); 225 256 mpLoggingGroupBox->setLayout(pLoggingGroupLayout); 226 mpLoggingScrollArea = new QScrollArea;227 mpLoggingScrollArea->setFrameShape(QFrame::NoFrame);228 mpLoggingScrollArea->setBackgroundRole(QPalette::Base);229 mpLoggingScrollArea->setWidgetResizable(true);230 mpLoggingScrollArea->setWidget(mpLoggingGroupBox);231 257 // measure simulation time checkbox 232 258 mpProfilingCheckBox = new QCheckBox(tr("Profiling (~5-25% overhead)")); 233 259 // cpu-time checkbox 234 mpCPUTimeCheckBox = new QCheckBox(tr("CPU time"));260 mpCPUTimeCheckBox = new QCheckBox(tr("CPU Time")); 235 261 // set Output Tab Layout 236 262 QGridLayout *pSimulationFlagsTabLayout = new QGridLayout; … … 248 274 pSimulationFlagsTabLayout->addWidget(mpEquationSystemInitializationTimeLabel, 4, 0); 249 275 pSimulationFlagsTabLayout->addWidget(mpEquationSystemInitializationTimeTextBox, 4, 1, 1, 2); 250 pSimulationFlagsTabLayout->addWidget(mpLoggingScrollArea, 5, 0, 1, 3); 251 pSimulationFlagsTabLayout->addWidget(mpProfilingCheckBox, 6, 0); 252 pSimulationFlagsTabLayout->addWidget(mpCPUTimeCheckBox, 7, 0); 276 pSimulationFlagsTabLayout->addWidget(mpClockLabel, 5, 0); 277 pSimulationFlagsTabLayout->addWidget(mpClockComboBox, 5, 1, 1, 2); 278 pSimulationFlagsTabLayout->addWidget(mpLinearSolverLabel, 6, 0); 279 pSimulationFlagsTabLayout->addWidget(mpLinearSolverComboBox, 6, 1, 1, 2); 280 pSimulationFlagsTabLayout->addWidget(mpNonLinearSolverLabel, 7, 0); 281 pSimulationFlagsTabLayout->addWidget(mpNonLinearSolverComboBox, 7, 1, 1, 2); 282 pSimulationFlagsTabLayout->addWidget(mpLinearizationTimeLabel, 8, 0); 283 pSimulationFlagsTabLayout->addWidget(mpLinearizationTimeTextBox, 8, 1, 1, 2); 284 pSimulationFlagsTabLayout->addWidget(mpOutputVariablesLabel, 9, 0); 285 pSimulationFlagsTabLayout->addWidget(mpOutputVariablesTextBox, 9, 1, 1, 2); 286 pSimulationFlagsTabLayout->addWidget(mpProfilingCheckBox, 10, 0); 287 pSimulationFlagsTabLayout->addWidget(mpCPUTimeCheckBox, 11, 0); 288 pSimulationFlagsTabLayout->addWidget(mpLoggingGroupBox, 12, 0, 1, 3); 253 289 mpSimulationFlagsTab->setLayout(pSimulationFlagsTabLayout); 254 290 // add Output Tab to Simulation TabWidget 255 mpSimulationTabWidget->addTab(mpSimulationFlagsTab , tr("Simulation Flags"));291 mpSimulationTabWidget->addTab(mpSimulationFlagsTabScrollArea, tr("Simulation Flags")); 256 292 // Add the validators 257 QDoubleValidator * doubleValidator = new QDoubleValidator(this);258 doubleValidator->setBottom(0);259 mpStartTimeTextBox->setValidator( doubleValidator);260 mpStopTimeTextBox->setValidator( doubleValidator);261 mpToleranceTextBox->setValidator( doubleValidator);262 QIntValidator * intValidator = new QIntValidator(this);263 intValidator->setBottom(1);264 mpNumberofIntervalsTextBox->setValidator( intValidator);293 QDoubleValidator *pDoubleValidator = new QDoubleValidator(this); 294 pDoubleValidator->setBottom(0); 295 mpStartTimeTextBox->setValidator(pDoubleValidator); 296 mpStopTimeTextBox->setValidator(pDoubleValidator); 297 mpToleranceTextBox->setValidator(pDoubleValidator); 298 QIntValidator *pIntValidator = new QIntValidator(this); 299 pIntValidator->setBottom(1); 300 mpNumberofIntervalsTextBox->setValidator(pIntValidator); 265 301 // Create the buttons 266 302 mpSimulateButton = new QPushButton(Helper::simulate); … … 294 330 if (mIsInteractive) 295 331 { 296 setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::interactiveSimulation)); 297 mpSimulationHeading->setText(Helper::interactiveSimulation); 332 setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::interactiveSimulation) 333 .append(" - ").append(mpLibraryTreeNode->getNameStructure())); 334 mpSimulationHeading->setText(QString(Helper::interactiveSimulation).append(" - ").append(mpLibraryTreeNode->getNameStructure())); 298 335 mpSimulationIntervalGroupBox->setDisabled(true); 299 336 return; … … 301 338 else 302 339 { 303 setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::simulation)); 304 mpSimulationHeading->setText(Helper::simulation); 340 setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::simulation) 341 .append(" - ").append(mpLibraryTreeNode->getNameStructure())); 342 mpSimulationHeading->setText(QString(Helper::simulation).append(" - ").append(mpLibraryTreeNode->getNameStructure())); 305 343 mpSimulationIntervalGroupBox->setDisabled(false); 306 344 } … … 425 463 { 426 464 simulationFlags.append(QString("-iit=").append(mpEquationSystemInitializationTimeTextBox->text())); 465 } 466 // clock 467 if (!mpClockComboBox->currentText().isEmpty()) 468 { 469 simulationFlags.append(QString("-clock=").append(mpClockComboBox->currentText())); 470 } 471 // linear solver 472 if (!mpLinearSolverComboBox->currentText().isEmpty()) 473 { 474 simulationFlags.append(QString("-ls=").append(mpLinearSolverComboBox->currentText())); 475 } 476 // non linear solver 477 if (!mpNonLinearSolverComboBox->currentText().isEmpty()) 478 { 479 simulationFlags.append(QString("-nls=").append(mpNonLinearSolverComboBox->currentText())); 480 } 481 // time where the linearization of the model should be performed 482 if (!mpLinearizationTimeTextBox->text().isEmpty()) 483 { 484 simulationFlags.append(QString("-l=").append(mpLinearizationTimeTextBox->text())); 485 } 486 // output variables 487 if (!mpOutputVariablesTextBox->text().isEmpty()) 488 { 489 simulationFlags.append(QString("-output=").append(mpOutputVariablesTextBox->text())); 427 490 } 428 491 // setup Logging flags -
branches/OMEdit/OMEditGUI/GUI/Dialogs/SimulationDialog.h
r15141 r15469 87 87 // Simulation Flags Tab 88 88 QWidget *mpSimulationFlagsTab; 89 QScrollArea *mpSimulationFlagsTabScrollArea; 89 90 Label *mpModelSetupFileLabel; 90 91 QLineEdit *mpModelSetupFileTextBox; … … 99 100 Label *mpEquationSystemInitializationTimeLabel; 100 101 QLineEdit *mpEquationSystemInitializationTimeTextBox; 101 QScrollArea *mpLoggingScrollArea; 102 Label *mpClockLabel; 103 QComboBox *mpClockComboBox; 104 Label *mpLinearSolverLabel; 105 QComboBox *mpLinearSolverComboBox; 106 Label *mpNonLinearSolverLabel; 107 QComboBox *mpNonLinearSolverComboBox; 108 Label *mpLinearizationTimeLabel; 109 QLineEdit *mpLinearizationTimeTextBox; 110 Label *mpOutputVariablesLabel; 111 QLineEdit *mpOutputVariablesTextBox; 102 112 QGroupBox *mpLoggingGroupBox; 103 113 QCheckBox *mpLogDasslSolverCheckBox; -
branches/OMEdit/OMEditGUI/GUI/MainWindow.cpp
r15400 r15469 1368 1368 mpSimulationAction = new QAction(QIcon(":/Resources/icons/simulate.png"), Helper::simulate, this); 1369 1369 mpSimulationAction->setStatusTip(Helper::simulateTip); 1370 mpSimulationAction->setShortcut(QKeySequence("Ctrl+r")); 1370 1371 mpSimulationAction->setEnabled(false); 1371 1372 connect(mpSimulationAction, SIGNAL(triggered()), SLOT(openSimulationDialog())); -
branches/OMEdit/OMEditGUI/Util/Helper.cpp
r15424 r15469 75 75 QString Helper::ModelicaOptimizationMethods = ",nelder_mead_ex,nelder_mead_ex2,simplex,newuoa"; 76 76 QString Helper::ModelicaSimulationOutputFormats = "mat,plt,csv,empty"; 77 QString Helper::clockOptions = ",RT,CPU"; 78 QString Helper::linearSolvers = ",lapack"; 79 QString Helper::nonLinearSolvers = ",hybrid,kinsol,newton"; 77 80 QString Helper::fontSizes = "6,7,8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72"; 78 81 QString Helper::notificationLevel = ".OpenModelica.Scripting.ErrorLevel.notification"; -
branches/OMEdit/OMEditGUI/Util/Helper.h
r15424 r15469 84 84 static int headingFontSize; 85 85 static QString ModelicaSimulationMethods; 86 static QString ModelicaSimulationOutputFormats;87 86 static QString ModelicaInitializationMethods; 88 87 static QString ModelicaOptimizationMethods; 88 static QString ModelicaSimulationOutputFormats; 89 static QString clockOptions; 90 static QString linearSolvers; 91 static QString nonLinearSolvers; 89 92 static QString fontSizes; 90 93 static QString notificationLevel;
Note: See TracChangeset
for help on using the changeset viewer.