diff --git a/Solver/linearSystemPETSc.cpp b/Solver/linearSystemPETSc.cpp index cfadd327c04db5d66117f18d5c04217cb3548fe5..dad32f072100b375577f7b3fab599b8bbc2167cc 100644 --- a/Solver/linearSystemPETSc.cpp +++ b/Solver/linearSystemPETSc.cpp @@ -262,6 +262,8 @@ void linearSystemPETScBlockDouble::preAllocateEntries() void linearSystemPETScBlockDouble::zeroMatrix() { if (_isAllocated && _entriesPreAllocated) { + MatAssemblyBegin(_a, MAT_FINAL_ASSEMBLY); + MatAssemblyEnd(_a, MAT_FINAL_ASSEMBLY); MatZeroEntries(_a); } } @@ -269,6 +271,8 @@ void linearSystemPETScBlockDouble::zeroMatrix() void linearSystemPETScBlockDouble::zeroRightHandSide() { if (_isAllocated) { + VecAssemblyBegin(_b); + VecAssemblyEnd(_b); VecZeroEntries(_b); } } @@ -276,6 +280,8 @@ void linearSystemPETScBlockDouble::zeroRightHandSide() void linearSystemPETScBlockDouble::zeroSolution() { if (_isAllocated) { + VecAssemblyBegin(_x); + VecAssemblyEnd(_x); VecZeroEntries(_x); } }