source: XIOS/trunk/src/filter/invert_algorithm.hpp @ 619

Last change on this file since 619 was 619, checked in by mhnguyen, 9 years ago

Implementing the first prototype of filter

+) Create new class filter
+) Implement class for specific algorithm
+) Implement inversing algorithm

Test
+) On Curie
+) Grid with one axis: passed

File size: 733 bytes
Line 
1#ifndef __XIOS_INVERT_ALGORITHM_HPP__
2#define __XIOS_INVERT_ALGORITHM_HPP__
3
4#include "visitor.hpp"
5#include "axis_transformation.hpp"
6#include "axis_filter.hpp"
7
8namespace xios {
9class CInvertAlgorithm :
10  public CBaseVisitor,
11  public CVisitor<CAxisTransformation>,
12  public CVisitor<CAxisFilter>
13{
14public:
15  /** Default constructor */
16  CInvertAlgorithm();
17
18  void operate(CAxisTransformation&);
19  void operate(CAxisFilter&);
20protected:
21
22  void inverseGlobalDataIndex(const CArray<size_t,1>& globalDataIndexInput);
23protected:
24  std::map<int, std::vector<size_t> > sendingIndexMap;
25  std::map<int, std::vector<size_t> > receivingIndexMap;
26  std::map<size_t, size_t> indexMap;
27private:
28};
29
30}
31#endif // __XIOS_INVERT_ALGORITHM_HPP__
Note: See TracBrowser for help on using the repository browser.