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,
const RimFracture* fracture )
{
auto fracTemplateStimPlan = dynamic_cast<const RimStimPlanFractureTemplate*>( fracTemplate );
auto fracTemplateStimPlan = dynamic_cast<const RimMeshFractureTemplate*>( fracTemplate );
if ( fracTemplateStimPlan )
{
if ( !fracTemplateStimPlan->hasConductivity() )

View File

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

View File

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

View File

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