Ignore:
Timestamp:
04/21/17 17:39:29 (7 years ago)
Author:
yushan
Message:

save modif. Todo: axis, domain, mesh, scalar, transformation

Location:
XIOS/dev/branch_yushan/src/transformation/Functions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan/src/transformation/Functions/reduction.cpp

    r979 r1103  
    99 
    1010CReductionAlgorithm::CallBackMap* CReductionAlgorithm::reductionCreationCallBacks_ = 0; 
    11 std::map<StdString,EReductionType> CReductionAlgorithm::ReductionOperations = std::map<StdString,EReductionType>(); 
    12 bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>& m) 
     11//std::map<StdString,EReductionType> CReductionAlgorithm::ReductionOperations = std::map<StdString,EReductionType>(); 
     12std::map<StdString,EReductionType> *CReductionAlgorithm::ReductionOperations_ptr = 0;  
     13 
     14// bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>& m) 
     15// { 
     16//   // So so stupid way to intialize operation but it works ... 
     17//   m["sum"] = TRANS_REDUCE_SUM; 
     18//   CSumReductionAlgorithm::registerTrans(); 
     19 
     20//   m["min"] = TRANS_REDUCE_MIN; 
     21//   CMinReductionAlgorithm::registerTrans(); 
     22 
     23//   m["max"] = TRANS_REDUCE_MAX; 
     24//   CMaxReductionAlgorithm::registerTrans(); 
     25 
     26//   m["extract"] = TRANS_REDUCE_EXTRACT; 
     27//   CExtractReductionAlgorithm::registerTrans(); 
     28 
     29//   m["average"] = TRANS_REDUCE_AVERAGE; 
     30//   CAverageReductionAlgorithm::registerTrans(); 
     31// } 
     32 
     33bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>* m) 
    1334{ 
     35  if(m==NULL) m=new std::map<StdString,EReductionType>(); 
    1436  // So so stupid way to intialize operation but it works ... 
    15   m["sum"] = TRANS_REDUCE_SUM; 
     37  (*m)["sum"] = TRANS_REDUCE_SUM; 
    1638  CSumReductionAlgorithm::registerTrans(); 
    1739 
    18   m["min"] = TRANS_REDUCE_MIN; 
     40  (*m)["min"] = TRANS_REDUCE_MIN; 
    1941  CMinReductionAlgorithm::registerTrans(); 
    2042 
    21   m["max"] = TRANS_REDUCE_MAX; 
     43  (*m)["max"] = TRANS_REDUCE_MAX; 
    2244  CMaxReductionAlgorithm::registerTrans(); 
    2345 
    24   m["extract"] = TRANS_REDUCE_EXTRACT; 
     46  (*m)["extract"] = TRANS_REDUCE_EXTRACT; 
    2547  CExtractReductionAlgorithm::registerTrans(); 
    2648 
    27   m["average"] = TRANS_REDUCE_AVERAGE; 
     49  (*m)["average"] = TRANS_REDUCE_AVERAGE; 
    2850  CAverageReductionAlgorithm::registerTrans(); 
    2951} 
    3052 
    31 bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations); 
     53//bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations); 
     54bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations_ptr); 
    3255 
    3356CReductionAlgorithm* CReductionAlgorithm::createOperation(EReductionType reduceType) 
    3457{ 
    3558  int reduceTypeInt = reduceType; 
     59  if (0 == reductionCreationCallBacks_) 
     60    reductionCreationCallBacks_ = new CallBackMap(); 
     61 
    3662  CallBackMap::const_iterator it = (*reductionCreationCallBacks_).find(reduceType); 
    3763  if ((*reductionCreationCallBacks_).end() == it) 
  • XIOS/dev/branch_yushan/src/transformation/Functions/reduction.hpp

    r1079 r1103  
    2323{ 
    2424public: 
    25   static std::map<StdString,EReductionType> ReductionOperations; 
     25  //static std::map<StdString,EReductionType> ReductionOperations; 
     26  static std::map<StdString,EReductionType> *ReductionOperations_ptr; 
     27  #pragma omp threadprivate(ReductionOperations_ptr) 
    2628 
    2729public: 
     
    5961  typedef std::map<EReductionType, CreateOperationCallBack> CallBackMap; 
    6062  static CallBackMap* reductionCreationCallBacks_; 
    61   //#pragma omp threadprivate(reductionCreationCallBacks_) 
     63  #pragma omp threadprivate(reductionCreationCallBacks_) 
    6264 
    6365  static bool registerOperation(EReductionType reduceType, CreateOperationCallBack createFn); 
     
    6567 
    6668protected: 
    67   static bool initReductionOperation(std::map<StdString,EReductionType>& m); 
     69  //static bool initReductionOperation(std::map<StdString,EReductionType>& m); 
     70  static bool initReductionOperation(std::map<StdString,EReductionType>* m); 
    6871  static bool _dummyInit; 
    69   //#pragma omp threadprivate(_dummyInit) 
     72  #pragma omp threadprivate(_dummyInit) 
    7073}; 
    7174 
Note: See TracChangeset for help on using the changeset viewer.