xref: /petsc/src/sys/classes/random/interface/dlregisrand.c (revision 37e93019d958c82a17ba35bccd46909a573bf1c3)
15c6c1daeSBarry Smith 
25c6c1daeSBarry Smith #include <../src/sys/classes/random/randomimpl.h>
35c6c1daeSBarry Smith 
45c6c1daeSBarry Smith static PetscBool PetscRandomPackageInitialized = PETSC_FALSE;
55c6c1daeSBarry Smith #undef __FUNCT__
65c6c1daeSBarry Smith #define __FUNCT__ "PetscRandomFinalizePackage"
75c6c1daeSBarry Smith /*@C
85c6c1daeSBarry Smith   PetscRandomFinalizePackage - This function destroys everything in the Petsc interface to the Random package. It is
95c6c1daeSBarry Smith   called from PetscFinalize().
105c6c1daeSBarry Smith 
115c6c1daeSBarry Smith   Level: developer
125c6c1daeSBarry Smith 
135c6c1daeSBarry Smith .keywords: Petsc, destroy, package, mathematica
145c6c1daeSBarry Smith .seealso: PetscFinalize()
155c6c1daeSBarry Smith @*/
165c6c1daeSBarry Smith PetscErrorCode  PetscRandomFinalizePackage(void)
175c6c1daeSBarry Smith {
18*37e93019SBarry Smith   PetscErrorCode ierr;
19*37e93019SBarry Smith 
205c6c1daeSBarry Smith   PetscFunctionBegin;
21*37e93019SBarry Smith   ierr = PetscFunctionListDestroy(&PetscRandomList);CHKERRQ(ierr);
225c6c1daeSBarry Smith   PetscRandomPackageInitialized = PETSC_FALSE;
235c6c1daeSBarry Smith   PetscRandomRegisterAllCalled  = PETSC_FALSE;
245c6c1daeSBarry Smith   PetscFunctionReturn(0);
255c6c1daeSBarry Smith }
265c6c1daeSBarry Smith 
275c6c1daeSBarry Smith #undef __FUNCT__
285c6c1daeSBarry Smith #define __FUNCT__ "PetscRandomInitializePackage"
295c6c1daeSBarry Smith /*@C
305c6c1daeSBarry Smith   PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called
315c6c1daeSBarry Smith   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to PetscRandomCreate()
325c6c1daeSBarry Smith   when using static libraries.
335c6c1daeSBarry Smith 
345c6c1daeSBarry Smith   Level: developer
355c6c1daeSBarry Smith 
365c6c1daeSBarry Smith .keywords: PetscRandom, initialize, package
375c6c1daeSBarry Smith .seealso: PetscInitialize()
385c6c1daeSBarry Smith @*/
39607a6623SBarry Smith PetscErrorCode  PetscRandomInitializePackage(void)
405c6c1daeSBarry Smith {
415c6c1daeSBarry Smith   PetscErrorCode ierr;
425c6c1daeSBarry Smith 
435c6c1daeSBarry Smith   PetscFunctionBegin;
445c6c1daeSBarry Smith   if (PetscRandomPackageInitialized) PetscFunctionReturn(0);
455c6c1daeSBarry Smith   PetscRandomPackageInitialized = PETSC_TRUE;
465c6c1daeSBarry Smith   /* Register Class */
475c6c1daeSBarry Smith   ierr = PetscClassIdRegister("PetscRandom",&PETSC_RANDOM_CLASSID);CHKERRQ(ierr);
48607a6623SBarry Smith   ierr = PetscRandomRegisterAll();CHKERRQ(ierr);
495c6c1daeSBarry Smith   ierr = PetscRegisterFinalize(PetscRandomFinalizePackage);CHKERRQ(ierr);
505c6c1daeSBarry Smith   PetscFunctionReturn(0);
515c6c1daeSBarry Smith }
525c6c1daeSBarry Smith 
535c6c1daeSBarry Smith 
545c6c1daeSBarry Smith 
55