MatColoringCreate#
Creates a matrix coloring context.
Synopsis#
#include "petscmat.h"
PetscErrorCode MatColoringCreate(Mat m, MatColoring *mcptr)
Collective
Input Parameters#
comm - MPI communicator
Output Parameter#
mcptr - the new
MatColoring
context
Options Database Keys#
-mat_coloring_type - the type of coloring algorithm used. See
MatColoringType
.-mat_coloring_maxcolors - the maximum number of relevant colors, all nodes not in a color are in maxcolors+1
-mat_coloring_distance - compute a distance 1,2,… coloring.
-mat_coloring_view - print information about the coloring and the produced index sets
-mat_coloring_test - debugging option that prints all coloring incompatibilities
-mat_is_coloring_test - debugging option that throws an error if MatColoringApply() generates an incorrect iscoloring
Notes#
A distance one coloring is useful, for example, multi-color SOR.
A distance two coloring is for the finite difference computation of Jacobians (see MatFDColoringCreate())
.
Coloring of matrices can be computed directly from the sparse matrix nonzero structure via the MatColoring
object or from the mesh from which the
matrix comes from with DMCreateColoring()
. In general using the mesh produces a more optimal coloring (fewer colors).
Some coloring types only support distance two colorings
See Also#
MatColoringSetFromOptions()
, MatColoring
, MatColoringApply()
, MatFDColoringCreate()
, DMCreateColoring()
, MatColoringType
Level#
beginner
Location#
Examples#
Implementations#
MatColoringCreate_Greedy in src/mat/color/impls/greedy/greedy.c
MatColoringCreate_JP in src/mat/color/impls/jp/jp.c
MatColoringCreate_SL in src/mat/color/impls/minpack/color.c
MatColoringCreate_LF in src/mat/color/impls/minpack/color.c
MatColoringCreate_ID in src/mat/color/impls/minpack/color.c
MatColoringCreate_Natural in src/mat/color/impls/natural/natural.c
MatColoringCreate_Power in src/mat/color/impls/power/power.c
Index of all MatOrderings routines
Table of Contents for all manual pages
Index of all manual pages