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: }