mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3753 : Non-Darcy perforations : Add calculation of effective height
This commit is contained in:
parent
40f466fb0c
commit
268fc4f368
@ -57,12 +57,12 @@ double RigTransmissibilityEquations::totalConnectionFactor(double transX, double
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
double RigTransmissibilityEquations::totalPermeability(double cellPermX,
|
double RigTransmissibilityEquations::totalKh(double cellPermX,
|
||||||
double cellPermY,
|
double cellPermY,
|
||||||
double cellPermZ,
|
double cellPermZ,
|
||||||
const cvf::Vec3d& internalCellLengths,
|
const cvf::Vec3d& internalCellLengths,
|
||||||
double lateralNtg,
|
double lateralNtg,
|
||||||
double ntg)
|
double ntg)
|
||||||
{
|
{
|
||||||
// Compute kh for each local grid cell axis
|
// Compute kh for each local grid cell axis
|
||||||
// Use permeability values for the two other axis
|
// Use permeability values for the two other axis
|
||||||
@ -70,9 +70,52 @@ double RigTransmissibilityEquations::totalPermeability(double cellPer
|
|||||||
double khy = sqrt(cellPermX * cellPermZ) * internalCellLengths.y() * lateralNtg;
|
double khy = sqrt(cellPermX * cellPermZ) * internalCellLengths.y() * lateralNtg;
|
||||||
double khz = sqrt(cellPermX * cellPermY) * internalCellLengths.z() * ntg;
|
double khz = sqrt(cellPermX * cellPermY) * internalCellLengths.z() * ntg;
|
||||||
|
|
||||||
const double totalKh = cvf::Math::sqrt(khx * khx + khy * khy + khz * khz);
|
const double totKh = cvf::Math::sqrt(khx * khx + khy * khy + khz * khz);
|
||||||
|
|
||||||
return totalKh;
|
return totKh;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
double RigTransmissibilityEquations::effectiveK(double cellPermX,
|
||||||
|
double cellPermY,
|
||||||
|
double cellPermZ,
|
||||||
|
const cvf::Vec3d& internalCellLengths,
|
||||||
|
double lateralNtg,
|
||||||
|
double ntg)
|
||||||
|
{
|
||||||
|
// Compute kh for each local grid cell axis
|
||||||
|
// Use permeability values for the two other axis
|
||||||
|
|
||||||
|
double lx = internalCellLengths.x() * lateralNtg;
|
||||||
|
double ly = internalCellLengths.y() * lateralNtg;
|
||||||
|
double lz = internalCellLengths.z() * ntg;
|
||||||
|
|
||||||
|
double khx = sqrt(cellPermY * cellPermZ) * lx;
|
||||||
|
double khy = sqrt(cellPermX * cellPermZ) * ly;
|
||||||
|
double khz = sqrt(cellPermX * cellPermY) * lz;
|
||||||
|
|
||||||
|
double nominator = khx + khy + khz;
|
||||||
|
double denominator = lx + ly + lz;
|
||||||
|
|
||||||
|
const double effK = nominator / denominator;
|
||||||
|
|
||||||
|
return effK;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
double RigTransmissibilityEquations::effectiveH(const cvf::Vec3d& internalCellLengths, double lateralNtg, double ntg)
|
||||||
|
{
|
||||||
|
double lx = internalCellLengths.x() * lateralNtg;
|
||||||
|
double ly = internalCellLengths.y() * lateralNtg;
|
||||||
|
double lz = internalCellLengths.z() * ntg;
|
||||||
|
|
||||||
|
double effH = cvf::Math::sqrt(lx*lx + ly*ly + lz*lz);
|
||||||
|
|
||||||
|
return effH;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -38,12 +38,21 @@ public:
|
|||||||
|
|
||||||
static double totalConnectionFactor(double transX, double transY, double transZ);
|
static double totalConnectionFactor(double transX, double transY, double transZ);
|
||||||
|
|
||||||
static double totalPermeability(double cellPermX,
|
static double totalKh(double cellPermX,
|
||||||
double cellPermY,
|
double cellPermY,
|
||||||
double cellPermZ,
|
double cellPermZ,
|
||||||
const cvf::Vec3d& internalCellLengths,
|
const cvf::Vec3d& internalCellLengths,
|
||||||
double lateralNtg,
|
double lateralNtg,
|
||||||
double ntg);
|
double ntg);
|
||||||
|
|
||||||
|
static double effectiveK(double cellPermX,
|
||||||
|
double cellPermY,
|
||||||
|
double cellPermZ,
|
||||||
|
const cvf::Vec3d& internalCellLengths,
|
||||||
|
double lateralNtg,
|
||||||
|
double ntg);
|
||||||
|
|
||||||
|
static double effectiveH(const cvf::Vec3d& internalCellLengths, double lateralNtg, double ntg);
|
||||||
|
|
||||||
static double permeability(const double conductivity, const double width);
|
static double permeability(const double conductivity, const double width);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user