Ignore:
Timestamp:
03/22/18 10:43:20 (6 years ago)
Author:
yushan
Message:

branch_openmp merged with XIOS_DEV_CMIP6@1459

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/src/transformation/generic_algorithm_transformation.hpp

    r1328 r1460  
    5252  virtual ~CGenericAlgorithmTransformation() {} 
    5353 
     54  bool isDistributedTransformation(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst) ; 
     55 
    5456  void computeGlobalSourceIndex(int elementPositionInGrid, 
    5557                               CGrid* gridSrc, 
     
    8587  */ 
    8688  void computeIndexSourceMapping(const std::vector<CArray<double,1>* >& dataAuxInputs = std::vector<CArray<double,1>* >()); 
     89  void computeTransformationMappingNonDistributed(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst, 
     90                                                  vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, vector<bool>& localMaskOnGridDest); 
     91  void nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid,  vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 
     92                                     vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, CArray<bool,1>& localMaskOnGridSrc, vector<bool>& localMaskOnGridDest) ; 
    8793 
    8894protected: 
     
    126132 
    127133protected: 
     134  //! indicate if the transformation is performed on a distributed element 
     135  bool isDistributed_ ; 
     136  //! indicate if the method  isDistributedTransformation has been called before 
     137  bool isDistributedComputed_ ; 
     138   
    128139  //! Map between global index of destination element and source element 
    129140  std::vector<TransformationIndexMap> transformationMapping_; 
     
    138149  AlgoTransType type_; 
    139150 
     151  std::set<StdSize> indexElementSrc_; 
     152 
     153  std::vector<boost::unordered_map<int,std::vector<size_t> > > globalElementIndexOnProc_; 
     154 
     155  std::vector<int> procContainSrcElementIdx_;  // List of processes containing source index of transformed elements 
     156//  std::set<int> procOfNonTransformedElements_; // Processes contain the source index of non-transformed elements 
     157  std::set<int> commonProc_; 
     158  std::vector< set<int> > procElementList_ ; // List of processes containing source index of elements 
     159 
     160  CClientClientDHTInt::Index2VectorInfoTypeMap globalIndexOfTransformedElementOnProc_; 
     161   
     162  bool computedProcSrcNonTransformedElement_; // Flag to indicate whether we computed proc containing non transformed elements 
     163 
    140164  std::map<int, int> elementPositionInGridSrc2AxisPosition_, elementPositionInGridSrc2DomainPosition_, elementPositionInGridSrc2ScalarPosition_; 
    141165  std::map<int, int> elementPositionInGridDst2AxisPosition_, elementPositionInGridDst2DomainPosition_, elementPositionInGridDst2ScalarPosition_; 
     166 
     167  bool eliminateRedondantSrc_ ; // flag to indicate if the transformation must select only one global source point for all proc. 
     168                               // In this case it will choose preferentially the current process  
    142169}; 
    143170 
Note: See TracChangeset for help on using the changeset viewer.