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 
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends