Add communication when multiplying with the matrix duneB_ in apply

Here we go from cells to segments, and everything concerning segments is stored globally.
This commit is contained in:
Lisa Julia Nebel 2024-10-16 14:44:11 +02:00
parent 6784db2d1d
commit 81a5da8b63

View File

@ -152,6 +152,11 @@ apply(const BVector& x, BVector& Ax) const
duneB_.mv(x, Bx);
if (this->pw_info_.communication().size() == 1) {
// We need to communicate here to get the contributions from all segments
this->pw_info_.communication().sum(Bx.data(), Bx.size());
}
// invDBx = duneD^-1 * Bx_
const BVectorWell invDBx = mswellhelpers::applyUMFPack(*duneDSolver_, Bx);