mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Add optional input value filter for calculation
This commit is contained in:
parent
3f6883b875
commit
537cead7f1
@ -318,11 +318,13 @@ void RimEclipseStatisticsCase::computeStatistics()
|
||||
|
||||
for ( auto calc : dependentCalculations )
|
||||
{
|
||||
// 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;
|
||||
cvf::UByteArray* inputValueVisibilityFilter = nullptr;
|
||||
if ( m_gridCalculationFilterView() )
|
||||
{
|
||||
inputValueVisibilityFilter = m_gridCalculationFilterView()->currentTotalCellVisibility().p();
|
||||
}
|
||||
|
||||
calc->calculateForCases( sourceCases, useViewFilter, timeStepIndices );
|
||||
calc->calculateForCases( sourceCases, inputValueVisibilityFilter, timeStepIndices );
|
||||
}
|
||||
}
|
||||
|
||||
@ -629,7 +631,7 @@ QList<caf::PdmOptionItemInfo> RimEclipseStatisticsCase::calculateValueOptions( c
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
options.push_back( caf::PdmOptionItemInfo( nullptr, "None" ) );
|
||||
options.push_back( caf::PdmOptionItemInfo( "None", nullptr ) );
|
||||
|
||||
for ( const auto& view : views() )
|
||||
{
|
||||
|
@ -128,8 +128,8 @@ bool RimGridCalculation::calculate()
|
||||
}
|
||||
|
||||
auto timeSteps = std::nullopt;
|
||||
bool useViewFilter = true;
|
||||
return calculateForCases( outputEclipseCases(), useViewFilter, timeSteps );
|
||||
auto inputValueVisibilityFilter = nullptr;
|
||||
return calculateForCases( outputEclipseCases(), inputValueVisibilityFilter, timeSteps );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -537,7 +537,7 @@ void RimGridCalculation::removeDependentObjects()
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimGridCalculation::calculateForCases( const std::vector<RimEclipseCase*>& calculationCases,
|
||||
bool useViewFilter,
|
||||
cvf::UByteArray* inputValueVisibilityFilter,
|
||||
std::optional<std::vector<size_t>> timeSteps )
|
||||
{
|
||||
if ( calculationCases.empty() ) return true;
|
||||
@ -604,7 +604,16 @@ bool RimGridCalculation::calculateForCases( const std::vector<RimEclipseCase*>&
|
||||
{
|
||||
RimGridCalculationVariable* v = dynamic_cast<RimGridCalculationVariable*>( m_variables[i] );
|
||||
CAF_ASSERT( v != nullptr );
|
||||
values.push_back( getInputVectorForVariable( v, tsId, porosityModel, calculationCase ) );
|
||||
|
||||
auto inputValues = getInputVectorForVariable( v, tsId, porosityModel, calculationCase );
|
||||
|
||||
if ( inputValueVisibilityFilter )
|
||||
{
|
||||
const double defaultValue = 0.0;
|
||||
replaceFilteredValuesWithDefaultValue( defaultValue, inputValueVisibilityFilter, inputValues, porosityModel, calculationCase );
|
||||
}
|
||||
|
||||
values.push_back( inputValues );
|
||||
}
|
||||
|
||||
ExpressionParser parser;
|
||||
|
@ -58,7 +58,7 @@ public:
|
||||
std::vector<RimEclipseCase*> outputEclipseCases() const;
|
||||
RigEclipseResultAddress outputAddress() const;
|
||||
bool calculateForCases( const std::vector<RimEclipseCase*>& calculationCases,
|
||||
bool useViewFilter,
|
||||
cvf::UByteArray* inputValueVisibilityFilter,
|
||||
std::optional<std::vector<size_t>> timeSteps );
|
||||
void assignEclipseCaseForNullPointers( RimEclipseCase* eclipseCase );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user