petsc-master 2017-06-26
Report Typos and Errors


Creates a mapping between a local (0 to n) ordering and a global parallel ordering.


#include "petscis.h"  
PetscErrorCode  ISLocalToGlobalMappingCreate(MPI_Comm comm,PetscInt bs,PetscInt n,const PetscInt indices[],PetscCopyMode mode,ISLocalToGlobalMapping *mapping)
Not Collective, but communicator may have more than one process

Input Parameters

comm - MPI communicator
bs - the block size
n - the number of local elements divided by the block size, or equivalently the number of block indices
indices - the global index for each local element, these do not need to be in increasing order (sorted), these values should not be scaled (i.e. multiplied) by the blocksize bs
mode - see PetscCopyMode

Output Parameter

mapping -new mapping data structure

Notes: There is one integer value in indices per block and it represents the actual indices bs*idx + j, where j=0,..,bs-1

For "small" problems when using ISGlobalToMappingApply() and ISGlobalToMappingApplyBlock(), the ISLocalToGlobalMappingType of ISLOCALTOGLOBALMAPPINGBASIC will be used; this uses more memory but is faster; this approach is not scalable for extremely large mappings. For large problems ISLOCALTOGLOBALMAPPINGHASH is used, this is scalable. Use ISLocalToGlobalMappingSetType() or call ISLocalToGlobalMappingSetFromOptions() with the option -islocaltoglobalmapping_type <basic,hash> to control which is used.

See Also

ISLocalToGlobalMappingDestroy(), ISLocalToGlobalMappingCreateIS(), ISLocalToGlobalMappingSetFromOptions(), ISLOCALTOGLOBALMAPPINGBASIC, ISLOCALTOGLOBALMAPPINGHASH
ISLocalToGlobalMappingSetType(), ISLocalToGlobalMappingType

Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages