source: XIOS/dev/branch_yushan_merged/src/transformation/axis_algorithm_inverse.hpp @ 1134

Last change on this file since 1134 was 1134, checked in by yushan, 7 years ago

branch merged with trunk r1130

File size: 1.8 KB
Line 
1/*!
2   \file axis_algorithm_inverse.hpp
3   \author Ha NGUYEN
4   \since 14 May 2015
5   \date 09 June 2015
6
7   \brief Algorithm for inversing an axis..
8 */
9#ifndef __XIOS_AXIS_ALGORITHM_INVERSE_HPP__
10#define __XIOS_AXIS_ALGORITHM_INVERSE_HPP__
11
12#include "axis_algorithm_transformation.hpp"
13#include "transformation.hpp"
14#ifdef _usingEP
15#include "ep_declaration.hpp"
16#endif
17   
18namespace xios {
19
20class CAxis;
21class CInverseAxis;
22
23/*!
24  \class CAxisAlgorithmInverse
25  Inversing an axis
26*/
27class CAxisAlgorithmInverse : public CAxisAlgorithmTransformation
28{
29public:
30  CAxisAlgorithmInverse(CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis);
31
32  virtual ~CAxisAlgorithmInverse() {}
33
34  static bool registerTrans();
35
36protected:
37  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
38
39private:
40  void updateAxisValue();
41
42private:
43  static CGenericAlgorithmTransformation* create(CGrid* gridDst, CGrid* gridSrc,
44                                                CTransformation<CAxis>* transformation,
45                                                int elementPositionInGrid,
46                                                std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
47                                                std::map<int, int>& elementPositionInGridSrc2AxisPosition,
48                                                std::map<int, int>& elementPositionInGridSrc2DomainPosition,
49                                                std::map<int, int>& elementPositionInGridDst2ScalarPosition,
50                                                std::map<int, int>& elementPositionInGridDst2AxisPosition,
51                                                std::map<int, int>& elementPositionInGridDst2DomainPosition);
52};
53
54}
55#endif // __XIOS_AXIS_ALGORITHM_INVERSE_HPP__
Note: See TracBrowser for help on using the repository browser.