Changeset 2131 for XIOS/trunk/src/filter


Ignore:
Timestamp:
04/23/21 15:00:35 (3 years ago)
Author:
oabramkina
Message:

Merging branch dev_oa with tiling into trunk

Location:
XIOS/trunk/src/filter
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/filter/source_filter.cpp

    r1928 r2131  
    1919    , offset(offset) 
    2020    , hasMissingValue(hasMissingValue), defaultValue(defaultValue) 
     21    , ntiles(0) 
     22    , storedTileData() 
    2123  { 
    2224    if (!grid) 
     
    5355  } 
    5456 
     57  template <int N> 
     58  void CSourceFilter::streamTile(CDate date, const CArray<double, N>& tileData, int tileId) 
     59  { 
     60    if (ntiles==0) 
     61    { 
     62      const double nanValue = std::numeric_limits<double>::quiet_NaN(); 
     63//      storedTileData.resize(grid->storeIndex_client.numElements()); 
     64      storedTileData.resize(grid->getDataSize()); 
     65      storedTileData = nanValue; 
     66    } 
     67    grid->copyTile(tileData, storedTileData, tileId); 
     68    ++ntiles; 
     69    if (ntiles==grid->getNTiles()) 
     70    { 
     71      // Data entering workflow will be exactly of size ni*nj for a grid 2d or ni*nj*n for a grid 3d 
     72      streamData(date, storedTileData, true); 
     73      ntiles = 0; 
     74    } 
     75  } 
    5576 
    5677  template <int N> 
    57   void CSourceFilter::streamData(CDate date, const CArray<double, N>& data) 
     78  void CSourceFilter::streamData(CDate date, const CArray<double, N>& data, bool isTiled) 
    5879  { 
    5980    date = date + offset; // this is a temporary solution, it should be part of a proper temporal filter 
     
    7495    { 
    7596      if (mask) 
    76         grid->maskField(data, packet->data); 
     97        if (isTiled) 
     98          grid->maskField(data, packet->data, isTiled); 
     99        else 
     100          grid->maskField(data, packet->data); 
    77101      else 
    78102        grid->inputField(data, packet->data); 
     
    97121  } 
    98122 
    99   template void CSourceFilter::streamData<1>(CDate date, const CArray<double, 1>& data); 
    100   template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data); 
    101   template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data); 
    102   template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data); 
    103   template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data); 
    104   template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data); 
    105   template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data); 
     123  template void CSourceFilter::streamData<1>(CDate date, const CArray<double, 1>& data, bool isTiled); 
     124  template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data, bool isTiled); 
     125  template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data, bool isTiled); 
     126  template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data, bool isTiled); 
     127  template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data, bool isTiled); 
     128  template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data, bool isTiled); 
     129  template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data, bool isTiled); 
     130 
     131  template void CSourceFilter::streamTile<1>(CDate date, const CArray<double, 1>& data, int ntile); 
     132  template void CSourceFilter::streamTile<2>(CDate date, const CArray<double, 2>& data, int ntile); 
     133  template void CSourceFilter::streamTile<3>(CDate date, const CArray<double, 3>& data, int ntile); 
     134  template void CSourceFilter::streamTile<4>(CDate date, const CArray<double, 4>& data, int ntile); 
     135  template void CSourceFilter::streamTile<5>(CDate date, const CArray<double, 5>& data, int ntile); 
     136  template void CSourceFilter::streamTile<6>(CDate date, const CArray<double, 6>& data, int ntile); 
     137  template void CSourceFilter::streamTile<7>(CDate date, const CArray<double, 7>& data, int ntile); 
    106138 
    107139  void CSourceFilter::streamDataFromServer(CDate date, const std::map<int, CArray<double, 1> >& data) 
  • XIOS/trunk/src/filter/source_filter.hpp

    r1704 r2131  
    4646       */ 
    4747      template <int N> 
    48       void streamData(CDate date, const CArray<double, N>& data); 
     48      void streamData(CDate date, const CArray<double, N>& data, bool isTiled = false); 
     49 
     50      template <int N> 
     51      void streamTile(CDate date, const CArray<double, N>& data, int ntile); 
    4952 
    5053      void virtual buildGraph(CDataPacketPtr packet); 
     
    7578      const bool compression ; //!< indicates if data need to be compressed : on client side : true, on server side : false 
    7679      const bool mask ;        //!< indicates whether grid mask should be applied (true for clients, false for servers) 
     80      int ntiles ; 
     81      CArray<double, 1> storedTileData; 
    7782  }; // class CSourceFilter 
    7883} // namespace xios 
Note: See TracChangeset for help on using the changeset viewer.