Actual source code: dlregisvecscat.c
petsc-3.10.5 2019-03-28
Report Typos and Errors

      2:  #include <petscvec.h>
      3:  #include <petsc/private/vecscatterimpl.h>

      5: static PetscBool  VecScatterPackageInitialized = PETSC_FALSE;

      7: /*@C
      8:   VecScatterFinalizePackage - This function destroys everything in the VecScatter package. It is
      9:   called from PetscFinalize().

     11:   Level: developer

     13: .keywords: Petsc, destroy, package
     14: .seealso: PetscFinalize()
     15: @*/
     16: PetscErrorCode VecScatterFinalizePackage(void)
     17: {

     21:   PetscFunctionListDestroy(&VecScatterList);
     22:   VecScatterPackageInitialized = PETSC_FALSE;
     23:   VecScatterRegisterAllCalled  = PETSC_FALSE;
     24:   return(0);
     25: }

     27: /*@C
     28:       VecScatterInitializePackage - This function initializes everything in the VecScatter package. It is called
     29:   from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to VecScatterCreateXXXX()
     30:   when using static libraries.

     32:   Level: developer

     34: .keywords: Vec, initialize, package
     35: .seealso: PetscInitialize()
     36: @*/
     37: PetscErrorCode VecScatterInitializePackage(void)
     38: {
     39:   char           logList[256];
     40:   PetscBool      opt,pkg;

     44:   if (VecScatterPackageInitialized) return(0);
     45:   VecScatterPackageInitialized = PETSC_TRUE;
     46:   /* Register Classes */
     47:   PetscClassIdRegister("Vec Scatter",&VEC_SCATTER_CLASSID);
     48:   /* Register Constructors */
     49:   VecScatterRegisterAll();
     50:   /* Process info exclusions */
     51:   PetscOptionsGetString(NULL,NULL,"-info_exclude",logList,sizeof(logList),&opt);
     52:   if (opt) {
     53:     PetscStrInList("vecscatter",logList,',',&pkg);
     54:     if (pkg) {PetscInfoDeactivateClass(VEC_SCATTER_CLASSID);}
     55:   }
     56:   /* Process summary exclusions */
     57:   PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt);
     58:   if (opt) {
     59:     PetscStrInList("vecscatter",logList,',',&pkg);
     60:     if (pkg) {PetscLogEventExcludeClass(VEC_SCATTER_CLASSID);}
     61:   }
     62:   /* Register package finalizer */
     63:   PetscRegisterFinalize(VecScatterFinalizePackage);
     64:   return(0);
     65: }

     67: /* ----------------------------------------------------- */
     68: /*@C
     69:   VecScatterRegisterAll - Registers all of the vector components in the Vec package.

     71:   Not Collective

     73:   Level: advanced

     75: .keywords: Vec, register, all
     76: .seealso:  VecScatterRegister(), VecScatterRegisterDestroy(), VecScatterRegister()
     77: @*/
     78: PetscErrorCode VecScatterRegisterAll(void)
     79: {

     83:   if (VecScatterRegisterAllCalled) return(0);
     84:   VecScatterRegisterAllCalled = PETSC_TRUE;

     86:   VecScatterRegister(VECSCATTERSEQ,        VecScatterCreate_Seq);
     87:   VecScatterRegister(VECSCATTERMPI1,       VecScatterCreate_MPI1);
     88:   VecScatterRegister(VECSCATTERMPI3,       VecScatterCreate_MPI3);
     89:   VecScatterRegister(VECSCATTERMPI3NODE,   VecScatterCreate_MPI3Node);
     90:   return(0);
     91: }