#14345 Grid Calculation: Fix additional ensemble selection

This commit is contained in:
Kristian Bendiksen committed 2026-09-16 10:53:31 +02:00
1 parent 0ba20f0b65
commit 99ce6daf58
3 files changed
+31 -5

No files matched your search

@@ -43,7 +43,6 @@
#include "RimDataFilterCollection.h"
#include "RimEclipseCase.h"
#include "RimEclipseCaseCollection.h"
#include "RimEclipseCaseEnsemble.h"
#include "RimEclipseCaseTools.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseResultAddress.h"
@@ -596,9 +595,9 @@ QList<caf::PdmOptionItemInfo> RimGridCalculation::calculateValueOptions( const c
if ( proj->activeOilField() && proj->activeOilField()->analysisModels() )
{
auto analysisModels = proj->activeOilField()->analysisModels();
for ( RimEclipseCaseEnsemble* e : analysisModels->caseEnsembles() )
for ( auto* ensemble : analysisModels->reservoirGridEnsembles.childrenByType() )
{
options.push_back( caf::PdmOptionItemInfo( e->name(), e, false, e->uiIconProvider() ) );
options.push_back( caf::PdmOptionItemInfo( ensemble->name(), ensemble, false, ensemble->uiIconProvider() ) );
}
}
}
@@ -19,7 +19,6 @@
#pragma once
#include "RiaPorosityModel.h"
#include "RimEclipseCaseEnsemble.h"
#include "RimGridCalculationVariable.h"
#include "RimUserDefinedCalculation.h"
@@ -163,7 +162,7 @@ private:
caf::PdmField<caf::AppEnum<AdditionalCasesType>> m_additionalCasesType;
caf::PdmPtrField<RimIdenticalGridCaseGroup*> m_additionalCaseGroup;
caf::PdmPtrField<RimEclipseCaseEnsemble*> m_additionalEnsemble;
caf::PdmPtrField<RimReservoirGridEnsemble*> m_additionalEnsemble;
caf::PdmField<std::vector<int>> m_selectedTimeSteps;
@@ -88,3 +88,31 @@ TEST( RimGridCalculationTest, DestinationEnsembleCasesAreOutputs )
EXPECT_EQ( firstCase, outputCases[0] );
EXPECT_EQ( secondCase, outputCases[1] );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST( RimGridCalculationTest, AdditionalEnsembleCasesAreOutputs )
{
RimReservoirGridEnsemble ensemble;
auto* firstCase = new RimEclipseResultCase;
auto* secondCase = new RimEclipseResultCase;
ensemble.addCase( firstCase );
ensemble.addCase( secondCase );
RimGridCalculation calculation;
auto* additionalCasesTypeField = dynamic_cast<caf::PdmField<caf::AppEnum<RimGridCalculation::AdditionalCasesType>>*>(
calculation.findField( "AdditionalCasesType" ) );
auto* additionalEnsembleField =
dynamic_cast<caf::PdmPtrField<RimReservoirGridEnsemble*>*>( calculation.findField( "AdditionalEnsemble" ) );
ASSERT_TRUE( additionalCasesTypeField != nullptr );
ASSERT_TRUE( additionalEnsembleField != nullptr );
additionalCasesTypeField->setValue( RimGridCalculation::AdditionalCasesType::ENSEMBLE );
additionalEnsembleField->setValue( &ensemble );
const auto outputCases = calculation.outputEclipseCases();
ASSERT_EQ( 2u, outputCases.size() );
EXPECT_EQ( firstCase, outputCases[0] );
EXPECT_EQ( secondCase, outputCases[1] );
}