Page 1 of 1

unique global node identifiers?

PostPosted: 15 Oct 2016, 13:36
by rgladstone
Hi all, I am reading Elmer mesh information at runtime in preparation for regridding operations (this is part of a coupled ice-ocean model). I need to have unique global ids for nodes, so that the same node on two neighbouring partition boundaries can be identified. Currently Elmer runtime node information appears to use local (to the current partition) identifiers, though I see that the mesh files (created with ElmerGrid) contain unique global node identifiers. Is this global node id information accessible somehow at runtime? If not, is there a way to reconstruct it at run time? I guess looping over all nodes on a partition and looking for nodes on other partitions with matching coords might do it, but this seems a bit awkward and inefficient, and would probably have to be done on one process with a lot of gathering, so I hope there is a better way.

Thanks!
Rupert

Re: unique global node identifiers?

PostPosted: 04 Nov 2016, 14:02
by fgillet
Hi,

look at the ParallelInfo_t type; the array GlobalDOFs (e.g. Mesh % ParallelInfo % GlobalDOFs) will give you the global node numbering.
The other structures will give you informations about neighbours etc...
Not sure if it is documented somewhere; better to directly look in source codes to see how it works.

from TYPES.F90
TYPE ParallelInfo_t
INTEGER :: NumberOfIfDOFs
LOGICAL, POINTER :: INTERFACE(:)
INTEGER, POINTER :: GlobalDOFs(:)
TYPE(NeighbourList_t),POINTER :: NeighbourList(:)

LOGICAL, POINTER :: FaceInterface(:)
TYPE(NeighbourList_t),POINTER :: FaceNeighbourList(:)

LOGICAL, POINTER :: EdgeInterface(:)
TYPE(NeighbourList_t),POINTER :: EdgeNeighbourList(:)
END TYPE ParallelInfo_t

cheers

fab

Re: unique global node identifiers?

PostPosted: 04 Nov 2016, 14:04
by rgladstone
That looks useful, thanks Fab. I´ll have a closer look at that code.

Rupert