/*! \file axis_algorithm_transformation.hpp \author Ha NGUYEN \since 14 May 2015 \date 09 June 2015 \brief Interface for all axis transformation algorithms. */ #ifndef __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ #define __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ #include "generic_algorithm_transformation.hpp" #include "axis.hpp" namespace xios { /*! \class CAxisAlgorithmTransformation Algorithms for axis. */ class CAxisAlgorithmTransformation : public virtual CGenericAlgorithmTransformation { public: CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource); virtual ~CAxisAlgorithmTransformation(); protected: virtual void computeGlobalIndexFromGlobalIndexElement(int axisDestGlobalIndex, const std::vector& axisSrcGlobalIndex, int axisPositionInGrid, const std::vector& gridDestGlobalDim, const CArray& globalIndexGridDestSendToServer, CArray& globalIndexDestGrid, std::vector >& globalIndexSrcGrid); void computeIndexSourceMapping(); protected: //! Global index of an axis on grid destination std::vector axisDestGlobalIndex_; //! Size of int axisDestGlobalSize_; }; } #endif // __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__