source: XIOS/trunk/src/transformation/axis_algorithm_transformation.hpp @ 913

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

Adding a new transformation: Reduce a domain to an axis

Test
+) On Curie
+) Tests pass and are correct

File size: 1.4 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
14namespace xios {
15
16class CAxis;
17class CDomain;
18
19/*!
20  \class CAxisAlgorithmTransformation
21  Algorithms for axis.
22*/
23class CAxisAlgorithmTransformation : public virtual CGenericAlgorithmTransformation
24{
25public:
26  CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource);
27  CAxisAlgorithmTransformation(CAxis* axisDestination, CDomain* domainSource);
28
29  virtual ~CAxisAlgorithmTransformation();
30
31protected:
32  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
33
34  virtual void computeExchangeGlobalIndex(const CArray<size_t,1>& globalAxisIndex,
35                                          int elementType,
36                                          CClientClientDHTInt::Index2VectorInfoTypeMap& globalDomainIndexOnProc);
37
38protected:
39  //! Global index of an axis on grid destination
40  std::vector<int> axisDestGlobalIndex_;
41
42  //! Size of
43  int axisDestGlobalSize_;
44
45    //! Axis on grid destination
46  CAxis* axisDest_;
47
48  //! Axis on grid source
49  CAxis* axisSrc_;
50
51  //! Domain on grid source
52  CDomain* domainSrc_;
53};
54
55}
56#endif // __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__
Note: See TracBrowser for help on using the repository browser.