1 #include <petsc/private/vecimpl.h> /*I "petscvec.h" I*/ 2 3 PetscClassId VEC_TAGGER_CLASSID; 4 5 static PetscBool VecTaggerPackageInitialized = PETSC_FALSE; 6 7 PetscBool VecTaggerRegisterAllCalled; 8 9 /*@C 10 VecTaggerInitializePackage - Initialize VecTagger package 11 12 Logically Collective 13 14 Level: developer 15 16 .seealso: `VecTaggerFinalizePackage()` 17 @*/ VecTaggerInitializePackage(void)18PetscErrorCode VecTaggerInitializePackage(void) 19 { 20 PetscFunctionBegin; 21 if (VecTaggerPackageInitialized) PetscFunctionReturn(PETSC_SUCCESS); 22 VecTaggerPackageInitialized = PETSC_TRUE; 23 24 PetscCall(PetscClassIdRegister("Vector Indices Tagger", &VEC_TAGGER_CLASSID)); 25 PetscCall(VecTaggerRegisterAll()); 26 PetscCall(PetscRegisterFinalize(VecTaggerFinalizePackage)); 27 PetscFunctionReturn(PETSC_SUCCESS); 28 } 29 30 /*@C 31 VecTaggerFinalizePackage - Finalize VecTagger package, it is called from PetscFinalize() 32 33 Logically Collective 34 35 Level: developer 36 37 .seealso: `VecTaggerInitializePackage()` 38 @*/ VecTaggerFinalizePackage(void)39PetscErrorCode VecTaggerFinalizePackage(void) 40 { 41 PetscFunctionBegin; 42 PetscCall(PetscFunctionListDestroy(&VecTaggerList)); 43 VecTaggerPackageInitialized = PETSC_FALSE; 44 VecTaggerRegisterAllCalled = PETSC_FALSE; 45 PetscFunctionReturn(PETSC_SUCCESS); 46 } 47