ISLocalToGlobalMappingCreate#
Creates a mapping between a local (0 to n) ordering and a global parallel ordering.
Synopsis#
#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 ISGlobalToLocalMappingApply()
and ISGlobalToLocalMappingApplyBlock()
, 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#
Low-level Vector Communication, ISLocalToGlobalMapping
, ISLocalToGlobalMappingDestroy()
, ISLocalToGlobalMappingCreateIS()
, ISLocalToGlobalMappingSetFromOptions()
,
ISLOCALTOGLOBALMAPPINGBASIC
, ISLOCALTOGLOBALMAPPINGHASH
ISLocalToGlobalMappingSetType()
, ISLocalToGlobalMappingType
Level#
advanced
Location#
Examples#
src/ksp/ksp/tutorials/ex59.c
src/mat/tutorials/ex3.c
src/vec/is/is/tutorials/ex4.c
src/vec/is/is/tutorials/ex5.c
src/vec/vec/tutorials/ex8.c
src/vec/vec/tutorials/ex8f.F90
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages