ug4
ug::ComPol_NewConstrainedVerticals< TLayout > Class Template Reference
+ Inheritance diagram for ug::ComPol_NewConstrainedVerticals< TLayout >:

Classes

struct  Entry
 

Public Types

typedef Layout::Element Element
 
typedef Layout::Type GeomObj
 
typedef Layout::Interface Interface
 
typedef Interface::const_iterator InterfaceIter
 
typedef TLayout Layout
 
- Public Types inherited from pcl::ICommunicationPolicy< TLayout >
typedef Layout::Interface Interface
 
typedef TLayout Layout
 

Public Member Functions

virtual bool collect (ug::BinaryBuffer &buff, const Interface &interface)
 should write data which is associated with the interface elements to the buffer. More...
 
 ComPol_NewConstrainedVerticals (DistributedGridManager *dgm, std::vector< GeomObj * > &newConstrained)
 
void create_initial_hash_entry (GeomObj *e)
 
void exchange_data ()
 
virtual bool extract (ug::BinaryBuffer &buff, const Interface &interface)
 extract data from the buffer and assigns it to the interface-elements. More...
 
std::pair< int, int > get_h_master_info (GeomObj *o)
 
virtual int get_required_buffer_size (const Interface &interface)
 returns the size of the buffer in bytes, that will be required for interface-communication. More...
 
std::vector< int > & other_v_masters (GeomObj *o)
 
virtual ~ComPol_NewConstrainedVerticals ()
 
- Public Member Functions inherited from pcl::ICommunicationPolicy< TLayout >
virtual bool begin_layout_collection (const Layout *pLayout)
 signals the beginning of a layout collection. More...
 
virtual bool begin_layout_extraction (const Layout *pLayout)
 signals the beginning of a layout extraction. More...
 
virtual void begin_level_extraction (int level)
 signals that a new layout-level will now be processed. More...
 
virtual bool end_layout_collection (const Layout *pLayout)
 signals the end of a layout collection More...
 
virtual bool end_layout_extraction (const Layout *pLayout)
 signals the end of a layout extraction More...
 
virtual ~ICommunicationPolicy ()
 

Private Attributes

DistributedGridManagerm_dgm
 
bool m_exchangeVMasterRanks
 
Hash< GeomObj *, Entrym_hash
 
bool m_initialHandshake
 
int m_localHMasterCount
 
std::vector< GeomObj * > & m_newConstrained
 

Member Typedef Documentation

◆ Element

template<class TLayout >
typedef Layout::Element ug::ComPol_NewConstrainedVerticals< TLayout >::Element

◆ GeomObj

template<class TLayout >
typedef Layout::Type ug::ComPol_NewConstrainedVerticals< TLayout >::GeomObj

◆ Interface

template<class TLayout >
typedef Layout::Interface ug::ComPol_NewConstrainedVerticals< TLayout >::Interface

◆ InterfaceIter

template<class TLayout >
typedef Interface::const_iterator ug::ComPol_NewConstrainedVerticals< TLayout >::InterfaceIter

◆ Layout

template<class TLayout >
typedef TLayout ug::ComPol_NewConstrainedVerticals< TLayout >::Layout

Constructor & Destructor Documentation

◆ ComPol_NewConstrainedVerticals()

template<class TLayout >
ug::ComPol_NewConstrainedVerticals< TLayout >::ComPol_NewConstrainedVerticals ( DistributedGridManager dgm,
std::vector< GeomObj * > &  newConstrained 
)
inline

Note that a reference to newConstrained is passed to the constructor and that its content may be changed by some methods in this class.

References ug::ComPol_NewConstrainedVerticals< TLayout >::create_initial_hash_entry(), and ug::ComPol_NewConstrainedVerticals< TLayout >::m_hash.

◆ ~ComPol_NewConstrainedVerticals()

template<class TLayout >
virtual ug::ComPol_NewConstrainedVerticals< TLayout >::~ComPol_NewConstrainedVerticals ( )
inlinevirtual

Member Function Documentation

◆ collect()

◆ create_initial_hash_entry()

◆ exchange_data()

◆ extract()

◆ get_h_master_info()

template<class TLayout >
std::pair<int, int> ug::ComPol_NewConstrainedVerticals< TLayout >::get_h_master_info ( GeomObj o)
inline

returns a std::pair<int, int> where 'first' represents the h-master rank and where 'second' defines the order in which entries have to be added to the h-interface.

References ug::ComPol_NewConstrainedVerticals< TLayout >::m_hash.

Referenced by ug::DistributedGridManager::create_missing_constrained_h_interfaces().

◆ get_required_buffer_size()

template<class TLayout >
virtual int ug::ComPol_NewConstrainedVerticals< TLayout >::get_required_buffer_size ( const Interface interface)
inlinevirtual

returns the size of the buffer in bytes, that will be required for interface-communication.

Determines the size of the buffer on which the extract and receive methods for the given interface will operate. If the buffer-size can't be calculated on both sides (sender and receiver) this method should return -1. This will lead to an additional communication step in which buffer-sizes will be exchanged. If the buffer-size can be calculated on both sides, it makes sense to do so, since this leads to less communication and overall improved performance. The buffer-size has to exactly match the size of required memory. Make sure that you completely fill the buffer during collect(...) and that you read all data during extract(...). The default implementation returns -1.

Reimplemented from pcl::ICommunicationPolicy< TLayout >.

◆ other_v_masters()

template<class TLayout >
std::vector<int>& ug::ComPol_NewConstrainedVerticals< TLayout >::other_v_masters ( GeomObj o)
inline

returns the array of other v-master procs which build an interface to the local proc, if the local proc will be the new h-master proc and if it is also a v-master proc.

References ug::ComPol_NewConstrainedVerticals< TLayout >::m_hash.

Referenced by ug::DistributedGridManager::create_missing_constrained_h_interfaces().

Member Data Documentation

◆ m_dgm

◆ m_exchangeVMasterRanks

◆ m_hash

◆ m_initialHandshake

◆ m_localHMasterCount

◆ m_newConstrained


The documentation for this class was generated from the following file: