Thermal Fracture: make fracture completions export work.

This commit is contained in:
Kristian Bendiksen
2022-09-05 18:30:15 +02:00
parent 2fea355cd2
commit 0e49d983a2
4 changed files with 21 additions and 14 deletions

View File

@@ -516,7 +516,7 @@ void RicExportFractureCompletionsImpl::getWellPressuresAndInitialProductionTimeS
bool RicExportFractureCompletionsImpl::checkForStimPlanConductivity( const RimFractureTemplate* fracTemplate, bool RicExportFractureCompletionsImpl::checkForStimPlanConductivity( const RimFractureTemplate* fracTemplate,
const RimFracture* fracture ) const RimFracture* fracture )
{ {
auto fracTemplateStimPlan = dynamic_cast<const RimStimPlanFractureTemplate*>( fracTemplate ); auto fracTemplateStimPlan = dynamic_cast<const RimMeshFractureTemplate*>( fracTemplate );
if ( fracTemplateStimPlan ) if ( fracTemplateStimPlan )
{ {
if ( !fracTemplateStimPlan->hasConductivity() ) if ( !fracTemplateStimPlan->hasConductivity() )

View File

@@ -34,9 +34,9 @@
#include "RimFractureContainment.h" #include "RimFractureContainment.h"
#include "RimFractureTemplate.h" #include "RimFractureTemplate.h"
#include "RimFractureTemplateCollection.h" #include "RimFractureTemplateCollection.h"
#include "RimMeshFractureTemplate.h"
#include "RimOilField.h" #include "RimOilField.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimStimPlanFractureTemplate.h"
#include "RimTools.h" #include "RimTools.h"
#include "RimWellPath.h" #include "RimWellPath.h"
#include "RimWellPathCollection.h" #include "RimWellPathCollection.h"
@@ -81,8 +81,8 @@ QString RicWellPathFractureTextReportFeatureImpl::wellPathFractureReport(
textStream << lineStart << "\n"; textStream << lineStart << "\n";
std::vector<RimStimPlanFractureTemplate*> stimPlanTemplates; std::vector<RimMeshFractureTemplate*> stimPlanTemplates;
std::vector<RimEllipseFractureTemplate*> ellipseTemplates; std::vector<RimEllipseFractureTemplate*> ellipseTemplates;
{ {
auto proj = RimProject::current(); auto proj = RimProject::current();
@@ -101,7 +101,7 @@ QString RicWellPathFractureTextReportFeatureImpl::wellPathFractureReport(
continue; continue;
} }
auto stimPlanTemplate = dynamic_cast<RimStimPlanFractureTemplate*>( fracTemplate ); auto stimPlanTemplate = dynamic_cast<RimMeshFractureTemplate*>( fracTemplate );
if ( stimPlanTemplate ) if ( stimPlanTemplate )
{ {
stimPlanTemplates.push_back( stimPlanTemplate ); stimPlanTemplates.push_back( stimPlanTemplate );
@@ -269,7 +269,7 @@ QString RicWellPathFractureTextReportFeatureImpl::createWellFileLocationText( co
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RicWellPathFractureTextReportFeatureImpl::createStimPlanFileLocationText( QString RicWellPathFractureTextReportFeatureImpl::createStimPlanFileLocationText(
const std::vector<RimStimPlanFractureTemplate*>& stimPlanTemplates ) const const std::vector<RimMeshFractureTemplate*>& stimPlanTemplates ) const
{ {
if ( stimPlanTemplates.empty() ) return ""; if ( stimPlanTemplates.empty() ) return "";
@@ -307,7 +307,7 @@ QString RicWellPathFractureTextReportFeatureImpl::createStimPlanFileLocationText
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RicWellPathFractureTextReportFeatureImpl::createStimPlanFractureText( QString RicWellPathFractureTextReportFeatureImpl::createStimPlanFractureText(
const std::vector<RimStimPlanFractureTemplate*>& stimPlanTemplates ) const const std::vector<RimMeshFractureTemplate*>& stimPlanTemplates ) const
{ {
if ( stimPlanTemplates.empty() ) return ""; if ( stimPlanTemplates.empty() ) return "";

View File

@@ -25,7 +25,7 @@ class RimWellPathFracture;
class RimEclipseCase; class RimEclipseCase;
class RimFractureTemplate; class RimFractureTemplate;
class RimEllipseFractureTemplate; class RimEllipseFractureTemplate;
class RimStimPlanFractureTemplate; class RimMeshFractureTemplate;
class RifTextDataTableFormatter; class RifTextDataTableFormatter;
class RicWellPathFractureReportItem; class RicWellPathFractureReportItem;
@@ -43,8 +43,8 @@ public:
private: private:
QString createWellFileLocationText( const std::vector<RimWellPath*>& wellPaths ) const; QString createWellFileLocationText( const std::vector<RimWellPath*>& wellPaths ) const;
QString createStimPlanFileLocationText( const std::vector<RimStimPlanFractureTemplate*>& stimPlanTemplates ) const; QString createStimPlanFileLocationText( const std::vector<RimMeshFractureTemplate*>& stimPlanTemplates ) const;
QString createStimPlanFractureText( const std::vector<RimStimPlanFractureTemplate*>& stimPlanTemplates ) const; QString createStimPlanFractureText( const std::vector<RimMeshFractureTemplate*>& stimPlanTemplates ) const;
QString createEllipseFractureText( const std::vector<RimEllipseFractureTemplate*>& ellipseTemplates ) const; QString createEllipseFractureText( const std::vector<RimEllipseFractureTemplate*>& ellipseTemplates ) const;
QString createFractureText( const std::vector<RimFractureTemplate*>& fractureTemplates ) const; QString createFractureText( const std::vector<RimFractureTemplate*>& fractureTemplates ) const;
QString createFractureInstancesText( const std::vector<RimWellPathFracture*>& fractureTemplates ) const; QString createFractureInstancesText( const std::vector<RimWellPathFracture*>& fractureTemplates ) const;

View File

@@ -37,7 +37,7 @@
#include "RimEllipseFractureTemplate.h" #include "RimEllipseFractureTemplate.h"
#include "RimFracture.h" #include "RimFracture.h"
#include "RimFractureContainmentTools.h" #include "RimFractureContainmentTools.h"
#include "RimStimPlanFractureTemplate.h" #include "RimMeshFractureTemplate.h"
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@@ -187,7 +187,7 @@ double RigEclipseToStimPlanCalculator::areaWeightedWidth() const
width = ellipseFractureTemplate->width(); width = ellipseFractureTemplate->width();
} }
auto stimPlanFractureTemplate = dynamic_cast<const RimStimPlanFractureTemplate*>( m_fracture->fractureTemplate() ); auto stimPlanFractureTemplate = dynamic_cast<const RimMeshFractureTemplate*>( m_fracture->fractureTemplate() );
if ( stimPlanFractureTemplate ) if ( stimPlanFractureTemplate )
{ {
auto widthValues = stimPlanFractureTemplate->widthResultValues(); auto widthValues = stimPlanFractureTemplate->widthResultValues();
@@ -202,7 +202,10 @@ double RigEclipseToStimPlanCalculator::areaWeightedWidth() const
size_t globalStimPlanCellIndex = singleCellCalc.first; size_t globalStimPlanCellIndex = singleCellCalc.first;
double widthValue = widthValues[globalStimPlanCellIndex]; double widthValue = widthValues[globalStimPlanCellIndex];
calc.addValueAndWeight( widthValue, cellArea ); if ( !std::isinf( widthValue ) && !std::isnan( widthValue ) )
{
calc.addValueAndWeight( widthValue, cellArea );
}
} }
width = calc.weightedMean(); width = calc.weightedMean();
@@ -227,7 +230,11 @@ double RigEclipseToStimPlanCalculator::areaWeightedConductivity() const
{ {
double cellArea = singleCellCalc.second.areaOpenForFlow(); double cellArea = singleCellCalc.second.areaOpenForFlow();
calc.addValueAndWeight( singleCellCalc.second.fractureCell().getConductivityValue(), cellArea ); double conductivity = singleCellCalc.second.fractureCell().getConductivityValue();
if ( !std::isinf( conductivity ) && !std::isnan( conductivity ) )
{
calc.addValueAndWeight( conductivity, cellArea );
}
} }
return calc.validAggregatedWeight() ? calc.weightedMean() : 0.0; return calc.validAggregatedWeight() ? calc.weightedMean() : 0.0;