Actual source code: dlregists.c
1: #define PETSCTS_DLL
3: #include private/tsimpl.h
5: static PetscTruth TSPackageInitialized = PETSC_FALSE;
8: /*@C
9: TSFinalizePackage - This function destroys everything in the Petsc interface to Mathematica. It is
10: called from PetscFinalize().
12: Level: developer
14: .keywords: Petsc, destroy, package, mathematica
15: .seealso: PetscFinalize()
16: @*/
17: PetscErrorCode TSFinalizePackage(void)
18: {
20: TSPackageInitialized = PETSC_FALSE;
21: TSList = PETSC_NULL;
22: TSRegisterAllCalled = PETSC_FALSE;
23: return(0);
24: }
28: /*@C
29: TSInitializePackage - This function initializes everything in the TS package. It is called
30: from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to TSCreate()
31: when using static libraries.
33: Input Parameter:
34: path - The dynamic library path, or PETSC_NULL
36: Level: developer
38: .keywords: TS, initialize, package
39: .seealso: PetscInitialize()
40: @*/
41: PetscErrorCode TSInitializePackage(const char path[])
42: {
43: char logList[256];
44: char *className;
45: PetscTruth opt;
46: PetscErrorCode ierr;
49: if (TSPackageInitialized) return(0);
50: TSPackageInitialized = PETSC_TRUE;
51: /* Inialize subpackages */
52: TSGLInitializePackage(path);
53: TSGLAdaptInitializePackage(path);
54: /* Register Classes */
55: PetscCookieRegister("TS",&TS_COOKIE);
56: /* Register Constructors */
57: TSRegisterAll(path);
58: /* Register Events */
59: PetscLogEventRegister("TSStep", TS_COOKIE,&TS_Step);
60: PetscLogEventRegister("TSPseudoCmptTStp", TS_COOKIE,&TS_PseudoComputeTimeStep);
61: PetscLogEventRegister("TSFunctionEval", TS_COOKIE,&TS_FunctionEval);
62: PetscLogEventRegister("TSJacobianEval", TS_COOKIE,&TS_JacobianEval);
63: /* Process info exclusions */
64: PetscOptionsGetString(PETSC_NULL, "-info_exclude", logList, 256, &opt);
65: if (opt) {
66: PetscStrstr(logList, "ts", &className);
67: if (className) {
68: PetscInfoDeactivateClass(TS_COOKIE);
69: }
70: }
71: /* Process summary exclusions */
72: PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
73: if (opt) {
74: PetscStrstr(logList, "ts", &className);
75: if (className) {
76: PetscLogEventDeactivateClass(TS_COOKIE);
77: }
78: }
79: PetscRegisterFinalize(TSFinalizePackage);
80: return(0);
81: }
83: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
87: /*
88: PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.
90: This one registers all the TS methods that are in the basic PETSc libpetscts library.
92: Input Parameter:
93: path - library path
94: */
95: PetscErrorCode PetscDLLibraryRegister_petscts(const char path[])
96: {
99: PetscInitializeNoArguments(); if (ierr) return 1;
101: /*
102: If we got here then PETSc was properly loaded
103: */
104: TSInitializePackage(path);
105: return(0);
106: }
110: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */