1 #include <petsc-private/sfimpl.h> 2 3 PetscClassId PETSCSF_CLASSID; 4 5 static PetscBool PetscSFPackageInitialized = PETSC_FALSE; 6 7 PetscBool PetscSFRegisterAllCalled; 8 9 #undef __FUNCT__ 10 #define __FUNCT__ "PetscSFInitializePackage" 11 /*@C 12 PetscSFInitializePackage - Initialize SF package 13 14 Logically Collective 15 16 Level: developer 17 18 .seealso: PetscSFFinalizePackage() 19 @*/ 20 PetscErrorCode PetscSFInitializePackage(void) 21 { 22 PetscErrorCode ierr; 23 24 PetscFunctionBegin; 25 if (PetscSFPackageInitialized) PetscFunctionReturn(0); 26 PetscSFPackageInitialized = PETSC_TRUE; 27 28 ierr = PetscClassIdRegister("Bipartite Graph",&PETSCSF_CLASSID);CHKERRQ(ierr); 29 ierr = PetscSFRegisterAll();CHKERRQ(ierr); 30 ierr = PetscRegisterFinalize(PetscSFFinalizePackage);CHKERRQ(ierr); 31 PetscFunctionReturn(0); 32 } 33 34 #undef __FUNCT__ 35 #define __FUNCT__ "PetscSFFinalizePackage" 36 /*@C 37 PetscSFFinalizePackage - Finalize PetscSF package, it is called from PetscFinalize() 38 39 Logically Collective 40 41 Level: developer 42 43 .seealso: PetscSFInitializePackage() 44 @*/ 45 PetscErrorCode PetscSFFinalizePackage(void) 46 { 47 PetscErrorCode ierr; 48 49 PetscFunctionBegin; 50 ierr = PetscFunctionListDestroy(&PetscSFList);CHKERRQ(ierr); 51 PetscSFPackageInitialized = PETSC_FALSE; 52 PetscSFRegisterAllCalled = PETSC_FALSE; 53 PetscFunctionReturn(0); 54 } 55