Ignore:
Timestamp:
06/09/16 11:33:37 (8 years ago)
Author:
mhnguyen
Message:

Correcting a bug which sometimes make transformations between different size grids incorrect

+) Correct inputs of some functions
+) Add some auxilliary functions.
+) Add new test cases for test_remap

Test
+) Basic test pass
+) Single horizontal and vertical interpolation are correct
+) Chained interpolation are not correct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/transformation/grid_transformation.hpp

    r867 r871  
    4949  const std::list<RecvIndexGridDestinationMap>& getLocalIndexToReceiveOnGridDest() const; 
    5050  const std::list<size_t>& getNbLocalIndexToReceiveOnGridDest() const; 
     51  const std::list<std::vector<bool> >& getLocalMaskIndexOnGridDest() const; 
    5152 
    5253  CGrid* getGridSource() { return originalGridSource_; } 
     
    6667  void selectDomainAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder); 
    6768  void selectAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder, bool isDomainAlgo); 
    68   void setUpGrid(int elementPositionInGrid, ETranformationType transType, int nbTransformation); 
     69  void setUpGridSource(int elementPositionInGrid, ETranformationType transType, int nbTransformation); 
     70  void setUpGridDestination(int elementPositionInGrid, ETranformationType transType, int nbTransformation); 
    6971  void computeTransformationMapping(const SourceDestinationIndexMap& globalIndexWeightFromSrcToDest); 
    7072  bool isSpecialTransformation(ETranformationType transType); 
     
    7577 
    7678  //! Grid destination on transformation 
    77   CGrid* gridDestination_; 
     79  CGrid* gridDestination_, *tmpGridDestination_; 
    7880 
    7981  //! The grid source of the first transformation (original grid source) 
     
    104106  //! Number of local index of data to receive on grid destination 
    105107  std::list<size_t> nbLocalIndexOnGridDest_; 
     108  std::list<std::vector<bool> > localMaskOnGridDest_; 
    106109 
    107110  //! Position of axis and domain in grid 
    108111  std::map<int, int> elementPosition2AxisPositionInGrid_, elementPosition2DomainPositionInGrid_; 
    109112 
    110   std::vector<CGrid*> tempGrids_; 
     113  std::vector<CGrid*> tempGridSrcs_, tempGridDests_; 
    111114  std::vector<StdString> auxInputs_; 
    112115  bool dynamicalTransformation_; 
Note: See TracChangeset for help on using the changeset viewer.