From 97db14e1a857a7b5b28bddeb12c5fbe9696c5c45 Mon Sep 17 00:00:00 2001
From: David Andrs <david.andrs@inl.gov>
Date: Mon, 22 Aug 2011 12:34:38 -0600
Subject: [PATCH 1/2] Fixing Parallel:broadcast of std::set

---
 include/parallel/parallel.h |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/include/parallel/parallel.h b/include/parallel/parallel.h
index 7925102..6e459c2 100644
--- a/include/parallel/parallel.h
+++ b/include/parallel/parallel.h
@@ -3070,7 +3070,8 @@ namespace Parallel
 
     Parallel::broadcast(vecdata, root_id, comm);
     if (comm.rank() != root_id)
-      data.assign(vecdata.begin(), vecdata.end());
+      for (typename std::vector<T>::iterator it = vecdata.begin(); it != vecdata.end(); ++it)
+        data.insert(*it);
 
     STOP_LOG("broadcast()", "Parallel");
   }
@@ -3278,6 +3279,9 @@ namespace Parallel
   template <typename T>
     inline void broadcast (std::vector<T> &, const unsigned int, const Communicator&) {}
 
+  template <typename T>
+    inline void broadcast(std::set<T> &, const unsigned int, const Communicator &) {}
+
 #endif // LIBMESH_HAVE_MPI
 
 
-- 
1.7.5.4

