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 @*/ 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