13da551e6SToby Isaac #include <petsc/private/dmfieldimpl.h> /*I "petscdmfield.h" I*/ 23da551e6SToby Isaac 33da551e6SToby Isaac PetscClassId DMFIELD_CLASSID; 43da551e6SToby Isaac 53da551e6SToby Isaac static PetscBool DMFieldPackageInitialized = PETSC_FALSE; 63da551e6SToby Isaac 73da551e6SToby Isaac PetscBool DMFieldRegisterAllCalled; 83da551e6SToby Isaac 93da551e6SToby Isaac /*@C 10dce8aebaSBarry Smith DMFieldInitializePackage - Initialize `DMField` package 113da551e6SToby Isaac 123da551e6SToby Isaac Logically Collective 133da551e6SToby Isaac 143da551e6SToby Isaac Level: developer 153da551e6SToby Isaac 16db781477SPatrick Sanan .seealso: `DMFieldFinalizePackage()` 173da551e6SToby Isaac @*/ DMFieldInitializePackage(void)18d71ae5a4SJacob FaibussowitschPetscErrorCode DMFieldInitializePackage(void) 19d71ae5a4SJacob Faibussowitsch { 203da551e6SToby Isaac PetscFunctionBegin; 21*3ba16761SJacob Faibussowitsch if (DMFieldPackageInitialized) PetscFunctionReturn(PETSC_SUCCESS); 223da551e6SToby Isaac DMFieldPackageInitialized = PETSC_TRUE; 233da551e6SToby Isaac 249566063dSJacob Faibussowitsch PetscCall(PetscClassIdRegister("Field over DM", &DMFIELD_CLASSID)); 259566063dSJacob Faibussowitsch PetscCall(DMFieldRegisterAll()); 269566063dSJacob Faibussowitsch PetscCall(PetscRegisterFinalize(DMFieldFinalizePackage)); 27*3ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 283da551e6SToby Isaac } 293da551e6SToby Isaac 303da551e6SToby Isaac /*@C 31dce8aebaSBarry Smith DMFieldFinalizePackage - Finalize `DMField` package, it is called from `PetscFinalize()` 323da551e6SToby Isaac 333da551e6SToby Isaac Logically Collective 343da551e6SToby Isaac 353da551e6SToby Isaac Level: developer 363da551e6SToby Isaac 37db781477SPatrick Sanan .seealso: `DMFieldInitializePackage()` 383da551e6SToby Isaac @*/ DMFieldFinalizePackage(void)39d71ae5a4SJacob FaibussowitschPetscErrorCode DMFieldFinalizePackage(void) 40d71ae5a4SJacob Faibussowitsch { 413da551e6SToby Isaac PetscFunctionBegin; 429566063dSJacob Faibussowitsch PetscCall(PetscFunctionListDestroy(&DMFieldList)); 433da551e6SToby Isaac DMFieldPackageInitialized = PETSC_FALSE; 443da551e6SToby Isaac DMFieldRegisterAllCalled = PETSC_FALSE; 45*3ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 463da551e6SToby Isaac } 47