1*3da551e6SToby Isaac #include <petsc/private/dmfieldimpl.h> /*I "petscdmfield.h" I*/ 2*3da551e6SToby Isaac 3*3da551e6SToby Isaac PetscClassId DMFIELD_CLASSID; 4*3da551e6SToby Isaac 5*3da551e6SToby Isaac static PetscBool DMFieldPackageInitialized = PETSC_FALSE; 6*3da551e6SToby Isaac 7*3da551e6SToby Isaac PetscBool DMFieldRegisterAllCalled; 8*3da551e6SToby Isaac 9*3da551e6SToby Isaac /*@C 10*3da551e6SToby Isaac DMFieldInitializePackage - Initialize DMField package 11*3da551e6SToby Isaac 12*3da551e6SToby Isaac Logically Collective 13*3da551e6SToby Isaac 14*3da551e6SToby Isaac Level: developer 15*3da551e6SToby Isaac 16*3da551e6SToby Isaac .seealso: DMFieldFinalizePackage() 17*3da551e6SToby Isaac @*/ 18*3da551e6SToby Isaac PetscErrorCode DMFieldInitializePackage(void) 19*3da551e6SToby Isaac { 20*3da551e6SToby Isaac PetscErrorCode ierr; 21*3da551e6SToby Isaac 22*3da551e6SToby Isaac PetscFunctionBegin; 23*3da551e6SToby Isaac if (DMFieldPackageInitialized) PetscFunctionReturn(0); 24*3da551e6SToby Isaac DMFieldPackageInitialized = PETSC_TRUE; 25*3da551e6SToby Isaac 26*3da551e6SToby Isaac ierr = PetscClassIdRegister("Field over DM",&DMFIELD_CLASSID);CHKERRQ(ierr); 27*3da551e6SToby Isaac ierr = DMFieldRegisterAll();CHKERRQ(ierr); 28*3da551e6SToby Isaac ierr = PetscRegisterFinalize(DMFieldFinalizePackage);CHKERRQ(ierr); 29*3da551e6SToby Isaac PetscFunctionReturn(0); 30*3da551e6SToby Isaac } 31*3da551e6SToby Isaac 32*3da551e6SToby Isaac /*@C 33*3da551e6SToby Isaac DMFieldFinalizePackage - Finalize DMField package, it is called from PetscFinalize() 34*3da551e6SToby Isaac 35*3da551e6SToby Isaac Logically Collective 36*3da551e6SToby Isaac 37*3da551e6SToby Isaac Level: developer 38*3da551e6SToby Isaac 39*3da551e6SToby Isaac .seealso: DMFieldInitializePackage() 40*3da551e6SToby Isaac @*/ 41*3da551e6SToby Isaac PetscErrorCode DMFieldFinalizePackage(void) 42*3da551e6SToby Isaac { 43*3da551e6SToby Isaac PetscErrorCode ierr; 44*3da551e6SToby Isaac 45*3da551e6SToby Isaac PetscFunctionBegin; 46*3da551e6SToby Isaac ierr = PetscFunctionListDestroy(&DMFieldList);CHKERRQ(ierr); 47*3da551e6SToby Isaac DMFieldPackageInitialized = PETSC_FALSE; 48*3da551e6SToby Isaac DMFieldRegisterAllCalled = PETSC_FALSE; 49*3da551e6SToby Isaac PetscFunctionReturn(0); 50*3da551e6SToby Isaac } 51