Skip to content

Commit

Permalink
Add convert results SV gui code and Python script.
Browse files Browse the repository at this point in the history
  • Loading branch information
ktbolt committed Sep 13, 2019
1 parent 4940b38 commit b5bb828
Show file tree
Hide file tree
Showing 13 changed files with 621 additions and 207 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@ bool sv4guiSimulationPythonConvert1d::ConvertResults(const std::string outputDir
mb.setDetailedText(QString(sResult.c_str()));
mb.setDefaultButton(QMessageBox::Ok);
mb.exec();
} else {
QString rmsg = "1D solver files have been successfully converted.\n";
MITK_INFO << msg << rmsg;
QMessageBox::information(NULL, sv4guiSimulationView1d::MsgTitle, rmsg);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ class sv4guiSimulationPythonConvert1dParamNames
sv4guiSimulationPythonConvert1dParamNames() {
allNames.insert(OUTPUT_DIRECTORY);
}
const std::string ALL_SEGMENTS = "all_segments";
const std::string DATA_NAMES = "data_names";
const std::string OUTPUT_DIRECTORY = "output_directory";
const std::string OUTPUT_FILE_NAME = "output_file_name";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,22 @@ const std::vector<QString> sv4guiSimulationView1d::SegmentExportType::types =
sv4guiSimulationView1d::SegmentExportType::OUTLET
};

// Set export data names.
//
const QString sv4guiSimulationView1d::DataExportName::AREA = "area";
const QString sv4guiSimulationView1d::DataExportName::FLOW = "flow";
const QString sv4guiSimulationView1d::DataExportName::PRESSURE = "pressure";
const QString sv4guiSimulationView1d::DataExportName::WSS = "wss";
const QString sv4guiSimulationView1d::DataExportName::RE = "Re";
const std::vector<QString> sv4guiSimulationView1d::DataExportName::names =
{
sv4guiSimulationView1d::DataExportName::AREA,
sv4guiSimulationView1d::DataExportName::FLOW,
sv4guiSimulationView1d::DataExportName::PRESSURE,
sv4guiSimulationView1d::DataExportName::RE,
sv4guiSimulationView1d::DataExportName::WSS
};


//------------------------
// sv4guiSimulationView1d
Expand Down Expand Up @@ -496,14 +512,22 @@ void sv4guiSimulationView1d::CreateQtPartControl( QWidget *parent )
ui->CreateSimulationFilesButton->setEnabled(false);
ui->RunSimulationPushButton->setEnabled(false);

// Convert Results.
// Convert Results toolbox tab.
//
connect(ui->SegmentExportComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(SelectSegmentExportType(int)));
for (auto const& type : SegmentExportType::types) {
ui->SegmentExportComboBox->addItem(type);
}
ui->SegmentExportComboBox->setCurrentIndex(1);

for (auto const& name : DataExportName::names) {
ui->DataExportListWidget->addItem(name);
//QListWidgetItem *listItem = new QListWidgetItem(name, listWidget);
//listItem->setCheckState(Qt::Unchecked);
//ui->DataExportListWidget->addItem(listItem);
}
ui->DataExportListWidget->setSelectionMode(QListWidget::MultiSelection);

connect(ui->toolButtonResultDir, SIGNAL(clicked()), this, SLOT(SetResultDir()) );
connect(ui->btnExportResults, SIGNAL(clicked()), this, SLOT(ExportResults()) );

Expand Down Expand Up @@ -4433,16 +4457,32 @@ void sv4guiSimulationView1d::ExportResults()

pythonInterface.AddParameter(params.RESULTS_DIRECTORY, resultDir.toStdString());
pythonInterface.AddParameter(params.SOLVER_FILE_NAME, "solver.in");

pythonInterface.AddParameter(params.OUTPUT_DIRECTORY, exportDir.toStdString());
pythonInterface.AddParameter(params.OUTPUT_FILE_NAME, jobName.toStdString());

pythonInterface.AddParameter(params.DATA_NAMES, "flow");

pythonInterface.AddParameter(params.TIME_RANGE, "0.0,0.8");

// Convert resuls for all outlet segments.
pythonInterface.AddParameter(params.OUTLET_SEGMENTS, "true");
// Set the data names to convert.
//
std::string dataNames;
auto selectedItems = ui->DataExportListWidget->selectedItems();
for (auto const& item : selectedItems) {
auto dataName = item->text().toStdString();
MITK_INFO << msg << "Selected data name: " << dataName;
dataNames += dataName + ",";
}
dataNames.pop_back();
pythonInterface.AddParameter(params.DATA_NAMES, dataNames);

// Set time range of data to export.
auto timeRange = startTimeStr + "," + stopTimeStr;
pythonInterface.AddParameter(params.TIME_RANGE, timeRange.toStdString());

// Set convert resuls for all or only outlet segments.
auto segmentExportType = ui->SegmentExportComboBox->currentText();
if (segmentExportType == sv4guiSimulationView1d::SegmentExportType::ALL) {
pythonInterface.AddParameter(params.ALL_SEGMENTS, "true");
} else {
pythonInterface.AddParameter(params.OUTLET_SEGMENTS, "true");
}

// Execute the Python script to generate the 1D solver input file.
auto statusMsg = "Converting simulation files ...";
Expand All @@ -4452,38 +4492,12 @@ void sv4guiSimulationView1d::ExportResults()

if (!status) {
QMessageBox::warning(NULL, MsgTitle, "Converting 1D solver results has failed.");
return false;
return;
}


/*
QString msg = "";
if(convertedFilesExit)
{
msg="Results have been converted.";
if(!meshFaceDirExits)
msg=msg+"\nNo mesh face dir exits.";
else if(!meshFaceFilesExist)
msg=msg+"\nNo mesh face files exit.";
else if(!calculateFlows)
msg=msg+"\nFail to calculate flows.";
}
else
msg="Results not converted.";
msg=msg+" ";
QMessageBox mb(m_Parent);
mb.setWindowTitle("Finished");
mb.setText(msg);
mb.setIcon(QMessageBox::Information);
mb.setDetailedText(detailedInfo);
mb.setDefaultButton(QMessageBox::Ok);
mb.exec();
mitk::StatusBar::GetInstance()->DisplayText("Results converting finished.");
*/
statusMsg = "Simulation files have been converted.";
ui->JobStatusValueLabel->setText(statusMsg);
mitk::StatusBar::GetInstance()->DisplayText(statusMsg);
}

//---------------------
Expand Down Expand Up @@ -4607,13 +4621,6 @@ void sv4guiSimulationView1d::UpdateSimJob()
CheckInputState();
}

/*
void sv4guiSimulationView1d::ShowCalculateFowsWidget(bool checked)
{
ui->widgetCalculateFlows->setVisible(checked);
}
*/

#if defined(Q_OS_WIN)
QString sv4guiSimulationView1d::FindLatestKey(QString key, QStringList keys)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,16 @@ class sv4guiSimulationView1d : public sv4guiQmitkFunctionality
static const std::vector<QString> types;
};

class DataExportName {
public:
static const QString AREA;
static const QString FLOW;
static const QString PRESSURE;
static const QString RE;
static const QString WSS;
static const std::vector<QString> names;
};

class CenterlinesSource {
public:
static const QString CALCULATE;
Expand Down Expand Up @@ -278,8 +288,6 @@ public slots:

void SetupInternalSolverPaths();

void ShowCalculateFowsWidget(bool checked = false);

public:

virtual void CreateQtPartControl(QWidget *parent) override;
Expand Down
Loading

0 comments on commit b5bb828

Please sign in to comment.