Ignore:
Timestamp:
09/10/20 13:51:02 (4 years ago)
Author:
ymipsl
Message:

Big update on on going work related to data distribution and transfer between clients and servers.
Revisite of the source and store filter using "connectors".

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/distributed_view.cpp

    r1918 r1930  
    99                                    : globalIndex_(parent->globalIndex_), globalSize_(parent->globalSize_), localSize_(parent->localSize_)  
    1010  { 
    11     for(auto index : indexView)  
     11    for(auto& index : indexView)  
    1212    { 
    1313      index_[index.first].reference(index.second.copy()) ; 
     
    1616  } 
    1717 
    18  
    19 }  
     18  CDistributedView::CDistributedView(CDistributedElement* parent, CElementView::type, const std::map<int,CArray<bool,1>>& maskView)  
     19                                    : globalIndex_(parent->globalIndex_), globalSize_(parent->globalSize_), localSize_(parent->localSize_)  
     20  { 
     21    for(auto& it : maskView)  
     22    { 
     23      int rank = it.first ; 
     24      auto& mask = it.second ; 
     25      int size = mask.numElements() ; 
     26      auto& index = index_[rank] ;  
     27      index.resize(size) ; 
     28      int pos=0 ; 
     29      for(int i=0 ; i < size ; i++) 
     30        if (mask(i)) { index(pos) = i ; pos++ ; } 
     31      index.resizeAndPreserve(pos) ; 
     32      size_[rank] = pos ; 
     33    } 
     34  }  
     35} 
Note: See TracChangeset for help on using the changeset viewer.