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:   if (MatColoringRegisterAllCalled) return 0;
 30:   MatColoringRegisterAllCalled = PETSC_TRUE;
 31:   MatColoringRegister(MATCOLORINGJP, MatColoringCreate_JP);
 32:   MatColoringRegister(MATCOLORINGGREEDY, MatColoringCreate_Greedy);
 33:   MatColoringRegister(MATCOLORINGPOWER, MatColoringCreate_Power);
 34:   MatColoringRegister(MATCOLORINGNATURAL, MatColoringCreate_Natural);
 35:   MatColoringRegister(MATCOLORINGSL, MatColoringCreate_SL);
 36:   MatColoringRegister(MATCOLORINGID, MatColoringCreate_ID);
 37:   MatColoringRegister(MATCOLORINGLF, MatColoringCreate_LF);
 38:   return 0;
 39: }