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