Actual source code: pcregis.c
petsc-3.6.1 2015-08-06
2: #include <petsc/private/pcimpl.h> /*I "petscpc.h" I*/
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_ILU(PC);
8: PETSC_EXTERN PetscErrorCode PCCreate_None(PC);
9: PETSC_EXTERN PetscErrorCode PCCreate_LU(PC);
10: PETSC_EXTERN PetscErrorCode PCCreate_SOR(PC);
11: PETSC_EXTERN PetscErrorCode PCCreate_Shell(PC);
12: PETSC_EXTERN PetscErrorCode PCCreate_MG(PC);
13: PETSC_EXTERN PetscErrorCode PCCreate_Eisenstat(PC);
14: PETSC_EXTERN PetscErrorCode PCCreate_ICC(PC);
15: PETSC_EXTERN PetscErrorCode PCCreate_ASM(PC);
16: PETSC_EXTERN PetscErrorCode PCCreate_GASM(PC);
17: PETSC_EXTERN PetscErrorCode PCCreate_KSP(PC);
18: PETSC_EXTERN PetscErrorCode PCCreate_Composite(PC);
19: PETSC_EXTERN PetscErrorCode PCCreate_Redundant(PC);
20: PETSC_EXTERN PetscErrorCode PCCreate_NN(PC);
21: PETSC_EXTERN PetscErrorCode PCCreate_Cholesky(PC);
22: PETSC_EXTERN PetscErrorCode PCCreate_FieldSplit(PC);
23: PETSC_EXTERN PetscErrorCode PCCreate_Galerkin(PC);
24: PETSC_EXTERN PetscErrorCode PCCreate_Exotic(PC);
25: PETSC_EXTERN PetscErrorCode PCCreate_CP(PC);
26: PETSC_EXTERN PetscErrorCode PCCreate_LSC(PC);
27: PETSC_EXTERN PetscErrorCode PCCreate_Redistribute(PC);
28: PETSC_EXTERN PetscErrorCode PCCreate_SVD(PC);
29: PETSC_EXTERN PetscErrorCode PCCreate_GAMG(PC);
30: PETSC_EXTERN PetscErrorCode PCCreate_Kaczmarz(PC);
32: #if defined(PETSC_HAVE_ML)
33: PETSC_EXTERN PetscErrorCode PCCreate_ML(PC);
34: #endif
35: #if defined(PETSC_HAVE_SPAI)
36: PETSC_EXTERN PetscErrorCode PCCreate_SPAI(PC);
37: #endif
38: PETSC_EXTERN PetscErrorCode PCCreate_Mat(PC);
39: #if defined(PETSC_HAVE_HYPRE)
40: PETSC_EXTERN PetscErrorCode PCCreate_HYPRE(PC);
41: PETSC_EXTERN PetscErrorCode PCCreate_PFMG(PC);
42: PETSC_EXTERN PetscErrorCode PCCreate_SysPFMG(PC);
43: #endif
44: #if !defined(PETSC_USE_COMPLEX)
45: PETSC_EXTERN PetscErrorCode PCCreate_TFS(PC);
46: #endif
47: #if defined(PETSC_HAVE_CUSP)
48: PETSC_EXTERN PetscErrorCode PCCreate_SACUSP(PC);
49: PETSC_EXTERN PetscErrorCode PCCreate_SACUSPPoly(PC);
50: PETSC_EXTERN PetscErrorCode PCCreate_BiCGStabCUSP(PC);
51: PETSC_EXTERN PetscErrorCode PCCreate_AINVCUSP(PC);
52: #endif
53: #if defined(PETSC_HAVE_PARMS)
54: PETSC_EXTERN PetscErrorCode PCCreate_PARMS(PC);
55: #endif
56: PETSC_EXTERN PetscErrorCode PCCreate_BDDC(PC);
60: /*@C
61: PCRegisterAll - Registers all of the preconditioners in the PC package.
63: Not Collective
65: Input Parameter:
66: . path - the library where the routines are to be found (optional)
68: Level: advanced
70: .keywords: PC, register, all
72: .seealso: PCRegister(), PCRegisterDestroy()
73: @*/
74: PetscErrorCode PCRegisterAll(void)
75: {
79: if (PCRegisterAllCalled) return(0);
80: PCRegisterAllCalled = PETSC_TRUE;
82: PCRegister(PCNONE ,PCCreate_None);
83: PCRegister(PCJACOBI ,PCCreate_Jacobi);
84: PCRegister(PCPBJACOBI ,PCCreate_PBJacobi);
85: PCRegister(PCBJACOBI ,PCCreate_BJacobi);
86: PCRegister(PCSOR ,PCCreate_SOR);
87: PCRegister(PCLU ,PCCreate_LU);
88: PCRegister(PCSHELL ,PCCreate_Shell);
89: PCRegister(PCMG ,PCCreate_MG);
90: PCRegister(PCEISENSTAT ,PCCreate_Eisenstat);
91: PCRegister(PCILU ,PCCreate_ILU);
92: PCRegister(PCICC ,PCCreate_ICC);
93: PCRegister(PCCHOLESKY ,PCCreate_Cholesky);
94: PCRegister(PCASM ,PCCreate_ASM);
95: PCRegister(PCGASM ,PCCreate_GASM);
96: PCRegister(PCKSP ,PCCreate_KSP);
97: PCRegister(PCCOMPOSITE ,PCCreate_Composite);
98: PCRegister(PCREDUNDANT ,PCCreate_Redundant);
99: PCRegister(PCNN ,PCCreate_NN);
100: PCRegister(PCMAT ,PCCreate_Mat);
101: PCRegister(PCFIELDSPLIT ,PCCreate_FieldSplit);
102: PCRegister(PCGALERKIN ,PCCreate_Galerkin);
103: PCRegister(PCEXOTIC ,PCCreate_Exotic);
104: PCRegister(PCCP ,PCCreate_CP);
105: PCRegister(PCLSC ,PCCreate_LSC);
106: PCRegister(PCREDISTRIBUTE ,PCCreate_Redistribute);
107: PCRegister(PCSVD ,PCCreate_SVD);
108: PCRegister(PCGAMG ,PCCreate_GAMG);
109: PCRegister(PCKACZMARZ ,PCCreate_Kaczmarz);
110: #if defined(PETSC_HAVE_ML)
111: PCRegister(PCML ,PCCreate_ML);
112: #endif
113: #if defined(PETSC_HAVE_SPAI)
114: PCRegister(PCSPAI ,PCCreate_SPAI);
115: #endif
116: #if defined(PETSC_HAVE_HYPRE)
117: PCRegister(PCHYPRE ,PCCreate_HYPRE);
118: PCRegister(PCPFMG ,PCCreate_PFMG);
119: PCRegister(PCSYSPFMG ,PCCreate_SysPFMG);
120: #endif
121: #if !defined(PETSC_USE_COMPLEX)
122: PCRegister(PCTFS ,PCCreate_TFS);
123: #endif
124: #if defined(PETSC_HAVE_CUSP)
125: PCRegister(PCSACUSP ,PCCreate_SACUSP);
126: PCRegister(PCAINVCUSP ,PCCreate_AINVCUSP);
127: PCRegister(PCBICGSTABCUSP ,PCCreate_BiCGStabCUSP);
128: PCRegister(PCSACUSPPOLY ,PCCreate_SACUSPPoly);
129: #endif
130: #if defined(PETSC_HAVE_PARMS)
131: PCRegister(PCPARMS ,PCCreate_PARMS);
132: #endif
133: PCRegister(PCBDDC ,PCCreate_BDDC);
134: return(0);
135: }