195fce210SBarry Smith #include <petsc-private/sfimpl.h> 295fce210SBarry Smith 395fce210SBarry Smith PetscClassId PETSCSF_CLASSID; 495fce210SBarry Smith 595fce210SBarry Smith static PetscBool PetscSFPackageInitialized = PETSC_FALSE; 695fce210SBarry Smith 795fce210SBarry Smith PetscBool PetscSFRegisterAllCalled; 895fce210SBarry Smith 995fce210SBarry Smith #undef __FUNCT__ 1095fce210SBarry Smith #define __FUNCT__ "PetscSFInitializePackage" 1195fce210SBarry Smith /*@C 1295fce210SBarry Smith PetscSFInitializePackage - Initialize SF package 1395fce210SBarry Smith 1495fce210SBarry Smith Logically Collective 1595fce210SBarry Smith 1695fce210SBarry Smith Level: developer 1795fce210SBarry Smith 1895fce210SBarry Smith .seealso: PetscSFFinalizePackage() 1995fce210SBarry Smith @*/ 20607a6623SBarry Smith PetscErrorCode PetscSFInitializePackage(void) 2195fce210SBarry Smith { 2295fce210SBarry Smith PetscErrorCode ierr; 2395fce210SBarry Smith 2495fce210SBarry Smith PetscFunctionBegin; 2595fce210SBarry Smith if (PetscSFPackageInitialized) PetscFunctionReturn(0); 2695fce210SBarry Smith PetscSFPackageInitialized = PETSC_TRUE; 2795fce210SBarry Smith 2895fce210SBarry Smith ierr = PetscClassIdRegister("Bipartite Graph",&PETSCSF_CLASSID);CHKERRQ(ierr); 29607a6623SBarry Smith ierr = PetscSFRegisterAll();CHKERRQ(ierr); 3095fce210SBarry Smith ierr = PetscRegisterFinalize(PetscSFFinalizePackage);CHKERRQ(ierr); 3195fce210SBarry Smith PetscFunctionReturn(0); 3295fce210SBarry Smith } 3395fce210SBarry Smith 3495fce210SBarry Smith #undef __FUNCT__ 3595fce210SBarry Smith #define __FUNCT__ "PetscSFFinalizePackage" 3695fce210SBarry Smith /*@C 3795fce210SBarry Smith PetscSFFinalizePackage - Finalize PetscSF package, it is called from PetscFinalize() 3895fce210SBarry Smith 3995fce210SBarry Smith Logically Collective 4095fce210SBarry Smith 4195fce210SBarry Smith Level: developer 4295fce210SBarry Smith 4395fce210SBarry Smith .seealso: PetscSFInitializePackage() 4495fce210SBarry Smith @*/ 4595fce210SBarry Smith PetscErrorCode PetscSFFinalizePackage(void) 4695fce210SBarry Smith { 4737e93019SBarry Smith PetscErrorCode ierr; 4895fce210SBarry Smith 4995fce210SBarry Smith PetscFunctionBegin; 5037e93019SBarry Smith ierr = PetscFunctionListDestroy(&PetscSFList);CHKERRQ(ierr); 5195fce210SBarry Smith PetscSFPackageInitialized = PETSC_FALSE; 52*93ef888dSBarry Smith PetscSFRegisterAllCalled = PETSC_FALSE; 5395fce210SBarry Smith PetscFunctionReturn(0); 5495fce210SBarry Smith } 55