Date: 2022-03-31T04:47:23+00:00

Actual source code: scoarsen.c

      2: #include <petscmat.h>
      3: #include <petsc/private/matimpl.h>

      5: PETSC_EXTERN PetscErrorCode MatCoarsenCreate_MIS(MatCoarsen);
      6: PETSC_EXTERN PetscErrorCode MatCoarsenCreate_HEM(MatCoarsen);

      8: /*@C
      9:   MatCoarsenRegisterAll - Registers all of the matrix Coarsen routines in PETSc.

     11:   Not Collective

     13:   Level: developer

     15:   Adding new methods:
     16:   To add a new method to the registry. Copy this routine and
     17:   modify it to incorporate a call to MatCoarsenRegister() for
     18:   the new method, after the current list.

     20:   Restricting the choices: To prevent all of the methods from being
     21:   registered and thus save memory, copy this routine and modify it to
     22:   register a zero, instead of the function name, for those methods you
     23:  do not wish to register.  Make sure that the replacement routine is
     24:   linked before libpetscmat.a.

     26:  .seealso: MatCoarsenRegister(), MatCoarsenRegisterDestroy()
     27:  @*/
     28: PetscErrorCode  MatCoarsenRegisterAll(void)
     29: {
     30:   if (MatCoarsenRegisterAllCalled) return 0;
     31:   MatCoarsenRegisterAllCalled = PETSC_TRUE;

     33:   MatCoarsenRegister(MATCOARSENMIS,MatCoarsenCreate_MIS);
     34:   MatCoarsenRegister(MATCOARSENHEM,MatCoarsenCreate_HEM);
     35:   return 0;
     36: }