petsc-3.14.6 2021-03-30
Report Typos and Errors

PCREDISTRIBUTE

Redistributes a matrix for load balancing, removing the rows that only have a diagonal entry and then applys a KSP to that new matrix Options for the redistribute preconditioners can be set with -redistribute_ksp_xxx <values> and -redistribute_pc_xxx <values>

Notes

Usually run this with -ksp_type preonly

If you have used MatZeroRows() to eliminate (for example, Dirichlet) boundary conditions for a symmetric problem then you can use, for example, -ksp_type preonly -pc_type redistribute -redistribute_ksp_type cg -redistribute_pc_type bjacobi -redistribute_sub_pc_type icc to take advantage of the symmetry.

This does NOT call a partitioner to reorder rows to lower communication; the ordering of the rows in the original matrix and redistributed matrix is the same.

Developer Notes

Should add an option to this preconditioner to use a partitioner to redistribute the rows to lower communication.

See Also

PCCreate(), PCSetType(), PCType (for list of available types), PCRedistributeGetKSP()

Level

intermediate

Location

src/ksp/pc/impls/redistribute/redistribute.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages