mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Disable view filtering when using grid calculations as part of grid statistics
Active cells can be different between cases, and view filter from one specific case is not able to use for other cases.
This commit is contained in:
parent
fb890300c5
commit
1046bcbb94
@ -316,7 +316,11 @@ void RimEclipseStatisticsCase::computeStatistics()
|
||||
|
||||
for ( auto calc : dependentCalculations )
|
||||
{
|
||||
calc->calculateForCases( sourceCases, timeStepIndices );
|
||||
// A view filter is depending on active cells for a specific case, and the current implementation does not work for grids with
|
||||
// different active cells. Disable use of view filter for now.
|
||||
const bool useViewFilter = false;
|
||||
|
||||
calc->calculateForCases( sourceCases, useViewFilter, timeStepIndices );
|
||||
}
|
||||
}
|
||||
|
||||
@ -707,6 +711,15 @@ void RimEclipseStatisticsCase::fieldChangedByUi( const caf::PdmFieldHandle* chan
|
||||
m_calculateEditCommand = false;
|
||||
}
|
||||
|
||||
if ( &m_dataSourceForStatistics == changedField && m_gridCalculation() == nullptr )
|
||||
{
|
||||
auto calculations = RimProject::current()->gridCalculationCollection()->calculations();
|
||||
if ( !calculations.empty() )
|
||||
{
|
||||
m_gridCalculation = dynamic_cast<RimGridCalculation*>( calculations.front() );
|
||||
}
|
||||
}
|
||||
|
||||
if ( &m_wellDataSourceCase == changedField )
|
||||
{
|
||||
loadSimulationWellDataFromSourceCase();
|
||||
|
@ -127,9 +127,9 @@ bool RimGridCalculation::calculate()
|
||||
}
|
||||
}
|
||||
|
||||
auto timeSteps = std::nullopt;
|
||||
|
||||
return calculateForCases( outputEclipseCases(), timeSteps );
|
||||
auto timeSteps = std::nullopt;
|
||||
bool useViewFilter = true;
|
||||
return calculateForCases( outputEclipseCases(), useViewFilter, timeSteps );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -536,7 +536,9 @@ void RimGridCalculation::removeDependentObjects()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimGridCalculation::calculateForCases( const std::vector<RimEclipseCase*>& calculationCases, std::optional<std::vector<size_t>> timeSteps )
|
||||
bool RimGridCalculation::calculateForCases( const std::vector<RimEclipseCase*>& calculationCases,
|
||||
bool useViewFilter,
|
||||
std::optional<std::vector<size_t>> timeSteps )
|
||||
{
|
||||
if ( calculationCases.empty() ) return true;
|
||||
|
||||
@ -622,7 +624,7 @@ bool RimGridCalculation::calculateForCases( const std::vector<RimEclipseCase*>&
|
||||
|
||||
if ( evaluatedOk )
|
||||
{
|
||||
if ( m_cellFilterView() )
|
||||
if ( useViewFilter && m_cellFilterView() )
|
||||
{
|
||||
filterResults( m_cellFilterView(), values, m_defaultValueType(), m_defaultValue(), resultValues, porosityModel, calculationCase );
|
||||
}
|
||||
|
@ -57,8 +57,10 @@ public:
|
||||
|
||||
std::vector<RimEclipseCase*> outputEclipseCases() const;
|
||||
RigEclipseResultAddress outputAddress() const;
|
||||
bool calculateForCases( const std::vector<RimEclipseCase*>& calculationCases, std::optional<std::vector<size_t>> timeSteps );
|
||||
void assignEclipseCaseForNullPointers( RimEclipseCase* eclipseCase );
|
||||
bool calculateForCases( const std::vector<RimEclipseCase*>& calculationCases,
|
||||
bool useViewFilter,
|
||||
std::optional<std::vector<size_t>> timeSteps );
|
||||
void assignEclipseCaseForNullPointers( RimEclipseCase* eclipseCase );
|
||||
|
||||
std::vector<RimEclipseCase*> inputCases() const;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user