#1087 - pre-proto - Checking units of case and fractures in export, if mismatch is detected export is aborted.

This commit is contained in:
astridkbjorke 2017-02-14 10:58:55 +01:00
parent 41836a4930
commit 3fac46b1a9
2 changed files with 39 additions and 0 deletions

View File

@ -36,6 +36,7 @@
#include <QFile>
#include <QString>
#include <QTextStream>
#include <QDebug>
@ -61,6 +62,12 @@ RifEclipseExportTools::~RifEclipseExportTools()
//--------------------------------------------------------------------------------------------------
bool RifEclipseExportTools::writeFracturesToTextFile(const QString& fileName, const std::vector< RimFracture*>& fractures, RimEclipseCase* caseToApply)
{
if (!(unitsMatchCaseAndFractures(caseToApply, fractures)))
{
qDebug() << "ERROR: The case selected and relevant fractures does not have consistent unit system.";
return false;
}
RiaApplication* app = RiaApplication::instance();
RimView* activeView = RiaApplication::instance()->activeReservoirView();
if (!activeView) return false;
@ -131,6 +138,36 @@ bool RifEclipseExportTools::writeFracturesToTextFile(const QString& fileName, c
return true;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RifEclipseExportTools::unitsMatchCaseAndFractures(RimEclipseCase* caseToApply, const std::vector<RimFracture *>& fractures)
{
bool unitsMatch = true;
RigEclipseCaseData::UnitsType caseUnit = caseToApply->reservoirData()->unitsType();
for (RimFracture* fracture : fractures)
{
if (fracture->attachedFractureDefinition())
{
if ((fracture->attachedFractureDefinition()->fractureTemplateUnit) == RimFractureTemplate::UNITS_METRIC)
{
if (!(caseUnit == RigEclipseCaseData::UNITS_METRIC))
{
unitsMatch = false;
}
}
else if ((fracture->attachedFractureDefinition()->fractureTemplateUnit) == RimFractureTemplate::UNITS_FIELD)
{
if (!(caseUnit == RigEclipseCaseData::UNITS_FIELD))
{
unitsMatch = false;
}
}
}
}
return unitsMatch;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -51,6 +51,8 @@ public:
static bool writeFracturesToTextFile(const QString& fileName, const std::vector<RimFracture*>& fractures, RimEclipseCase* caseToApply);
static bool unitsMatchCaseAndFractures(RimEclipseCase* caseToApply, const std::vector<RimFracture *>& fractures);
static void printCOMPDATvalues(QTextStream & out, RigFractureData &fracData, RimFracture* fracture, RimWellPath* wellPath, RimEclipseWell* simWell, const RigMainGrid* mainGrid);
static void printBackgroundDataHeaderLine(QTextStream & out);