source: XIOS3/trunk/src/node/redistribute_domain.cpp @ 2507

Last change on this file since 2507 was 2507, checked in by ymipsl, 13 months ago

Merging XIOS3_ATTACHED branch into XIOS3 trunk.

YM

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