[Libmesh-devel] allgather(std::vector)

2014-08-18 Thread Derek Gaston
Am I doing something wrong - or do we really not have a specialization of Communciator::allgather() for std::vector ? 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

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread John Peterson
On Mon, Aug 18, 2014 at 7:55 AM, Derek Gaston wrote: > Am I doing something wrong - or do we really not have a specialization of > Communciator::allgather() for std::vector ? > > I know that broadcast is implemented (because I'm using it in another part > of the code). But I'm seeing this when I

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread Derek Gaston
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 P

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread John Peterson
On Mon, Aug 18, 2014 at 8:33 AM, Derek Gaston 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

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread John Peterson
On Mon, Aug 18, 2014 at 8:58 AM, John Peterson wrote: > On Mon, Aug 18, 2014 at 8:33 AM, Derek Gaston 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 P

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread John Peterson
On Mon, Aug 18, 2014 at 10:35 AM, Roy Stogner wrote: > > allgather_packed_range doesn't need to be Mesh specific - that mesh > pointer is a generic "context" pointer, necessary for any cases where > you're also packing data that isn't directly carried with the objects > (in this case boundary info

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread Roy Stogner
On Mon, 18 Aug 2014, John Peterson wrote: > On Mon, Aug 18, 2014 at 8:58 AM, John Peterson wrote: >> On Mon, Aug 18, 2014 at 8:33 AM, Derek Gaston 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

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread Roy Stogner
On Mon, 18 Aug 2014, John Peterson wrote: > Are you sure it works for broadcast? I tried this test code: > > #include "libmesh/libmesh.h" > #include "libmesh/point.h" > #include "libmesh/parallel.h" #include "libmesh/parallel_algebra.h" > using namespace libMesh; > > int main (int argc, char**

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread John Peterson
On Mon, Aug 18, 2014 at 2:37 PM, Roy Stogner wrote: > > On Mon, 18 Aug 2014, John Peterson wrote: > >> Are you sure it works for broadcast? I tried this test code: >> >> #include "libmesh/libmesh.h" >> #include "libmesh/point.h" >> #include "libmesh/parallel.h" > > > #include "libmesh/parallel_al

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread Roy Stogner
On Mon, 18 Aug 2014, John Peterson wrote: >> Point p(init.comm().rank()); >> std::vector input(1, p); >> std::vector output; >> init.comm().allgather_packed_range(???, input.begin(), input.end(), >> std::back_inserter(output)); > > At the least one would probably need to implement Parallel::pac

Re: [Libmesh-devel] allgather(std::vector)

2014-08-18 Thread Roy Stogner
On Mon, 18 Aug 2014, John Peterson wrote: > Can C++11 static_assert or some template magic help to generate a > better error message? > > I.e. instead of: > > error: calling a private constructor of class > 'libMesh::Parallel::StandardType' > > make the compiler print "Did you forget to include p