#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
|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|
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.