Changeset 1642 for XIOS/dev/branch_openmp/src/distribution_server.cpp
- Timestamp:
- 01/23/19 10:31:44 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/src/distribution_server.cpp
r1460 r1642 12 12 namespace xios { 13 13 14 CDistributionServer::CDistributionServer(int rank, const std::vector<int>& n ZoomBegin,15 const std::vector<int>& n ZoomSize,16 const std::vector<int>& n ZoomBeginGlobal,14 CDistributionServer::CDistributionServer(int rank, const std::vector<int>& nBegin, 15 const std::vector<int>& nSize, 16 const std::vector<int>& nBeginGlobal, 17 17 const std::vector<int>& nGlobal) 18 : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), n ZoomBeginGlobal_(nZoomBeginGlobal),19 n ZoomSize_(nZoomSize), nZoomBegin_(nZoomBegin), globalLocalIndexMap_()18 : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), nBeginGlobal_(nBeginGlobal), 19 nSize_(nSize), nBegin_(nBegin), globalLocalIndexMap_() 20 20 { 21 21 createGlobalIndex(); 22 22 } 23 23 24 CDistributionServer::CDistributionServer(int rank, 24 CDistributionServer::CDistributionServer(int rank, 25 25 const std::vector<CArray<int,1> >& globalIndexElements, 26 26 const CArray<int,1>& elementOrder, 27 const std::vector<int>& n ZoomBegin,28 const std::vector<int>& n ZoomSize,29 const std::vector<int>& n ZoomBeginGlobal,27 const std::vector<int>& nBegin, 28 const std::vector<int>& nSize, 29 const std::vector<int>& nBeginGlobal, 30 30 const std::vector<int>& nGlobal) 31 : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), n ZoomBeginGlobal_(nZoomBeginGlobal),32 n ZoomSize_(nZoomSize), nZoomBegin_(nZoomBegin), globalLocalIndexMap_()31 : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), nBeginGlobal_(nBeginGlobal), 32 nSize_(nSize), nBegin_(nBegin), globalLocalIndexMap_() 33 33 { 34 34 createGlobalIndex(globalIndexElements, elementOrder); … … 48 48 { 49 49 size_t idx = 0, ssize = 1; 50 for (int i = 0; i < n ZoomSize_.size(); ++i) ssize *= nZoomSize_[i];50 for (int i = 0; i < nSize_.size(); ++i) ssize *= nSize_[i]; 51 51 52 52 this->globalIndex_.resize(ssize); 53 53 std::vector<int> idxLoop(this->getDims(),0); 54 54 std::vector<int> currentIndex(this->getDims()); 55 int innerLoopSize = n ZoomSize_[0];55 int innerLoopSize = nSize_[0]; 56 56 57 57 globalLocalIndexMap_.rehash(std::ceil(ssize/globalLocalIndexMap_.max_load_factor())); … … 60 60 for (int i = 0; i < this->dims_-1; ++i) 61 61 { 62 if (idxLoop[i] == n ZoomSize_[i])62 if (idxLoop[i] == nSize_[i]) 63 63 { 64 64 idxLoop[i] = 0; … … 67 67 } 68 68 69 for (int i = 1; i < this->dims_; ++i) currentIndex[i] = idxLoop[i] + n ZoomBegin_[i];69 for (int i = 1; i < this->dims_; ++i) currentIndex[i] = idxLoop[i] + nBegin_[i]; 70 70 71 71 size_t mulDim, globalIndex; … … 73 73 { 74 74 mulDim = 1; 75 globalIndex = i + n ZoomBegin_[0];75 globalIndex = i + nBegin_[0]; 76 76 77 77 for (int k = 1; k < this->dims_; ++k) … … 215 215 } 216 216 217 const std::vector<int>& CDistributionServer::getZoomBeginGlobal() const218 {219 return nZoomBeginGlobal_;220 }221 222 const std::vector<int>& CDistributionServer::getZoomBeginServer() const223 {224 return nZoomBegin_;225 }226 227 const std::vector<int>& CDistributionServer::getZoomSizeServer() const228 {229 return nZoomSize_;230 }231 232 217 void CDistributionServer::partialClear(void) 233 218 {
Note: See TracChangeset
for help on using the changeset viewer.