On Mon, Aug 18, 2014 at 8:33 AM, Derek Gaston <[email protected]> wrote:
> You're right - it doesn't... I misread my old code... I missed my own
> packing/unpacking of the coordinates from/to Points (read them out into a
> flat array, broadcast(), recreate Points).
>
> So - never mind. I guess I'll do the same thing again for now.
>
> How tough would it be to make this work with Point?
Looks like it involves template magic and defining custom MPI types?
> Or should I be using allgather_packed_range() for this instead (would that
> work as is?).
That looks pretty close to what you want, actually... It looks like
it takes a generic "context" and uses an std::inserter object for
unpacking.
Here's an example from mesh_communication.C on Node*s...
mesh.comm().allgather_packed_range (&mesh,
mesh.nodes_begin(),
mesh.nodes_end(),
mesh_inserter_iterator<Node>(mesh)) :
--
John
------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel