1: #define PETSC_DLL 3: #include ../src/sys/random/randomimpl.h 4: #if defined (PETSC_HAVE_STDLIB_H) 5: #include <stdlib.h> 6: #endif 8: static PetscTruth PetscRandomPackageInitialized = PETSC_FALSE; 11: /*@C 12: PetscRandomFinalizePackage - This function destroys everything in the Petsc interface to the charactoristics package. It is 13: called from PetscFinalize(). 15: Level: developer 17: .keywords: Petsc, destroy, package, mathematica 18: .seealso: PetscFinalize() 19: @*/ 20: PetscErrorCode PetscRandomFinalizePackage(void) 21: { 23: PetscRandomPackageInitialized = PETSC_FALSE; 24: PetscRandomList = PETSC_NULL; 25: PetscRandomRegisterAllCalled = PETSC_FALSE; 26: return(0); 27: } 31: /*@C 32: PetscRandomInitializePackage - This function initializes everything in the PetscRandom package. It is called 33: from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to PetscRandomCreate() 34: when using static libraries. 36: Input Parameter: 37: path - The dynamic library path, or PETSC_NULL 39: Level: developer 41: .keywords: PetscRandom, initialize, package 42: .seealso: PetscInitialize() 43: @*/ 44: PetscErrorCode PetscRandomInitializePackage(const char path[]) 45: { 46: PetscErrorCode ierr; 49: if (PetscRandomPackageInitialized) return(0); 50: PetscRandomPackageInitialized = PETSC_TRUE; 51: /* Register Class */ 52: PetscCookieRegister("PetscRandom",&PETSC_RANDOM_COOKIE); 53: PetscRandomRegisterAll(path); 54: PetscRegisterFinalize(PetscRandomFinalizePackage); 55: return(0); 56: }