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

Last change on this file since 890 was 888, checked in by mhnguyen, 8 years ago

Adding new transformation for scalar: Reducing an axis to a scalar

+) Add new xml node for new transformation
+) Add new algorithms for axis reduction
+) Make change in some place to make sure everything work fine

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

File size: 1.3 KB
RevLine 
[624]1/*!
2   \file axis_algorithm_transformation.hpp
3   \author Ha NGUYEN
4   \since 14 May 2015
[630]5   \date 29 June 2015
[624]6
7   \brief Interface for all axis transformation algorithms.
8 */
[620]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
[867]16class CAxis;
[624]17/*!
18  \class CAxisAlgorithmTransformation
19  Algorithms for axis.
20*/
[620]21class CAxisAlgorithmTransformation : public virtual CGenericAlgorithmTransformation
22{
23public:
[622]24  CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource);
[620]25
[621]26  virtual ~CAxisAlgorithmTransformation();
27
[620]28protected:
[827]29  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
30
[867]31  virtual void computeExchangeGlobalIndex(const CArray<size_t,1>& globalAxisIndex,
[888]32                                          int elementType,
[867]33                                          CClientClientDHTInt::Index2VectorInfoTypeMap& globalDomainIndexOnProc);
[862]34
[620]35protected:
[624]36  //! Global index of an axis on grid destination
[622]37  std::vector<int> axisDestGlobalIndex_;
[624]38
39  //! Size of
[622]40  int axisDestGlobalSize_;
[620]41
[630]42    //! Axis on grid destination
43  CAxis* axisDest_;
44
45  //! Axis on grid source
46  CAxis* axisSrc_;
[620]47};
48
49}
50#endif // __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__
Note: See TracBrowser for help on using the repository browser.