1*8be712e4SBarry Smith #include <petscmat.h>
2*8be712e4SBarry Smith #include <petsc/private/matimpl.h>
3*8be712e4SBarry Smith
4*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Current(MatPartitioning);
5*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Average(MatPartitioning part);
6*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Square(MatPartitioning);
7*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Parmetis(MatPartitioning);
8*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Hierarchical(MatPartitioning);
9*8be712e4SBarry Smith #if defined(PETSC_HAVE_CHACO)
10*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Chaco(MatPartitioning);
11*8be712e4SBarry Smith #endif
12*8be712e4SBarry Smith #if defined(PETSC_HAVE_PARTY)
13*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Party(MatPartitioning);
14*8be712e4SBarry Smith #endif
15*8be712e4SBarry Smith #if defined(PETSC_HAVE_PTSCOTCH)
16*8be712e4SBarry Smith PETSC_EXTERN PetscErrorCode MatPartitioningCreate_PTScotch(MatPartitioning);
17*8be712e4SBarry Smith #endif
18*8be712e4SBarry Smith
19*8be712e4SBarry Smith /*@C
20*8be712e4SBarry Smith MatPartitioningRegisterAll - Registers all of the matrix partitioning routines in PETSc.
21*8be712e4SBarry Smith
22*8be712e4SBarry Smith Not Collective
23*8be712e4SBarry Smith
24*8be712e4SBarry Smith Level: developer
25*8be712e4SBarry Smith
26*8be712e4SBarry Smith .seealso: `MatPartitioning`, `MatPartitioningType`, `MatPartitioningRegister()`, `MatPartitioningRegisterDestroy()`
27*8be712e4SBarry Smith @*/
MatPartitioningRegisterAll(void)28*8be712e4SBarry Smith PetscErrorCode MatPartitioningRegisterAll(void)
29*8be712e4SBarry Smith {
30*8be712e4SBarry Smith PetscFunctionBegin;
31*8be712e4SBarry Smith if (MatPartitioningRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
32*8be712e4SBarry Smith MatPartitioningRegisterAllCalled = PETSC_TRUE;
33*8be712e4SBarry Smith
34*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGCURRENT, MatPartitioningCreate_Current));
35*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGAVERAGE, MatPartitioningCreate_Average));
36*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGSQUARE, MatPartitioningCreate_Square));
37*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGHIERARCH, MatPartitioningCreate_Hierarchical));
38*8be712e4SBarry Smith #if defined(PETSC_HAVE_PARMETIS)
39*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGPARMETIS, MatPartitioningCreate_Parmetis));
40*8be712e4SBarry Smith #endif
41*8be712e4SBarry Smith #if defined(PETSC_HAVE_CHACO)
42*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGCHACO, MatPartitioningCreate_Chaco));
43*8be712e4SBarry Smith #endif
44*8be712e4SBarry Smith #if defined(PETSC_HAVE_PARTY)
45*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGPARTY, MatPartitioningCreate_Party));
46*8be712e4SBarry Smith #endif
47*8be712e4SBarry Smith #if defined(PETSC_HAVE_PTSCOTCH)
48*8be712e4SBarry Smith PetscCall(MatPartitioningRegister(MATPARTITIONINGPTSCOTCH, MatPartitioningCreate_PTScotch));
49*8be712e4SBarry Smith #endif
50*8be712e4SBarry Smith PetscFunctionReturn(PETSC_SUCCESS);
51*8be712e4SBarry Smith }
52