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 Input Arguments: 17 . path - the dynamic library path or NULL 18 19 Level: developer 20 21 .seealso: PetscSFFinalizePackage() 22 @*/ 23 PetscErrorCode PetscSFInitializePackage(const char *path) 24 { 25 PetscErrorCode ierr; 26 27 PetscFunctionBegin; 28 if (PetscSFPackageInitialized) PetscFunctionReturn(0); 29 PetscSFPackageInitialized = PETSC_TRUE; 30 31 ierr = PetscClassIdRegister("Bipartite Graph",&PETSCSF_CLASSID);CHKERRQ(ierr); 32 ierr = PetscSFRegisterAll(path);CHKERRQ(ierr); 33 ierr = PetscRegisterFinalize(PetscSFFinalizePackage);CHKERRQ(ierr); 34 PetscFunctionReturn(0); 35 } 36 37 #undef __FUNCT__ 38 #define __FUNCT__ "PetscSFFinalizePackage" 39 /*@C 40 PetscSFFinalizePackage - Finalize PetscSF package, it is called from PetscFinalize() 41 42 Logically Collective 43 44 Level: developer 45 46 .seealso: PetscSFInitializePackage() 47 @*/ 48 PetscErrorCode PetscSFFinalizePackage(void) 49 { 50 51 PetscFunctionBegin; 52 PetscSFPackageInitialized = PETSC_FALSE; 53 PetscFunctionReturn(0); 54 } 55