"Zhang, Junchao via petsc-users" <petsc-users@mcs.anl.gov> writes:

> Perhaps PETSc should have a MatGetRemoteRow (or
> MatGetRowOffDiagonalBlock) (A, r, &ncols, &cols, &vals).  MatGetRow()
> internally has to allocate memory and sort indices and values from
> local diagonal block and off-diagonal block. It is totally a waste in
> this case -- users do not care column indices and the local block.
> With MatGetRemoteRow(A, r, &ncols, NULL, &vals), PETSc just needs to
> set an integer and a pointer.

I'm not wild about the resulting programming model, which is so
intimately tied to PETSc *AIJ storage conventions yet also likely not
efficient for operations like SOR.  Perhaps PETSc MatSOR should be
taught about a supplemental diagonal, such as produced by the "l^1"
scheme?

Reply via email to