diff --git a/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh b/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh index 226c8c4e75510dfa26b1eca46d85766891cce883..8312a9ebc26126fd3faa01d47435319a903deccd 100644 --- a/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh +++ b/dumux/decoupled/2p/transport/fv/fvsaturation2p.hh @@ -884,24 +884,23 @@ int FVSaturation2P<TypeTag>::update(const Scalar t, Scalar& dt, RepresentationTy break; } } + Scalar boundaryFactor = problem_.neumannSat(globalPosFace, *isIt, factor); - - switch (saturationType_) - { - case Sw: - { - Scalar boundaryFactor = problem_.neumannPress(globalPosFace, *isIt)[wPhaseIdx]; - - factor = boundaryFactor / densityWI * faceArea / (volume * porosity); - break; - } - case Sn: + if (factor != boundaryFactor) { - Scalar boundaryFactor = problem_.neumannPress(globalPosFace, *isIt)[nPhaseIdx]; - - factor = boundaryFactor / densityNWI * faceArea / (volume * porosity); - break; - } + switch (saturationType_) + { + case Sw: + { + factor = boundaryFactor / densityWI * faceArea / (volume * porosity); + break; + } + case Sn: + { + factor = boundaryFactor / densityNWI * faceArea / (volume * porosity); + break; + } + } }