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