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