added: MultisegmentWellEquations::recoverSolutionWell()

this recovers the well solution from a solution 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 bc312d1117
commit d50aaf8ed4
5 changed files with 19 additions and 20 deletions

View File

@@ -389,20 +389,6 @@ updatePrimaryVariables(const WellState& well_state) const
}
}
template<typename FluidSystem, typename Indices, typename Scalar>
void
MultisegmentWellEval<FluidSystem,Indices,Scalar>::
recoverSolutionWell(const BVector& x, BVectorWell& xw) const
{
if (!baseif_.isOperableAndSolvable() && !baseif_.wellIsStopped()) return;
BVectorWell resWell = linSys_.resWell_;
// resWell = resWell - B * x
linSys_.duneB_.mmv(x, resWell);
// xw = D^-1 * resWell
xw = mswellhelpers::applyUMFPack(*linSys_.duneDSolver_, resWell);
}
template<typename FluidSystem, typename Indices, typename Scalar>
typename MultisegmentWellEval<FluidSystem,Indices,Scalar>::EvalWell
MultisegmentWellEval<FluidSystem,Indices,Scalar>::