source: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.hpp @ 2270

Last change on this file since 2270 was 2270, checked in by ymipsl, 3 years ago

Tracking memory leak :
Tranformations and algorithms are now managed with shared_ptr.

YM

  • Property svn:executable set to *
File size: 1.9 KB
Line 
1
2#ifndef __XIOS_DOMAIN_ALGORITHM_EXTRACT_HPP__
3#define __XIOS_DOMAIN_ALGORITHM_EXTRACT_HPP__
4
5#include "transformation.hpp"
6#include "algorithm_transformation_transfer.hpp"
7
8namespace xios {
9
10class CDomain;
11class CExtractDomain;
12
13/*!
14  \class CDomainAlgorithmExtract
15  Implementing extract (alternative zoom) on domain
16*/
17class CDomainAlgorithmExtract : public CAlgorithmTransformationTransfer
18{
19public:
20  CDomainAlgorithmExtract(bool isSource, CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain);
21
22  virtual ~CDomainAlgorithmExtract() {}
23  virtual StdString getAlgoName() {return "\\nextract_domain";}
24
25  static bool registerTrans();
26
27private:
28  //! Global extract begin on domain
29  int extractIBegin_;
30  int extractJBegin_;
31
32  //! Global extract end on domain
33  int extractIEnd_;
34  int extractJEnd_;
35
36  //! Global extract size on domain
37  int extractNi_;
38  int extractNj_;
39 
40  CDomain* domainSrc_ ;
41  CDomain* domainDest_ ;
42
43
44public:
45  static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
46                                                CTransformation<CDomain>* transformation,
47                                                int elementPositionInGrid,
48                                                std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
49                                                std::map<int, int>& elementPositionInGridSrc2AxisPosition,
50                                                std::map<int, int>& elementPositionInGridSrc2DomainPosition,
51                                                std::map<int, int>& elementPositionInGridDst2ScalarPosition,
52                                                std::map<int, int>& elementPositionInGridDst2AxisPosition,
53                                                std::map<int, int>& elementPositionInGridDst2DomainPosition);
54  static bool dummyRegistered_;
55};
56
57}
58#endif // __XIOS_DOMAIN_ALGORITHM_EXTRACT_HPP__
Note: See TracBrowser for help on using the repository browser.