XIOS  1.0
Xml I/O Server
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Amis Macros
scalar_algorithm_reduce_scalar.hpp
Aller à la documentation de ce fichier.
1 
5 #ifndef __XIOS_SCALAR_ALGORITHM_REDUCE_SCALAR_HPP__
6 #define __XIOS_SCALAR_ALGORITHM_REDUCE_SCALAR_HPP__
7 
9 #include "transformation.hpp"
10 
11 namespace xios {
12 
13 class CScalar;
14 class CReduceScalarToScalar;
15 class CReductionAlgorithm;
16 
22 {
23 public:
24  CScalarAlgorithmReduceScalar(CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo);
25 
26  virtual void apply(const std::vector<std::pair<int,double> >& localIndex,
27  const double* dataInput,
28  CArray<double,1>& dataOut,
29  std::vector<bool>& flagInitial,
30  bool ignoreMissingValue, bool firstPass);
31 
32  virtual void updateData(CArray<double,1>& dataOut);
33 
35 
36  static bool registerTrans();
37 protected:
38  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
39 
40 protected:
42 
43 private:
44 
45  static CGenericAlgorithmTransformation* create(CGrid* gridDst, CGrid* gridSrc,
46  CTransformation<CScalar>* 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 };
55 
56 }
57 #endif // __XIOS_SCALAR_ALGORITHM_REDUCE_SCALAR_HPP__
virtual void apply(const std::vector< std::pair< int, double > > &localIndex, const double *dataInput, CArray< double, 1 > &dataOut, std::vector< bool > &flagInitial, bool ignoreMissingValue, bool firstPass)
Apply a operation on local data.
void computeIndexSourceMapping_(const std::vector< CArray< double, 1 > * > &dataAuxInputs)
virtual void updateData(CArray< double, 1 > &dataOut)
Update whole dataOut (on necessary).
#define xios(arg)
CScalarAlgorithmReduceScalar(CScalar *scalarDestination, CScalar *scalarSource, CReduceScalarToScalar *algo)
static CGenericAlgorithmTransformation * create(CGrid *gridDst, CGrid *gridSrc, CTransformation< CScalar > *transformation, int elementPositionInGrid, std::map< int, int > &elementPositionInGridSrc2ScalarPosition, std::map< int, int > &elementPositionInGridSrc2AxisPosition, std::map< int, int > &elementPositionInGridSrc2DomainPosition, std::map< int, int > &elementPositionInGridDst2ScalarPosition, std::map< int, int > &elementPositionInGridDst2AxisPosition, std::map< int, int > &elementPositionInGridDst2DomainPosition)
This class defines the interface for all other inherited algorithms class.
Interface for all scalar transformation algorithms.
Interface for all reduction alogrithms.
Definition: reduction.hpp:22