mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 23:46:00 -06:00
#1487- pre-proto - Using EclipseToStimPlanCellTransmissibilityCalculator instead of RigFractureTransCalc for calculating Matrix-to-fracture transmissibilities for stimPlan cells.
This commit is contained in:
parent
de2d78828b
commit
4cb77642f3
@ -278,6 +278,7 @@ void RifEclipseExportTools::printStimPlanCellsMatrixTransContributions(const std
|
||||
else continue;
|
||||
|
||||
RigFractureTransCalc transmissibilityCalculator(caseToApply, fracture);
|
||||
double cDarcyInCorrectUnit = transmissibilityCalculator.cDarcy();
|
||||
|
||||
std::vector<RigStimPlanFracTemplateCell> stimPlanCells = fracTemplateStimPlan->getStimPlanCells();
|
||||
|
||||
@ -285,18 +286,19 @@ void RifEclipseExportTools::printStimPlanCellsMatrixTransContributions(const std
|
||||
{
|
||||
if (stimPlanCell.getConductivtyValue() < 1e-7)
|
||||
{
|
||||
//If conductivity in stimPlanCell is 0, contributions might not be relevant...
|
||||
//continue;
|
||||
continue;
|
||||
}
|
||||
|
||||
RigStimPlanFractureCell fracStimPlanCellData(stimPlanCell.getI(), stimPlanCell.getJ());
|
||||
|
||||
EclipseToStimPlanCellTransmissibilityCalculator eclToStimPlanTransCalc(caseToApply,
|
||||
fracture->transformMatrix(),
|
||||
fracture->attachedFractureDefinition()->skinFactor,
|
||||
cDarcyInCorrectUnit,
|
||||
stimPlanCell);
|
||||
|
||||
transmissibilityCalculator.calculateStimPlanCellsMatrixTransmissibility(&stimPlanCell, &fracStimPlanCellData);
|
||||
|
||||
|
||||
std::vector<size_t> stimPlanContributingEclipseCells = fracStimPlanCellData.getGlobalIndeciesToContributingEclipseCells();
|
||||
std::vector<double> stimPlanContributingEclipseCellTransmissibilities = fracStimPlanCellData.getContributingEclipseCellTransmissibilities();
|
||||
std::vector<size_t> stimPlanContributingEclipseCells = eclToStimPlanTransCalc.globalIndeciesToContributingEclipseCells();
|
||||
std::vector<double> stimPlanContributingEclipseCellTransmissibilities = eclToStimPlanTransCalc.contributingEclipseCellTransmissibilities();
|
||||
|
||||
for (int i = 0; i < stimPlanContributingEclipseCells.size(); i++)
|
||||
{
|
||||
|
@ -881,11 +881,38 @@ EclipseToStimPlanCellTransmissibilityCalculator::EclipseToStimPlanCellTransmissi
|
||||
{
|
||||
m_case = caseToApply;
|
||||
m_fractureSkinFactor = skinFactor;
|
||||
m_cDarcy = cDarcy;
|
||||
m_fractureTransform = fractureTransform;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<size_t>& EclipseToStimPlanCellTransmissibilityCalculator::globalIndeciesToContributingEclipseCells()
|
||||
{
|
||||
if (m_globalIndeciesToContributingEclipseCells.size() < 1)
|
||||
{
|
||||
calculateStimPlanCellsMatrixTransmissibility();
|
||||
}
|
||||
|
||||
return m_globalIndeciesToContributingEclipseCells;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::vector<double>& EclipseToStimPlanCellTransmissibilityCalculator::contributingEclipseCellTransmissibilities()
|
||||
{
|
||||
if (m_globalIndeciesToContributingEclipseCells.size() < 1)
|
||||
{
|
||||
calculateStimPlanCellsMatrixTransmissibility();
|
||||
}
|
||||
|
||||
return m_contributingEclipseCellTransmissibilities;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -919,8 +946,16 @@ void EclipseToStimPlanCellTransmissibilityCalculator::calculateStimPlanCellsMatr
|
||||
|
||||
RigActiveCellInfo* activeCellInfo = eclipseCaseData->activeCellInfo(porosityModel);
|
||||
|
||||
std::vector<cvf::Vec3d> stimPlanPolygonTransformed;
|
||||
for (cvf::Vec3d v : m_stimPlanCell.getPolygon())
|
||||
{
|
||||
cvf::Vec3f stimPlanPolygonNode = static_cast<cvf::Vec3f>(v);
|
||||
stimPlanPolygonNode.transformPoint(m_fractureTransform);
|
||||
stimPlanPolygonTransformed.push_back(static_cast<cvf::Vec3d>(stimPlanPolygonNode));
|
||||
}
|
||||
|
||||
std::vector<size_t> fracCells = getPotentiallyFracturedCellsForPolygon(m_stimPlanCell.getPolygon());
|
||||
|
||||
std::vector<size_t> fracCells = getPotentiallyFracturedCellsForPolygon(stimPlanPolygonTransformed);
|
||||
for (size_t fracCell : fracCells)
|
||||
{
|
||||
bool cellIsActive = activeCellInfo->isActive(fracCell);
|
||||
|
@ -68,6 +68,8 @@ public:
|
||||
static std::vector<RigStimPlanFracTemplateCell*> getRowOfStimPlanCells(std::vector<RigStimPlanFracTemplateCell>& allStimPlanCells, size_t i);
|
||||
static std::vector<RigStimPlanFracTemplateCell*> getColOfStimPlanCells(std::vector<RigStimPlanFracTemplateCell>& allStimPlanCells, size_t j);
|
||||
|
||||
double cDarcy();
|
||||
|
||||
private:
|
||||
double convertConductivtyValue(double Kw, RimDefines::UnitSystem fromUnit, RimDefines::UnitSystem toUnit);
|
||||
double calculateMatrixTransmissibility(double permX, double NTG, double Ay, double dx, double skinfactor, double fractureAreaWeightedlength);
|
||||
@ -77,7 +79,6 @@ private:
|
||||
RimFracture* m_fracture;
|
||||
RimDefines::UnitSystem m_unitForCalculation;
|
||||
|
||||
double cDarcy();
|
||||
};
|
||||
|
||||
class EclipseToStimPlanCellTransmissibilityCalculator
|
||||
|
Loading…
Reference in New Issue
Block a user