#2765 Completions : Use max available diameter when combining multiple completions in same cell

This commit is contained in:
Magne Sjaastad 2018-04-19 14:55:14 +02:00
parent e5570441f6
commit d5bdd1f7a1
3 changed files with 28 additions and 15 deletions

View File

@ -407,7 +407,6 @@ RigCompletionData
RigCompletionData resultCompletion(wellName, cellIndexIJK, firstCompletion.firstOrderingValue());
resultCompletion.setSecondOrderingValue(firstCompletion.secondOrderingValue());
resultCompletion.setDiameter(firstCompletion.diameter());
bool anyNonDarcyFlowPresent = false;
for (const auto& c : completions)
@ -438,7 +437,10 @@ RigCompletionData
for (const RigCompletionData& completion : completions)
{
if (completion.isMainBore())
// Use data from the completion with largest diameter
// This is more robust than checking for main bore flag
// See also https://github.com/OPM/ResInsight/issues/2765
if (completion.diameter() > wellBoreDiameter)
{
skinfactor = completion.skinFactor();
wellBoreDiameter = completion.diameter();
@ -487,7 +489,7 @@ RigCompletionData
if (settings.compdatExport == RicExportCompletionDataSettingsUi::TRANSMISSIBILITIES)
{
resultCompletion.setCombinedValuesExplicitTrans(totalTrans, completionType);
resultCompletion.setCombinedValuesExplicitTrans(totalTrans, skinfactor, wellBoreDiameter, cellDirection, completionType);
}
else if (settings.compdatExport == RicExportCompletionDataSettingsUi::WPIMULT_AND_DEFAULT_CONNECTION_FACTORS)
{
@ -498,7 +500,7 @@ RigCompletionData
double wpimult = totalTrans / transmissibilityEclipseCalculation;
resultCompletion.setCombinedValuesImplicitTransWPImult(
wpimult, cellDirection, skinfactor, wellBoreDiameter, completionType);
wpimult, skinfactor, wellBoreDiameter, cellDirection, completionType);
}
return resultCompletion;

View File

@ -122,7 +122,7 @@ void RigCompletionData::setSecondOrderingValue(double orderingValue)
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void RigCompletionData::setDiameter(double diameter)
{
@ -130,7 +130,7 @@ void RigCompletionData::setDiameter(double diameter)
}
//--------------------------------------------------------------------------------------------------
///
///
//--------------------------------------------------------------------------------------------------
void RigCompletionData::setTransmissibility(double transmissibility)
{
@ -173,26 +173,33 @@ void RigCompletionData::setTransAndWPImultBackgroundDataFromPerforation(double
//==================================================================================================
///
//==================================================================================================
void RigCompletionData::setCombinedValuesExplicitTrans(double transmissibility, CompletionType completionType)
void RigCompletionData::setCombinedValuesExplicitTrans(double transmissibility,
double skinFactor,
double diameter,
CellDirection celldirection,
CompletionType completionType)
{
m_completionType = completionType;
m_transmissibility = transmissibility;
m_skinFactor = skinFactor;
m_diameter = diameter;
m_direction = celldirection;
m_completionType = completionType;
}
//==================================================================================================
///
//==================================================================================================
void RigCompletionData::setCombinedValuesImplicitTransWPImult(double wpimult,
CellDirection celldirection,
double skinFactor,
double wellDiameter,
double diameter,
CellDirection celldirection,
CompletionType completionType)
{
m_wpimult = wpimult;
m_direction = celldirection;
m_completionType = completionType;
m_skinFactor = skinFactor;
m_diameter = wellDiameter;
m_diameter = diameter;
}
//--------------------------------------------------------------------------------------------------

View File

@ -92,12 +92,16 @@ public:
double diameter,
CellDirection direction);
void setCombinedValuesExplicitTrans(double transmissibility, CompletionType completionType);
void setCombinedValuesExplicitTrans(double transmissibility,
double skinFactor,
double diameter,
CellDirection celldirection,
CompletionType completionType);
void setCombinedValuesImplicitTransWPImult(double wpimult,
CellDirection celldirection,
double skinFactor,
double wellDiameter,
double diameter,
CellDirection celldirection,
CompletionType completionType);
bool isNonDarcyFlow() const;