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

Last change on this file was 1982, checked in by yushan, 3 months ago

trunk : workflow graph big fixed for chained spatial filters. Filter name simplified for graph

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