source: XIOS/dev/dev_ym/XIOS_COUPLING/src/node/reorder_domain.cpp @ 2130

Last change on this file since 2130 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

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