mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1099 Flow results only available when the case has fluxes
This commit is contained in:
parent
2d9da8b45f
commit
bd31317000
@ -60,9 +60,6 @@ RimEclipseResultCase::RimEclipseResultCase()
|
|||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault (&m_flowDiagSolutions, "FlowDiagSolutions", "Flow Diagnostics Solutions", "", "", "");
|
CAF_PDM_InitFieldNoDefault (&m_flowDiagSolutions, "FlowDiagSolutions", "Flow Diagnostics Solutions", "", "", "");
|
||||||
|
|
||||||
// TODO: Create a solution by default only when flux data is available
|
|
||||||
m_flowDiagSolutions.push_back( new RimFlowDiagSolution());
|
|
||||||
|
|
||||||
// Obsolete, unused field
|
// Obsolete, unused field
|
||||||
CAF_PDM_InitField(&caseDirectory, "CaseFolder", QString(), "Directory", "", "" ,"");
|
CAF_PDM_InitField(&caseDirectory, "CaseFolder", QString(), "Directory", "", "" ,"");
|
||||||
caseDirectory.xmlCapability()->setIOWritable(false);
|
caseDirectory.xmlCapability()->setIOWritable(false);
|
||||||
@ -73,7 +70,7 @@ RimEclipseResultCase::RimEclipseResultCase()
|
|||||||
flipYAxis.xmlCapability()->setIOWritable(true);
|
flipYAxis.xmlCapability()->setIOWritable(true);
|
||||||
//flipYAxis.uiCapability()->setUiHidden(true);
|
//flipYAxis.uiCapability()->setUiHidden(true);
|
||||||
|
|
||||||
m_flowDagSolverInterface = new RigFlowDiagSolverInterface(this);
|
|
||||||
|
|
||||||
m_activeCellInfoIsReadFromFile = false;
|
m_activeCellInfoIsReadFromFile = false;
|
||||||
m_gridAndWellDataIsReadFromFile = false;
|
m_gridAndWellDataIsReadFromFile = false;
|
||||||
@ -135,6 +132,12 @@ bool RimEclipseResultCase::openEclipseGridFile()
|
|||||||
m_gridAndWellDataIsReadFromFile = true;
|
m_gridAndWellDataIsReadFromFile = true;
|
||||||
m_activeCellInfoIsReadFromFile = true;
|
m_activeCellInfoIsReadFromFile = true;
|
||||||
|
|
||||||
|
if (reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->hasFlowDiagUsableFluxes())
|
||||||
|
{
|
||||||
|
m_flowDiagSolutions.push_back( new RimFlowDiagSolution());
|
||||||
|
m_flowDagSolverInterface = new RigFlowDiagSolverInterface(this);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,6 +318,37 @@ QList<caf::PdmOptionItemInfo> RimEclipseResultDefinition::calculateValueOptions(
|
|||||||
{
|
{
|
||||||
QList<caf::PdmOptionItemInfo> options;
|
QList<caf::PdmOptionItemInfo> options;
|
||||||
|
|
||||||
|
if ( fieldNeedingOptions == &m_resultTypeUiField )
|
||||||
|
{
|
||||||
|
|
||||||
|
bool hasFlowDiagFluxes = false;
|
||||||
|
RimEclipseResultCase* eclResCase = dynamic_cast<RimEclipseResultCase*>(m_eclipseCase.p());
|
||||||
|
if ( eclResCase && eclResCase->reservoirData() )
|
||||||
|
{
|
||||||
|
hasFlowDiagFluxes = eclResCase->reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->hasFlowDiagUsableFluxes();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do not include flow diag results if not available
|
||||||
|
|
||||||
|
if ( !hasFlowDiagFluxes )
|
||||||
|
{
|
||||||
|
using ResCatEnum = caf::AppEnum< RimDefines::ResultCatType >;
|
||||||
|
for ( int i = 0; i < ResCatEnum::size(); ++i )
|
||||||
|
{
|
||||||
|
RimDefines::ResultCatType resType = ResCatEnum::fromIndex(i);
|
||||||
|
if ( resType != RimDefines::FLOW_DIAGNOSTICS )
|
||||||
|
{
|
||||||
|
QString uiString = ResCatEnum::uiTextFromIndex(i);
|
||||||
|
options.push_back(caf::PdmOptionItemInfo(uiString, resType));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Do nothing, and thereby use the defaults of the AppEnum field
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_resultTypeUiField() != RimDefines::FLOW_DIAGNOSTICS )
|
if ( m_resultTypeUiField() != RimDefines::FLOW_DIAGNOSTICS )
|
||||||
{
|
{
|
||||||
if ( fieldNeedingOptions == &m_resultVariableUiField )
|
if ( fieldNeedingOptions == &m_resultVariableUiField )
|
||||||
|
@ -373,6 +373,21 @@ bool RigCaseCellResultsData::isUsingGlobalActiveIndex(size_t scalarResultIndex)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
bool RigCaseCellResultsData::hasFlowDiagUsableFluxes() const
|
||||||
|
{
|
||||||
|
QStringList dynResVarNames = resultNames(RimDefines::DYNAMIC_NATIVE);
|
||||||
|
|
||||||
|
bool hasFlowFluxes = true;
|
||||||
|
hasFlowFluxes = hasFlowFluxes && dynResVarNames.contains("FLRWATI+");
|
||||||
|
hasFlowFluxes = hasFlowFluxes && dynResVarNames.contains("FLROILI+");
|
||||||
|
hasFlowFluxes = hasFlowFluxes && dynResVarNames.contains("FLRGASI+");
|
||||||
|
|
||||||
|
return hasFlowFluxes;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -69,6 +69,7 @@ public:
|
|||||||
size_t maxTimeStepCount(size_t* scalarResultIndex = NULL) const;
|
size_t maxTimeStepCount(size_t* scalarResultIndex = NULL) const;
|
||||||
QStringList resultNames(RimDefines::ResultCatType type) const;
|
QStringList resultNames(RimDefines::ResultCatType type) const;
|
||||||
bool isUsingGlobalActiveIndex(size_t scalarResultIndex) const;
|
bool isUsingGlobalActiveIndex(size_t scalarResultIndex) const;
|
||||||
|
bool hasFlowDiagUsableFluxes() const;
|
||||||
|
|
||||||
QDateTime timeStepDate(size_t scalarResultIndex, size_t timeStepIndex) const;
|
QDateTime timeStepDate(size_t scalarResultIndex, size_t timeStepIndex) const;
|
||||||
std::vector<QDateTime> timeStepDates(size_t scalarResultIndex) const;
|
std::vector<QDateTime> timeStepDates(size_t scalarResultIndex) const;
|
||||||
|
@ -84,6 +84,8 @@ const std::vector<double>* RigFlowDiagResults::findOrCalculateResult(const RigFl
|
|||||||
|
|
||||||
// We need to access the native data from the opm solver
|
// We need to access the native data from the opm solver
|
||||||
|
|
||||||
|
if (!solverInterface()) return nullptr;
|
||||||
|
|
||||||
if (!m_hasAtemptedNativeResults[frameIndex])
|
if (!m_hasAtemptedNativeResults[frameIndex])
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user