Whitespace

This commit is contained in:
Magne Sjaastad 2019-04-01 14:43:55 +02:00
parent 11f9b1fe21
commit 014f389fe3
2 changed files with 150 additions and 145 deletions

View File

@ -17,25 +17,30 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RifReaderEclipseSummary.h"
#include "RiaStringEncodingTools.h"
#include "RiaFilePathTools.h"
#include "RifReaderEclipseOutput.h"
#include "RifEclipseSummaryTools.h"
#include <string>
#include "RiaFilePathTools.h"
#include "RiaStringEncodingTools.h"
#include "RifEclipseSummaryTools.h"
#include "RifReaderEclipseOutput.h"
#include <cassert>
#include <string>
#include <QDateTime>
#include <QDir>
#include <QString>
#include <QStringList>
#include <QDir>
#include "ert/ecl/ecl_file.h"
#include "ert/ecl/ecl_kw.h"
#include "ert/ecl/ecl_kw_magic.h"
#include "ert/ecl/ecl_sum.h"
#include "ert/ecl/smspec_node.h"
#include "ert/ecl/ecl_file.h"
#include "ert/ecl/ecl_kw_magic.h"
#include "ert/ecl/ecl_kw.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<time_t> getTimeSteps(ecl_sum_type* ecl_sum)
{
std::vector<time_t> timeSteps;
@ -53,7 +58,6 @@ std::vector<time_t> getTimeSteps(ecl_sum_type* ecl_sum)
time_t_vector_free(steps);
}
}
return timeSteps;
}
@ -63,9 +67,9 @@ std::vector<time_t> getTimeSteps(ecl_sum_type* ecl_sum)
//--------------------------------------------------------------------------------------------------
ecl_sum_type* openEclSum(const QString& inHeaderFileName, bool includeRestartFiles)
{
QString headerFileName;
QString headerFileName;
QStringList dataFileNames;
QString nativeHeaderFileName = QDir::toNativeSeparators(inHeaderFileName);
QString nativeHeaderFileName = QDir::toNativeSeparators(inHeaderFileName);
RifEclipseSummaryTools::findSummaryFiles(nativeHeaderFileName, &headerFileName, &dataFileNames);
if (headerFileName.isEmpty() || dataFileNames.size() == 0) return nullptr;
@ -79,8 +83,8 @@ ecl_sum_type* openEclSum(const QString& inHeaderFileName, bool includeRestartFil
stringlist_append_copy(dataFiles, RiaStringEncodingTools::toNativeEncoded(dataFileNames[i]).data());
}
bool lazyLoad = true;
std::string itemSeparatorInVariableNames = ":";
bool lazyLoad = true;
std::string itemSeparatorInVariableNames = ":";
ecl_sum_type* ecl_sum = ecl_sum_fread_alloc(RiaStringEncodingTools::toNativeEncoded(headerFileName).data(),
dataFiles,
itemSeparatorInVariableNames.data(),
@ -98,14 +102,14 @@ ecl_sum_type* openEclSum(const QString& inHeaderFileName, bool includeRestartFil
//--------------------------------------------------------------------------------------------------
void closeEclSum(ecl_sum_type* ecl_sum)
{
if(ecl_sum) ecl_sum_free(ecl_sum);
if (ecl_sum) ecl_sum_free(ecl_sum);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifReaderEclipseSummary::RifReaderEclipseSummary()
: m_ecl_sum(nullptr),
m_ecl_SmSpec(nullptr)
: m_ecl_sum(nullptr)
, m_ecl_SmSpec(nullptr)
{
m_valuesCache.reset(new ValuesCache());
}
@ -135,7 +139,7 @@ bool RifReaderEclipseSummary::open(const QString& headerFileName, bool includeRe
{
m_timeSteps.clear();
m_ecl_SmSpec = ecl_sum_get_smspec(m_ecl_sum);
m_timeSteps = getTimeSteps(m_ecl_sum);
m_timeSteps = getTimeSteps(m_ecl_sum);
buildMetaData();
@ -158,14 +162,14 @@ std::vector<RifRestartFileInfo> RifReaderEclipseSummary::getRestartFiles(const Q
RifRestartFileInfo currFile;
currFile.fileName = headerFileName;
while(!currFile.fileName.isEmpty())
while (!currFile.fileName.isEmpty())
{
// Due to a weakness in libecl regarding restart summary header file selection,
// do some extra checking
{
QString formattedHeaderExtension = ".FSMSPEC";
QString formattedHeaderExtension = ".FSMSPEC";
QString nonformattedHeaderExtension = ".SMSPEC";
QString formattedDataFileExtension = ".FUNSMRY";
QString formattedDataFileExtension = ".FUNSMRY";
if (currFile.fileName.endsWith(nonformattedHeaderExtension, Qt::CaseInsensitive))
{
@ -175,8 +179,8 @@ std::vector<RifRestartFileInfo> RifReaderEclipseSummary::getRestartFiles(const Q
formattedDateFile.replace(nonformattedHeaderExtension, formattedDataFileExtension, Qt::CaseInsensitive);
QFileInfo nonformattedHeaderFileInfo = QFileInfo(currFile.fileName);
QFileInfo formattedHeaderFileInfo = QFileInfo(formattedHeaderFile);
QFileInfo formattedDateFileInfo = QFileInfo(formattedDateFile);
QFileInfo formattedHeaderFileInfo = QFileInfo(formattedHeaderFile);
QFileInfo formattedDateFileInfo = QFileInfo(formattedDateFile);
if (formattedHeaderFileInfo.lastModified() < nonformattedHeaderFileInfo.lastModified() &&
formattedHeaderFileInfo.exists() && !formattedDateFileInfo.exists())
{
@ -189,7 +193,7 @@ std::vector<RifRestartFileInfo> RifReaderEclipseSummary::getRestartFiles(const Q
}
}
QString prevFile = currFile.fileName;
currFile = getRestartFile(currFile.fileName);
currFile = getRestartFile(currFile.fileName);
// Fix to stop potential infinite loop
if (currFile.fileName == prevFile)
@ -198,11 +202,9 @@ std::vector<RifRestartFileInfo> RifReaderEclipseSummary::getRestartFiles(const Q
*hasWarnings = true;
break;
}
}
if (!currFile.fileName.isEmpty())
restartFiles.push_back(currFile);
if (!currFile.fileName.isEmpty()) restartFiles.push_back(currFile);
}
return restartFiles;
}
@ -212,14 +214,14 @@ std::vector<RifRestartFileInfo> RifReaderEclipseSummary::getRestartFiles(const Q
//--------------------------------------------------------------------------------------------------
RifRestartFileInfo RifReaderEclipseSummary::getFileInfo(const QString& headerFileName)
{
RifRestartFileInfo fileInfo;
ecl_sum_type* ecl_sum = openEclSum(headerFileName, false);
std::vector<time_t> timeSteps = getTimeSteps(ecl_sum);
RifRestartFileInfo fileInfo;
ecl_sum_type* ecl_sum = openEclSum(headerFileName, false);
std::vector<time_t> timeSteps = getTimeSteps(ecl_sum);
if (timeSteps.size() > 0)
{
fileInfo.fileName = headerFileName;
fileInfo.fileName = headerFileName;
fileInfo.startDate = timeSteps.front();
fileInfo.endDate = timeSteps.back();
fileInfo.endDate = timeSteps.back();
}
closeEclSum(ecl_sum);
return fileInfo;
@ -244,7 +246,7 @@ std::string stringFromPointer(const char* pointerToChar)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::string wellNameFromNode(const smspec_node_type * ertSumVarNode)
std::string wellNameFromNode(const smspec_node_type* ertSumVarNode)
{
return stringFromPointer(smspec_node_get_wgname(ertSumVarNode));
}
@ -252,7 +254,7 @@ std::string wellNameFromNode(const smspec_node_type * ertSumVarNode)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::string lgrNameFromNode(const smspec_node_type * ertSumVarNode)
std::string lgrNameFromNode(const smspec_node_type* ertSumVarNode)
{
return stringFromPointer(smspec_node_get_lgr_name(ertSumVarNode));
}
@ -260,7 +262,7 @@ std::string lgrNameFromNode(const smspec_node_type * ertSumVarNode)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSumVarNode)
RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type* ertSumVarNode)
{
if (smspec_node_get_var_type(ertSumVarNode) == ECL_SMSPEC_INVALID_VAR)
{
@ -268,18 +270,18 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
}
RifEclipseSummaryAddress::SummaryVarCategory sumCategory(RifEclipseSummaryAddress::SUMMARY_INVALID);
std::string quantityName;
int regionNumber(-1);
int regionNumber2(-1);
std::string wellGroupName;
std::string wellName;
int wellSegmentNumber(-1);
std::string lgrName;
int cellI(-1);
int cellJ(-1);
int cellK(-1);
int aquiferNumber(-1);
bool isErrorResult(false);
std::string quantityName;
int regionNumber(-1);
int regionNumber2(-1);
std::string wellGroupName;
std::string wellName;
int wellSegmentNumber(-1);
std::string lgrName;
int cellI(-1);
int cellJ(-1);
int cellK(-1);
int aquiferNumber(-1);
bool isErrorResult(false);
quantityName = smspec_node_get_keyword(ertSumVarNode);
@ -287,19 +289,19 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
{
case ECL_SMSPEC_AQUIFER_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_AQUIFER;
sumCategory = RifEclipseSummaryAddress::SUMMARY_AQUIFER;
aquiferNumber = smspec_node_get_num(ertSumVarNode);
}
break;
case ECL_SMSPEC_WELL_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL;
wellName = wellNameFromNode(ertSumVarNode);
wellName = wellNameFromNode(ertSumVarNode);
}
break;
case ECL_SMSPEC_REGION_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_REGION;
sumCategory = RifEclipseSummaryAddress::SUMMARY_REGION;
regionNumber = smspec_node_get_num(ertSumVarNode);
}
break;
@ -310,7 +312,7 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
break;
case ECL_SMSPEC_GROUP_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_GROUP;
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_GROUP;
wellGroupName = wellNameFromNode(ertSumVarNode);
}
break;
@ -319,47 +321,47 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
sumCategory = RifEclipseSummaryAddress::SUMMARY_BLOCK;
const int* ijk = smspec_node_get_ijk(ertSumVarNode);
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
}
break;
case ECL_SMSPEC_COMPLETION_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION;
wellName = wellNameFromNode(ertSumVarNode);
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION;
wellName = wellNameFromNode(ertSumVarNode);
const int* ijk = smspec_node_get_ijk(ertSumVarNode);
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
}
break;
case ECL_SMSPEC_LOCAL_BLOCK_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR;
lgrName = lgrNameFromNode(ertSumVarNode);
sumCategory = RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR;
lgrName = lgrNameFromNode(ertSumVarNode);
const int* ijk = smspec_node_get_lgr_ijk(ertSumVarNode);
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
}
break;
case ECL_SMSPEC_LOCAL_COMPLETION_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR;
wellName = wellNameFromNode(ertSumVarNode);
lgrName = lgrNameFromNode(ertSumVarNode);
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR;
wellName = wellNameFromNode(ertSumVarNode);
lgrName = lgrNameFromNode(ertSumVarNode);
const int* ijk = smspec_node_get_lgr_ijk(ertSumVarNode);
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
cellI = ijk[0];
cellJ = ijk[1];
cellK = ijk[2];
}
break;
case ECL_SMSPEC_LOCAL_WELL_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_LGR;
wellName = wellNameFromNode(ertSumVarNode);
lgrName = lgrNameFromNode(ertSumVarNode);
wellName = wellNameFromNode(ertSumVarNode);
lgrName = lgrNameFromNode(ertSumVarNode);
}
break;
case ECL_SMSPEC_NETWORK_VAR:
@ -369,16 +371,15 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
break;
case ECL_SMSPEC_REGION_2_REGION_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION;
regionNumber = smspec_node_get_R1(ertSumVarNode);
sumCategory = RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION;
regionNumber = smspec_node_get_R1(ertSumVarNode);
regionNumber2 = smspec_node_get_R2(ertSumVarNode);
}
break;
case ECL_SMSPEC_SEGMENT_VAR:
{
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT;
wellName = wellNameFromNode(ertSumVarNode);
sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT;
wellName = wellNameFromNode(ertSumVarNode);
wellSegmentNumber = smspec_node_get_num(ertSumVarNode);
}
break;
@ -389,7 +390,7 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
break;
default:
CVF_ASSERT(false);
break;
break;
}
return RifEclipseSummaryAddress(sumCategory,
@ -400,7 +401,9 @@ RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSu
wellName,
wellSegmentNumber,
lgrName,
cellI, cellJ, cellK,
cellI,
cellJ,
cellK,
aquiferNumber,
isErrorResult);
}
@ -414,7 +417,7 @@ bool RifReaderEclipseSummary::values(const RifEclipseSummaryAddress& resultAddre
int variableIndex = indexFromAddress(resultAddress);
if ( variableIndex < 0 ) return false;
if (variableIndex < 0) return false;
values->clear();
values->reserve(timeStepCount());
@ -427,14 +430,14 @@ bool RifReaderEclipseSummary::values(const RifEclipseSummaryAddress& resultAddre
else if (m_ecl_SmSpec)
{
const smspec_node_type* ertSumVarNode = ecl_smspec_iget_node(m_ecl_SmSpec, variableIndex);
int paramsIndex = smspec_node_get_params_index(ertSumVarNode);
int paramsIndex = smspec_node_get_params_index(ertSumVarNode);
double_vector_type* dataValues = ecl_sum_alloc_data_vector(m_ecl_sum, paramsIndex, false);
if (dataValues)
{
int dataSize = double_vector_size(dataValues);
const double* dataPtr = double_vector_get_const_ptr(dataValues);
int dataSize = double_vector_size(dataValues);
const double* dataPtr = double_vector_get_const_ptr(dataValues);
values->insert(values->end(), dataPtr, dataPtr + dataSize);
double_vector_free(dataValues);
@ -489,13 +492,13 @@ void RifReaderEclipseSummary::buildMetaData()
m_allResultAddresses.clear();
m_resultAddressToErtNodeIdx.clear();
if(m_ecl_SmSpec)
if (m_ecl_SmSpec)
{
int varCount = ecl_smspec_num_nodes(m_ecl_SmSpec);
for(int i = 0; i < varCount; i++)
for (int i = 0; i < varCount; i++)
{
const smspec_node_type * ertSumVarNode = ecl_smspec_iget_node(m_ecl_SmSpec, i);
RifEclipseSummaryAddress addr = addressFromErtSmSpecNode(ertSumVarNode);
const smspec_node_type* ertSumVarNode = ecl_smspec_iget_node(m_ecl_SmSpec, i);
RifEclipseSummaryAddress addr = addressFromErtSmSpecNode(ertSumVarNode);
m_allResultAddresses.insert(addr);
m_resultAddressToErtNodeIdx[addr] = i;
}
@ -509,17 +512,18 @@ RifRestartFileInfo RifReaderEclipseSummary::getRestartFile(const QString& header
{
ecl_sum_type* ecl_sum = openEclSum(headerFileName, true);
const ecl_smspec_type* smspec = ecl_sum ? ecl_sum_get_smspec(ecl_sum) : nullptr;
const char* rstCase = smspec ? ecl_smspec_get_restart_case(smspec) : nullptr;
QString restartCase = rstCase? RiaFilePathTools::canonicalPath(RiaStringEncodingTools::fromNativeEncoded(rstCase)) : "";
const ecl_smspec_type* smspec = ecl_sum ? ecl_sum_get_smspec(ecl_sum) : nullptr;
const char* rstCase = smspec ? ecl_smspec_get_restart_case(smspec) : nullptr;
QString restartCase = rstCase ? RiaFilePathTools::canonicalPath(RiaStringEncodingTools::fromNativeEncoded(rstCase)) : "";
closeEclSum(ecl_sum);
if (!restartCase.isEmpty())
{
QString path = QFileInfo(restartCase).dir().path();
QString path = QFileInfo(restartCase).dir().path();
QString restartBase = QDir(restartCase).dirName();
char* smspec_header = ecl_util_alloc_exfilename(path.toStdString().data(), restartBase.toStdString().data(), ECL_SUMMARY_HEADER_FILE, false /*unformatted*/, 0);
char* smspec_header = ecl_util_alloc_exfilename(
path.toStdString().data(), restartBase.toStdString().data(), ECL_SUMMARY_HEADER_FILE, false /*unformatted*/, 0);
QString restartFileName = RiaFilePathTools::toInternalSeparator(RiaStringEncodingTools::fromNativeEncoded(smspec_header));
free(smspec_header);
@ -537,9 +541,9 @@ std::string RifReaderEclipseSummary::unitName(const RifEclipseSummaryAddress& re
int variableIndex = indexFromAddress(resultAddress);
if(variableIndex < 0) return "";
if (variableIndex < 0) return "";
const smspec_node_type * ertSumVarNode = ecl_smspec_iget_node(m_ecl_SmSpec, variableIndex);
const smspec_node_type* ertSumVarNode = ecl_smspec_iget_node(m_ecl_SmSpec, variableIndex);
return smspec_node_get_unit(ertSumVarNode);
}
@ -586,7 +590,6 @@ std::set<RifReaderEclipseSummary::ValuesCache*> RifReaderEclipseSummary::ValuesC
//--------------------------------------------------------------------------------------------------
RifReaderEclipseSummary::ValuesCache::ValuesCache()
{
// Register instance
m_instances.insert(this);
}
@ -595,14 +598,14 @@ RifReaderEclipseSummary::ValuesCache::ValuesCache()
//--------------------------------------------------------------------------------------------------
RifReaderEclipseSummary::ValuesCache::~ValuesCache()
{
// Deregister instance
m_instances.erase(this);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifReaderEclipseSummary::ValuesCache::insertValues(const RifEclipseSummaryAddress& address, const std::vector<double>& values)
void RifReaderEclipseSummary::ValuesCache::insertValues(const RifEclipseSummaryAddress& address,
const std::vector<double>& values)
{
m_cachedValues[address] = values;
m_purgeList.erase(address);
@ -633,7 +636,8 @@ void RifReaderEclipseSummary::ValuesCache::markAddressForPurge(const RifEclipseS
//--------------------------------------------------------------------------------------------------
void RifReaderEclipseSummary::ValuesCache::purge()
{
for (auto instance : m_instances) instance->purgeData();
for (auto instance : m_instances)
instance->purgeData();
}
//--------------------------------------------------------------------------------------------------
@ -641,7 +645,7 @@ void RifReaderEclipseSummary::ValuesCache::purge()
//--------------------------------------------------------------------------------------------------
void RifReaderEclipseSummary::ValuesCache::purgeData()
{
for (const auto purgeAddr : m_purgeList)
for (const auto& purgeAddr : m_purgeList)
{
m_cachedValues.erase(purgeAddr);
}

View File

@ -41,6 +41,7 @@ TEST(RifEclipseSummaryTest, BasicTestSetCurrentFolder)
bool hasWarning = false;
std::vector<RifRestartFileInfo> originFileInfos = eclSummary.getRestartFiles(summaryFileName, &hasWarning);
EXPECT_TRUE(originFileInfos.empty());
}
/*