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_ML)
39: PETSC_EXTERN PetscErrorCode PCCreate_ML(PC);
40: #endif
41: #if defined(PETSC_HAVE_SPAI)
42: PETSC_EXTERN PetscErrorCode PCCreate_SPAI(PC);
43: #endif
44: PETSC_EXTERN PetscErrorCode PCCreate_Mat(PC);
45: #if defined(PETSC_HAVE_HYPRE)
46: PETSC_EXTERN PetscErrorCode PCCreate_HYPRE(PC);
47: PETSC_EXTERN PetscErrorCode PCCreate_PFMG(PC);
48: PETSC_EXTERN PetscErrorCode PCCreate_SysPFMG(PC);
49: #endif
50: #if !defined(PETSC_USE_COMPLEX)
51: PETSC_EXTERN PetscErrorCode PCCreate_TFS(PC);
52: #endif
53: #if defined(PETSC_HAVE_VIENNACL)
54: PETSC_EXTERN PetscErrorCode PCCreate_CHOWILUVIENNACL(PC);
55: PETSC_EXTERN PetscErrorCode PCCreate_ROWSCALINGVIENNACL(PC);
56: PETSC_EXTERN PetscErrorCode PCCreate_SAVIENNACL(PC);
57: #endif
58: #if defined(PETSC_HAVE_PARMS)
59: PETSC_EXTERN PetscErrorCode PCCreate_PARMS(PC);
60: #endif
61: PETSC_EXTERN PetscErrorCode PCCreate_BDDC(PC);
62: PETSC_EXTERN PetscErrorCode PCCreate_Deflation(PC);
63: #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES)
64: PETSC_EXTERN PetscErrorCode PCCreate_HPDDM(PC);
65: #endif
66: #if defined(PETSC_HAVE_H2OPUS)
67: PETSC_EXTERN PetscErrorCode PCCreate_H2OPUS(PC);
68: #endif
70: /*@C
71: PCRegisterAll - Registers all of the preconditioners in the PC package.
73: Not Collective
75: Input Parameter:
76: . path - the library where the routines are to be found (optional)
78: Level: advanced
80: .seealso: PCRegister()
81: @*/
82: PetscErrorCode PCRegisterAll(void)
83: {
84: if (PCRegisterAllCalled) return 0;
85: PCRegisterAllCalled = PETSC_TRUE;
87: PCRegister(PCNONE ,PCCreate_None);
88: PCRegister(PCJACOBI ,PCCreate_Jacobi);
89: PCRegister(PCPBJACOBI ,PCCreate_PBJacobi);
90: PCRegister(PCVPBJACOBI ,PCCreate_VPBJacobi);
91: PCRegister(PCBJACOBI ,PCCreate_BJacobi);
92: PCRegister(PCSOR ,PCCreate_SOR);
93: PCRegister(PCLU ,PCCreate_LU);
94: PCRegister(PCQR ,PCCreate_QR);
95: PCRegister(PCSHELL ,PCCreate_Shell);
96: PCRegister(PCMG ,PCCreate_MG);
97: PCRegister(PCEISENSTAT ,PCCreate_Eisenstat);
98: PCRegister(PCILU ,PCCreate_ILU);
99: PCRegister(PCICC ,PCCreate_ICC);
100: PCRegister(PCCHOLESKY ,PCCreate_Cholesky);
101: PCRegister(PCASM ,PCCreate_ASM);
102: PCRegister(PCGASM ,PCCreate_GASM);
103: PCRegister(PCKSP ,PCCreate_KSP);
104: #if defined(PETSC_HAVE_KOKKOS_KERNELS)
105: PCRegister(PCBJKOKKOS ,PCCreate_BJKOKKOS);
106: #endif
107: PCRegister(PCCOMPOSITE ,PCCreate_Composite);
108: PCRegister(PCREDUNDANT ,PCCreate_Redundant);
109: PCRegister(PCNN ,PCCreate_NN);
110: PCRegister(PCMAT ,PCCreate_Mat);
111: PCRegister(PCFIELDSPLIT ,PCCreate_FieldSplit);
112: PCRegister(PCGALERKIN ,PCCreate_Galerkin);
113: PCRegister(PCEXOTIC ,PCCreate_Exotic);
114: PCRegister(PCCP ,PCCreate_CP);
115: PCRegister(PCLSC ,PCCreate_LSC);
116: PCRegister(PCREDISTRIBUTE ,PCCreate_Redistribute);
117: PCRegister(PCSVD ,PCCreate_SVD);
118: PCRegister(PCGAMG ,PCCreate_GAMG);
119: PCRegister(PCKACZMARZ ,PCCreate_Kaczmarz);
120: PCRegister(PCTELESCOPE ,PCCreate_Telescope);
121: PCRegister(PCPATCH ,PCCreate_Patch);
122: PCRegister(PCHMG ,PCCreate_HMG);
123: #if defined(PETSC_HAVE_ML)
124: PCRegister(PCML ,PCCreate_ML);
125: #endif
126: #if defined(PETSC_HAVE_SPAI)
127: PCRegister(PCSPAI ,PCCreate_SPAI);
128: #endif
129: #if defined(PETSC_HAVE_HYPRE)
130: PCRegister(PCHYPRE ,PCCreate_HYPRE);
131: PCRegister(PCPFMG ,PCCreate_PFMG);
132: PCRegister(PCSYSPFMG ,PCCreate_SysPFMG);
133: #endif
134: #if !defined(PETSC_USE_COMPLEX)
135: PCRegister(PCTFS ,PCCreate_TFS);
136: #endif
137: #if defined(PETSC_HAVE_VIENNACL)
138: PCRegister(PCCHOWILUVIENNACL,PCCreate_CHOWILUVIENNACL);
139: PCRegister(PCROWSCALINGVIENNACL,PCCreate_ROWSCALINGVIENNACL);
140: PCRegister(PCSAVIENNACL ,PCCreate_SAVIENNACL);
141: #endif
142: #if defined(PETSC_HAVE_PARMS)
143: PCRegister(PCPARMS ,PCCreate_PARMS);
144: #endif
145: PCRegister(PCBDDC ,PCCreate_BDDC);
146: PCRegister(PCLMVM ,PCCreate_LMVM);
147: PCRegister(PCDEFLATION ,PCCreate_Deflation);
148: #if defined(PETSC_HAVE_HPDDM) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES) && defined(PETSC_USE_SHARED_LIBRARIES)
149: PCRegister(PCHPDDM ,PCCreate_HPDDM);
150: #endif
151: #if defined(PETSC_HAVE_H2OPUS)
152: PCRegister(PCH2OPUS ,PCCreate_H2OPUS);
153: #endif
154: return 0;
155: }