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 @*/ DMFieldInitializePackage(void)18PetscErrorCode DMFieldInitializePackage(void) 19 { 20 PetscFunctionBegin; 21 if (DMFieldPackageInitialized) PetscFunctionReturn(PETSC_SUCCESS); 22 DMFieldPackageInitialized = PETSC_TRUE; 23 24 PetscCall(PetscClassIdRegister("Field over DM", &DMFIELD_CLASSID)); 25 PetscCall(DMFieldRegisterAll()); 26 PetscCall(PetscRegisterFinalize(DMFieldFinalizePackage)); 27 PetscFunctionReturn(PETSC_SUCCESS); 28 } 29 30 /*@C 31 DMFieldFinalizePackage - Finalize `DMField` package, it is called from `PetscFinalize()` 32 33 Logically Collective 34 35 Level: developer 36 37 .seealso: `DMFieldInitializePackage()` 38 @*/ DMFieldFinalizePackage(void)39PetscErrorCode DMFieldFinalizePackage(void) 40 { 41 PetscFunctionBegin; 42 PetscCall(PetscFunctionListDestroy(&DMFieldList)); 43 DMFieldPackageInitialized = PETSC_FALSE; 44 DMFieldRegisterAllCalled = PETSC_FALSE; 45 PetscFunctionReturn(PETSC_SUCCESS); 46 } 47