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