1: #include <petsc/private/vecimpl.h>
  3: PetscClassId VEC_TAGGER_CLASSID;
  5: static PetscBool VecTaggerPackageInitialized = PETSC_FALSE;
  7: PetscBool VecTaggerRegisterAllCalled;
  9: /*@C
 10:    VecTaggerInitializePackage - Initialize VecTagger package
 12:    Logically Collective
 14:    Level: developer
 16: .seealso: VecTaggerFinalizePackage()
 17: @*/
 18: PetscErrorCode VecTaggerInitializePackage(void)
 19: {
 23:   if (VecTaggerPackageInitialized) return(0);
 24:   VecTaggerPackageInitialized = PETSC_TRUE;
 26:   PetscClassIdRegister("Vector Indices Tagger",&VEC_TAGGER_CLASSID);
 27:   VecTaggerRegisterAll();
 28:   PetscRegisterFinalize(VecTaggerFinalizePackage);
 29:   return(0);
 30: }
 32: /*@C
 33:    VecTaggerFinalizePackage - Finalize VecTagger package, it is called from PetscFinalize()
 35:    Logically Collective
 37:    Level: developer
 39: .seealso: VecTaggerInitializePackage()
 40: @*/
 41: PetscErrorCode VecTaggerFinalizePackage(void)
 42: {
 46:   PetscFunctionListDestroy(&VecTaggerList);
 47:   VecTaggerPackageInitialized = PETSC_FALSE;
 48:   VecTaggerRegisterAllCalled  = PETSC_FALSE;
 49:   return(0);
 50: }