source: XIOS/dev/dev_ym/XIOS_COUPLING/src/node/duplicate_scalar_to_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

  • Property svn:eol-style set to native
File size: 3.1 KB
Line 
1#include "duplicate_scalar_to_axis.hpp"
2#include "axis_algorithm_duplicate_scalar.hpp"
3#include "type.hpp"
4#include "axis.hpp"
5#include "scalar.hpp"
6
7namespace xios {
8
9  /// ////////////////////// Définitions ////////////////////// ///
10
11  CDuplicateScalarToAxis::CDuplicateScalarToAxis(void)
12    : CObjectTemplate<CDuplicateScalarToAxis>(), CDuplicateScalarToAxisAttributes(), CTransformation<CAxis>()
13  { /* Ne rien faire de plus */ }
14
15  CDuplicateScalarToAxis::CDuplicateScalarToAxis(const StdString & id)
16    : CObjectTemplate<CDuplicateScalarToAxis>(id), CDuplicateScalarToAxisAttributes(), CTransformation<CAxis>()
17  { /* Ne rien faire de plus */ }
18
19  CDuplicateScalarToAxis::~CDuplicateScalarToAxis(void)
20  {}
21
22  CTransformation<CAxis>* CDuplicateScalarToAxis::create(const StdString& id, xml::CXMLNode* node)
23  {
24    CDuplicateScalarToAxis* duplicateScalar = CDuplicateScalarToAxisGroup::get("duplicate_scalar_to_axis_definition")->createChild(id);
25    if (node) duplicateScalar->parse(*node);
26    return static_cast<CTransformation<CAxis>*>(duplicateScalar);
27  }
28
29  bool CDuplicateScalarToAxis::registerTrans()
30  {
31    return registerTransformation(TRANS_DUPLICATE_SCALAR_TO_AXIS, {create, getTransformation});
32  }
33
34  bool CDuplicateScalarToAxis::_dummyRegistered = CDuplicateScalarToAxis::registerTrans();
35
36  //----------------------------------------------------------------
37
38  StdString CDuplicateScalarToAxis::GetName(void)    { return StdString("duplicate_scalar_to_axis"); }
39  StdString CDuplicateScalarToAxis::GetDefName(void) { return StdString("duplicate_scalar_to_axis"); }
40  ENodeType CDuplicateScalarToAxis::GetType(void)    { return eDuplicateScalarToAxis; }
41
42  void CDuplicateScalarToAxis::checkValid(CAxis* axisDst, CScalar* scalarSrc)
43  {
44   
45  }
46 
47  CGenericAlgorithmTransformation* CDuplicateScalarToAxis::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 CAxisAlgorithmDuplicateScalar::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.