1af0996ceSBarry Smith #include <petsc/private/pcimpl.h> /*I "petscpc.h" I*/ 24b9ad928SBarry Smith 38cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Jacobi(PC); 48cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_BJacobi(PC); 58cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_PBJacobi(PC); 60da83c2eSBarry Smith PETSC_EXTERN PetscErrorCode PCCreate_VPBJacobi(PC); 78cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_ILU(PC); 88cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_None(PC); 98cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_LU(PC); 10a2fc1e05SToby Isaac PETSC_EXTERN PetscErrorCode PCCreate_QR(PC); 118cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_SOR(PC); 128cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Shell(PC); 138cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_MG(PC); 148cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Eisenstat(PC); 158cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_ICC(PC); 168cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_ASM(PC); 178cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_GASM(PC); 188cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_KSP(PC); 19e607c864SMark Adams PETSC_EXTERN PetscErrorCode PCCreate_BJKOKKOS(PC); 208cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Composite(PC); 218cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Redundant(PC); 228cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_NN(PC); 238cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Cholesky(PC); 248cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_FieldSplit(PC); 258cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Galerkin(PC); 268cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Exotic(PC); 278cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_CP(PC); 288cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_LSC(PC); 298cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Redistribute(PC); 308cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_SVD(PC); 318cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_GAMG(PC); 323f93e5bdSPeter Brune PETSC_EXTERN PetscErrorCode PCCreate_Kaczmarz(PC); 3368ddcbeaSBarry Smith PETSC_EXTERN PetscErrorCode PCCreate_Telescope(PC); 344bbf5ea8SMatthew G. Knepley PETSC_EXTERN PetscErrorCode PCCreate_Patch(PC); 35b9ac7092SAlp Dener PETSC_EXTERN PetscErrorCode PCCreate_LMVM(PC); 36b74e562fSFande Kong PETSC_EXTERN PetscErrorCode PCCreate_HMG(PC); 37e6f8f311SMark Adams #if defined(PETSC_HAVE_AMGX) 38e6f8f311SMark Adams PETSC_EXTERN PetscErrorCode PCCreate_AMGX(PC); 39e6f8f311SMark Adams #endif 402515c552SBarry Smith #if defined(PETSC_HAVE_ML) 418cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_ML(PC); 421246784dSSatish Balay #endif 432515c552SBarry Smith #if defined(PETSC_HAVE_SPAI) 448cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_SPAI(PC); 454b9ad928SBarry Smith #endif 468cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_Mat(PC); 472515c552SBarry Smith #if defined(PETSC_HAVE_HYPRE) 488cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_HYPRE(PC); 498cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_PFMG(PC); 508cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_SysPFMG(PC); 511c188c59Sftrigaux PETSC_EXTERN PetscErrorCode PCCreate_SMG(PC); 524b9ad928SBarry Smith #endif 5371a0148aSBarry Smith #if !defined(PETSC_USE_COMPLEX) 548cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_TFS(PC); 556218e575SSatish Balay #endif 5607598726SKarl Rupp #if defined(PETSC_HAVE_VIENNACL) 574b3f184cSKarl Rupp PETSC_EXTERN PetscErrorCode PCCreate_CHOWILUVIENNACL(PC); 5870baa948SKarl Rupp PETSC_EXTERN PetscErrorCode PCCreate_ROWSCALINGVIENNACL(PC); 5970baa948SKarl Rupp PETSC_EXTERN PetscErrorCode PCCreate_SAVIENNACL(PC); 6007598726SKarl Rupp #endif 6137f80224SJose E. Roman #if defined(PETSC_HAVE_PARMS) 628cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_PARMS(PC); 6337f80224SJose E. Roman #endif 648cc058d9SJed Brown PETSC_EXTERN PetscErrorCode PCCreate_BDDC(PC); 6537eeb815SJakub Kruzik PETSC_EXTERN PetscErrorCode PCCreate_Deflation(PC); 66253dc684SPierre Jolivet #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES) 6738cfc46eSPierre Jolivet PETSC_EXTERN PetscErrorCode PCCreate_HPDDM(PC); 6838cfc46eSPierre Jolivet #endif 6953022affSStefano Zampini #if defined(PETSC_HAVE_H2OPUS) 7053022affSStefano Zampini PETSC_EXTERN PetscErrorCode PCCreate_H2OPUS(PC); 71e8812f7bSStefano Zampini #endif 72f1f2ae84SBarry Smith PETSC_EXTERN PetscErrorCode PCCreate_MPI(PC); 7336a49750SBarry Smith 744b9ad928SBarry Smith /*@C 754b9ad928SBarry Smith PCRegisterAll - Registers all of the preconditioners in the PC package. 764b9ad928SBarry Smith 774b9ad928SBarry Smith Not Collective 784b9ad928SBarry Smith 794b9ad928SBarry Smith Level: advanced 804b9ad928SBarry Smith 81*562efe2eSBarry Smith .seealso: [](ch_ksp), `PCRegister()` 824b9ad928SBarry Smith @*/ 83d71ae5a4SJacob Faibussowitsch PetscErrorCode PCRegisterAll(void) 84d71ae5a4SJacob Faibussowitsch { 854b9ad928SBarry Smith PetscFunctionBegin; 863ba16761SJacob Faibussowitsch if (PCRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS); 874b9ad928SBarry Smith PCRegisterAllCalled = PETSC_TRUE; 884b9ad928SBarry Smith 899566063dSJacob Faibussowitsch PetscCall(PCRegister(PCNONE, PCCreate_None)); 909566063dSJacob Faibussowitsch PetscCall(PCRegister(PCJACOBI, PCCreate_Jacobi)); 919566063dSJacob Faibussowitsch PetscCall(PCRegister(PCPBJACOBI, PCCreate_PBJacobi)); 929566063dSJacob Faibussowitsch PetscCall(PCRegister(PCVPBJACOBI, PCCreate_VPBJacobi)); 939566063dSJacob Faibussowitsch PetscCall(PCRegister(PCBJACOBI, PCCreate_BJacobi)); 949566063dSJacob Faibussowitsch PetscCall(PCRegister(PCSOR, PCCreate_SOR)); 959566063dSJacob Faibussowitsch PetscCall(PCRegister(PCLU, PCCreate_LU)); 969566063dSJacob Faibussowitsch PetscCall(PCRegister(PCQR, PCCreate_QR)); 979566063dSJacob Faibussowitsch PetscCall(PCRegister(PCSHELL, PCCreate_Shell)); 989566063dSJacob Faibussowitsch PetscCall(PCRegister(PCMG, PCCreate_MG)); 999566063dSJacob Faibussowitsch PetscCall(PCRegister(PCEISENSTAT, PCCreate_Eisenstat)); 1009566063dSJacob Faibussowitsch PetscCall(PCRegister(PCILU, PCCreate_ILU)); 1019566063dSJacob Faibussowitsch PetscCall(PCRegister(PCICC, PCCreate_ICC)); 1029566063dSJacob Faibussowitsch PetscCall(PCRegister(PCCHOLESKY, PCCreate_Cholesky)); 1039566063dSJacob Faibussowitsch PetscCall(PCRegister(PCASM, PCCreate_ASM)); 1049566063dSJacob Faibussowitsch PetscCall(PCRegister(PCGASM, PCCreate_GASM)); 1059566063dSJacob Faibussowitsch PetscCall(PCRegister(PCKSP, PCCreate_KSP)); 106e607c864SMark Adams #if defined(PETSC_HAVE_KOKKOS_KERNELS) 1079566063dSJacob Faibussowitsch PetscCall(PCRegister(PCBJKOKKOS, PCCreate_BJKOKKOS)); 108e607c864SMark Adams #endif 1099566063dSJacob Faibussowitsch PetscCall(PCRegister(PCCOMPOSITE, PCCreate_Composite)); 1109566063dSJacob Faibussowitsch PetscCall(PCRegister(PCREDUNDANT, PCCreate_Redundant)); 1119566063dSJacob Faibussowitsch PetscCall(PCRegister(PCNN, PCCreate_NN)); 1129566063dSJacob Faibussowitsch PetscCall(PCRegister(PCMAT, PCCreate_Mat)); 1139566063dSJacob Faibussowitsch PetscCall(PCRegister(PCFIELDSPLIT, PCCreate_FieldSplit)); 1149566063dSJacob Faibussowitsch PetscCall(PCRegister(PCGALERKIN, PCCreate_Galerkin)); 1159566063dSJacob Faibussowitsch PetscCall(PCRegister(PCEXOTIC, PCCreate_Exotic)); 1169566063dSJacob Faibussowitsch PetscCall(PCRegister(PCCP, PCCreate_CP)); 1179566063dSJacob Faibussowitsch PetscCall(PCRegister(PCLSC, PCCreate_LSC)); 1189566063dSJacob Faibussowitsch PetscCall(PCRegister(PCREDISTRIBUTE, PCCreate_Redistribute)); 1199566063dSJacob Faibussowitsch PetscCall(PCRegister(PCSVD, PCCreate_SVD)); 1209566063dSJacob Faibussowitsch PetscCall(PCRegister(PCGAMG, PCCreate_GAMG)); 1219566063dSJacob Faibussowitsch PetscCall(PCRegister(PCKACZMARZ, PCCreate_Kaczmarz)); 1229566063dSJacob Faibussowitsch PetscCall(PCRegister(PCTELESCOPE, PCCreate_Telescope)); 1239566063dSJacob Faibussowitsch PetscCall(PCRegister(PCPATCH, PCCreate_Patch)); 1249566063dSJacob Faibussowitsch PetscCall(PCRegister(PCHMG, PCCreate_HMG)); 125e6f8f311SMark Adams #if defined(PETSC_HAVE_AMGX) 126e6f8f311SMark Adams PetscCall(PCRegister(PCAMGX, PCCreate_AMGX)); 127e6f8f311SMark Adams #endif 1282515c552SBarry Smith #if defined(PETSC_HAVE_ML) 1299566063dSJacob Faibussowitsch PetscCall(PCRegister(PCML, PCCreate_ML)); 130a501084fSBarry Smith #endif 1312515c552SBarry Smith #if defined(PETSC_HAVE_SPAI) 1329566063dSJacob Faibussowitsch PetscCall(PCRegister(PCSPAI, PCCreate_SPAI)); 1334b9ad928SBarry Smith #endif 1342515c552SBarry Smith #if defined(PETSC_HAVE_HYPRE) 1359566063dSJacob Faibussowitsch PetscCall(PCRegister(PCHYPRE, PCCreate_HYPRE)); 1369566063dSJacob Faibussowitsch PetscCall(PCRegister(PCPFMG, PCCreate_PFMG)); 1379566063dSJacob Faibussowitsch PetscCall(PCRegister(PCSYSPFMG, PCCreate_SysPFMG)); 1381c188c59Sftrigaux PetscCall(PCRegister(PCSMG, PCCreate_SMG)); 1394b9ad928SBarry Smith #endif 14071a0148aSBarry Smith #if !defined(PETSC_USE_COMPLEX) 1419566063dSJacob Faibussowitsch PetscCall(PCRegister(PCTFS, PCCreate_TFS)); 1426218e575SSatish Balay #endif 14307598726SKarl Rupp #if defined(PETSC_HAVE_VIENNACL) 1449566063dSJacob Faibussowitsch PetscCall(PCRegister(PCCHOWILUVIENNACL, PCCreate_CHOWILUVIENNACL)); 1459566063dSJacob Faibussowitsch PetscCall(PCRegister(PCROWSCALINGVIENNACL, PCCreate_ROWSCALINGVIENNACL)); 1469566063dSJacob Faibussowitsch PetscCall(PCRegister(PCSAVIENNACL, PCCreate_SAVIENNACL)); 14707598726SKarl Rupp #endif 14837f80224SJose E. Roman #if defined(PETSC_HAVE_PARMS) 1499566063dSJacob Faibussowitsch PetscCall(PCRegister(PCPARMS, PCCreate_PARMS)); 15037f80224SJose E. Roman #endif 1519566063dSJacob Faibussowitsch PetscCall(PCRegister(PCBDDC, PCCreate_BDDC)); 1529566063dSJacob Faibussowitsch PetscCall(PCRegister(PCLMVM, PCCreate_LMVM)); 1539566063dSJacob Faibussowitsch PetscCall(PCRegister(PCDEFLATION, PCCreate_Deflation)); 154253dc684SPierre Jolivet #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES) 1559566063dSJacob Faibussowitsch PetscCall(PCRegister(PCHPDDM, PCCreate_HPDDM)); 15638cfc46eSPierre Jolivet #endif 15753022affSStefano Zampini #if defined(PETSC_HAVE_H2OPUS) 1589566063dSJacob Faibussowitsch PetscCall(PCRegister(PCH2OPUS, PCCreate_H2OPUS)); 159e8812f7bSStefano Zampini #endif 160f1f2ae84SBarry Smith PetscCall(PCRegister(PCMPI, PCCreate_MPI)); 1613ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 1624b9ad928SBarry Smith } 163