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)18 PetscErrorCode VecTaggerInitializePackage(void)
19 {
20   PetscErrorCode ierr;
21 
22   PetscFunctionBegin;
23   if (VecTaggerPackageInitialized) PetscFunctionReturn(0);
24   VecTaggerPackageInitialized = PETSC_TRUE;
25 
26   ierr = PetscClassIdRegister("Vector Indices Tagger",&VEC_TAGGER_CLASSID);CHKERRQ(ierr);
27   ierr = VecTaggerRegisterAll();CHKERRQ(ierr);
28   ierr = PetscRegisterFinalize(VecTaggerFinalizePackage);CHKERRQ(ierr);
29   PetscFunctionReturn(0);
30 }
31 
32 /*@C
33    VecTaggerFinalizePackage - Finalize VecTagger package, it is called from PetscFinalize()
34 
35    Logically Collective
36 
37    Level: developer
38 
39 .seealso: VecTaggerInitializePackage()
40 @*/
VecTaggerFinalizePackage(void)41 PetscErrorCode VecTaggerFinalizePackage(void)
42 {
43   PetscErrorCode ierr;
44 
45   PetscFunctionBegin;
46   ierr = PetscFunctionListDestroy(&VecTaggerList);CHKERRQ(ierr);
47   VecTaggerPackageInitialized = PETSC_FALSE;
48   VecTaggerRegisterAllCalled  = PETSC_FALSE;
49   PetscFunctionReturn(0);
50 }
51