Actual source code: pcregis.c
2: #include <petsc/private/pcimpl.h>
4: PETSC_EXTERN PetscErrorCode PCCreate_Jacobi(PC);
5: PETSC_EXTERN PetscErrorCode PCCreate_BJacobi(PC);
6: PETSC_EXTERN PetscErrorCode PCCreate_PBJacobi(PC);
7: PETSC_EXTERN PetscErrorCode PCCreate_VPBJacobi(PC);
8: PETSC_EXTERN PetscErrorCode PCCreate_ILU(PC);
9: PETSC_EXTERN PetscErrorCode PCCreate_None(PC);
10: PETSC_EXTERN PetscErrorCode PCCreate_LU(PC);
11: PETSC_EXTERN PetscErrorCode PCCreate_QR(PC);
12: PETSC_EXTERN PetscErrorCode PCCreate_SOR(PC);
13: PETSC_EXTERN PetscErrorCode PCCreate_Shell(PC);
14: PETSC_EXTERN PetscErrorCode PCCreate_MG(PC);
15: PETSC_EXTERN PetscErrorCode PCCreate_Eisenstat(PC);
16: PETSC_EXTERN PetscErrorCode PCCreate_ICC(PC);
17: PETSC_EXTERN PetscErrorCode PCCreate_ASM(PC);
18: PETSC_EXTERN PetscErrorCode PCCreate_GASM(PC);
19: PETSC_EXTERN PetscErrorCode PCCreate_KSP(PC);
20: PETSC_EXTERN PetscErrorCode PCCreate_BJKOKKOS(PC);
21: PETSC_EXTERN PetscErrorCode PCCreate_Composite(PC);
22: PETSC_EXTERN PetscErrorCode PCCreate_Redundant(PC);
23: PETSC_EXTERN PetscErrorCode PCCreate_NN(PC);
24: PETSC_EXTERN PetscErrorCode PCCreate_Cholesky(PC);
25: PETSC_EXTERN PetscErrorCode PCCreate_FieldSplit(PC);
26: PETSC_EXTERN PetscErrorCode PCCreate_Galerkin(PC);
27: PETSC_EXTERN PetscErrorCode PCCreate_Exotic(PC);
28: PETSC_EXTERN PetscErrorCode PCCreate_CP(PC);
29: PETSC_EXTERN PetscErrorCode PCCreate_LSC(PC);
30: PETSC_EXTERN PetscErrorCode PCCreate_Redistribute(PC);
31: PETSC_EXTERN PetscErrorCode PCCreate_SVD(PC);
32: PETSC_EXTERN PetscErrorCode PCCreate_GAMG(PC);
33: PETSC_EXTERN PetscErrorCode PCCreate_Kaczmarz(PC);
34: PETSC_EXTERN PetscErrorCode PCCreate_Telescope(PC);
35: PETSC_EXTERN PetscErrorCode PCCreate_Patch(PC);
36: PETSC_EXTERN PetscErrorCode PCCreate_LMVM(PC);
37: PETSC_EXTERN PetscErrorCode PCCreate_HMG(PC);
38: #if defined(PETSC_HAVE_AMGX)
39: PETSC_EXTERN PetscErrorCode PCCreate_AMGX(PC);
40: #endif
41: #if defined(PETSC_HAVE_ML)
42: PETSC_EXTERN PetscErrorCode PCCreate_ML(PC);
43: #endif
44: #if defined(PETSC_HAVE_SPAI)
45: PETSC_EXTERN PetscErrorCode PCCreate_SPAI(PC);
46: #endif
47: PETSC_EXTERN PetscErrorCode PCCreate_Mat(PC);
48: #if defined(PETSC_HAVE_HYPRE)
49: PETSC_EXTERN PetscErrorCode PCCreate_HYPRE(PC);
50: PETSC_EXTERN PetscErrorCode PCCreate_PFMG(PC);
51: PETSC_EXTERN PetscErrorCode PCCreate_SysPFMG(PC);
52: PETSC_EXTERN PetscErrorCode PCCreate_SMG(PC);
53: #endif
54: #if !defined(PETSC_USE_COMPLEX)
55: PETSC_EXTERN PetscErrorCode PCCreate_TFS(PC);
56: #endif
57: #if defined(PETSC_HAVE_VIENNACL)
58: PETSC_EXTERN PetscErrorCode PCCreate_CHOWILUVIENNACL(PC);
59: PETSC_EXTERN PetscErrorCode PCCreate_ROWSCALINGVIENNACL(PC);
60: PETSC_EXTERN PetscErrorCode PCCreate_SAVIENNACL(PC);
61: #endif
62: #if defined(PETSC_HAVE_PARMS)
63: PETSC_EXTERN PetscErrorCode PCCreate_PARMS(PC);
64: #endif
65: PETSC_EXTERN PetscErrorCode PCCreate_BDDC(PC);
66: PETSC_EXTERN PetscErrorCode PCCreate_Deflation(PC);
67: #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES)
68: PETSC_EXTERN PetscErrorCode PCCreate_HPDDM(PC);
69: #endif
70: #if defined(PETSC_HAVE_H2OPUS)
71: PETSC_EXTERN PetscErrorCode PCCreate_H2OPUS(PC);
72: #endif
73: PETSC_EXTERN PetscErrorCode PCCreate_MPI(PC);
75: /*@C
76: PCRegisterAll - Registers all of the preconditioners in the PC package.
78: Not Collective
80: Input Parameter:
81: . path - the library where the routines are to be found (optional)
83: Level: advanced
85: .seealso: `PCRegister()`
86: @*/
87: PetscErrorCode PCRegisterAll(void)
88: {
89: if (PCRegisterAllCalled) return 0;
90: PCRegisterAllCalled = PETSC_TRUE;
92: PCRegister(PCNONE, PCCreate_None);
93: PCRegister(PCJACOBI, PCCreate_Jacobi);
94: PCRegister(PCPBJACOBI, PCCreate_PBJacobi);
95: PCRegister(PCVPBJACOBI, PCCreate_VPBJacobi);
96: PCRegister(PCBJACOBI, PCCreate_BJacobi);
97: PCRegister(PCSOR, PCCreate_SOR);
98: PCRegister(PCLU, PCCreate_LU);
99: PCRegister(PCQR, PCCreate_QR);
100: PCRegister(PCSHELL, PCCreate_Shell);
101: PCRegister(PCMG, PCCreate_MG);
102: PCRegister(PCEISENSTAT, PCCreate_Eisenstat);
103: PCRegister(PCILU, PCCreate_ILU);
104: PCRegister(PCICC, PCCreate_ICC);
105: PCRegister(PCCHOLESKY, PCCreate_Cholesky);
106: PCRegister(PCASM, PCCreate_ASM);
107: PCRegister(PCGASM, PCCreate_GASM);
108: PCRegister(PCKSP, PCCreate_KSP);
109: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
110: PCRegister(PCBJKOKKOS, PCCreate_BJKOKKOS);
111: #endif
112: PCRegister(PCCOMPOSITE, PCCreate_Composite);
113: PCRegister(PCREDUNDANT, PCCreate_Redundant);
114: PCRegister(PCNN, PCCreate_NN);
115: PCRegister(PCMAT, PCCreate_Mat);
116: PCRegister(PCFIELDSPLIT, PCCreate_FieldSplit);
117: PCRegister(PCGALERKIN, PCCreate_Galerkin);
118: PCRegister(PCEXOTIC, PCCreate_Exotic);
119: PCRegister(PCCP, PCCreate_CP);
120: PCRegister(PCLSC, PCCreate_LSC);
121: PCRegister(PCREDISTRIBUTE, PCCreate_Redistribute);
122: PCRegister(PCSVD, PCCreate_SVD);
123: PCRegister(PCGAMG, PCCreate_GAMG);
124: PCRegister(PCKACZMARZ, PCCreate_Kaczmarz);
125: PCRegister(PCTELESCOPE, PCCreate_Telescope);
126: PCRegister(PCPATCH, PCCreate_Patch);
127: PCRegister(PCHMG, PCCreate_HMG);
128: #if defined(PETSC_HAVE_AMGX)
129: PCRegister(PCAMGX, PCCreate_AMGX);
130: #endif
131: #if defined(PETSC_HAVE_ML)
132: PCRegister(PCML, PCCreate_ML);
133: #endif
134: #if defined(PETSC_HAVE_SPAI)
135: PCRegister(PCSPAI, PCCreate_SPAI);
136: #endif
137: #if defined(PETSC_HAVE_HYPRE)
138: PCRegister(PCHYPRE, PCCreate_HYPRE);
139: PCRegister(PCPFMG, PCCreate_PFMG);
140: PCRegister(PCSYSPFMG, PCCreate_SysPFMG);
141: PCRegister(PCSMG, PCCreate_SMG);
142: #endif
143: #if !defined(PETSC_USE_COMPLEX)
144: PCRegister(PCTFS, PCCreate_TFS);
145: #endif
146: #if defined(PETSC_HAVE_VIENNACL)
147: PCRegister(PCCHOWILUVIENNACL, PCCreate_CHOWILUVIENNACL);
148: PCRegister(PCROWSCALINGVIENNACL, PCCreate_ROWSCALINGVIENNACL);
149: PCRegister(PCSAVIENNACL, PCCreate_SAVIENNACL);
150: #endif
151: #if defined(PETSC_HAVE_PARMS)
152: PCRegister(PCPARMS, PCCreate_PARMS);
153: #endif
154: PCRegister(PCBDDC, PCCreate_BDDC);
155: PCRegister(PCLMVM, PCCreate_LMVM);
156: PCRegister(PCDEFLATION, PCCreate_Deflation);
157: #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES)
158: PCRegister(PCHPDDM, PCCreate_HPDDM);
159: #endif
160: #if defined(PETSC_HAVE_H2OPUS)
161: PCRegister(PCH2OPUS, PCCreate_H2OPUS);
162: #endif
163: PCRegister(PCMPI, PCCreate_MPI);
164: return 0;
165: }