[MOAB-dev] moab, tpetra::map

Grindeanu, Iulian R. iulian at mcs.anl.gov
Mon Nov 2 07:37:32 CST 2015


________________________________
From: moab-dev-bounces at mcs.anl.gov [moab-dev-bounces at mcs.anl.gov] on behalf of Nico Schlömer [nico.schloemer at gmail.com]
Sent: Monday, November 02, 2015 4:30 AM
To: moab-dev at mcs.anl.gov
Subject: [MOAB-dev] moab, tpetra::map

I would liket to create a Tpetra::Map [1] from a MOAB parallel partition. To this end, I need to following:

 * The notion of global ID of a node. I trust EntityHandle is what I'm looking for? EntityID appears to be the index a lot of times, aka, a local ID.

No, the EntityHandle refers only to a local partition
In general, we keep a Global ID of a node in a tag called exactly like that
"GLOBAL_ID"

When you just load a file, in different partitions, EntityHandle for vertices starts at 1 on each partition
So they "overlap", it can't be used as global id;

to get the global id, you need to do something like this, on each partition
Range verts;
rval = mb->get_entities_by_dimensions(0,0, verts);
std::vector<int> globalids;
globalids.resize(verts.size());
Tag gid;
rval = mb->tag_get_handle("GLOBAL_ID", gid);

rval = mb->tag_get_data(gid, verts, &gid[0]);


 * Translate a Range into a std::vector. Seems easy given Range's operator[].
 * Get owned nodes. Get owned plus shared nodes.
    I'm still not quite familiar on how to best pick out entity sets from a pcomm. I see there's `get_pstatus_entities()`, but I don't see a PSTATUS_OWNED.

Cheers,
Nico

[1] https://trilinos.org/docs/dev/packages/tpetra/doc/html/classTpetra_1_1Map.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20151102/80660754/attachment.html>


More information about the moab-dev mailing list