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: }