Skip to content

Add more fine-grained control over communication when zeroing matrix rows #1418

@garth-wells

Description

@garth-wells

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions