Actual source code: dlregispetsc.c

  1: #define PETSC_DLL

 3:  #include petsc.h
 4:  #include petscdraw.h
 5:  #include petscsys.h

  9: /*@C
 10:   PetscInitializePackage - This function initializes everything in the main Petsc package. It is called
 11:   from PetscDLLibraryRegister() when using dynamic libraries, and on the call to PetscInitialize()
 12:   when using static libraries.

 14:   Input Parameter:
 15:   path - The dynamic library path, or PETSC_NULL

 17:   Level: developer

 19: .keywords: Petsc, initialize, package
 20: .seealso: PetscInitialize()
 21: @*/
 22: PetscErrorCode PETSC_DLLEXPORT PetscInitializePackage(char *path)
 23: {
 24:   static PetscTruth initialized = PETSC_FALSE;
 25:   char              logList[256];
 26:   char              *className;
 27:   PetscTruth        opt;
 28:   PetscErrorCode    ierr;

 31:   if (initialized) return(0);
 32:   initialized = PETSC_TRUE;
 33:   /* Register Classes */
 34:   PetscLogClassRegister(&PETSC_OBJECT_COOKIE, "Object");
 35:   PetscLogClassRegister(&PETSC_VIEWER_COOKIE, "Viewer");
 36:   PetscLogClassRegister(&PETSC_DRAW_COOKIE,   "Draw");
 37:   PetscLogClassRegister(&DRAWAXIS_COOKIE,     "Axis");
 38:   PetscLogClassRegister(&DRAWLG_COOKIE,       "Line Graph");
 39:   PetscLogClassRegister(&DRAWHG_COOKIE,       "Histogram");
 40:   PetscLogClassRegister(&DRAWSP_COOKIE,       "Scatter Plot");
 41:   PetscLogClassRegister(&PETSC_RANDOM_COOKIE, "Random Number Generator");
 42:   /* Register Constructors */
 43:   PetscDrawRegisterAll(path);
 44:   PetscViewerRegisterAll(path);
 45:   /* Register Events */
 46:   PetscLogEventRegister(&PETSC_Barrier, "PetscBarrier", PETSC_COOKIE);
 47:   /* Process info exclusions */
 48:   PetscOptionsGetString(PETSC_NULL, "-log_info_exclude", logList, 256, &opt);
 49:   if (opt) {
 50:     PetscStrstr(logList, "null", &className);
 51:     if (className) {
 52:       PetscLogInfoDeactivateClass(0);
 53:     }
 54:   }
 55:   /* Process summary exclusions */
 56:   PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
 57:   if (opt) {
 58:     PetscStrstr(logList, "null", &className);
 59:     if (className) {
 60:       PetscLogEventDeactivateClass(0);
 61:     }
 62:   }
 63:   /* Setup auxiliary packages */
 64: #if defined(PETSC_HAVE_MATHEMATICA)
 65:   PetscViewerMathematicaInitializePackage(PETSC_NULL);
 66: #endif
 67:   PetscPLAPACKInitializePackage(PETSC_NULL);
 68:   return(0);
 69: }

 74: /*
 75:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

 77:   This one registers all the draw and PetscViewer objects.

 79:   Input Parameter:
 80:   path - library path
 81:  */
 82: PetscErrorCode PETSC_DLLEXPORT PetscDLLibraryRegister_petsc(char *path)
 83: {

 86:   PetscInitializeNoArguments(); if (ierr) return 1;
 88:   /*
 89:       If we got here then PETSc was properly loaded
 90:   */
 91:   PetscInitializePackage(path);
 92:   return(0);
 93: }