#1554 Implementing handling of infinite/finite conductivity in fracture during transmissibility calculation. Setting default value to finite conductivity (in fracture templates).

This commit is contained in:
astridkbjorke 2017-06-09 09:28:24 +02:00
parent 8679af2dbc
commit f46e31e673
2 changed files with 126 additions and 108 deletions

View File

@ -56,6 +56,9 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateFractur
for (RimFracture* fracture : fracturesAlongWellPath)
{
bool fractureFiniteCond = (fracture->attachedFractureDefinition()->fractureConductivity() == RimFractureTemplate::FINITE_CONDUCTIVITY);
using CellIdxSpace = RigTransmissibilityCondenser::CellAddress;
RimFractureTemplate* fracTemplate = fracture->attachedFractureDefinition();
@ -84,16 +87,28 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateFractur
size_t stimPlanCellIndex = fractureGrid->getGlobalIndexFromIJ(fractureCell.getI(), fractureCell.getJ());
for (size_t i = 0; i < fractureCellContributingEclipseCells.size(); i++)
{
if (fractureFiniteCond)
{
transCondenser.addNeighborTransmissibility({ true, CellIdxSpace::ECLIPSE, fractureCellContributingEclipseCells[i] },
{ false, CellIdxSpace::STIMPLAN, stimPlanCellIndex },
fractureCellContributingEclipseCellTransmissibilities[i]);
}
else
{
transCondenser.addNeighborTransmissibility({ true, CellIdxSpace::ECLIPSE, fractureCellContributingEclipseCells[i] },
{ true, CellIdxSpace::WELL, 1 },
fractureCellContributingEclipseCellTransmissibilities[i]);
}
}
}
//////
// Calculate Transmissibility in the fracture: From one StimPlan Cell to the other
if (fractureFiniteCond)
{
for (size_t i = 0; i < fractureGrid->iCellCount(); i++)
{
for (size_t j = 0; j < fractureGrid->jCellCount(); j++)
@ -144,10 +159,13 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateFractur
}
}
}
}
/////
// Calculate transmissibility into the well
if (fractureFiniteCond)
{
////
//If fracture has orientation Azimuth or Transverse, assume only radial inflow
if (fracture->attachedFractureDefinition()->orientation() == RimFractureTemplate::AZIMUTH
@ -216,7 +234,7 @@ std::vector<RigCompletionData> RicExportFractureCompletionsImpl::generateFractur
totalWellTrans);
}
}
}
/////
// Insert total transmissibility from eclipse-cell to well for this fracture into the map

View File

@ -78,7 +78,7 @@ RimFractureTemplate::RimFractureTemplate(void)
perforationEfficiency.uiCapability()->setUiEditorTypeName(caf::PdmUiDoubleSliderEditor::uiEditorTypeName());
CAF_PDM_InitField(&wellDiameter, "wellDiameter", 0.216, "Well Diameter at Fracture", "", "", "");
CAF_PDM_InitField(&fractureConductivity, "FractureCondictivity", caf::AppEnum<FracConductivityEnum>(INFINITE_CONDUCTIVITY), "Conductivity in Fracture", "", "", "");
CAF_PDM_InitField(&fractureConductivity, "FractureCondictivity", caf::AppEnum<FracConductivityEnum>(FINITE_CONDUCTIVITY), "Conductivity in Fracture", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_fractureContainmentField, "fractureContainmentField", "Fracture Containment", "", "", "");
m_fractureContainmentField = new RimFractureContainment();