petsc-3.14.6 2021-03-30
Report Typos and Errors

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

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

Level

advanced

Location

src/vec/is/utils/isltog.c

Examples

src/vec/vec/tutorials/ex8.c.html
src/vec/is/is/tutorials/ex4.c.html
src/vec/is/is/tutorials/ex5.c.html
src/ksp/ksp/tutorials/ex59.c.html

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