|
Sierra Toolkit Version of the Day
|
00001 /*------------------------------------------------------------------------*/ 00002 /* Copyright 2010 Sandia Corporation. */ 00003 /* Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive */ 00004 /* license for use of this work by or on behalf of the U.S. Government. */ 00005 /* Export of this program may require a license from the */ 00006 /* United States Government. */ 00007 /*------------------------------------------------------------------------*/ 00008 00009 00010 #ifndef stk_mesh_Ghosting_hpp 00011 #define stk_mesh_Ghosting_hpp 00012 00013 #include <vector> 00014 #include <string> 00015 #include <iosfwd> 00016 #include <stk_mesh/base/Types.hpp> 00017 00018 namespace stk { 00019 namespace mesh { 00020 00028 class Ghosting { 00029 public: 00030 BulkData & mesh() const { return m_mesh ; } 00031 00033 const std::string & name() const { return m_name ; } 00034 00036 unsigned ordinal() const { return m_ordinal ; } 00037 00041 size_t synchronized_count() const { return m_sync_count ; } 00042 00048 void send_list( std::vector< EntityProc > & ) const ; 00049 00055 void receive_list( std::vector< Entity * > & ) const ; 00056 00059 std::ostream& operator<<(std::ostream& out) const; 00060 00061 private: 00065 friend class BulkData ; 00066 00067 BulkData & m_mesh ; 00068 const std::string m_name ; 00069 size_t m_sync_count ; 00070 unsigned m_ordinal ; 00071 00072 Ghosting( BulkData & M , const std::string & n , unsigned ord , size_t count ) 00073 : m_mesh( M ) , m_name( n ), m_sync_count( count ), m_ordinal( ord ) {} 00074 00075 ~Ghosting() {} 00076 00077 // None of the following are implemented: 00078 Ghosting(); 00079 Ghosting( const Ghosting & ); 00080 Ghosting & operator = ( const Ghosting & ); 00081 }; 00082 00083 std::ostream& operator<<(std::ostream& out, const Ghosting& rhs); 00084 00085 } 00086 } 00087 00088 #endif 00089