1: #include <petsc-private/sfimpl.h>
3: PetscClassId PETSCSF_CLASSID;
5: static PetscBool PetscSFPackageInitialized = PETSC_FALSE;
7: PetscBool PetscSFRegisterAllCalled;
11: /*@C
12: PetscSFInitializePackage - Initialize SF package
14: Logically Collective
16: Level: developer
18: .seealso: PetscSFFinalizePackage()
19: @*/
20: PetscErrorCode PetscSFInitializePackage(void)
21: {
25: if (PetscSFPackageInitialized) return(0);
26: PetscSFPackageInitialized = PETSC_TRUE;
28: PetscClassIdRegister("Bipartite Graph",&PETSCSF_CLASSID);
29: PetscSFRegisterAll();
30: PetscRegisterFinalize(PetscSFFinalizePackage);
31: return(0);
32: }
36: /*@C
37: PetscSFFinalizePackage - Finalize PetscSF package, it is called from PetscFinalize()
39: Logically Collective
41: Level: developer
43: .seealso: PetscSFInitializePackage()
44: @*/
45: PetscErrorCode PetscSFFinalizePackage(void)
46: {
50: PetscFunctionListDestroy(&PetscSFList);
51: PetscSFPackageInitialized = PETSC_FALSE;
52: PetscSFRegisterAllCalled = PETSC_FALSE;
53: return(0);
54: }