Last change
on this file since 1620 was
1275,
checked in by ymipsl, 3 years ago

implement diurnal cycle transformation taken as a grid tranformation : scalar > axis
YM

File size:
1.6 KB

Line  

1  /*! 

2  \file axis_algorithm_transformation.hpp 

3  \author Ha NGUYEN 

4  \since 14 May 2015 

5  \date 29 June 2015 

6  

7  \brief Interface for all axis transformation algorithms. 

8  */ 

9  #ifndef __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ 

10  #define __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ 

11  

12  #include "generic_algorithm_transformation.hpp" 

13  #include "grid_transformation_factory_impl.hpp" 

14  

15  namespace xios { 

16  

17  class CAxis; 

18  class CDomain; 

19  class CScalar; 

20  /*! 

21  \class CAxisAlgorithmTransformation 

22  Algorithms for axis. 

23  */ 

24  class CAxisAlgorithmTransformation : public virtual CGenericAlgorithmTransformation 

25  { 

26  public: 

27  CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource); 

28  CAxisAlgorithmTransformation(CAxis* axisDestination, CDomain* domainSource); 

29  CAxisAlgorithmTransformation(CAxis* axisDestination, CScalar* scalarSource); 

30  

31  virtual ~CAxisAlgorithmTransformation(); 

32  

33  protected: 

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

35  

36  virtual void computeExchangeGlobalIndex(const CArray<size_t,1>& globalAxisIndex, 

37  int elementType, 

38  CClientClientDHTInt::Index2VectorInfoTypeMap& globalDomainIndexOnProc); 

39  

40  protected: 

41  //! Global index of an axis on grid destination 

42  std::vector<int> axisDestGlobalIndex_; 

43  

44  //! Size of 

45  int axisDestGlobalSize_; 

46  

47  //! Axis on grid destination 

48  CAxis* axisDest_; 

49  

50  //! Axis on grid source 

51  CAxis* axisSrc_; 

52  

53  //! Domain on grid source 

54  CDomain* domainSrc_; 

55  

56  //! Scalar on grid source 

57  

58  CScalar* scalarSrc_; 

59  }; 

60  

61  } 

62  #endif // __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ 

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