source: XIOS/dev/XIOS_DEV_CMIP6/src/transformation/grid_generate.hpp @ 1956

Last change on this file since 1956 was 887, checked in by mhnguyen, 8 years ago

Adding a new type of element into grid: Scalar

+) Add a new node Scalar for xml
+) Make some change on writing scalar value
+) Reorganize some codes
+) Remove some redundant codes

Test
+) On Curie
+) All tests pass

File size: 1.4 KB
Line 
1/*!
2   \file grid_generate.hpp
3   \author Ha NGUYEN
4   \since 28 Aug 2015
5   \date 28 Aug 2015
6
7   \brief A special transformation to generate a grid.
8 */
9#ifndef __XIOS_GRID_GENERATE_HPP__
10#define __XIOS_GRID_GENERATE_HPP__
11
12#include "xios_spl.hpp"
13#include "transformation_enum.hpp"
14#include "grid_transformation_selector.hpp"
15
16namespace xios {
17
18class CGrid;
19
20/*!
21  \class CGridGenerate
22  This class creates a grid from scratch, e.g: only global dimension of grid and its type are provided,
23then the generated grid plays the destination in a transformation. Not only some attributes of grid and its subcomponents are filled in
24automatically but it also have a distribution which might be different from one of grid source.
25This class only plays a role of interface between XIOS and specific algorithm of auto filling-in and auto distributing on sub-component
26*/
27class CGridGenerate : public CGridTransformationSelector
28{
29public:
30  /** Default constructor */
31  CGridGenerate(CGrid* destination, CGrid* source = 0);
32  ~CGridGenerate();
33
34  void completeGrid();
35
36protected:
37  virtual void selectScalarAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder);
38  virtual void selectAxisAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder);
39  virtual void selectDomainAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder);
40};
41
42}
43#endif // __XIOS_GRID_GENERATE_HPP__
Note: See TracBrowser for help on using the repository browser.