mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
riTRAN: Use cell center to cell face center vectors
This commit is contained in:
@@ -678,12 +678,10 @@ void RimReservoirCellResultsStorage::computeDepthRelatedResults()
|
|||||||
namespace RigTransmissibilityCalcTools
|
namespace RigTransmissibilityCalcTools
|
||||||
{
|
{
|
||||||
void calculateConnectionGeometry(const RigCell& c1, const RigCell& c2, const std::vector<cvf::Vec3d>& nodes,
|
void calculateConnectionGeometry(const RigCell& c1, const RigCell& c2, const std::vector<cvf::Vec3d>& nodes,
|
||||||
cvf::StructGridInterface::FaceType faceId,
|
cvf::StructGridInterface::FaceType faceId, cvf::Vec3d* faceAreaVec)
|
||||||
cvf::Vec3d* faceCenter, cvf::Vec3d* faceAreaVec)
|
|
||||||
{
|
{
|
||||||
CVF_TIGHT_ASSERT(faceCenter && faceAreaVec);
|
CVF_TIGHT_ASSERT(faceAreaVec);
|
||||||
|
|
||||||
*faceCenter = cvf::Vec3d::ZERO;
|
|
||||||
*faceAreaVec = cvf::Vec3d::ZERO;
|
*faceAreaVec = cvf::Vec3d::ZERO;
|
||||||
|
|
||||||
std::vector<size_t> polygon;
|
std::vector<size_t> polygon;
|
||||||
@@ -715,14 +713,6 @@ namespace RigTransmissibilityCalcTools
|
|||||||
realPolygon.push_back(intersections[polygon[pIdx] - nodes.size()]);
|
realPolygon.push_back(intersections[polygon[pIdx] - nodes.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Polygon center
|
|
||||||
for (size_t pIdx = 0; pIdx < realPolygon.size(); ++pIdx)
|
|
||||||
{
|
|
||||||
*faceCenter += realPolygon[pIdx];
|
|
||||||
}
|
|
||||||
|
|
||||||
*faceCenter *= 1.0 / realPolygon.size();
|
|
||||||
|
|
||||||
// Polygon area vector
|
// Polygon area vector
|
||||||
|
|
||||||
*faceAreaVec = cvf::GeometryTools::polygonAreaNormal3D(realPolygon);
|
*faceAreaVec = cvf::GeometryTools::polygonAreaNormal3D(realPolygon);
|
||||||
@@ -887,12 +877,11 @@ void RimReservoirCellResultsStorage::computeRiTransComponent(const QString& riTr
|
|||||||
|
|
||||||
if (isOnFault)
|
if (isOnFault)
|
||||||
{
|
{
|
||||||
calculateConnectionGeometry(nativeCell, neighborCell, nodes, faceId,
|
calculateConnectionGeometry(nativeCell, neighborCell, nodes, faceId, &faceAreaVec);
|
||||||
&faceCenter, &faceAreaVec);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
faceCenter = nativeCell.faceCenter(faceId);
|
|
||||||
faceAreaVec = nativeCell.faceNormalWithAreaLenght(faceId);
|
faceAreaVec = nativeCell.faceNormalWithAreaLenght(faceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -903,7 +892,7 @@ void RimReservoirCellResultsStorage::computeRiTransComponent(const QString& riTr
|
|||||||
|
|
||||||
// Native cell half cell transm
|
// Native cell half cell transm
|
||||||
{
|
{
|
||||||
cvf::Vec3d centerToFace = faceCenter - nativeCell.center();
|
cvf::Vec3d centerToFace = nativeCell.faceCenter(faceId) - nativeCell.center();
|
||||||
|
|
||||||
size_t permResIdx = (*permIdxFunc)(activeCellInfo, nativeResvCellIndex);
|
size_t permResIdx = (*permIdxFunc)(activeCellInfo, nativeResvCellIndex);
|
||||||
double perm = permResults[permResIdx];
|
double perm = permResults[permResIdx];
|
||||||
@@ -920,7 +909,7 @@ void RimReservoirCellResultsStorage::computeRiTransComponent(const QString& riTr
|
|||||||
|
|
||||||
// Neighbor cell half cell transm
|
// Neighbor cell half cell transm
|
||||||
{
|
{
|
||||||
cvf::Vec3d centerToFace = faceCenter - neighborCell.center();
|
cvf::Vec3d centerToFace = neighborCell.faceCenter(cvf::StructGridInterface::oppositeFace(faceId)) - neighborCell.center();
|
||||||
|
|
||||||
double perm = permResults[neighborCellPermResIdx];
|
double perm = permResults[neighborCellPermResIdx];
|
||||||
|
|
||||||
@@ -1066,7 +1055,7 @@ void RimReservoirCellResultsStorage::computeNncCombRiTrans()
|
|||||||
|
|
||||||
// Native cell half cell transm
|
// Native cell half cell transm
|
||||||
{
|
{
|
||||||
cvf::Vec3d centerToFace = faceCenter - nativeCell.center();
|
cvf::Vec3d centerToFace = nativeCell.faceCenter(faceId) - nativeCell.center();
|
||||||
|
|
||||||
double perm = (*permResults)[nativeCellPermResIdx];
|
double perm = (*permResults)[nativeCellPermResIdx];
|
||||||
|
|
||||||
@@ -1082,7 +1071,7 @@ void RimReservoirCellResultsStorage::computeNncCombRiTrans()
|
|||||||
|
|
||||||
// Neighbor cell half cell transm
|
// Neighbor cell half cell transm
|
||||||
{
|
{
|
||||||
cvf::Vec3d centerToFace = faceCenter - neighborCell.center();
|
cvf::Vec3d centerToFace = neighborCell.faceCenter(cvf::StructGridInterface::oppositeFace(faceId)) - neighborCell.center();
|
||||||
|
|
||||||
double perm = (*permResults)[neighborCellPermResIdx];
|
double perm = (*permResults)[neighborCellPermResIdx];
|
||||||
|
|
||||||
@@ -1301,16 +1290,13 @@ void RimReservoirCellResultsStorage::computeRiTRANSbyAreaComponent(const QString
|
|||||||
bool isOnFault = fault;
|
bool isOnFault = fault;
|
||||||
|
|
||||||
cvf::Vec3d faceAreaVec;
|
cvf::Vec3d faceAreaVec;
|
||||||
cvf::Vec3d faceCenter;
|
|
||||||
|
|
||||||
if (isOnFault)
|
if (isOnFault)
|
||||||
{
|
{
|
||||||
calculateConnectionGeometry(nativeCell, neighborCell, nodes, faceId,
|
calculateConnectionGeometry(nativeCell, neighborCell, nodes, faceId, &faceAreaVec);
|
||||||
&faceCenter, &faceAreaVec);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
faceCenter = nativeCell.faceCenter(faceId);
|
|
||||||
faceAreaVec = nativeCell.faceNormalWithAreaLenght(faceId);
|
faceAreaVec = nativeCell.faceNormalWithAreaLenght(faceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user