Actual source code: dlregists.c
petsc-3.7.1 2016-05-15
Report Typos and Errors

      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:   PetscFunctionListDestroy(&TSTrajectoryList);
     23:   TSPackageInitialized = PETSC_FALSE;
     24:   TSRegisterAllCalled  = PETSC_FALSE;
     25:   return(0);
     26: }

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

     35:   Level: developer

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

     48:   if (TSPackageInitialized) return(0);
     49:   TSPackageInitialized = PETSC_TRUE;
     50:   /* Inialize subpackages */
     51:   TSGLInitializePackage();
     52:   TSRKInitializePackage();
     53:   TSARKIMEXInitializePackage();
     54:   TSRosWInitializePackage();
     55:   TSSSPInitializePackage();
     56:   TSAdaptInitializePackage();
     57:   TSGLAdaptInitializePackage();
     58:   /* Register Classes */
     59:   PetscClassIdRegister("TS",&TS_CLASSID);
     60:   PetscClassIdRegister("DMTS",&DMTS_CLASSID);
     61:   PetscClassIdRegister("TSTrajectory",&TSTRAJECTORY_CLASSID);
     62:   /* Register Constructors */
     63:   TSRegisterAll();
     64:   TSTrajectoryRegisterAll();
     65:   /* Register Events */
     66:   PetscLogEventRegister("TSAdjointStep",TS_CLASSID,&TS_AdjointStep);
     67:   PetscLogEventRegister("TSTrajSet",TSTRAJECTORY_CLASSID,&TSTrajectory_Set);
     68:   PetscLogEventRegister("TSTrajGet",TSTRAJECTORY_CLASSID,&TSTrajectory_Get);
     69:   PetscLogEventRegister("TSTrajDiskWrite",TS_CLASSID,&TSTrajectory_DiskWrite);
     70:   PetscLogEventRegister("TSTrajDiskRead",TS_CLASSID,&TSTrajectory_DiskRead);
     71:   PetscLogEventRegister("TSStep",TS_CLASSID,&TS_Step);
     72:   PetscLogEventRegister("TSPseudoCmptTStp",TS_CLASSID,&TS_PseudoComputeTimeStep);
     73:   PetscLogEventRegister("TSFunctionEval",TS_CLASSID,&TS_FunctionEval);
     74:   PetscLogEventRegister("TSJacobianEval",TS_CLASSID,&TS_JacobianEval);
     75:   /* Process info exclusions */
     76:   PetscOptionsGetString(NULL,NULL, "-info_exclude", logList, 256, &opt);
     77:   if (opt) {
     78:     PetscStrstr(logList, "ts", &className);
     79:     if (className) {
     80:       PetscInfoDeactivateClass(TS_CLASSID);
     81:     }
     82:   }
     83:   /* Process summary exclusions */
     84:   PetscOptionsGetString(NULL,NULL, "-log_exclude", logList, 256, &opt);
     85:   if (opt) {
     86:     PetscStrstr(logList, "ts", &className);
     87:     if (className) {
     88:       PetscLogEventDeactivateClass(TS_CLASSID);
     89:     }
     90:   }
     91:   PetscRegisterFinalize(TSFinalizePackage);
     92:   return(0);
     93: }

     95: #if defined(PETSC_HAVE_DYNAMIC_LIBRARIES)
     98: /*
     99:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

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

    103:  */
    104: PETSC_EXTERN PetscErrorCode PetscDLLibraryRegister_petscts(void); /*prototype*/
    105: PETSC_EXTERN PetscErrorCode PetscDLLibraryRegister_petscts(void)
    106: {

    110:   TSInitializePackage();
    111:   return(0);
    112: }

    115: #endif /* PETSC_HAVE_DYNAMIC_LIBRARIES */