Actual source code: dlregists.c
2: #include <private/tsimpl.h>
4: static PetscBool TSPackageInitialized = PETSC_FALSE;
7: /*@C
8: TSFinalizePackage - This function destroys everything in the Petsc interface to Mathematica. It is
9: called from PetscFinalize().
11: Level: developer
13: .keywords: Petsc, destroy, package, mathematica
14: .seealso: PetscFinalize()
15: @*/
16: PetscErrorCode TSFinalizePackage(void)
17: {
19: TSPackageInitialized = PETSC_FALSE;
20: TSList = PETSC_NULL;
21: TSRegisterAllCalled = PETSC_FALSE;
22: return(0);
23: }
27: /*@C
28: TSInitializePackage - This function initializes everything in the TS package. It is called
29: from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to TSCreate()
30: when using static libraries.
32: Input Parameter:
33: path - The dynamic library path, or PETSC_NULL
35: Level: developer
37: .keywords: TS, initialize, package
38: .seealso: PetscInitialize()
39: @*/
40: PetscErrorCode TSInitializePackage(const char path[])
41: {
42: char logList[256];
43: char *className;
44: PetscBool opt;
45: PetscErrorCode ierr;
48: if (TSPackageInitialized) return(0);
49: TSPackageInitialized = PETSC_TRUE;
50: /* Inialize subpackages */
51: TSGLInitializePackage(path);
52: TSARKIMEXInitializePackage(path);
53: TSGLAdaptInitializePackage(path);
54: /* Register Classes */
55: PetscClassIdRegister("TS",&TS_CLASSID);
56: /* Register Constructors */
57: TSRegisterAll(path);
58: /* Register Events */
59: PetscLogEventRegister("TSStep", TS_CLASSID,&TS_Step);
60: PetscLogEventRegister("TSPseudoCmptTStp", TS_CLASSID,&TS_PseudoComputeTimeStep);
61: PetscLogEventRegister("TSFunctionEval", TS_CLASSID,&TS_FunctionEval);
62: PetscLogEventRegister("TSJacobianEval", TS_CLASSID,&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_CLASSID);
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_CLASSID);
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: {
100: TSInitializePackage(path);
101: return(0);
102: }
106: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */