45 int niGlob = domainSrc_->ni_glo.getValue();
46 int njGlob = domainSrc_->nj_glo.getValue();
48 int nIndexSize = domainSrc_->i_index.numElements(), i_ind, j_ind;
50 globalIndex2ProcRank.rehash(std::ceil(nIndexSize/globalIndex2ProcRank.max_load_factor()));
52 for (
int idx = 0; idx < nIndexSize; ++idx)
56 i_ind=domainSrc_->i_index(idx) ;
57 j_ind=domainSrc_->j_index(idx) ;
59 globalIndex = i_ind + j_ind * niGlob;
60 globalIndex2ProcRank[globalIndex].push_back(clientRank);
MPI_Comm intraComm
Communicator of client group.
int clientSize
Size of client group.
virtual void computeExchangeGlobalIndex(const CArray< size_t, 1 > &globalDomainIndex, int elementType, CClientClientDHTInt::Index2VectorInfoTypeMap &globalDomainIndexOnProc)
Compute global index of domain on different processes.
This class provides the similar features like.
A context can be both on client and on server side.
int clientRank
Rank of current client.
virtual ~CDomainAlgorithmTransformation()
std::unordered_map< size_t, std::vector< InfoType > > Index2VectorInfoTypeMap
CDomainAlgorithmTransformation(CDomain *domainDestination, CDomain *domainSource)
void computeIndexSourceMapping_(const std::vector< CArray< double, 1 > * > &)
Interface for all domain transformation algorithms.
const Index2VectorInfoTypeMap & getInfoIndexMap() const
void computeIndexInfoMapping(const CArray< size_t, 1 > &indices)
Compute mapping between indices and information corresponding to these indices.
static CContext * getCurrent(void)
Get current context.
CContextClient * client
Concrete contex client.