added: MultisegmentWellEquations::apply(r)

this applies the equation system to a vector.
use the new method in the well implementation.
This commit is contained in:
Arne Morten Kvarving
2022-11-11 21:41:24 +01:00
parent f2acbccc1a
commit abf5f94561
3 changed files with 17 additions and 7 deletions

View File

@@ -217,14 +217,11 @@ namespace Opm
MultisegmentWell<TypeTag>::
apply(BVector& r) const
{
if (!this->isOperableAndSolvable() && !this->wellIsStopped()) return;
if (!this->isOperableAndSolvable() && !this->wellIsStopped()) {
return;
}
// invDrw_ = duneD^-1 * resWell_
const BVectorWell invDrw = mswellhelpers::applyUMFPack(this->linSys_.duneD_,
this->linSys_.duneDSolver_,
this->linSys_.resWell_);
// r = r - duneC_^T * invDrw
this->linSys_.duneC_.mmtv(invDrw, r);
this->linSys_.apply(r);
}