Skip to main content
`Ctrl`+`K`

# 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` - maps global indices with no local value to -1 in the output list (i.e., mask them) `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 Notes

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

Low-level Vector Communication, `ISLocalToGlobalMapping`, `ISLocalToGlobalMappingApply()`, `ISGlobalToLocalMappingApplyBlock()`, `ISLocalToGlobalMappingCreate()`, `ISLocalToGlobalMappingDestroy()`

## Level

advanced

## Location

src/vec/is/utils/isltog.c

## Examples

src/vec/is/is/tutorials/ex5.c
src/vec/is/is/tutorials/ex4.c

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