petsc-3.4.4 2014-03-13


Gets a coloring for a matrix, from its sparsity structure, to reduce the number of function evaluations needed to compute a sparse Jacobian via differencing.


PetscErrorCode  MatGetColoring(Mat mat,MatColoringType type,ISColoring *iscoloring)
Collective on Mat

Input Parameters

mat -the matrix
type -type of coloring, one of the following:
     MATCOLORINGNATURAL - natural (one color for each column, very slow)
     MATCOLORINGSL - smallest-last
     MATCOLORINGLF - largest-first
     MATCOLORINGID - incidence-degree

Output Parameters

iscoloring -the coloring

Options Database Keys

To specify the coloring through the options database, use one of the following
   -mat_coloring_type natural, -mat_coloring_type sl, -mat_coloring_type lf,
   -mat_coloring_type id
To see the coloring use


   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.

The user can define additional colorings; see MatColoringRegister().

For parallel matrices currently converts to sequential matrix and uses the sequential coloring on that.

The colorings SL, LF, and ID are obtained via the Minpack software that was converted to C using f2c.

For BAIJ matrices this colors the blocks. The true number of colors would be block size times the number of colors returned here.


    Thomas F. Coleman and Jorge J. More, Estimation of Sparse {J}acobian Matrices and Graph Coloring Problems,
        SIAM Journal on Numerical Analysis, 1983, pages 187-209, volume 20
    Jorge J. Mor\'{e} and Danny C. Sorenson and  Burton S. Garbow and Kenneth E. Hillstrom, The {MINPACK} Project,
        Sources and Development of Mathematical Software, Wayne R. Cowell editor, 1984, pages 88-111


matrix, get, coloring

See Also

MatGetColoringTypeFromOptions(), MatColoringRegister(), MatFDColoringCreate(),

Index of all MatOrderings routines
Table of Contents for all manual pages
Index of all manual pages