1 #include <petscpf.h> /*I "petscpf.h" I*/
2 #include <../src/vec/pf/pfimpl.h>
3
4 PETSC_INTERN PetscErrorCode PFCreate_Constant(PF, void *);
5 PETSC_INTERN PetscErrorCode PFCreate_Quick(PF, void *);
6 PETSC_INTERN PetscErrorCode PFCreate_Identity(PF, void *);
7 #if defined(PETSC_HAVE_POPEN) && defined(PETSC_USE_SHARED_LIBRARIES) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES)
8 PETSC_INTERN PetscErrorCode PFCreate_String(PF, void *);
9 #endif
10 #if defined(PETSC_HAVE_MATLAB)
11 PETSC_INTERN PetscErrorCode PFCreate_Matlab(PF, void *);
12 #endif
13
14 /*@C
15 PFRegisterAll - Registers all of the preconditioners in the PF package.
16
17 Not Collective
18
19 Level: advanced
20
21 .seealso: `PFRegister()`, `PFRegisterDestroy()`
22 @*/
PFRegisterAll(void)23 PetscErrorCode PFRegisterAll(void)
24 {
25 PetscFunctionBegin;
26 if (PFRegisterAllCalled) PetscFunctionReturn(PETSC_SUCCESS);
27 PFRegisterAllCalled = PETSC_TRUE;
28
29 PetscCall(PFRegister(PFCONSTANT, PFCreate_Constant));
30 PetscCall(PFRegister(PFQUICK, PFCreate_Quick));
31 PetscCall(PFRegister(PFIDENTITY, PFCreate_Identity));
32 #if defined(PETSC_HAVE_POPEN) && defined(PETSC_USE_SHARED_LIBRARIES) && defined(PETSC_HAVE_DYNAMIC_LIBRARIES)
33 PetscCall(PFRegister(PFSTRING, PFCreate_String));
34 #endif
35 #if defined(PETSC_HAVE_MATLAB)
36 PetscCall(PFRegister(PFMATLAB, PFCreate_Matlab));
37 #endif
38 PetscFunctionReturn(PETSC_SUCCESS);
39 }
40