source: XIOS/dev/dev_ym/XIOS_COUPLING/src/node/inverse_axis.cpp @ 2011

Last change on this file since 2011 was 2011, checked in by ymipsl, 3 years ago
  • bug fix when createing mask on server side when overlapping grid
  • implement axis interpolation on pressure coordinate
  • big cleaning in transformation

YM

File size: 2.7 KB
Line 
1#include "inverse_axis.hpp"
2#include "axis_algorithm_inverse.hpp"
3#include "type.hpp"
4
5namespace xios {
6
7  /// ////////////////////// Définitions ////////////////////// ///
8
9  CInverseAxis::CInverseAxis(void)
10    : CObjectTemplate<CInverseAxis>(), CInverseAxisAttributes(), CTransformation<CAxis>()
11  { /* Ne rien faire de plus */ }
12
13  CInverseAxis::CInverseAxis(const StdString & id)
14    : CObjectTemplate<CInverseAxis>(id), CInverseAxisAttributes(), CTransformation<CAxis>()
15  { /* Ne rien faire de plus */ }
16
17  CInverseAxis::~CInverseAxis(void)
18  {}
19
20  CTransformation<CAxis>* CInverseAxis::create(const StdString& id, xml::CXMLNode* node)
21  {
22    CInverseAxis* invAxis = CInverseAxisGroup::get("inverse_axis_definition")->createChild(id);
23    if (node) invAxis->parse(*node);
24    return static_cast<CTransformation<CAxis>*>(invAxis);
25  }
26
27  bool CInverseAxis::registerTrans()
28  {
29    return registerTransformation(TRANS_INVERSE_AXIS, {create, getTransformation});
30  }
31
32  bool CInverseAxis::_dummyRegistered = CInverseAxis::registerTrans();
33
34  //----------------------------------------------------------------
35  StdString CInverseAxis::GetName(void)    { return StdString("inverse_axis"); }
36  StdString CInverseAxis::GetDefName(void) { return StdString("inverse_axis"); }
37  ENodeType CInverseAxis::GetType(void)    { return eInverseAxis; }
38
39  void CInverseAxis::checkValid(CAxis* axisSrc)
40  {}
41
42  CGenericAlgorithmTransformation* CInverseAxis::createAlgorithm(bool isSource,
43                                                        CGrid* gridDst, CGrid* gridSrc,
44                                                        int elementPositionInGrid,
45                                                        std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
46                                                        std::map<int, int>& elementPositionInGridSrc2AxisPosition,
47                                                        std::map<int, int>& elementPositionInGridSrc2DomainPosition,
48                                                        std::map<int, int>& elementPositionInGridDst2ScalarPosition,
49                                                        std::map<int, int>& elementPositionInGridDst2AxisPosition,
50                                                        std::map<int, int>& elementPositionInGridDst2DomainPosition)
51  {
52    return CAxisAlgorithmInverse::create(isSource, gridDst,  gridSrc, this, elementPositionInGrid,
53                       elementPositionInGridSrc2ScalarPosition, elementPositionInGridSrc2AxisPosition, elementPositionInGridSrc2DomainPosition,
54                       elementPositionInGridDst2ScalarPosition, elementPositionInGridDst2AxisPosition, elementPositionInGridDst2DomainPosition) ;
55  }
56}
Note: See TracBrowser for help on using the repository browser.