Last change
on this file since 918 was
918,
checked in by mhnguyen, 8 years ago

Modifying vertical interpolation
+) Only process interpolation, the extrapolation will be ignored (value will be unidentified (masked))
+) Make sure even unidenfitified from one transformation can be known in the next transformation
Test
+) On Curie
+) Vertical interpolation: Correct
+) Vertical interpolation + horizontal interpolation: Correct

File size:
1.3 KB

Line  

1  /*! 

2  \file axis_algorithm_reduce_domain.hpp 

3  \author Ha NGUYEN 

4  \since 23 June 2016 

5  \date 23 June 2016 

6  

7  \brief Algorithm for reduce an axis to a axis 

8  */ 

9  #ifndef __XIOS_AXIS_ALGORITHM_REDUCE_DOMAIN_HPP__ 

10  #define __XIOS_AXIS_ALGORITHM_REDUCE_DOMAIN_HPP__ 

11  

12  #include "axis_algorithm_transformation.hpp" 

13  

14  namespace xios { 

15  

16  class CAxis; 

17  class CDomain; 

18  class CReduceDomainToAxis; 

19  class CReductionAlgorithm; 

20  

21  /*! 

22  \class CAxisAlgorithmReduceDomain 

23  Reduce a domain to an axis 

24  */ 

25  class CAxisAlgorithmReduceDomain : public CAxisAlgorithmTransformation 

26  { 

27  public: 

28  CAxisAlgorithmReduceDomain(CAxis* axisDestination, CDomain* domainSource, CReduceDomainToAxis* algo); 

29  

30  virtual void apply(const std::vector<std::pair<int,double> >& localIndex, 

31  const double* dataInput, 

32  CArray<double,1>& dataOut, 

33  std::vector<bool>& flagInitial, 

34  const double& defaultValue); 

35  

36  virtual ~CAxisAlgorithmReduceDomain(); 

37  

38  protected: 

39  enum ReduceDirection { 

40  undefined = 0, 

41  iDir = 1, 

42  jDir = 2 

43  }; 

44  

45  ReduceDirection dir_; 

46  protected: 

47  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs); 

48  

49  protected: 

50  CReductionAlgorithm* reduction_; 

51  

52  }; 

53  

54  } 

55  #endif // __XIOS_AXIS_ALGORITHM_REDUCE_DOMAIN_HPP__ 

Note: See
TracBrowser
for help on using the repository browser.