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?  Or should I be using
allgather_packed_range() for this instead (would that work as is?).

Derek



On Mon, Aug 18, 2014 at 10:29 AM, John Peterson <jwpeter...@gmail.com>
wrote:

> On Mon, Aug 18, 2014 at 7:55 AM, Derek Gaston <fried...@gmail.com> wrote:
> > Am I doing something wrong - or do we really not have a specialization of
> > Communciator::allgather() for std::vector<Point> ?
> >
> > I know that broadcast is implemented (because I'm using it in another
> part
> > of the code).  But I'm seeing this when I try to do allgather():
> >
> > error: calling a private constructor of class
> > 'libMesh::Parallel::StandardType<libMesh::Point>'
> >
> > Any guidance?
>
> Are you sure it works for broadcast?  I tried this test code:
>
> #include "libmesh/libmesh.h"
> #include "libmesh/point.h"
> #include "libmesh/parallel.h"
>
> using namespace libMesh;
>
> int main (int argc, char** argv)
> {
>   LibMeshInit init(argc, argv);
>
>   // Let's try to broadcast a libMesh Point
>   Point p;
>
>   // Initialize p only on processor 0
>   if (init.comm().rank() == 0)
>     p(0) = 42;
>
>   Parallel::broadcast(p);
>
>   return 0;
> }
>
>
> and got a similar error:
>
> parallel_implementation.h:2986:26: error: calling a private
> constructor of class 'libMesh::Parallel::StandardType<libMesh::Point>'
>     MPI_Bcast (&data, 1, StandardType<T>(&data), root_id, this->get());
>                          ^
>
> --
> John
>
------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to