Sierra Toolkit Version of the Day
Ghosting.hpp
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends