Changeset 623 for XIOS/trunk/src/filter/grid_transformation.hpp
- Timestamp:
- 06/22/15 13:36:31 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/filter/grid_transformation.hpp
r622 r623 1 /*! 2 \file grid_transformation.hpp 3 \author Ha NGUYEN 4 \since 14 May 2015 5 \date 09 June 2015 6 7 \brief Interface for all transformations. 8 */ 1 9 #ifndef __XIOS_GRID_TRANSFORMATION_HPP__ 2 10 #define __XIOS_GRID_TRANSFORMATION_HPP__ … … 12 20 class CGrid; 13 21 22 /*! 23 \class CGridTransformation 24 This class is an interface for all transformations to interact with the rest of XIOS. 25 The class, firstly, tries to get all information relating to requested transformations by retrieving directly from grid. 26 Then with all these information, all necessary transformations will be be created by generic class \class CGenericAlgorithmTransformation. 27 Because there are information exchange among clients to accomplish the transformations (e.g: some index need retrieving from other clients), 28 this class uses class \class CTransformationMapping to fulfill this demand. 29 For each transformation, a new temporary grid source is created. 30 For a consequential transformations (e.g: inversing -> zoom -> inversing -> ...), 31 the grid destination of current transformation will be grid source of the next transformation 32 */ 14 33 class CGridTransformation 15 34 { … … 38 57 void computeFinalTransformationMapping(); 39 58 void computeTransformationFromOriginalGridSource(const std::map<size_t, std::set<size_t> >& globaIndexMapFromDestToSource); 59 void updateFinalGridDestination(); 40 60 41 61 private: 62 //! Grid source on transformation 42 63 CGrid* gridSource_; 64 65 //! Grid destination on transformation 43 66 CGrid* gridDestination_; 67 68 //! The grid source of the first transformation (original grid source) 44 69 CGrid* originalGridSource_; 45 70 71 //! Grid source dimension size 46 72 std::vector<int> gridSourceDimensionSize_; 73 74 //! Grid destination dimension size 47 75 std::vector<int> gridDestinationDimensionSize_; 48 76 49 77 private: 50 78 typedef std::list<std::pair<int,std::pair<ETranformationType,int> > > ListAlgoType; 79 //! List of algorithm types and their order 80 ListAlgoType listAlgos_; 51 81 52 82 // Mapping between position of an element in grid and its transformation (if any) 53 83 std::list<CGenericAlgorithmTransformation*> algoTransformation_; 54 ListAlgoType listAlgos_; 84 85 //! Mapping of (grid) global index representing tranformation. 55 86 std::map<size_t, std::set<size_t> > globaIndexMapFromDestToSource_; 56 87 88 //! Local index of data to send from grid source 57 89 std::map<int, CArray<int,1>* > localIndexToSendFromGridSource_; 90 91 //! Local index of data to receive on grid destination 58 92 std::map<int, std::vector<CArray<int,1>* > > localIndexToReceiveOnGridDest_; 59 93 94 //! Position of axis and domain in grid 60 95 std::map<int, int> elementPosition2AxisPositionInGrid_, elementPosition2DomainPositionInGrid_; 61 96 97 //! (Grid) Global index of grid source 62 98 CArray<size_t,1>* globalIndexOfCurrentGridSource_; 63 99 CArray<size_t,1>* globalIndexOfOriginalGridSource_;
Note: See TracChangeset
for help on using the changeset viewer.