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 103da551e6SToby Isaac DMFieldInitializePackage - Initialize DMField package 113da551e6SToby Isaac 123da551e6SToby Isaac Logically Collective 133da551e6SToby Isaac 143da551e6SToby Isaac Level: developer 153da551e6SToby Isaac 16db781477SPatrick Sanan .seealso: `DMFieldFinalizePackage()` 173da551e6SToby Isaac @*/ 18*d71ae5a4SJacob Faibussowitsch PetscErrorCode DMFieldInitializePackage(void) 19*d71ae5a4SJacob Faibussowitsch { 203da551e6SToby Isaac PetscFunctionBegin; 213da551e6SToby Isaac if (DMFieldPackageInitialized) PetscFunctionReturn(0); 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)); 273da551e6SToby Isaac PetscFunctionReturn(0); 283da551e6SToby Isaac } 293da551e6SToby Isaac 303da551e6SToby Isaac /*@C 313da551e6SToby Isaac 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 @*/ 39*d71ae5a4SJacob Faibussowitsch PetscErrorCode DMFieldFinalizePackage(void) 40*d71ae5a4SJacob Faibussowitsch { 413da551e6SToby Isaac PetscFunctionBegin; 429566063dSJacob Faibussowitsch PetscCall(PetscFunctionListDestroy(&DMFieldList)); 433da551e6SToby Isaac DMFieldPackageInitialized = PETSC_FALSE; 443da551e6SToby Isaac DMFieldRegisterAllCalled = PETSC_FALSE; 453da551e6SToby Isaac PetscFunctionReturn(0); 463da551e6SToby Isaac } 47