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", "", "", "");
|
||||
|
||||
// TODO: Create a solution by default only when flux data is available
|
||||
m_flowDiagSolutions.push_back( new RimFlowDiagSolution());
|
||||
|
||||
// Obsolete, unused field
|
||||
CAF_PDM_InitField(&caseDirectory, "CaseFolder", QString(), "Directory", "", "" ,"");
|
||||
caseDirectory.xmlCapability()->setIOWritable(false);
|
||||
@ -73,7 +70,7 @@ RimEclipseResultCase::RimEclipseResultCase()
|
||||
flipYAxis.xmlCapability()->setIOWritable(true);
|
||||
//flipYAxis.uiCapability()->setUiHidden(true);
|
||||
|
||||
m_flowDagSolverInterface = new RigFlowDiagSolverInterface(this);
|
||||
|
||||
|
||||
m_activeCellInfoIsReadFromFile = false;
|
||||
m_gridAndWellDataIsReadFromFile = false;
|
||||
@ -135,6 +132,12 @@ bool RimEclipseResultCase::openEclipseGridFile()
|
||||
m_gridAndWellDataIsReadFromFile = true;
|
||||
m_activeCellInfoIsReadFromFile = true;
|
||||
|
||||
if (reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->hasFlowDiagUsableFluxes())
|
||||
{
|
||||
m_flowDiagSolutions.push_back( new RimFlowDiagSolution());
|
||||
m_flowDagSolverInterface = new RigFlowDiagSolverInterface(this);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -318,11 +318,42 @@ QList<caf::PdmOptionItemInfo> RimEclipseResultDefinition::calculateValueOptions(
|
||||
{
|
||||
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 ( fieldNeedingOptions == &m_resultVariableUiField )
|
||||
{
|
||||
options = calcOptionsForVariableUiFieldStandard();
|
||||
options = calcOptionsForVariableUiFieldStandard();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -373,6 +373,21 @@ bool RigCaseCellResultsData::isUsingGlobalActiveIndex(size_t scalarResultIndex)
|
||||
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;
|
||||
QStringList resultNames(RimDefines::ResultCatType type) const;
|
||||
bool isUsingGlobalActiveIndex(size_t scalarResultIndex) const;
|
||||
bool hasFlowDiagUsableFluxes() const;
|
||||
|
||||
QDateTime timeStepDate(size_t scalarResultIndex, size_t timeStepIndex) 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
|
||||
|
||||
if (!solverInterface()) return nullptr;
|
||||
|
||||
if (!m_hasAtemptedNativeResults[frameIndex])
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user