Actual source code: matcoloringregi.c
2: #include <petscmat.h>
3: #include <petsc/private/matimpl.h>
5: PETSC_EXTERN PetscErrorCode MatColoringCreate_JP(MatColoring);
6: PETSC_EXTERN PetscErrorCode MatColoringCreate_Greedy(MatColoring);
7: PETSC_EXTERN PetscErrorCode MatColoringCreate_Power(MatColoring);
8: PETSC_EXTERN PetscErrorCode MatColoringCreate_Natural(MatColoring);
9: PETSC_EXTERN PetscErrorCode MatColoringCreate_SL(MatColoring);
10: PETSC_EXTERN PetscErrorCode MatColoringCreate_ID(MatColoring);
11: PETSC_EXTERN PetscErrorCode MatColoringCreate_LF(MatColoring);
13: /*@C
14: MatColoringRegisterAll - Registers all of the matrix coloring routines in PETSc.
16: Not Collective
18: Level: developer
20: Adding new methods:
21: To add a new method to the registry. Copy this routine and
22: modify it to incorporate a call to `MatColoringRegister()` for
23: the new method, after the current list.
25: .seealso: `MatColoring`, `MatColoringRegister()`, `MatColoringRegisterDestroy()`
26: @*/
27: PetscErrorCode MatColoringRegisterAll(void)
28: {
29: PetscFunctionBegin;
30: if (MatColoringRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
31: MatColoringRegisterAllCalled = PETSC_TRUE;
32: PetscCall(MatColoringRegister(MATCOLORINGJP, MatColoringCreate_JP));
33: PetscCall(MatColoringRegister(MATCOLORINGGREEDY, MatColoringCreate_Greedy));
34: PetscCall(MatColoringRegister(MATCOLORINGPOWER, MatColoringCreate_Power));
35: PetscCall(MatColoringRegister(MATCOLORINGNATURAL, MatColoringCreate_Natural));
36: PetscCall(MatColoringRegister(MATCOLORINGSL, MatColoringCreate_SL));
37: PetscCall(MatColoringRegister(MATCOLORINGID, MatColoringCreate_ID));
38: PetscCall(MatColoringRegister(MATCOLORINGLF, MatColoringCreate_LF));
39: PetscFunctionReturn(PETSC_SUCCESS);
40: }