mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Read units type from file and set CDARCHY value based on units type
This commit is contained in:
@@ -329,3 +329,26 @@ void RifEclipseOutputFileTools::readGridDimensions(const QString& gridFileName,
|
||||
stringlist_free( lgr_names );
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Returns the following integer values from the first INTEHEAD keyword found
|
||||
/// 1 : METRIC
|
||||
/// 2 : FIELD
|
||||
/// 3 : LAB
|
||||
/// -1 : No INTEHEAD keyword found
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RifEclipseOutputFileTools::readUnitsType(ecl_file_type* ecl_file)
|
||||
{
|
||||
int unitsType = -1;
|
||||
|
||||
if (ecl_file)
|
||||
{
|
||||
ecl_kw_type* kwINTEHEAD = ecl_file_iget_named_kw(ecl_file, INTEHEAD_KW, 0);
|
||||
if (kwINTEHEAD)
|
||||
{
|
||||
unitsType = ecl_kw_iget_int(kwINTEHEAD, INTEHEAD_UNIT_INDEX);
|
||||
}
|
||||
}
|
||||
|
||||
return unitsType;
|
||||
}
|
||||
|
@@ -56,4 +56,6 @@ public:
|
||||
static QStringList filterFileNamesOfType(const QStringList& fileSet, ecl_file_enum fileType);
|
||||
|
||||
static void readGridDimensions(const QString& gridFileName, std::vector< std::vector<int> >& gridDimensions);
|
||||
|
||||
static int readUnitsType(ecl_file_type* ecl_file);
|
||||
};
|
||||
|
@@ -54,4 +54,5 @@ public:
|
||||
virtual bool results(const QString& resultName, size_t timeStep, size_t gridCount, std::vector<double>* values) = 0;
|
||||
|
||||
virtual void readWellData(well_info_type * well_info) = 0;
|
||||
virtual int readUnitsType() = 0;
|
||||
};
|
||||
|
@@ -240,3 +240,19 @@ void RifEclipseRestartFilesetAccess::openTimeStep(size_t timeStep)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RifEclipseRestartFilesetAccess::readUnitsType()
|
||||
{
|
||||
ecl_file_type* ecl_file = NULL;
|
||||
|
||||
if (m_ecl_files.size() > 0)
|
||||
{
|
||||
openTimeStep(0);
|
||||
ecl_file = m_ecl_files[0];
|
||||
}
|
||||
|
||||
return RifEclipseOutputFileTools::readUnitsType(ecl_file);
|
||||
}
|
||||
|
||||
|
@@ -47,6 +47,7 @@ public:
|
||||
bool results(const QString& resultName, size_t timeStep, size_t gridCount, std::vector<double>* values);
|
||||
|
||||
virtual void readWellData(well_info_type* well_info);
|
||||
virtual int readUnitsType();
|
||||
|
||||
private:
|
||||
void openTimeStep(size_t timeStep);
|
||||
|
@@ -163,3 +163,13 @@ void RifEclipseUnifiedRestartFileAccess::setRestartFiles(const QStringList& file
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RifEclipseUnifiedRestartFileAccess::readUnitsType()
|
||||
{
|
||||
openFile();
|
||||
|
||||
return RifEclipseOutputFileTools::readUnitsType(m_ecl_file);
|
||||
}
|
||||
|
||||
|
@@ -48,6 +48,7 @@ public:
|
||||
bool results(const QString& resultName, size_t timeStep, size_t gridCount, std::vector<double>* values);
|
||||
|
||||
virtual void readWellData(well_info_type * well_info);
|
||||
virtual int readUnitsType();
|
||||
|
||||
private:
|
||||
bool openFile();
|
||||
|
@@ -16,28 +16,29 @@
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "cvfBase.h"
|
||||
|
||||
#include "RigMainGrid.h"
|
||||
#include "RigCaseData.h"
|
||||
#include "RigCaseCellResultsData.h"
|
||||
|
||||
#include "RifReaderEclipseOutput.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigCaseData.h"
|
||||
#include "RigMainGrid.h"
|
||||
|
||||
#include "RifEclipseInputFileTools.h"
|
||||
#include "RifEclipseOutputFileTools.h"
|
||||
#include "RifEclipseUnifiedRestartFileAccess.h"
|
||||
#include "RifEclipseRestartFilesetAccess.h"
|
||||
#include "RifEclipseUnifiedRestartFileAccess.h"
|
||||
#include "RifReaderInterface.h"
|
||||
|
||||
#include <iostream>
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
#include "ecl_grid.h"
|
||||
#include "well_state.h"
|
||||
#include "ecl_kw_magic.h"
|
||||
#include "ecl_nnc_export.h"
|
||||
|
||||
#include "cafProgressInfo.h"
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include "RifEclipseInputFileTools.h"
|
||||
#include <cmath> // Needed for HUGE_VAL on Linux
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// ECLIPSE cell numbering layout:
|
||||
@@ -676,6 +677,22 @@ void RifReaderEclipseOutput::buildMetaData()
|
||||
fractureModelResults->setTimeStepDates(resIndex, m_timeSteps);
|
||||
}
|
||||
}
|
||||
|
||||
// Default units type is METRIC
|
||||
RigCaseData::UnitsType unitsType = RigCaseData::UNITS_METRIC;
|
||||
{
|
||||
int unitsTypeValue = m_dynamicResultsAccess->readUnitsType();
|
||||
if (unitsTypeValue == 2)
|
||||
{
|
||||
unitsType = RigCaseData::UNITS_FIELD;
|
||||
}
|
||||
else if (unitsTypeValue == 3)
|
||||
{
|
||||
unitsType = RigCaseData::UNITS_LAB;
|
||||
}
|
||||
}
|
||||
|
||||
m_eclipseCase->setUnitsType(unitsType);
|
||||
}
|
||||
|
||||
progInfo.incrementProgress();
|
||||
|
Reference in New Issue
Block a user