mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3454 ExportProperty. Default result type set to undefined. Search through types when type not specified
This commit is contained in:
parent
ce26437130
commit
116b36bbc8
@ -35,7 +35,9 @@ namespace RiaDefines
|
|||||||
FORMATION_NAMES,
|
FORMATION_NAMES,
|
||||||
FLOW_DIAGNOSTICS,
|
FLOW_DIAGNOSTICS,
|
||||||
INJECTION_FLOODING,
|
INJECTION_FLOODING,
|
||||||
REMOVED
|
REMOVED,
|
||||||
|
|
||||||
|
UNDEFINED = 999
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CompletionType {
|
enum CompletionType {
|
||||||
|
@ -23,6 +23,12 @@
|
|||||||
#include "RiaApplication.h"
|
#include "RiaApplication.h"
|
||||||
#include "RiaLogging.h"
|
#include "RiaLogging.h"
|
||||||
|
|
||||||
|
#include "RigCaseCellResultsData.h"
|
||||||
|
#include "RigEclipseCaseData.h"
|
||||||
|
#include "RigMainGrid.h"
|
||||||
|
#include "RigResultAccessor.h"
|
||||||
|
#include "RigResultAccessorFactory.h"
|
||||||
|
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
#include "RimOilField.h"
|
#include "RimOilField.h"
|
||||||
#include "RimEclipseCaseCollection.h"
|
#include "RimEclipseCaseCollection.h"
|
||||||
@ -46,7 +52,7 @@ RicfExportProperty::RicfExportProperty()
|
|||||||
RICF_InitField(&m_caseId, "caseId", -1, "Case ID", "", "", "");
|
RICF_InitField(&m_caseId, "caseId", -1, "Case ID", "", "", "");
|
||||||
RICF_InitField(&m_timeStepIndex, "timeStep", -1, "Time Step Index", "", "", "");
|
RICF_InitField(&m_timeStepIndex, "timeStep", -1, "Time Step Index", "", "", "");
|
||||||
RICF_InitField(&m_propertyName, "property", QString(), "Property Name", "", "", "");
|
RICF_InitField(&m_propertyName, "property", QString(), "Property Name", "", "", "");
|
||||||
RICF_InitField(&m_type, "type", caf::AppEnum<RiaDefines::ResultCatType>(RiaDefines::DYNAMIC_NATIVE), "Property type", "", "", "");
|
RICF_InitField(&m_type, "type", caf::AppEnum<RiaDefines::ResultCatType>(RiaDefines::UNDEFINED), "Property type", "", "", "");
|
||||||
RICF_InitField(&m_eclipseKeyword, "eclipseKeyword", QString(), "Eclipse Keyword", "", "", "");
|
RICF_InitField(&m_eclipseKeyword, "eclipseKeyword", QString(), "Eclipse Keyword", "", "", "");
|
||||||
RICF_InitField(&m_undefinedValue, "undefinedValue", 0.0, "Undefined Value", "", "", "");
|
RICF_InitField(&m_undefinedValue, "undefinedValue", 0.0, "Undefined Value", "", "", "");
|
||||||
RICF_InitField(&m_path, "exportFile", QString(), "Export File", "", "", "");
|
RICF_InitField(&m_path, "exportFile", QString(), "Export File", "", "", "");
|
||||||
@ -104,9 +110,42 @@ void RicfExportProperty::execute()
|
|||||||
m_eclipseKeyword = m_propertyName;
|
m_eclipseKeyword = m_propertyName;
|
||||||
}
|
}
|
||||||
|
|
||||||
view->cellResult()->setResultType(m_type());
|
auto resultAccessor = findResult(view, eclipseCase, m_timeStepIndex, m_type(), m_propertyName);
|
||||||
view->cellResult()->setResultVariable(m_propertyName());
|
if (!resultAccessor.isNull())
|
||||||
view->loadDataAndUpdate();
|
{
|
||||||
|
RifEclipseInputFileTools::writeResultToTextFile(filePath, eclipseCase->eclipseCaseData(), resultAccessor, m_eclipseKeyword, m_undefinedValue);
|
||||||
RifEclipseInputFileTools::writeBinaryResultToTextFile(filePath, eclipseCase->eclipseCaseData(), m_timeStepIndex, view->cellResult(), m_eclipseKeyword, m_undefinedValue);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
cvf::ref<RigResultAccessor> RicfExportProperty::findResult(RimEclipseView* view,
|
||||||
|
RimEclipseCase* eclipseCase,
|
||||||
|
size_t timeStep,
|
||||||
|
RiaDefines::ResultCatType resultType,
|
||||||
|
const QString& property)
|
||||||
|
{
|
||||||
|
size_t resultIndex = cvf::UNDEFINED_SIZE_T;
|
||||||
|
|
||||||
|
if (resultType == RiaDefines::UNDEFINED)
|
||||||
|
{
|
||||||
|
resultIndex = eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadScalarResult(property);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resultIndex = eclipseCase->results(RiaDefines::MATRIX_MODEL)->findOrLoadScalarResult(resultType, property);
|
||||||
|
}
|
||||||
|
|
||||||
|
cvf::ref<RigResultAccessor> resultAccessor = nullptr;
|
||||||
|
if (resultIndex != cvf::UNDEFINED_SIZE_T)
|
||||||
|
{
|
||||||
|
resultAccessor = RigResultAccessorFactory::createFromResultIdx(eclipseCase->eclipseCaseData(),
|
||||||
|
0,
|
||||||
|
RiaDefines::MATRIX_MODEL,
|
||||||
|
timeStep,
|
||||||
|
resultIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultAccessor;
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,16 @@
|
|||||||
|
|
||||||
#include "RicfCommandObject.h"
|
#include "RicfCommandObject.h"
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
|
|
||||||
|
#include <cvfObject.h>
|
||||||
|
|
||||||
|
class RigResultAccessor;
|
||||||
|
class RimEclipseCase;
|
||||||
|
class RimEclipseView;
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
@ -38,6 +46,12 @@ public:
|
|||||||
|
|
||||||
virtual void execute() override;
|
virtual void execute() override;
|
||||||
|
|
||||||
|
cvf::ref<RigResultAccessor> findResult(RimEclipseView* view,
|
||||||
|
RimEclipseCase* eclipseCase,
|
||||||
|
size_t timeStep,
|
||||||
|
RiaDefines::ResultCatType resultType,
|
||||||
|
const QString& property);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
caf::PdmField<int> m_caseId;
|
caf::PdmField<int> m_caseId;
|
||||||
caf::PdmField<int> m_timeStepIndex;
|
caf::PdmField<int> m_timeStepIndex;
|
||||||
|
@ -521,6 +521,18 @@ bool RifEclipseInputFileTools::writeBinaryResultToTextFile(const QString& fileNa
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return writeResultToTextFile(fileName, eclipseCase, resultAccessor, eclipseKeyWord, undefinedValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RifEclipseInputFileTools::writeResultToTextFile(const QString& fileName,
|
||||||
|
RigEclipseCaseData* eclipseCase,
|
||||||
|
cvf::ref<RigResultAccessor> resultAccessor,
|
||||||
|
const QString& eclipseKeyWord,
|
||||||
|
const double undefinedValue)
|
||||||
|
{
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
|
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||||
{
|
{
|
||||||
@ -547,7 +559,6 @@ bool RifEclipseInputFileTools::writeBinaryResultToTextFile(const QString& fileNa
|
|||||||
}
|
}
|
||||||
|
|
||||||
writeDataToTextFile(&file, eclipseKeyWord, resultData);
|
writeDataToTextFile(&file, eclipseKeyWord, resultData);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
class RigEclipseCaseData;
|
class RigEclipseCaseData;
|
||||||
class QFile;
|
class QFile;
|
||||||
class RimEclipseResultDefinition;
|
class RimEclipseResultDefinition;
|
||||||
|
class RigResultAccessor;
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
/// Structure used to cache file position of keywords
|
/// Structure used to cache file position of keywords
|
||||||
@ -78,6 +78,7 @@ public:
|
|||||||
|
|
||||||
static bool writePropertyToTextFile(const QString& fileName, RigEclipseCaseData* eclipseCase, size_t timeStep, const QString& resultName, const QString& eclipseKeyWord);
|
static bool writePropertyToTextFile(const QString& fileName, RigEclipseCaseData* eclipseCase, size_t timeStep, const QString& resultName, const QString& eclipseKeyWord);
|
||||||
static bool writeBinaryResultToTextFile(const QString& fileName, RigEclipseCaseData* eclipseCase, size_t timeStep, RimEclipseResultDefinition* resultdefinition, const QString& eclipseKeyWord, const double undefinedValue);
|
static bool writeBinaryResultToTextFile(const QString& fileName, RigEclipseCaseData* eclipseCase, size_t timeStep, RimEclipseResultDefinition* resultdefinition, const QString& eclipseKeyWord, const double undefinedValue);
|
||||||
|
static bool writeResultToTextFile(const QString& fileName, RigEclipseCaseData* eclipseCase, cvf::ref<RigResultAccessor> resultAccessor, const QString& eclipseKeyWord, const double undefinedValue);
|
||||||
|
|
||||||
static bool readFaultsAndParseIncludeStatementsRecursively( QFile& file,
|
static bool readFaultsAndParseIncludeStatementsRecursively( QFile& file,
|
||||||
qint64 startPos,
|
qint64 startPos,
|
||||||
|
Loading…
Reference in New Issue
Block a user