Ignore:
Timestamp:
07/16/20 17:18:01 (4 years ago)
Author:
ymipsl
Message:

Big update on on going work related to data distribution and transfer between clients and servers.

  • move all related file into distribution directorie
  • implement the concept of data "View"
  • implement the concept of "connector" which make the data transfer between 2 differents "Views"

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/grid.cpp

    r1881 r1918  
    372372   CATCH 
    373373 
     374    
     375   CArray<bool,1>& CGrid::getMask(void) 
     376   { 
     377       
     378      if (mask_.isEmpty()) 
     379      {   
     380        if (!mask_0d.isEmpty()) mask_.reference(CArray<bool,1>(mask_0d.dataFirst(),shape(mask_0d.numElements()), neverDeleteData)) ; 
     381        if (!mask_1d.isEmpty()) mask_.reference(CArray<bool,1>(mask_1d.dataFirst(),shape(mask_1d.numElements()), neverDeleteData)) ; 
     382        if (!mask_2d.isEmpty()) mask_.reference(CArray<bool,1>(mask_2d.dataFirst(),shape(mask_2d.numElements()), neverDeleteData)) ; 
     383        if (!mask_3d.isEmpty()) mask_.reference(CArray<bool,1>(mask_3d.dataFirst(),shape(mask_3d.numElements()), neverDeleteData)) ; 
     384        if (!mask_4d.isEmpty()) mask_.reference(CArray<bool,1>(mask_4d.dataFirst(),shape(mask_4d.numElements()), neverDeleteData)) ; 
     385        if (!mask_5d.isEmpty()) mask_.reference(CArray<bool,1>(mask_5d.dataFirst(),shape(mask_5d.numElements()), neverDeleteData)) ; 
     386        if (!mask_6d.isEmpty()) mask_.reference(CArray<bool,1>(mask_6d.dataFirst(),shape(mask_6d.numElements()), neverDeleteData)) ; 
     387        if (!mask_7d.isEmpty()) mask_.reference(CArray<bool,1>(mask_7d.dataFirst(),shape(mask_7d.numElements()), neverDeleteData)) ; 
     388      } 
     389      return mask_ ; 
     390   } 
    374391   /* 
    375392     Create mask of grid from mask of its components 
     
    30443061  CATCH_DUMP_ATTR 
    30453062 
     3063 
     3064  void CGrid::computeGridLocalElements() 
     3065  { 
     3066    std::vector<CDomain*> domainList = this->getDomains(); 
     3067    std::vector<CAxis*> axisList = this->getAxis(); 
     3068    auto domain=domainList.begin() ; 
     3069    auto axis=axisList.begin() ; 
     3070    vector<CLocalElement*> elements; 
     3071    for(auto order : order_) 
     3072    { 
     3073      if (order==2)  
     3074      { 
     3075        elements.push_back((*domain)->getLocalElement()); 
     3076        domain++ ; 
     3077      } 
     3078      else if (order==1) 
     3079      { 
     3080        elements.push_back((*axis)->getLocalElement()); 
     3081        axis++ ; 
     3082      } 
     3083      else if (order==0) 
     3084      {  
     3085      } 
     3086    } 
     3087    if (hasMask())  
     3088    { 
     3089      vector<bool> mask(getMask().getVector()) ; 
     3090      gridLocalElements_ = new CGridLocalElements(elements, mask) ;   
     3091    } 
     3092    else gridLocalElements_ = new CGridLocalElements(elements) ;   
     3093  } 
     3094 
     3095  void CGrid::computeModelToWorkflowConnector(void) 
     3096  { 
     3097    modelToWorkflowConnector_ = getGridLocalElements()->getConnector(CElementView::MODEL,CElementView::WORKFLOW) ; 
     3098  } 
    30463099} // namespace xios 
Note: See TracChangeset for help on using the changeset viewer.