Ignore:
Timestamp:
06/28/18 17:53:42 (6 years ago)
Author:
oabramkina
Message:

The zoom is dead, long live the zoom.

Replacing domain_zoom transformation by copying it from domain_extract. From now on, only the zoomed part of a domain is sent to servers. On the user's side all definitions stay the same.

To do soon: axis_zoom.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/distribution_server.cpp

    r1340 r1553  
    1212namespace xios { 
    1313 
    14 CDistributionServer::CDistributionServer(int rank, const std::vector<int>& nZoomBegin, 
    15                                          const std::vector<int>& nZoomSize, 
    16                                          const std::vector<int>& nZoomBeginGlobal, 
     14CDistributionServer::CDistributionServer(int rank, const std::vector<int>& nBegin, 
     15                                         const std::vector<int>& nSize, 
     16                                         const std::vector<int>& nBeginGlobal, 
    1717                                         const std::vector<int>& nGlobal) 
    18   : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), nZoomBeginGlobal_(nZoomBeginGlobal), 
    19     nZoomSize_(nZoomSize), nZoomBegin_(nZoomBegin), globalLocalIndexMap_() 
     18  : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), nBeginGlobal_(nBeginGlobal), 
     19    nSize_(nSize), nBegin_(nBegin), globalLocalIndexMap_() 
    2020{ 
    2121  createGlobalIndex(); 
    2222} 
    2323 
    24 CDistributionServer::CDistributionServer(int rank,  
     24CDistributionServer::CDistributionServer(int rank, 
    2525                                        const std::vector<CArray<int,1> >& globalIndexElements, 
    2626                                        const CArray<int,1>& elementOrder, 
    27                                         const std::vector<int>& nZoomBegin, 
    28                                         const std::vector<int>& nZoomSize, 
    29                                         const std::vector<int>& nZoomBeginGlobal, 
     27                                        const std::vector<int>& nBegin, 
     28                                        const std::vector<int>& nSize, 
     29                                        const std::vector<int>& nBeginGlobal, 
    3030                                        const std::vector<int>& nGlobal) 
    31   : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), nZoomBeginGlobal_(nZoomBeginGlobal), 
    32     nZoomSize_(nZoomSize), nZoomBegin_(nZoomBegin), globalLocalIndexMap_() 
     31  : CDistribution(rank, nGlobal.size()), nGlobal_(nGlobal), nBeginGlobal_(nBeginGlobal), 
     32    nSize_(nSize), nBegin_(nBegin), globalLocalIndexMap_() 
    3333{ 
    3434  createGlobalIndex(globalIndexElements, elementOrder); 
     
    4848{ 
    4949  size_t idx = 0, ssize = 1; 
    50   for (int i = 0; i < nZoomSize_.size(); ++i) ssize *= nZoomSize_[i]; 
     50  for (int i = 0; i < nSize_.size(); ++i) ssize *= nSize_[i]; 
    5151 
    5252  this->globalIndex_.resize(ssize); 
    5353  std::vector<int> idxLoop(this->getDims(),0); 
    5454  std::vector<int> currentIndex(this->getDims()); 
    55   int innerLoopSize = nZoomSize_[0]; 
     55  int innerLoopSize = nSize_[0]; 
    5656 
    5757  globalLocalIndexMap_.rehash(std::ceil(ssize/globalLocalIndexMap_.max_load_factor())); 
     
    6060    for (int i = 0; i < this->dims_-1; ++i) 
    6161    { 
    62       if (idxLoop[i] == nZoomSize_[i]) 
     62      if (idxLoop[i] == nSize_[i]) 
    6363      { 
    6464        idxLoop[i] = 0; 
     
    6767    } 
    6868 
    69     for (int i = 1; i < this->dims_; ++i)  currentIndex[i] = idxLoop[i] + nZoomBegin_[i]; 
     69    for (int i = 1; i < this->dims_; ++i)  currentIndex[i] = idxLoop[i] + nBegin_[i]; 
    7070 
    7171    size_t mulDim, globalIndex; 
     
    7373    { 
    7474      mulDim = 1; 
    75       globalIndex = i + nZoomBegin_[0]; 
     75      globalIndex = i + nBegin_[0]; 
    7676 
    7777      for (int k = 1; k < this->dims_; ++k) 
     
    215215} 
    216216 
    217 const std::vector<int>& CDistributionServer::getZoomBeginGlobal() const 
    218 { 
    219   return nZoomBeginGlobal_; 
    220 } 
    221  
    222 const std::vector<int>& CDistributionServer::getZoomBeginServer() const 
    223 { 
    224   return nZoomBegin_; 
    225 } 
    226  
    227 const std::vector<int>& CDistributionServer::getZoomSizeServer() const 
    228 { 
    229   return nZoomSize_; 
    230 } 
    231  
    232217void CDistributionServer::partialClear(void) 
    233218{ 
Note: See TracChangeset for help on using the changeset viewer.