1 2 #include <../src/sys/classes/random/randomimpl.h> 3 4 static PetscBool PetscRandomPackageInitialized = PETSC_FALSE; 5 /*@C 6 PetscRandomFinalizePackage - This function destroys everything in the Petsc interface to the Random package. It is 7 called from PetscFinalize(). 8 9 Level: developer 10 11 .seealso: PetscFinalize() 12 @*/ 13 PetscErrorCode PetscRandomFinalizePackage(void) 14 { 15 PetscErrorCode ierr; 16 17 PetscFunctionBegin; 18 ierr = PetscFunctionListDestroy(&PetscRandomList);CHKERRQ(ierr); 19 PetscRandomPackageInitialized = PETSC_FALSE; 20 PetscRandomRegisterAllCalled = PETSC_FALSE; 21 PetscFunctionReturn(0); 22 } 23 24 /*@C 25 PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called 26 from PetscDLLibraryRegister_petsc() when using dynamic libraries, and on the first call to PetscRandomCreate() 27 when using shared or static libraries. 28 29 Level: developer 30 31 .seealso: PetscInitialize() 32 @*/ 33 PetscErrorCode PetscRandomInitializePackage(void) 34 { 35 char logList[256]; 36 PetscBool opt,pkg; 37 PetscErrorCode ierr; 38 39 PetscFunctionBegin; 40 if (PetscRandomPackageInitialized) PetscFunctionReturn(0); 41 PetscRandomPackageInitialized = PETSC_TRUE; 42 /* Register Class */ 43 ierr = PetscClassIdRegister("PetscRandom",&PETSC_RANDOM_CLASSID);CHKERRQ(ierr); 44 /* Register Constructors */ 45 ierr = PetscRandomRegisterAll();CHKERRQ(ierr); 46 /* Process Info */ 47 { 48 PetscClassId classids[1]; 49 50 classids[0] = PETSC_RANDOM_CLASSID; 51 ierr = PetscInfoProcessClass("random", 1, classids);CHKERRQ(ierr); 52 } 53 /* Process summary exclusions */ 54 ierr = PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt);CHKERRQ(ierr); 55 if (opt) { 56 ierr = PetscStrInList("random",logList,',',&pkg);CHKERRQ(ierr); 57 if (pkg) {ierr = PetscLogEventExcludeClass(PETSC_RANDOM_CLASSID);CHKERRQ(ierr);} 58 } 59 /* Register package finalizer */ 60 ierr = PetscRegisterFinalize(PetscRandomFinalizePackage);CHKERRQ(ierr); 61 PetscFunctionReturn(0); 62 } 63 64 65 66