Changeset 2180 for XIOS/dev/dev_ym
- Timestamp:
- 07/12/21 20:04:46 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/distributed_view.hpp
r1936 r2180 48 48 } 49 49 50 void getGlobalIndex(int rank, vector<size_t>& globalIndex, size_t sliceIndex, size_t* sliceSize, CDistributedView** view, int pos) 50 void getGlobalIndex(int rank, vector<size_t>& globalIndex, size_t sliceIndex, size_t* sliceSize, CDistributedView** view, int pos) 51 { 52 // using map can be expensive, find an otherway later 53 auto& globalInd=globalIndex_[rank] ; 54 int localSize=globalInd.numElements() ; 55 auto& index=index_[rank] ; 56 int size=index.numElements() ; 57 58 if (pos==0) 51 59 { 52 // using map can be expensive, find an otherway later 53 auto& globalInd=globalIndex_[rank] ; 54 int localSize=globalInd.numElements() ; 55 auto& index=index_[rank] ; 56 int size=index.numElements() ; 57 58 if (pos==0) 59 { 60 for(int i=0;i<size;i++) 61 if (index(i)>=0 && index(i)<localSize) globalIndex.push_back(sliceIndex + globalInd(index(i))) ; 62 } 63 else 64 { 65 for(int i=0;i<size;i++) 66 if (index(i)>=0 && index(i)<localSize) 67 view[pos-1]->getGlobalIndex(rank, globalIndex, sliceIndex + globalInd(index(i))*sliceSize[pos], sliceSize, view , pos-1) ; 68 } 60 for(int i=0;i<size;i++) 61 if (index(i)>=0 && index(i)<localSize) globalIndex.push_back(sliceIndex + globalInd(index(i))) ; 69 62 } 63 else 64 { 65 for(int i=0;i<size;i++) 66 if (index(i)>=0 && index(i)<localSize) 67 view[pos-1]->getGlobalIndex(rank, globalIndex, sliceIndex + globalInd(index(i))*sliceSize[pos], sliceSize, view , pos-1) ; 68 } 69 } 70 70 71 71
Note: See TracChangeset
for help on using the changeset viewer.