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