xref: /petsc/src/dm/field/interface/dlregisdmfield.c (revision db7814771ca77b190574494e87b584e981451db0)
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 
16*db781477SPatrick Sanan .seealso: `DMFieldFinalizePackage()`
173da551e6SToby Isaac @*/
183da551e6SToby Isaac PetscErrorCode DMFieldInitializePackage(void)
193da551e6SToby Isaac {
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 
37*db781477SPatrick Sanan .seealso: `DMFieldInitializePackage()`
383da551e6SToby Isaac @*/
393da551e6SToby Isaac PetscErrorCode DMFieldFinalizePackage(void)
403da551e6SToby Isaac {
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