Fix update issues related to fracture calculations

* Make sure property filter is updated when completion type is cleared
* Clear geometry cache in views to make sure geometry is recreated
* Calculate required input parameters to completion type calculations
* Recompute values when depth changes
This commit is contained in:
Magne Sjaastad
2022-11-18 12:50:04 +01:00
committed by GitHub
parent e7c864c6d8
commit 6a859e0860
9 changed files with 53 additions and 33 deletions

View File

@@ -28,6 +28,7 @@
#include "RiaResultNames.h"
#include "RigAllanDiagramData.h"
#include "RigCaseCellResultCalculator.h"
#include "RigEclipseAllanFaultsStatCalc.h"
#include "RigEclipseCaseData.h"
#include "RigEclipseMultiPropertyStatCalc.h"
#include "RigEclipseNativeStatCalc.h"
@@ -39,6 +40,8 @@
#include "RimCompletionCellIntersectionCalc.h"
#include "RimEclipseCase.h"
#include "RimGridCalculation.h"
#include "RimGridCalculationCollection.h"
#include "RimProject.h"
#include "RifReaderEclipseOutput.h"
@@ -49,7 +52,6 @@
#include <QDateTime>
#include "RigEclipseAllanFaultsStatCalc.h"
#include <algorithm>
#include <cmath>
@@ -2897,6 +2899,23 @@ void RigCaseCellResultsData::computeCompletionTypeForTimeStep( size_t timeStep )
if ( !eclipseCase ) return;
// If permeabilities are generated by calculations, make sure that generated data is calculated
// See RicExportFractureCompletionsImpl::generateCompdatValues()
for ( const QString& propertyName : { "PERMX", "PERMY", "PERMZ" } )
{
for ( auto userCalculation : RimProject::current()->gridCalculationCollection()->calculations() )
{
auto gridCalculation = dynamic_cast<RimGridCalculation*>( userCalculation );
if ( gridCalculation && gridCalculation->destinationEclipseCase() != eclipseCase ) continue;
QString generatedPropertyName = userCalculation->findLeftHandSide( userCalculation->expression() );
if ( generatedPropertyName == propertyName )
{
userCalculation->calculate();
}
}
}
RimCompletionCellIntersectionCalc::calculateCompletionTypeResult( eclipseCase, completionTypeResult, timeStep );
}