Actual source code: spartition.c

      1: #define PETSCMAT_DLL

     3:  #include petsc.h
     4:  #include petscmat.h

      7: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Current(MatPartitioning);
      8: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Square(MatPartitioning);
      9: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Parmetis(MatPartitioning);
     10: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Chaco(MatPartitioning);
     11: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Jostle(MatPartitioning);
     12: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Party(MatPartitioning);
     13: EXTERN PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningCreate_Scotch(MatPartitioning);

     18: /*@C
     19:   MatPartitioningRegisterAll - Registers all of the matrix Partitioning routines in PETSc.

     21:   Not Collective

     23:   Level: developer

     25:   Adding new methods:
     26:   To add a new method to the registry. Copy this routine and
     27:   modify it to incorporate a call to MatPartitioningRegisterDynamic() for
     28:   the new method, after the current list.

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

     36: .keywords: matrix, Partitioning, register, all

     38: .seealso: MatPartitioningRegisterDynamic(), MatPartitioningRegisterDestroy()
     39: @*/
     40: PetscErrorCode PETSCMAT_DLLEXPORT MatPartitioningRegisterAll(const char path[])
     41: {

     45:   MatPartitioningRegisterDynamic(MAT_PARTITIONING_CURRENT,path,"MatPartitioningCreate_Current",MatPartitioningCreate_Current);
     46:   MatPartitioningRegisterDynamic("square",path,"MatPartitioningCreate_Square",MatPartitioningCreate_Square);
     47: #if defined(PETSC_HAVE_PARMETIS)
     48:   MatPartitioningRegisterDynamic(MAT_PARTITIONING_PARMETIS,path,"MatPartitioningCreate_Parmetis",MatPartitioningCreate_Parmetis);
     49: #endif
     50: #if defined(PETSC_HAVE_CHACO)
     51:   MatPartitioningRegisterDynamic(MAT_PARTITIONING_CHACO,path,"MatPartitioningCreate_Chaco",MatPartitioningCreate_Chaco);
     52: #endif
     53: #if defined(PETSC_HAVE_JOSTLE)
     54:   MatPartitioningRegisterDynamic(MAT_PARTITIONING_JOSTLE,path,"MatPartitioningCreate_Jostle",MatPartitioningCreate_Jostle);
     55: #endif
     56: #if defined(PETSC_HAVE_PARTY)
     57:   MatPartitioningRegisterDynamic(MAT_PARTITIONING_PARTY,path,"MatPartitioningCreate_Party",MatPartitioningCreate_Party);
     58: #endif
     59: #if defined(PETSC_HAVE_SCOTCH)
     60:   MatPartitioningRegisterDynamic(MAT_PARTITIONING_SCOTCH,path,"MatPartitioningCreate_Scotch",MatPartitioningCreate_Scotch);
     61: #endif
     62:   return(0);
     63: }