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 listn - 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 callISGlobalToLocalMappingApply()
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#
Examples#
src/vec/is/is/tutorials/ex4.c
src/vec/is/is/tutorials/ex5.c
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages