Ignore:
Timestamp:
07/05/16 15:59:02 (8 years ago)
Author:
mhnguyen
Message:

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:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/transformation/grid_generate.hpp

    r775 r887  
    1212#include "xios_spl.hpp" 
    1313#include "transformation_enum.hpp" 
    14 #include "generic_algorithm_transformation.hpp" 
     14#include "grid_transformation_selector.hpp" 
    1515 
    1616namespace xios { 
     
    2525This class only plays a role of interface between XIOS and specific algorithm of auto filling-in and auto distributing on sub-component 
    2626*/ 
    27 class CGridGenerate 
     27class CGridGenerate : public CGridTransformationSelector 
    2828{ 
    29 public: 
    30   typedef std::list<std::pair<int,std::pair<ETranformationType,int> > > ListAlgoType; 
    31  
    3229public: 
    3330  /** Default constructor */ 
     
    3633 
    3734  void completeGrid(); 
    38   ListAlgoType getAlgoList() const {return listAlgos_; } 
    3935 
    4036protected: 
    41   void initializeAlgorithms(); 
    42   void initializeAxisAlgorithms(int axisPositionInGrid); 
    43   void initializeDomainAlgorithms(int domPositionInGrid); 
    44  
    45   void selectAxisAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder); 
    46   void selectDomainAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder); 
    47   void selectAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder, bool isDomainAlgo); 
    48  
    49 protected: 
    50   //! Grid source on transformation 
    51   CGrid* gridSource_; 
    52  
    53   //! Grid destination on transformation 
    54   CGrid* gridDestination_; 
    55  
    56 protected: 
    57   //! List of algorithm types and their order 
    58   ListAlgoType listAlgos_; 
    59   // true if domain algorithm and false if axis algorithm (can be replaced by tuple with listAlgos_ 
    60   std::vector<bool> algoTypes_; 
    61  
    62   // Mapping between position of an element in grid and its transformation (if any) 
    63   std::list<CGenericAlgorithmTransformation*> algoTransformation_; 
    64  
    65   //! Position of axis and domain in grid 
    66   std::map<int, int> elementPosition2AxisPositionInGrid_, elementPosition2DomainPositionInGrid_; 
     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); 
    6740}; 
    6841 
Note: See TracChangeset for help on using the changeset viewer.