Add more fine-grained control over communication when zeroing matrix rows
Open
performance
roadmap
- Dominant language
- C++
- Stars
- 1.2k
- Forks
- 261
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 71
Description
The change in #1417 introduces a flush step for PETSc matrices during assembly. Since this is now required, some other things can. be changed:
1. Split the assembly and row ident/zero calls in Python to still allow the lowest levels of control.
2. Use a dedicated lambda function to zero rows and place 1 on the diagonal, e.g. in the case of PETSc capture ` MatZeroRowsLocal`.
3. Reconsider if we still want to zero rows during assembly. The advantage of zeroing rows during assembly is that a call to subsequently set 1 on the diagonal can be strictly local and not require communication.
Contributor guide
Assessment
This issue has not been assessed yet.