mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1487 Move darchy constant into RigEclipseCaseData, where it belongs
This commit is contained in:
parent
d1b3d619d3
commit
7e847361d1
@ -169,6 +169,7 @@ bool RifFractureExportTools::exportFracturesToEclipseDataInputFile(const QString
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -291,8 +292,7 @@ void RifFractureExportTools::printStimPlanCellsMatrixTransContributions(const st
|
|||||||
}
|
}
|
||||||
else continue;
|
else continue;
|
||||||
|
|
||||||
RigFractureTransCalc transmissibilityCalculator(caseToApply, fracture);
|
double cDarcyInCorrectUnit = caseToApply->eclipseCaseData()->darchysValue();
|
||||||
double cDarcyInCorrectUnit = transmissibilityCalculator.cDarcy();
|
|
||||||
|
|
||||||
std::vector<RigStimPlanFracTemplateCell> stimPlanCells = fracTemplateStimPlan->getStimPlanCells();
|
std::vector<RigStimPlanFracTemplateCell> stimPlanCells = fracTemplateStimPlan->getStimPlanCells();
|
||||||
|
|
||||||
@ -678,7 +678,6 @@ void RifFractureExportTools::printTransmissibilityFractureToWell(const std::vect
|
|||||||
//RigStimPlanCell* stimPlanCell = fracTemplateStimPlan->getStimPlanCellAtIJ(wellCenterStimPlanCellIJ.first, wellCenterStimPlanCellIJ.second);
|
//RigStimPlanCell* stimPlanCell = fracTemplateStimPlan->getStimPlanCellAtIJ(wellCenterStimPlanCellIJ.first, wellCenterStimPlanCellIJ.second);
|
||||||
const RigStimPlanFracTemplateCell& stimPlanCell = fracTemplateStimPlan->stimPlanCellFromIndex(fracTemplateStimPlan->getGlobalIndexFromIJ(wellCenterStimPlanCellIJ.first, wellCenterStimPlanCellIJ.second));
|
const RigStimPlanFracTemplateCell& stimPlanCell = fracTemplateStimPlan->stimPlanCellFromIndex(fracTemplateStimPlan->getGlobalIndexFromIJ(wellCenterStimPlanCellIJ.first, wellCenterStimPlanCellIJ.second));
|
||||||
|
|
||||||
RigFractureTransCalc transmissibilityCalculator(caseToApply, fracture);
|
|
||||||
double linTransInStimPlanCell = RigFractureTransmissibilityEquations::computeLinearTransmissibilityToWellinStimPlanCell(stimPlanCell.getConductivtyValue(),
|
double linTransInStimPlanCell = RigFractureTransmissibilityEquations::computeLinearTransmissibilityToWellinStimPlanCell(stimPlanCell.getConductivtyValue(),
|
||||||
stimPlanCell.cellSizeX(),
|
stimPlanCell.cellSizeX(),
|
||||||
stimPlanCell.cellSizeZ(),
|
stimPlanCell.cellSizeZ(),
|
||||||
@ -686,7 +685,7 @@ void RifFractureExportTools::printTransmissibilityFractureToWell(const std::vect
|
|||||||
perforationLengthHor,
|
perforationLengthHor,
|
||||||
fracture->perforationEfficiency,
|
fracture->perforationEfficiency,
|
||||||
fracture->attachedFractureDefinition()->skinFactor(),
|
fracture->attachedFractureDefinition()->skinFactor(),
|
||||||
transmissibilityCalculator.cDarcy());
|
caseToApply->eclipseCaseData()->darchysValue());
|
||||||
|
|
||||||
out << qSetFieldWidth(10);
|
out << qSetFieldWidth(10);
|
||||||
out << QString::number(linTransInStimPlanCell, 'f', 2);
|
out << QString::number(linTransInStimPlanCell, 'f', 2);
|
||||||
@ -713,7 +712,6 @@ void RifFractureExportTools::printTransmissibilityFractureToWell(const std::vect
|
|||||||
|
|
||||||
const RigStimPlanFracTemplateCell& stimPlanCell = fracTemplateStimPlan->stimPlanCellFromIndex(fracTemplateStimPlan->getGlobalIndexFromIJ(wellCenterStimPlanCellIJ.first, wellCenterStimPlanCellIJ.second));
|
const RigStimPlanFracTemplateCell& stimPlanCell = fracTemplateStimPlan->stimPlanCellFromIndex(fracTemplateStimPlan->getGlobalIndexFromIJ(wellCenterStimPlanCellIJ.first, wellCenterStimPlanCellIJ.second));
|
||||||
|
|
||||||
RigFractureTransCalc transmissibilityCalculator(caseToApply, fracture);
|
|
||||||
double radTransInStimPlanCell = RigFractureTransmissibilityEquations::computeRadialTransmissibilityToWellinStimPlanCell(stimPlanCell.getConductivtyValue(),
|
double radTransInStimPlanCell = RigFractureTransmissibilityEquations::computeRadialTransmissibilityToWellinStimPlanCell(stimPlanCell.getConductivtyValue(),
|
||||||
stimPlanCell.cellSizeX(),
|
stimPlanCell.cellSizeX(),
|
||||||
stimPlanCell.cellSizeZ(),
|
stimPlanCell.cellSizeZ(),
|
||||||
@ -721,7 +719,7 @@ void RifFractureExportTools::printTransmissibilityFractureToWell(const std::vect
|
|||||||
fracture->attachedFractureDefinition()->skinFactor(),
|
fracture->attachedFractureDefinition()->skinFactor(),
|
||||||
fracture->azimuth,
|
fracture->azimuth,
|
||||||
fracture->wellAzimuthAtFracturePosition(),
|
fracture->wellAzimuthAtFracturePosition(),
|
||||||
transmissibilityCalculator.cDarcy());
|
caseToApply->eclipseCaseData()->darchysValue());
|
||||||
|
|
||||||
out << qSetFieldWidth(10);
|
out << qSetFieldWidth(10);
|
||||||
out << QString::number(radTransInStimPlanCell, 'f', 2);
|
out << QString::number(radTransInStimPlanCell, 'f', 2);
|
||||||
|
@ -54,6 +54,7 @@ public:
|
|||||||
RimEclipseCase* caseToApply);
|
RimEclipseCase* caseToApply);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
static void performStimPlanUpscalingAndPrintResults(const std::vector<RimFracture *>& fractures,
|
static void performStimPlanUpscalingAndPrintResults(const std::vector<RimFracture *>& fractures,
|
||||||
RimEclipseCase* caseToApply,
|
RimEclipseCase* caseToApply,
|
||||||
QTextStream &out,
|
QTextStream &out,
|
||||||
|
@ -1504,13 +1504,6 @@ bool RimReservoirCellResultsStorage::isDataPresent(size_t scalarResultIndex) con
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
double RimReservoirCellResultsStorage::darchysValue()
|
double RimReservoirCellResultsStorage::darchysValue()
|
||||||
{
|
{
|
||||||
// See "Cartesian transmissibility calculations" in the "Eclipse Technical Description"
|
|
||||||
// CDARCY Darcys constant
|
|
||||||
// = 0.00852702 (E300); 0.008527 (ECLIPSE 100) (METRIC)
|
|
||||||
// = 0.00112712 (E300); 0.001127 (ECLIPSE 100) (FIELD)
|
|
||||||
// = 3.6 (LAB)
|
|
||||||
// = 0.00864 (PVT - M)
|
|
||||||
|
|
||||||
double darchy = 0.008527; // (ECLIPSE 100) (METRIC)
|
double darchy = 0.008527; // (ECLIPSE 100) (METRIC)
|
||||||
|
|
||||||
RimEclipseCase* rimCase = NULL;
|
RimEclipseCase* rimCase = NULL;
|
||||||
@ -1518,25 +1511,7 @@ double RimReservoirCellResultsStorage::darchysValue()
|
|||||||
|
|
||||||
if (rimCase && rimCase->eclipseCaseData())
|
if (rimCase && rimCase->eclipseCaseData())
|
||||||
{
|
{
|
||||||
RigEclipseCaseData::UnitsType unitsType = rimCase->eclipseCaseData()->unitsType();
|
darchy = rimCase->eclipseCaseData()->darchysValue();
|
||||||
|
|
||||||
if (unitsType == RigEclipseCaseData::UNITS_FIELD)
|
|
||||||
{
|
|
||||||
darchy = 0.001127;
|
|
||||||
}
|
|
||||||
else if (unitsType == RigEclipseCaseData::UNITS_METRIC)
|
|
||||||
{
|
|
||||||
darchy = 0.008527;
|
|
||||||
}
|
|
||||||
else if (unitsType == RigEclipseCaseData::UNITS_LAB)
|
|
||||||
{
|
|
||||||
darchy = 3.6;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
darchy = 0.00864; // Assuming (PVT - M)
|
|
||||||
CVF_TIGHT_ASSERT(false); // The enum and doc does not state that the PVT-M actually exists, so to trap this in debug
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return darchy;
|
return darchy;
|
||||||
|
@ -431,6 +431,43 @@ void RigEclipseCaseData::computeActiveCellBoundingBoxes()
|
|||||||
computeActiveCellsGeometryBoundingBox();
|
computeActiveCellsGeometryBoundingBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
double RigEclipseCaseData::darchysValue()
|
||||||
|
{
|
||||||
|
// See "Cartesian transmissibility calculations" in the "Eclipse Technical Description"
|
||||||
|
// CDARCY Darcys constant
|
||||||
|
// = 0.00852702 (E300); 0.008527 (ECLIPSE 100) (METRIC)
|
||||||
|
// = 0.00112712 (E300); 0.001127 (ECLIPSE 100) (FIELD)
|
||||||
|
// = 3.6 (LAB)
|
||||||
|
// = 0.00864 (PVT - M)
|
||||||
|
|
||||||
|
double darchy = 0.008527; // (ECLIPSE 100) (METRIC)
|
||||||
|
|
||||||
|
RigEclipseCaseData::UnitsType unitsType = this->unitsType();
|
||||||
|
|
||||||
|
if ( unitsType == RigEclipseCaseData::UNITS_FIELD )
|
||||||
|
{
|
||||||
|
darchy = 0.001127;
|
||||||
|
}
|
||||||
|
else if ( unitsType == RigEclipseCaseData::UNITS_METRIC )
|
||||||
|
{
|
||||||
|
darchy = 0.008527;
|
||||||
|
}
|
||||||
|
else if ( unitsType == RigEclipseCaseData::UNITS_LAB )
|
||||||
|
{
|
||||||
|
darchy = 3.6;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
darchy = 0.00864; // Assuming (PVT - M)
|
||||||
|
CVF_TIGHT_ASSERT(false); // The enum and doc does not state that the PVT-M actually exists, so to trap this in debug
|
||||||
|
}
|
||||||
|
|
||||||
|
return darchy;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -94,6 +94,7 @@ public:
|
|||||||
|
|
||||||
UnitsType unitsType() const { return m_unitsType; }
|
UnitsType unitsType() const { return m_unitsType; }
|
||||||
void setUnitsType(UnitsType unitsType) { m_unitsType = unitsType; }
|
void setUnitsType(UnitsType unitsType) { m_unitsType = unitsType; }
|
||||||
|
double darchysValue();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void computeActiveCellIJKBBox();
|
void computeActiveCellIJKBBox();
|
||||||
|
Loading…
Reference in New Issue
Block a user