Actual source code: dlregisdm.c

      1: #define PETSCDM_DLL

     3:  #include petscao.h
     4:  #include petscda.h

      8: /*@C
      9:   DMInitializePackage - This function initializes everything in the DM package. It is called
     10:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to AOCreate()
     11:   or DACreate() when using static libraries.

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

     16:   Level: developer

     18: .keywords: AO, DA, initialize, package
     19: .seealso: PetscInitialize()
     20: @*/
     21: PetscErrorCode PETSCDM_DLLEXPORT DMInitializePackage(const char path[]) {
     22:   static PetscTruth initialized = PETSC_FALSE;
     23:   char              logList[256];
     24:   char             *className;
     25:   PetscTruth        opt;

     29:   if (initialized) return(0);
     30:   initialized = PETSC_TRUE;
     31:   /* Register Classes */
     32:   PetscLogClassRegister(&AO_COOKIE,     "Application Order");
     33:   PetscLogClassRegister(&AODATA_COOKIE, "Application Data");
     34:   PetscLogClassRegister(&DA_COOKIE,     "Distributed array");
     35:   /* Register Events */
     36:   PetscLogEventRegister(&AO_PetscToApplication, "AOPetscToApplication", AO_COOKIE);
     37:   PetscLogEventRegister(&AO_ApplicationToPetsc, "AOApplicationToPetsc", AO_COOKIE);
     38:   PetscLogEventRegister(&DA_GlobalToLocal,      "DAGlobalToLocal",      DA_COOKIE);
     39:   PetscLogEventRegister(&DA_LocalToGlobal,      "DALocalToGlobal",      DA_COOKIE);
     40:   PetscLogEventRegister(&DA_LocalADFunction,    "DALocalADFunc",        DA_COOKIE);
     41:   /* Process info exclusions */
     42:   PetscOptionsGetString(PETSC_NULL, "-log_info_exclude", logList, 256, &opt);
     43:   if (opt) {
     44:     PetscStrstr(logList, "ao", &className);
     45:     if (className) {
     46:       PetscLogInfoDeactivateClass(AO_COOKIE);
     47:     }
     48:     PetscStrstr(logList, "da", &className);
     49:     if (className) {
     50:       PetscLogInfoDeactivateClass(DA_COOKIE);
     51:     }
     52:   }
     53:   /* Process summary exclusions */
     54:   PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
     55:   if (opt) {
     56:     PetscStrstr(logList, "ao", &className);
     57:     if (className) {
     58:       PetscLogEventDeactivateClass(AO_COOKIE);
     59:     }
     60:     PetscStrstr(logList, "da", &className);
     61:     if (className) {
     62:       PetscLogEventDeactivateClass(DA_COOKIE);
     63:     }
     64:   }
     65:   return(0);
     66: }

     68: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
     72: /*
     73:   PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.

     75:   This one registers all the mesh generators and partitioners that are in
     76:   the basic DM library.

     78:   Input Parameter:
     79:   path - library path
     80: */
     81: PetscErrorCode PETSCDM_DLLEXPORT PetscDLLibraryRegister_petscdm(char *path)
     82: {

     85:   PetscInitializeNoArguments();
     86:   if (ierr) return(1);

     88:   /*
     89:       If we got here then PETSc was properly loaded
     90:   */
     91:   DMInitializePackage(path);
     92:   return(0);
     93: }

     96: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */