Transmissibility:update: replace operator[] with insert_or_assign()

This commit is contained in:
Arne Morten Kvarving 2025-01-16 13:20:48 +01:00
parent 471eeb1004
commit a9787f23f7

View File

@ -277,7 +277,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
// transmissibility of the interior element. // transmissibility of the interior element.
unsigned insideCartElemIdx = cartMapper_.cartesianIndex(elemIdx); unsigned insideCartElemIdx = cartMapper_.cartesianIndex(elemIdx);
applyMultipliers_(transBoundaryIs, intersection.indexInInside(), insideCartElemIdx, transMult); applyMultipliers_(transBoundaryIs, intersection.indexInInside(), insideCartElemIdx, transMult);
transBoundary_[std::make_pair(elemIdx, boundaryIsIdx)] = transBoundaryIs; transBoundary_.insert_or_assign(std::make_pair(elemIdx, boundaryIsIdx), transBoundaryIs);
// for boundary intersections we also need to compute the thermal // for boundary intersections we also need to compute the thermal
// half transmissibilities // half transmissibilities
@ -288,8 +288,8 @@ update(bool global, const TransUpdateQuantities update_quantities,
distanceVector_(faceCenterInside, distanceVector_(faceCenterInside,
elemIdx), elemIdx),
1.0); 1.0);
thermalHalfTransBoundary_[std::make_pair(elemIdx, boundaryIsIdx)] = thermalHalfTransBoundary_.insert_or_assign(std::make_pair(elemIdx, boundaryIsIdx),
transBoundaryEnergyIs; transBoundaryEnergyIs);
} }
++boundaryIsIdx; ++boundaryIsIdx;
@ -330,17 +330,17 @@ update(bool global, const TransUpdateQuantities update_quantities,
// NNC. Set zero transmissibility, as it will be // NNC. Set zero transmissibility, as it will be
// *added to* by applyNncToGridTrans_() later. // *added to* by applyNncToGridTrans_() later.
assert(outsideFaceIdx == -1); assert(outsideFaceIdx == -1);
trans_[details::isId(elemIdx, outsideElemIdx)] = 0.0; trans_.insert_or_assign(details::isId(elemIdx, outsideElemIdx), 0.0);
if (enableEnergy_ && !onlyTrans) { if (enableEnergy_ && !onlyTrans) {
thermalHalfTrans_[details::directionalIsId(elemIdx, outsideElemIdx)] = 0.0; thermalHalfTrans_.insert_or_assign(details::directionalIsId(elemIdx, outsideElemIdx), 0.0);
thermalHalfTrans_[details::directionalIsId(outsideElemIdx, elemIdx)] = 0.0; thermalHalfTrans_.insert_or_assign(details::directionalIsId(outsideElemIdx, elemIdx), 0.0);
} }
if (updateDiffusivity && !onlyTrans) { if (updateDiffusivity && !onlyTrans) {
diffusivity_[details::isId(elemIdx, outsideElemIdx)] = 0.0; diffusivity_.insert_or_assign(details::isId(elemIdx, outsideElemIdx), 0.0);
} }
if (updateDispersivity && !onlyTrans) { if (updateDispersivity && !onlyTrans) {
dispersivity_[details::isId(elemIdx, outsideElemIdx)] = 0.0; dispersivity_.insert_or_assign(details::isId(elemIdx, outsideElemIdx), 0.0);
} }
continue; continue;
} }
@ -449,7 +449,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
outsideCartElemIdx, outsideCartElemIdx,
faceDir); faceDir);
trans_[details::isId(elemIdx, outsideElemIdx)] = trans; trans_.insert_or_assign(details::isId(elemIdx, outsideElemIdx), trans);
// update the "thermal half transmissibility" for the intersection // update the "thermal half transmissibility" for the intersection
if (enableEnergy_ && !onlyTrans) { if (enableEnergy_ && !onlyTrans) {
@ -467,8 +467,10 @@ update(bool global, const TransUpdateQuantities update_quantities,
outsideElemIdx), outsideElemIdx),
1.0); 1.0);
// TODO Add support for multipliers // TODO Add support for multipliers
thermalHalfTrans_[details::directionalIsId(elemIdx, outsideElemIdx)] = halfDiffusivity1; thermalHalfTrans_.insert_or_assign(details::directionalIsId(elemIdx, outsideElemIdx),
thermalHalfTrans_[details::directionalIsId(outsideElemIdx, elemIdx)] = halfDiffusivity2; halfDiffusivity1);
thermalHalfTrans_.insert_or_assign(details::directionalIsId(outsideElemIdx, elemIdx),
halfDiffusivity2);
} }
// update the "diffusive half transmissibility" for the intersection // update the "diffusive half transmissibility" for the intersection
@ -500,7 +502,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
diffusivity = 1.0 / (1.0 / halfDiffusivity1 + 1.0 / halfDiffusivity2); diffusivity = 1.0 / (1.0 / halfDiffusivity1 + 1.0 / halfDiffusivity2);
} }
diffusivity_[details::isId(elemIdx, outsideElemIdx)] = diffusivity; diffusivity_.insert_or_assign(details::isId(elemIdx, outsideElemIdx), diffusivity);
} }
// update the "dispersivity half transmissibility" for the intersection // update the "dispersivity half transmissibility" for the intersection
@ -532,7 +534,7 @@ update(bool global, const TransUpdateQuantities update_quantities,
dispersivity = 1.0 / (1.0 / halfDispersivity1 + 1.0 / halfDispersivity2); dispersivity = 1.0 / (1.0 / halfDispersivity1 + 1.0 / halfDispersivity2);
} }
dispersivity_[details::isId(elemIdx, outsideElemIdx)] = dispersivity; dispersivity_.insert_or_assign(details::isId(elemIdx, outsideElemIdx), dispersivity);
} }
} }
} }