xref: /petsc/src/mat/graphops/color/interface/matcoloringregi.c (revision 53673ba54f5aaba04b9d49ab22cf56c7a7461fe9)
1 #include <petscmat.h>
2 #include <petsc/private/matimpl.h>
3 
4 PETSC_EXTERN PetscErrorCode MatColoringCreate_JP(MatColoring);
5 PETSC_EXTERN PetscErrorCode MatColoringCreate_Greedy(MatColoring);
6 PETSC_EXTERN PetscErrorCode MatColoringCreate_Power(MatColoring);
7 PETSC_EXTERN PetscErrorCode MatColoringCreate_Natural(MatColoring);
8 PETSC_EXTERN PetscErrorCode MatColoringCreate_SL(MatColoring);
9 PETSC_EXTERN PetscErrorCode MatColoringCreate_ID(MatColoring);
10 PETSC_EXTERN PetscErrorCode MatColoringCreate_LF(MatColoring);
11 
12 /*@C
13   MatColoringRegisterAll - Registers all of the matrix coloring routines in PETSc.
14 
15   Not Collective
16 
17   Level: developer
18 
19 .seealso: `MatColoring`, `MatColoringRegister()`, `MatColoringRegisterDestroy()`
20  @*/
MatColoringRegisterAll(void)21 PetscErrorCode MatColoringRegisterAll(void)
22 {
23   PetscFunctionBegin;
24   if (MatColoringRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
25   MatColoringRegisterAllCalled = PETSC_TRUE;
26   PetscCall(MatColoringRegister(MATCOLORINGJP, MatColoringCreate_JP));
27   PetscCall(MatColoringRegister(MATCOLORINGGREEDY, MatColoringCreate_Greedy));
28   PetscCall(MatColoringRegister(MATCOLORINGPOWER, MatColoringCreate_Power));
29   PetscCall(MatColoringRegister(MATCOLORINGNATURAL, MatColoringCreate_Natural));
30   PetscCall(MatColoringRegister(MATCOLORINGSL, MatColoringCreate_SL));
31   PetscCall(MatColoringRegister(MATCOLORINGID, MatColoringCreate_ID));
32   PetscCall(MatColoringRegister(MATCOLORINGLF, MatColoringCreate_LF));
33   PetscFunctionReturn(PETSC_SUCCESS);
34 }
35