On Mon, Aug 18, 2014 at 8:33 AM, Derek Gaston <fried...@gmail.com> 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
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to