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