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