From 97bbf65a5741352e0dba5d79d6ba5abbb5150dec Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Sat, 24 Oct 2026 13:51:32 +0200 Subject: [PATCH] #15021: Fix field unit errors in fracture reports --- .../RicWellPathFractureTextReportFeatureImpl.cpp | 7 +++++-- .../Completions/RigEclipseToStimPlanCalculator.cpp | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ApplicationLibCode/Commands/CompletionExportCommands/RicWellPathFractureTextReportFeatureImpl.cpp b/ApplicationLibCode/Commands/CompletionExportCommands/RicWellPathFractureTextReportFeatureImpl.cpp index 008f7d3e1d..b9b693366a 100644 --- a/ApplicationLibCode/Commands/CompletionExportCommands/RicWellPathFractureTextReportFeatureImpl.cpp +++ b/ApplicationLibCode/Commands/CompletionExportCommands/RicWellPathFractureTextReportFeatureImpl.cpp @@ -18,6 +18,7 @@ #include "RicWellPathFractureTextReportFeatureImpl.h" +#include "RiaEclipseUnitTools.h" #include "RiaRegressionTestRunner.h" #include "RicExportFractureCompletionsImpl.h" @@ -386,7 +387,7 @@ QString RicWellPathFractureTextReportFeatureImpl::createEllipseFractureText( con formatter.add( isFieldUnits ? "[ft]" : "[m]" ); // Height formatter.add( "[mD]" ); // Kf formatter.add( isFieldUnits ? "[in]" : "[m]" ); // Wf - formatter.add( isFieldUnits ? "[ft]" : "[m]" ); // WDiam + formatter.add( isFieldUnits ? "[in]" : "[m]" ); // WDiam formatter.add( "[] " ); // Skin formatter.rowCompleted(); } @@ -401,7 +402,9 @@ QString RicWellPathFractureTextReportFeatureImpl::createEllipseFractureText( con formatter.add( ellipseTemplate->halfLength() ); formatter.add( ellipseTemplate->height() ); - formatter.add( RigTransmissibilityEquations::permeability( ellipseTemplate->conductivity(), ellipseTemplate->width() ) ); + // Conductivity is in mD*ft for field units, while the field width is in inches + const double widthInLengthUnit = isFieldUnits ? RiaEclipseUnitTools::inchToFeet( ellipseTemplate->width() ) : ellipseTemplate->width(); + formatter.add( RigTransmissibilityEquations::permeability( ellipseTemplate->conductivity(), widthInLengthUnit ) ); formatter.add( ellipseTemplate->width() ); formatter.add( ellipseTemplate->wellDiameter() ); diff --git a/ApplicationLibCode/ReservoirDataModel/Completions/RigEclipseToStimPlanCalculator.cpp b/ApplicationLibCode/ReservoirDataModel/Completions/RigEclipseToStimPlanCalculator.cpp index ecae372472..8ed04155cb 100644 --- a/ApplicationLibCode/ReservoirDataModel/Completions/RigEclipseToStimPlanCalculator.cpp +++ b/ApplicationLibCode/ReservoirDataModel/Completions/RigEclipseToStimPlanCalculator.cpp @@ -18,6 +18,7 @@ #include "RigEclipseToStimPlanCalculator.h" +#include "RiaEclipseUnitTools.h" #include "RiaLogging.h" #include "RiaThermalFractureDefines.h" #include "RiaWeightedMeanCalculator.h" @@ -261,6 +262,10 @@ double RigEclipseToStimPlanCalculator::areaWeightedWidth() const if ( ellipseFractureTemplate ) { width = ellipseFractureTemplate->width(); + if ( ellipseFractureTemplate->fractureTemplateUnit() == RiaDefines::EclipseUnitSystem::UNITS_FIELD ) + { + width = RiaEclipseUnitTools::inchToFeet( width ); + } } auto stimPlanFractureTemplate = dynamic_cast( m_fracture->fractureTemplate() );