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