|
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_classic { 00019 namespace mesh { 00020 00028 class Ghosting { 00029 public: 00030 00032 const std::string & name() const { return m_name ; } 00033 00035 unsigned ordinal() const { return m_ordinal ; } 00036 00040 size_t synchronized_count() const { return m_sync_count ; } 00041 00047 void send_list( std::vector< EntityProc > & ) const ; 00048 00054 void receive_list( std::vector< Entity * > & ) const ; 00055 00058 std::ostream& operator<<(std::ostream& out) const; 00059 00060 private: 00065 BulkData & bulk_data() const { return m_mesh ; } 00066 friend class BulkData ; 00067 00068 BulkData & m_mesh ; 00069 const std::string m_name ; 00070 size_t m_sync_count ; 00071 unsigned m_ordinal ; 00072 00073 Ghosting( BulkData & M , const std::string & n , unsigned ord , size_t count ) 00074 : m_mesh( M ) , m_name( n ), m_sync_count( count ), m_ordinal( ord ) {} 00075 00076 ~Ghosting() {} 00077 00078 // None of the following are implemented: 00079 Ghosting(); 00080 Ghosting( const Ghosting & ); 00081 Ghosting & operator = ( const Ghosting & ); 00082 }; 00083 00084 std::ostream& operator<<(std::ostream& out, const Ghosting& rhs); 00085 00086 } 00087 } 00088 00089 #endif 00090