Actual source code: mapcreate.c

      1: #define PETSCVEC_DLL
     2:  #include vecimpl.h

      7: /*@C
      8:   PetscMapCreate - Creates an empty map object. The type can then be set with PetscMapSetType().

     10:   Collective on MPI_Comm
     11:
     12:   Input Parameter:
     13: . comm - The MPI communicator for the map object

     15:   Output Parameter:
     16: . map  - The map object

     18:   Level: beginner

     20: .keywords: PetscMap, create
     21: .seealso: PetscMapDestroy(), PetscMapGetLocalSize(), PetscMapGetSize(), PetscMapGetGlobalRange(), PetscMapGetLocalRange()
     22: @*/
     23: PetscErrorCode PETSCVEC_DLLEXPORT PetscMapCreate(MPI_Comm comm, PetscMap *map)
     24: {
     25:   PetscMap m;

     30:   *map = PETSC_NULL;
     31: #ifndef PETSC_USE_DYNAMIC_LIBRARIES
     32:   VecInitializePackage(PETSC_NULL);
     33: #endif

     35:   PetscHeaderCreate(m, _p_PetscMap, struct _PetscMapOps, MAP_COOKIE, -1, "PetscMap", comm, PetscMapDestroy, PETSC_NULL);
     36:   PetscLogObjectMemory(m, sizeof(struct _p_PetscMap));
     37:   PetscMemzero(m->ops, sizeof(struct _PetscMapOps));
     38:   m->bops->publish  = PETSC_NULL /* PetscMapPublish_Petsc */;
     39:   m->type_name      = PETSC_NULL;

     41:   m->n      = -1;
     42:   m->N      = -1;
     43:   m->rstart = -1;
     44:   m->rend   = -1;
     45:   m->range  = PETSC_NULL;

     47:   *map = m;
     48:   return(0);
     49: }