xref: /petsc/src/dm/field/interface/dlregisdmfield.c (revision 9566063d113dddea24716c546802770db7481bc0)
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 
163da551e6SToby Isaac .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 
24*9566063dSJacob Faibussowitsch   PetscCall(PetscClassIdRegister("Field over DM",&DMFIELD_CLASSID));
25*9566063dSJacob Faibussowitsch   PetscCall(DMFieldRegisterAll());
26*9566063dSJacob 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 
373da551e6SToby Isaac .seealso: DMFieldInitializePackage()
383da551e6SToby Isaac @*/
393da551e6SToby Isaac PetscErrorCode DMFieldFinalizePackage(void)
403da551e6SToby Isaac {
413da551e6SToby Isaac   PetscFunctionBegin;
42*9566063dSJacob Faibussowitsch   PetscCall(PetscFunctionListDestroy(&DMFieldList));
433da551e6SToby Isaac   DMFieldPackageInitialized = PETSC_FALSE;
443da551e6SToby Isaac   DMFieldRegisterAllCalled  = PETSC_FALSE;
453da551e6SToby Isaac   PetscFunctionReturn(0);
463da551e6SToby Isaac }
47