From f336dfec973dfc722297fa0a67dd1ec30ea3ffe7 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 10 Nov 2020 14:49:43 +0100 Subject: [PATCH] #6957 Data source stepping : Add stepping on aquifer --- .../Tools/RiaSummaryCurveAnalyzer.cpp | 20 +++++++++++++ .../Tools/RiaSummaryCurveAnalyzer.h | 2 ++ .../Summary/RimSummaryPlotSourceStepping.cpp | 30 +++++++++++++++++++ .../Summary/RimSummaryPlotSourceStepping.h | 2 ++ 4 files changed, 54 insertions(+) diff --git a/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.cpp b/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.cpp index a0158f92bd..7ce053bf96 100644 --- a/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.cpp +++ b/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.cpp @@ -169,6 +169,14 @@ std::set RiaSummaryCurveAnalyzer::blocks() const return m_blocks; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::set RiaSummaryCurveAnalyzer::aquifers() const +{ + return m_aquifers; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -229,6 +237,13 @@ std::vector RiaSummaryCurveAnalyzer::identifierTexts( RifEclipseSummary identifierStrings.push_back( QString::fromStdString( conn ) ); } } + else if ( category == RifEclipseSummaryAddress::SUMMARY_AQUIFER ) + { + for ( const auto& aquifer : m_aquifers ) + { + identifierStrings.push_back( QString::number( aquifer ) ); + } + } return identifierStrings; } @@ -284,6 +299,7 @@ void RiaSummaryCurveAnalyzer::clear() m_wellCompletions.clear(); m_wellSegmentNumbers.clear(); m_blocks.clear(); + m_aquifers.clear(); m_quantitiesNoMatchingHistory.clear(); m_quantitiesWithMatchingHistory.clear(); @@ -378,6 +394,10 @@ void RiaSummaryCurveAnalyzer::analyzeSingleAddress( const RifEclipseSummaryAddre auto text = address.blockAsString(); m_blocks.insert( text ); } + else if ( address.category() == RifEclipseSummaryAddress::SUMMARY_AQUIFER ) + { + m_aquifers.insert( address.aquiferNumber() ); + } if ( address.category() != RifEclipseSummaryAddress::SUMMARY_INVALID ) { diff --git a/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.h b/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.h index cbe1a67b33..8f8595b9b9 100644 --- a/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.h +++ b/ApplicationCode/Application/Tools/RiaSummaryCurveAnalyzer.h @@ -55,6 +55,7 @@ public: std::set wellCompletions( const std::string& wellName ) const; std::set wellSegmentNumbers( const std::string& wellName ) const; std::set blocks() const; + std::set aquifers() const; std::set categories() const; @@ -84,6 +85,7 @@ private: std::set> m_wellCompletions; std::set> m_wellSegmentNumbers; std::set m_blocks; + std::set m_aquifers; std::set m_categories; }; diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp index de6490cd6f..039ac6a925 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.cpp @@ -71,6 +71,7 @@ RimSummaryPlotSourceStepping::RimSummaryPlotSourceStepping() CAF_PDM_InitFieldNoDefault( &m_cellBlock, "CellBlock", "Block", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_segment, "Segment", "Segment", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_completion, "Completion", "Completion", "", "", "" ); + CAF_PDM_InitFieldNoDefault( &m_aquifer, "Aquifer", "Aquifer", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_ensemble, "Ensemble", "Ensemble", "", "", "" ); @@ -312,6 +313,10 @@ QList secondaryIdentifier = m_wellName().toStdString(); category = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION; } + else if ( fieldNeedingOptions == &m_aquifer ) + { + category = RifEclipseSummaryAddress::SUMMARY_AQUIFER; + } std::vector identifierTexts; @@ -496,6 +501,10 @@ void RimSummaryPlotSourceStepping::fieldChangedByUi( const caf::PdmFieldHandle* { summaryCategoryToModify = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION; } + else if ( changedField == &m_aquifer ) + { + summaryCategoryToModify = RifEclipseSummaryAddress::SUMMARY_AQUIFER; + } if ( summaryCategoryToModify != RifEclipseSummaryAddress::SUMMARY_INVALID ) { @@ -737,6 +746,7 @@ std::vector RimSummaryPlotSourceStepping::computeVisibleFi m_cellBlock.uiCapability()->setUiHidden( true ); m_segment.uiCapability()->setUiHidden( true ); m_completion.uiCapability()->setUiHidden( true ); + m_aquifer.uiCapability()->setUiHidden( true ); std::vector fields; @@ -858,6 +868,14 @@ std::vector RimSummaryPlotSourceStepping::computeVisibleFi fieldsCommonForAllCurves.push_back( &m_completion ); } + if ( analyzer.aquifers().size() == 1 ) + { + m_aquifer = *( analyzer.aquifers().begin() ); + m_aquifer.uiCapability()->setUiHidden( false ); + + fieldsCommonForAllCurves.push_back( &m_aquifer ); + } + if ( !analyzer.quantityNameForTitle().empty() ) { QString txt = QString::fromStdString( analyzer.quantityNameForTitle() ); @@ -972,6 +990,18 @@ bool RimSummaryPlotSourceStepping::updateAddressIfMatching( const QVariant& return true; } } + else if ( category == RifEclipseSummaryAddress::SUMMARY_AQUIFER ) + { + int oldInt = oldValue.toInt(); + int newInt = newValue.toInt(); + + if ( adr->aquiferNumber() == oldInt ) + { + adr->setAquiferNumber( newInt ); + + return true; + } + } else if ( category == RifEclipseSummaryAddress::SUMMARY_WELL_GROUP ) { std::string oldString = oldValue.toString().toStdString(); diff --git a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h index 40c26c28c6..f9bde2f3c5 100644 --- a/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h +++ b/ApplicationCode/ProjectDataModel/Summary/RimSummaryPlotSourceStepping.h @@ -120,6 +120,8 @@ private: caf::PdmField m_segment; caf::PdmField m_completion; + caf::PdmField m_aquifer; + caf::PdmField m_includeEnsembleCasesForCaseStepping; SourceSteppingType m_sourceSteppingType;