Actual source code: dlregists.c

petsc-3.4.5 2014-06-29
  2: #include <petsc-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: {

 21:   PetscFunctionListDestroy(&TSList);
 22:   TSPackageInitialized = PETSC_FALSE;
 23:   TSRegisterAllCalled  = PETSC_FALSE;
 24:   return(0);
 25: }

 29: /*@C
 30:   TSInitializePackage - This function initializes everything in the TS package. It is called
 31:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to TSCreate()
 32:   when using static libraries.

 34:   Level: developer

 36: .keywords: TS, initialize, package
 37: .seealso: PetscInitialize()
 38: @*/
 39: PetscErrorCode  TSInitializePackage(void)
 40: {
 41:   char           logList[256];
 42:   char           *className;
 43:   PetscBool      opt;

 47:   if (TSPackageInitialized) return(0);
 48:   TSPackageInitialized = PETSC_TRUE;
 49:   /* Inialize subpackages */
 50:   TSGLInitializePackage();
 51:   TSARKIMEXInitializePackage();
 52:   TSRosWInitializePackage();
 53:   TSSSPInitializePackage();
 54:   TSAdaptInitializePackage();
 55:   TSGLAdaptInitializePackage();
 56:   /* Register Classes */
 57:   PetscClassIdRegister("TS",&TS_CLASSID);
 58:   PetscClassIdRegister("DMTS",&DMTS_CLASSID);
 59:   /* Register Constructors */
 60:   TSRegisterAll();
 61:   /* Register Events */
 62:   PetscLogEventRegister("TSStep",           TS_CLASSID,&TS_Step);
 63:   PetscLogEventRegister("TSPseudoCmptTStp", TS_CLASSID,&TS_PseudoComputeTimeStep);
 64:   PetscLogEventRegister("TSFunctionEval",   TS_CLASSID,&TS_FunctionEval);
 65:   PetscLogEventRegister("TSJacobianEval",   TS_CLASSID,&TS_JacobianEval);
 66:   /* Process info exclusions */
 67:   PetscOptionsGetString(NULL, "-info_exclude", logList, 256, &opt);
 68:   if (opt) {
 69:     PetscStrstr(logList, "ts", &className);
 70:     if (className) {
 71:       PetscInfoDeactivateClass(TS_CLASSID);
 72:     }
 73:   }
 74:   /* Process summary exclusions */
 75:   PetscOptionsGetString(NULL, "-log_summary_exclude", logList, 256, &opt);
 76:   if (opt) {
 77:     PetscStrstr(logList, "ts", &className);
 78:     if (className) {
 79:       PetscLogEventDeactivateClass(TS_CLASSID);
 80:     }
 81:   }
 82:   PetscRegisterFinalize(TSFinalizePackage);
 83:   return(0);
 84: }

 86: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
 89: /*
 90:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

 92:   This one registers all the TS methods that are in the basic PETSc libpetscts library.

 94:  */
 95: PETSC_EXTERN PetscErrorCode PetscDLLibraryRegister_petscts(void)
 96: {

100:   TSInitializePackage();
101:   return(0);
102: }


105: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */