#include "gatherer_connector.hpp" namespace xios { void CGathererConnector::computeConnector(void) { dstSize_=dstView_->getSize() ; auto& srcGlobalIndex = srcView_->getGlobalIndex() ; auto& srcIndex = srcView_->getIndex() ; for(auto& rankIndex : srcIndex) srcSize_[rankIndex.first] = rankIndex.second.numElements(); auto& dstGlobalIndex = dstView_->getGlobalIndex() ; auto& dstIndex = dstView_->getIndex() ; dstSize_=dstIndex.numElements() ; unordered_map mapGlobalLocalIndex ; int globalIndexSize=dstGlobalIndex.size() ; for(auto& ind : dstIndex) mapGlobalLocalIndex[dstGlobalIndex(ind)] = ind ; for(auto& rankIndex : srcIndex) { int rank=rankIndex.first ; auto& index=rankIndex.second ; int indexSize = index.numElements() ; auto& globalIndex = srcGlobalIndex[rank] ; int globalIndexSize=globalIndex.numElements() ; auto& connector = connector_[rank] ; auto& mask = mask_[rank] ; for(int ind=0; ind=0 && indsecond) ; mask.push_back(true) ; } else mask.push_back(false) ; } else mask.push_back(false) ; } } } }