[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