[petsc-dev] Should -pc_type mg be a linear preconditioner by default?
Barry Smith
bsmith at mcs.anl.gov
Tue Oct 25 22:02:57 CDT 2011
A graph coloring C(A) is a division of vertices so that two vertices of the same color do not share any common edges.
A suitable coloring for a smoother is simply C(A).
A suitable "coloring" for efficient Jacobian computation is a division of the columns so that two columns of the same color do not share any common rows. This corresponds to C(A^{T} A). This is what MatGetColoring() computes.
People who write/talk about colorings for Jacobian computations are sloppy bastards and generally are not careful to distinguish between the two cases and thus confuse everyone.
Barry
To make life more complicated there are tricks to do Jacobian evaluations with fewer function operations and then do some arithmetic to recover the Jacobian entries; I never bothered to understand these.
On Oct 25, 2011, at 8:54 PM, Jed Brown wrote:
> On Tue, Oct 25, 2011 at 20:50, Barry Smith <bsmith at mcs.anl.gov> wrote:
> The coloring the INL guy need is for efficient computation of Jacobians; it is a different coloring than needed for smoothers. Of course we should have both in PETSc, but have neither in parallel.
>
> Isn't this just the distinction between coloring a symmetric matrix and coloring a triangular matrix? (Maybe there are more consequences to the algorithm.)
More information about the petsc-dev
mailing list