only applying regional multiplier to PINCH NNC

when applyNncMultregT is true. it is consistent with other code design.
This commit is contained in:
Kai Bao committed 2025-09-25 19:10:19 +02:00
1 parent d1c024c51e
commit 823f157aee
2 files changed
+10 -5

No files matched your search

+2 -1
View File
@@ -230,7 +230,8 @@ protected:
///
/// \param cartesianToCompressed Vector containing the compressed index (or -1 for inactive
/// cells) as the element at the cartesian index.
void applyPinchNncToGridTrans_(const std::unordered_map<std::size_t,int>& cartesianToCompressed);
void applyPinchNncToGridTrans_(const std::unordered_map<std::size_t,int>& cartesianToCompressed,
bool applyNncMultregT);
/// \brief Multiplies the grid transmissibilities according to EDITNNC.
void applyEditNncToGridTrans_(const std::unordered_map<std::size_t,int>& globalToLocal);
@@ -563,7 +563,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
// be seen in a parallel. Unfortunately, when we do not use transmissibilities
// we will only see warnings for the partition of process 0 and also false positives.
this->applyEditNncToGridTrans_(globalToLocal);
this->applyPinchNncToGridTrans_(globalToLocal);
this->applyPinchNncToGridTrans_(globalToLocal, applyNncMultregT);
this->applyNncToGridTrans_(globalToLocal);
this->applyEditNncrToGridTrans_(globalToLocal);
if (applyNncMultregT) {
@@ -1054,7 +1054,8 @@ computeFaceProperties(const Intersection& intersection,
template<class Grid, class GridView, class ElementMapper, class CartesianIndexMapper, class Scalar>
void
Transmissibility<Grid,GridView,ElementMapper,CartesianIndexMapper,Scalar>::
applyPinchNncToGridTrans_(const std::unordered_map<std::size_t,int>& cartesianToCompressed)
applyPinchNncToGridTrans_(const std::unordered_map<std::size_t,int>& cartesianToCompressed,
const bool applyNncMultregT)
{
const auto& pinchNnc = eclState_.getPinchNNC();
const auto& transMult = this->eclState_.getTransMult();
@@ -1089,8 +1090,11 @@ applyPinchNncToGridTrans_(const std::unordered_map<std::size_t,int>& cartesianTo
// the correctly calculated transmissibility is stored in
// the NNC. Overwrite previous value with it.
// taking the region multiplier into account.
const auto mult = transMult.getRegionMultiplierNNC(c1, c2);
candidate->second = nncEntry.trans * mult;
candidate->second = nncEntry.trans;
if (applyNncMultregT) {
const auto mult = transMult.getRegionMultiplierNNC(c1, c2);
candidate->second *= mult;
}
}
}
}