1: #include <petsc/private/dmfieldimpl.h>
3: PetscClassId DMFIELD_CLASSID;
5: static PetscBool DMFieldPackageInitialized = PETSC_FALSE;
7: PetscBool DMFieldRegisterAllCalled;
9: /*@C
10: DMFieldInitializePackage - Initialize `DMField` package
12: Logically Collective
14: Level: developer
16: .seealso: `DMFieldFinalizePackage()`
17: @*/
18: PetscErrorCode DMFieldInitializePackage(void)
19: {
20: if (DMFieldPackageInitialized) return 0;
21: DMFieldPackageInitialized = PETSC_TRUE;
23: PetscClassIdRegister("Field over DM", &DMFIELD_CLASSID);
24: DMFieldRegisterAll();
25: PetscRegisterFinalize(DMFieldFinalizePackage);
26: return 0;
27: }
29: /*@C
30: DMFieldFinalizePackage - Finalize `DMField` package, it is called from `PetscFinalize()`
32: Logically Collective
34: Level: developer
36: .seealso: `DMFieldInitializePackage()`
37: @*/
38: PetscErrorCode DMFieldFinalizePackage(void)
39: {
40: PetscFunctionListDestroy(&DMFieldList);
41: DMFieldPackageInitialized = PETSC_FALSE;
42: DMFieldRegisterAllCalled = PETSC_FALSE;
43: return 0;
44: }