9.2 Ghost List Exchange

It is possible to exchange sparse lists of ghost elements between FEM chunks.



void FEM_Exchange_ghost_lists(int elemType,int nIdx,const int *localIdx);
SUBROUTINE FEM_Exchange_ghost_lists(elemType,nIdx,localIdx)
INTEGER, INTENT(IN) :: elemType,nIdx
INTEGER, INTENT(IN) :: localIdx[nIdx]

This routine sends the local element indices in localIdx to those neighboring chunks that connect to its ghost elements on the other side. That is, if the element localIdx[i] has a ghost on some chunk c, localIdx[i] will be sent to and show up in the ghost list of chunk c.



int FEM_Get_ghost_list_length(void);
Returns the number of entries in my ghost list--the number of my ghosts that other chunks passed to their call to FEM_Exchange_ghost_lists.



void FEM_Get_ghost_list(int *retLocalIdx);
SUBROUTINE FEM_Get_ghost_list(retLocalIdx)
INTEGER, INTENT(OUT) :: retLocalIdx[FEM_Get_ghost_list_length()]

These routines access the list of local elements sent by other chunks. The returned indices will all refer to ghost elements in my chunk.



January 17, 2008
FEM Homepage
Charm Homepage