Transmissibility::update: use ThreadedMap for dispersivity_

this in preparation for multithreading the loop
This commit is contained in:
Arne Morten Kvarving 2025-01-16 13:31:10 +01:00
parent a502a86dc1
commit d551d95762

View File

@ -294,6 +294,8 @@ update(bool global, const TransUpdateQuantities update_quantities,
MapBuilderInsertionMode::Insert_Or_Assign); MapBuilderInsertionMode::Insert_Or_Assign);
ThreadSafeMapBuilder diffusivity(diffusivity_, 1, ThreadSafeMapBuilder diffusivity(diffusivity_, 1,
MapBuilderInsertionMode::Insert_Or_Assign); MapBuilderInsertionMode::Insert_Or_Assign);
ThreadSafeMapBuilder dispersivity(dispersivity_, 1,
MapBuilderInsertionMode::Insert_Or_Assign);
// compute the transmissibilities for all intersections // compute the transmissibilities for all intersections
for (const auto& elem : elements(gridView_)) { for (const auto& elem : elements(gridView_)) {
@ -416,7 +418,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
diffusivity.insert_or_assign(details::isId(inside.elemIdx, outside.elemIdx), 0.0); diffusivity.insert_or_assign(details::isId(inside.elemIdx, outside.elemIdx), 0.0);
} }
if (updateDispersivity && !onlyTrans) { if (updateDispersivity && !onlyTrans) {
dispersivity_.insert_or_assign(details::isId(inside.elemIdx, outside.elemIdx), 0.0); dispersivity.insert_or_assign(details::isId(inside.elemIdx, outside.elemIdx), 0.0);
} }
continue; continue;
} }
@ -487,8 +489,8 @@ update(bool global, const TransUpdateQuantities update_quantities,
// update the "dispersivity half transmissibility" for the intersection // update the "dispersivity half transmissibility" for the intersection
if (updateDispersivity && !onlyTrans) { if (updateDispersivity && !onlyTrans) {
dispersivity_.insert_or_assign(details::isId(inside.elemIdx, outside.elemIdx), dispersivity.insert_or_assign(details::isId(inside.elemIdx, outside.elemIdx),
computeHalfMean(halfDiff, dispersion_)); computeHalfMean(halfDiff, dispersion_));
} }
} }
} }
@ -499,6 +501,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
thermalHalfTransBoundary.finalize(); thermalHalfTransBoundary.finalize();
thermalHalfTrans.finalize(); thermalHalfTrans.finalize();
diffusivity.finalize(); diffusivity.finalize();
dispersivity.finalize();
// Potentially overwrite and/or modify transmissibilities based on input from deck // Potentially overwrite and/or modify transmissibilities based on input from deck
this->updateFromEclState_(global); this->updateFromEclState_(global);