#5706 Remove confusing none-use of ensemble curve definitions

Remove empty summary item address from curvedefanalyser
This commit is contained in:
Jacob Støren 2020-03-25 16:23:41 +01:00
parent 5153dabc8e
commit 71755d593c
5 changed files with 31 additions and 90 deletions

View File

@ -59,13 +59,13 @@ public:
{ {
for ( const auto& curveDef : curveDefs ) for ( const auto& curveDef : curveDefs )
{ {
if ( curveDef.isEnsembleCurve() ) CVF_ASSERT( !curveDef.isEnsembleCurve() );
m_singleSummaryCases.insert( curveDef.summaryCase() );
if ( curveDef.summaryCase()->ensemble() )
{ {
m_ensembles.insert( curveDef.ensemble() ); m_ensembles.insert( curveDef.summaryCase()->ensemble() );
}
else
{
m_singleSummaryCases.insert( curveDef.summaryCase() );
} }
RifEclipseSummaryAddress address = curveDef.summaryAddress(); RifEclipseSummaryAddress address = curveDef.summaryAddress();
@ -73,12 +73,12 @@ public:
m_quantityNames.insert( address.quantityName() ); m_quantityNames.insert( address.quantityName() );
address.setQuantityName( "" ); address.setQuantityName( "" );
m_summaryItems.insert( address ); if ( !address.itemUiText().empty() ) m_summaryItems.insert( address );
} }
} }
std::set<RimSummaryCase*> m_singleSummaryCases; std::set<RimSummaryCase*> m_singleSummaryCases; // All summary cases used
std::set<RimSummaryCaseCollection*> m_ensembles; std::set<RimSummaryCaseCollection*> m_ensembles; // All the ensembles referenced by the summary cases
std::set<RifEclipseSummaryAddress> m_summaryItems; // Quantity name set to "", stores only the identifiers std::set<RifEclipseSummaryAddress> m_summaryItems; // Quantity name set to "", stores only the identifiers
std::set<std::string> m_quantityNames; // Quantity names from the addresses std::set<std::string> m_quantityNames; // Quantity names from the addresses
@ -239,12 +239,6 @@ std::set<RifEclipseSummaryAddress> RimAnalysisPlot::unfilteredAddresses()
addresses.insert( caseAddrs.begin(), caseAddrs.end() ); addresses.insert( caseAddrs.begin(), caseAddrs.end() );
} }
for ( RimSummaryCaseCollection* caseColl : analyserOfSelectedCurveDefs->m_ensembles )
{
std::set<RifEclipseSummaryAddress> ensAddrs = caseColl->ensembleSummaryAddresses();
addresses.insert( ensAddrs.begin(), ensAddrs.end() );
}
return addresses; return addresses;
} }
@ -259,14 +253,6 @@ std::set<EnsembleParameter> RimAnalysisPlot::ensembleParameters()
std::set<RimSummaryCaseCollection*> ensembles; std::set<RimSummaryCaseCollection*> ensembles;
for ( RimSummaryCaseCollection* ensemble : analyserOfSelectedCurveDefs->m_ensembles )
{
if ( ensemble->isEnsemble() )
{
ensembles.insert( ensemble );
}
}
for ( RimSummaryCase* sumCase : analyserOfSelectedCurveDefs->m_singleSummaryCases ) for ( RimSummaryCase* sumCase : analyserOfSelectedCurveDefs->m_singleSummaryCases )
{ {
if ( sumCase->ensemble() ) if ( sumCase->ensemble() )
@ -462,7 +448,7 @@ void RimAnalysisPlot::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
dlg.enableMultiSelect( true ); dlg.enableMultiSelect( true );
dlg.enableIndividualEnsembleCaseSelection( true ); dlg.enableIndividualEnsembleCaseSelection( true );
dlg.setCurveSelection( this->curveDefinitionsWithCollapsedEnsembleCurves() ); dlg.setCurveSelection( this->curveDefinitionsWithoutEnsembleReference() );
dlg.setCaseAndAddress( nullptr, RifEclipseSummaryAddress() ); dlg.setCaseAndAddress( nullptr, RifEclipseSummaryAddress() );
if ( dlg.exec() == QDialog::Accepted ) if ( dlg.exec() == QDialog::Accepted )
@ -597,7 +583,7 @@ QList<caf::PdmOptionItemInfo> RimAnalysisPlot::calculateValueOptions( const caf:
if ( !m_analyserOfSelectedCurveDefs ) if ( !m_analyserOfSelectedCurveDefs )
{ {
m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>( m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>(
new RimCurveDefinitionAnalyser( this->curveDefinitionsWithCollapsedEnsembleCurves() ) ); new RimCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
} }
if ( fieldNeedingOptions == &m_addTimestepUiField ) if ( fieldNeedingOptions == &m_addTimestepUiField )
@ -678,14 +664,6 @@ std::set<time_t> RimAnalysisPlot::allAvailableTimeSteps()
std::set<RimSummaryCase*> RimAnalysisPlot::timestepDefiningSourceCases() std::set<RimSummaryCase*> RimAnalysisPlot::timestepDefiningSourceCases()
{ {
std::set<RimSummaryCase*> timeStepDefiningSumCases = m_analyserOfSelectedCurveDefs->m_singleSummaryCases; std::set<RimSummaryCase*> timeStepDefiningSumCases = m_analyserOfSelectedCurveDefs->m_singleSummaryCases;
for ( RimSummaryCaseCollection* sumCaseColl : m_analyserOfSelectedCurveDefs->m_ensembles )
{
std::vector<RimSummaryCase*> sumCases = sumCaseColl->allSummaryCases();
if ( sumCases.size() )
{
timeStepDefiningSumCases.insert( sumCases[0] );
}
}
return timeStepDefiningSumCases; return timeStepDefiningSumCases;
} }
@ -697,13 +675,6 @@ std::set<RimSummaryCase*> RimAnalysisPlot::allSourceCases()
{ {
std::set<RimSummaryCase*> allSumCases = m_analyserOfSelectedCurveDefs->m_singleSummaryCases; std::set<RimSummaryCase*> allSumCases = m_analyserOfSelectedCurveDefs->m_singleSummaryCases;
for ( RimSummaryCaseCollection* sumCaseColl : m_analyserOfSelectedCurveDefs->m_ensembles )
{
std::vector<RimSummaryCase*> sumCases = sumCaseColl->allSummaryCases();
allSumCases.insert( sumCases.begin(), sumCases.end() );
}
return allSumCases; return allSumCases;
} }
@ -731,7 +702,7 @@ void RimAnalysisPlot::onLoadDataAndUpdate()
updateMdiWindowVisibility(); updateMdiWindowVisibility();
m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>( m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>(
new RimCurveDefinitionAnalyser( this->curveDefinitionsWithCollapsedEnsembleCurves() ) ); new RimCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
if ( m_plotWidget ) if ( m_plotWidget )
{ {
@ -885,7 +856,7 @@ void RimAnalysisPlot::updateAxes()
std::set<QString> timeHistoryQuantities; std::set<QString> timeHistoryQuantities;
RimSummaryPlotAxisFormatter calc( valAxisProperties, {}, curveDefinitionsWithCollapsedEnsembleCurves(), {}, {} ); RimSummaryPlotAxisFormatter calc( valAxisProperties, {}, curveDefinitionsWithoutEnsembleReference(), {}, {} );
calc.applyAxisPropertiesToPlot( m_plotWidget ); calc.applyAxisPropertiesToPlot( m_plotWidget );
} }
else else
@ -1033,7 +1004,7 @@ std::vector<size_t> RimAnalysisPlot::findTimestepIndices( std::vector<time_t>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::filteredCurveDefs() std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::filteredCurveDefs()
{ {
std::vector<RiaSummaryCurveDefinition> dataDefinitions = curveDefinitionsWitExpandedEnsembleCurves(); std::vector<RiaSummaryCurveDefinition> dataDefinitions = curveDefinitionsWithEmbeddedEnsembleReference();
// Split out the filter targets // Split out the filter targets
@ -1636,7 +1607,7 @@ RimCurveDefinitionAnalyser* RimAnalysisPlot::getOrCreateSelectedCurveDefAnalyser
if ( !m_analyserOfSelectedCurveDefs ) if ( !m_analyserOfSelectedCurveDefs )
{ {
m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>( m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>(
new RimCurveDefinitionAnalyser( this->curveDefinitionsWithCollapsedEnsembleCurves() ) ); new RimCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
} }
return m_analyserOfSelectedCurveDefs.get(); return m_analyserOfSelectedCurveDefs.get();
@ -1645,7 +1616,7 @@ RimCurveDefinitionAnalyser* RimAnalysisPlot::getOrCreateSelectedCurveDefAnalyser
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::curveDefinitionsWithCollapsedEnsembleCurves() const std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::curveDefinitionsWithoutEnsembleReference() const
{ {
std::vector<RiaSummaryCurveDefinition> curveDefs; std::vector<RiaSummaryCurveDefinition> curveDefs;
for ( auto dataEntry : m_analysisPlotDataSelection ) for ( auto dataEntry : m_analysisPlotDataSelection )
@ -1659,7 +1630,7 @@ std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::curveDefinitionsWithColl
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// The curve definitions returned contain both the case AND the ensemble from which it has been spawned /// The curve definitions returned contain both the case AND the ensemble from which it has been spawned
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::curveDefinitionsWitExpandedEnsembleCurves() std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::curveDefinitionsWithEmbeddedEnsembleReference()
{ {
std::vector<RiaSummaryCurveDefinition> barDataDefinitions; std::vector<RiaSummaryCurveDefinition> barDataDefinitions;
@ -1667,30 +1638,15 @@ std::vector<RiaSummaryCurveDefinition> RimAnalysisPlot::curveDefinitionsWitExpan
{ {
RiaSummaryCurveDefinition orgBarDataEntry = dataEntry->curveDefinition(); RiaSummaryCurveDefinition orgBarDataEntry = dataEntry->curveDefinition();
// Unpack ensemble curves and make one curve definition for each individual curve. if ( orgBarDataEntry.summaryCase() && orgBarDataEntry.summaryCase()->ensemble() )
// Store both ensemble and summary case in the definition
if ( orgBarDataEntry.isEnsembleCurve() )
{ {
std::vector<RimSummaryCase*> sumCases = orgBarDataEntry.ensemble()->allSummaryCases(); barDataDefinitions.push_back( RiaSummaryCurveDefinition( orgBarDataEntry.summaryCase(),
for ( auto sumCase : sumCases ) orgBarDataEntry.summaryAddress(),
{ orgBarDataEntry.summaryCase()->ensemble() ) );
barDataDefinitions.push_back(
RiaSummaryCurveDefinition( sumCase, orgBarDataEntry.summaryAddress(), orgBarDataEntry.ensemble() ) );
}
} }
else else
{ {
if ( orgBarDataEntry.summaryCase() && orgBarDataEntry.summaryCase()->ensemble() ) barDataDefinitions.push_back( orgBarDataEntry );
{
barDataDefinitions.push_back( RiaSummaryCurveDefinition( orgBarDataEntry.summaryCase(),
orgBarDataEntry.summaryAddress(),
orgBarDataEntry.summaryCase()->ensemble() ) );
}
else
{
barDataDefinitions.push_back( orgBarDataEntry );
}
} }
} }

View File

@ -152,8 +152,8 @@ private:
void updatePlotTitle(); void updatePlotTitle();
RimCurveDefinitionAnalyser* getOrCreateSelectedCurveDefAnalyser(); RimCurveDefinitionAnalyser* getOrCreateSelectedCurveDefAnalyser();
std::vector<RiaSummaryCurveDefinition> curveDefinitionsWithCollapsedEnsembleCurves() const; std::vector<RiaSummaryCurveDefinition> curveDefinitionsWithoutEnsembleReference() const;
std::vector<RiaSummaryCurveDefinition> curveDefinitionsWitExpandedEnsembleCurves(); std::vector<RiaSummaryCurveDefinition> curveDefinitionsWithEmbeddedEnsembleReference();
std::vector<RiaSummaryCurveDefinition> filteredCurveDefs(); std::vector<RiaSummaryCurveDefinition> filteredCurveDefs();
void applyFilter( const RimPlotDataFilterItem* filter, void applyFilter( const RimPlotDataFilterItem* filter,
std::set<RimSummaryCase*>* filteredSumCases, std::set<RimSummaryCase*>* filteredSumCases,

View File

@ -39,10 +39,6 @@ RimAnalysisPlotDataEntry::RimAnalysisPlotDataEntry()
m_summaryCase.uiCapability()->setUiTreeChildrenHidden( true ); m_summaryCase.uiCapability()->setUiTreeChildrenHidden( true );
m_summaryCase.uiCapability()->setAutoAddingOptionFromValue( false ); m_summaryCase.uiCapability()->setAutoAddingOptionFromValue( false );
CAF_PDM_InitFieldNoDefault( &m_ensemble, "Ensemble", "Ensemble", "", "", "" );
m_summaryCase.uiCapability()->setUiTreeChildrenHidden( true );
m_summaryCase.uiCapability()->setAutoAddingOptionFromValue( false );
CAF_PDM_InitFieldNoDefault( &m_summaryAddress, "SummaryAddress", "Summary Address", "", "", "" ); CAF_PDM_InitFieldNoDefault( &m_summaryAddress, "SummaryAddress", "Summary Address", "", "", "" );
m_summaryAddress.uiCapability()->setUiHidden( true ); m_summaryAddress.uiCapability()->setUiHidden( true );
m_summaryAddress.uiCapability()->setUiTreeChildrenHidden( true ); m_summaryAddress.uiCapability()->setUiTreeChildrenHidden( true );
@ -62,7 +58,8 @@ RimAnalysisPlotDataEntry::~RimAnalysisPlotDataEntry()
void RimAnalysisPlotDataEntry::setFromCurveDefinition( const RiaSummaryCurveDefinition& curveDef ) void RimAnalysisPlotDataEntry::setFromCurveDefinition( const RiaSummaryCurveDefinition& curveDef )
{ {
m_summaryAddress->setAddress( curveDef.summaryAddress() ); m_summaryAddress->setAddress( curveDef.summaryAddress() );
m_ensemble = curveDef.ensemble(); CVF_ASSERT( !curveDef.ensemble() ); // We will not support definitions of ensemble curves. Only single cases that
// might be part of an ensemble
m_summaryCase = curveDef.summaryCase(); m_summaryCase = curveDef.summaryCase();
} }
@ -71,7 +68,7 @@ void RimAnalysisPlotDataEntry::setFromCurveDefinition( const RiaSummaryCurveDefi
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RiaSummaryCurveDefinition RimAnalysisPlotDataEntry::curveDefinition() const RiaSummaryCurveDefinition RimAnalysisPlotDataEntry::curveDefinition() const
{ {
return RiaSummaryCurveDefinition( m_summaryCase(), m_summaryAddress->address(), m_ensemble() ); return RiaSummaryCurveDefinition( m_summaryCase(), m_summaryAddress->address(), nullptr );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -82,14 +79,6 @@ RimSummaryCase* RimAnalysisPlotDataEntry::summaryCase() const
return m_summaryCase; return m_summaryCase;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCaseCollection* RimAnalysisPlotDataEntry::ensemble() const
{
return m_ensemble;
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -39,12 +39,10 @@ public:
void setFromCurveDefinition( const RiaSummaryCurveDefinition& curveDef ); void setFromCurveDefinition( const RiaSummaryCurveDefinition& curveDef );
RiaSummaryCurveDefinition curveDefinition() const; RiaSummaryCurveDefinition curveDefinition() const;
RimSummaryCase* summaryCase() const; RimSummaryCase* summaryCase() const;
RimSummaryCaseCollection* ensemble() const; RifEclipseSummaryAddress summaryAddress() const;
RifEclipseSummaryAddress summaryAddress() const;
private: private:
caf::PdmPtrField<RimSummaryCase*> m_summaryCase; caf::PdmPtrField<RimSummaryCase*> m_summaryCase;
caf::PdmPtrField<RimSummaryCaseCollection*> m_ensemble; caf::PdmChildField<RimSummaryAddress*> m_summaryAddress;
caf::PdmChildField<RimSummaryAddress*> m_summaryAddress;
}; };

View File

@ -85,8 +85,6 @@ public:
RANGE RANGE
}; };
std::vector<RiaSummaryCurveDefinition> applyFilter( const std::vector<RiaSummaryCurveDefinition>& curveDefsToFilter );
bool isActive() const { return m_isActive(); } bool isActive() const { return m_isActive(); }
FilterTarget filterTarget() const { return m_filterTarget(); } FilterTarget filterTarget() const { return m_filterTarget(); }