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: PetscFunctionBegin;
90: if (PCRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
91: PCRegisterAllCalled = PETSC_TRUE;
93: PetscCall(PCRegister(PCNONE, PCCreate_None));
94: PetscCall(PCRegister(PCJACOBI, PCCreate_Jacobi));
95: PetscCall(PCRegister(PCPBJACOBI, PCCreate_PBJacobi));
96: PetscCall(PCRegister(PCVPBJACOBI, PCCreate_VPBJacobi));
97: PetscCall(PCRegister(PCBJACOBI, PCCreate_BJacobi));
98: PetscCall(PCRegister(PCSOR, PCCreate_SOR));
99: PetscCall(PCRegister(PCLU, PCCreate_LU));
100: PetscCall(PCRegister(PCQR, PCCreate_QR));
101: PetscCall(PCRegister(PCSHELL, PCCreate_Shell));
102: PetscCall(PCRegister(PCMG, PCCreate_MG));
103: PetscCall(PCRegister(PCEISENSTAT, PCCreate_Eisenstat));
104: PetscCall(PCRegister(PCILU, PCCreate_ILU));
105: PetscCall(PCRegister(PCICC, PCCreate_ICC));
106: PetscCall(PCRegister(PCCHOLESKY, PCCreate_Cholesky));
107: PetscCall(PCRegister(PCASM, PCCreate_ASM));
108: PetscCall(PCRegister(PCGASM, PCCreate_GASM));
109: PetscCall(PCRegister(PCKSP, PCCreate_KSP));
110: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
111: PetscCall(PCRegister(PCBJKOKKOS, PCCreate_BJKOKKOS));
112: #endif
113: PetscCall(PCRegister(PCCOMPOSITE, PCCreate_Composite));
114: PetscCall(PCRegister(PCREDUNDANT, PCCreate_Redundant));
115: PetscCall(PCRegister(PCNN, PCCreate_NN));
116: PetscCall(PCRegister(PCMAT, PCCreate_Mat));
117: PetscCall(PCRegister(PCFIELDSPLIT, PCCreate_FieldSplit));
118: PetscCall(PCRegister(PCGALERKIN, PCCreate_Galerkin));
119: PetscCall(PCRegister(PCEXOTIC, PCCreate_Exotic));
120: PetscCall(PCRegister(PCCP, PCCreate_CP));
121: PetscCall(PCRegister(PCLSC, PCCreate_LSC));
122: PetscCall(PCRegister(PCREDISTRIBUTE, PCCreate_Redistribute));
123: PetscCall(PCRegister(PCSVD, PCCreate_SVD));
124: PetscCall(PCRegister(PCGAMG, PCCreate_GAMG));
125: PetscCall(PCRegister(PCKACZMARZ, PCCreate_Kaczmarz));
126: PetscCall(PCRegister(PCTELESCOPE, PCCreate_Telescope));
127: PetscCall(PCRegister(PCPATCH, PCCreate_Patch));
128: PetscCall(PCRegister(PCHMG, PCCreate_HMG));
129: #if defined(PETSC_HAVE_AMGX)
130: PetscCall(PCRegister(PCAMGX, PCCreate_AMGX));
131: #endif
132: #if defined(PETSC_HAVE_ML)
133: PetscCall(PCRegister(PCML, PCCreate_ML));
134: #endif
135: #if defined(PETSC_HAVE_SPAI)
136: PetscCall(PCRegister(PCSPAI, PCCreate_SPAI));
137: #endif
138: #if defined(PETSC_HAVE_HYPRE)
139: PetscCall(PCRegister(PCHYPRE, PCCreate_HYPRE));
140: PetscCall(PCRegister(PCPFMG, PCCreate_PFMG));
141: PetscCall(PCRegister(PCSYSPFMG, PCCreate_SysPFMG));
142: PetscCall(PCRegister(PCSMG, PCCreate_SMG));
143: #endif
144: #if !defined(PETSC_USE_COMPLEX)
145: PetscCall(PCRegister(PCTFS, PCCreate_TFS));
146: #endif
147: #if defined(PETSC_HAVE_VIENNACL)
148: PetscCall(PCRegister(PCCHOWILUVIENNACL, PCCreate_CHOWILUVIENNACL));
149: PetscCall(PCRegister(PCROWSCALINGVIENNACL, PCCreate_ROWSCALINGVIENNACL));
150: PetscCall(PCRegister(PCSAVIENNACL, PCCreate_SAVIENNACL));
151: #endif
152: #if defined(PETSC_HAVE_PARMS)
153: PetscCall(PCRegister(PCPARMS, PCCreate_PARMS));
154: #endif
155: PetscCall(PCRegister(PCBDDC, PCCreate_BDDC));
156: PetscCall(PCRegister(PCLMVM, PCCreate_LMVM));
157: PetscCall(PCRegister(PCDEFLATION, PCCreate_Deflation));
158: #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES)
159: PetscCall(PCRegister(PCHPDDM, PCCreate_HPDDM));
160: #endif
161: #if defined(PETSC_HAVE_H2OPUS)
162: PetscCall(PCRegister(PCH2OPUS, PCCreate_H2OPUS));
163: #endif
164: PetscCall(PCRegister(PCMPI, PCCreate_MPI));
165: PetscFunctionReturn(PETSC_SUCCESS);
166: }