petsc-3.10.5 2019-03-28
Report Typos and Errors

# ISGlobalToLocalMappingApply

Provides the local numbering for a list of integers specified with a global numbering.

### Synopsis

    #include "petscis.h"
    PetscErrorCode  ISGlobalToLocalMappingApply(ISLocalToGlobalMapping mapping,ISGlobalToLocalMappingMode type,PetscInt n,const PetscInt idx[],PetscInt *nout,PetscInt idxout[])

Not collective

### Input Parameters

| mapping | - mapping between local and global numbering
| type | - IS_GTOLM_MASK - replaces global indices with no local value with -1 IS_GTOLM_DROP - drops the indices with no local value from the output list
| n | - number of global indices to map
| idx | - global indices to map

### Output Parameters

| nout | - number of indices in output array (if type == IS_GTOLM_MASK then nout = n)
| idxout | - local index of each global index, one must pass in an array long enough to hold all the indices. You can call ISGlobalToLocalMappingApply() with idxout == NULL to determine the required length (returned in nout) and then allocate the required space and call ISGlobalToLocalMappingApply() a second time to set the values.

### Notes

Either nout or idxout may be NULL. idx and idxout may be identical.

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.

Developer Note: The manual page states that idx and idxout may be identical but the calling sequence declares idx as const so it cannot be the same as idxout.

### See Also

ISLocalToGlobalMappingApply(), ISGlobalToLocalMappingApplyBlock(), ISLocalToGlobalMappingCreate(),
ISLocalToGlobalMappingDestroy()

### Level

advanced

### Location

src/vec/is/utils/isltog.c

### Examples

src/vec/is/is/examples/tutorials/ex4.c.html
src/vec/is/is/examples/tutorials/ex5.c.html
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages