source: XIOS/dev/XIOS_DEV_CMIP6/src/transformation/axis_algorithm_transformation.hpp @ 1620

Last change on this file since 1620 was 1275, checked in by ymipsl, 7 years ago

implement diurnal cycle transformation taken as a grid tranformation : scalar -> axis

YM

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