- Timestamp:
- 10/12/18 16:02:37 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/transformation/generic_algorithm_transformation.cpp
r1542 r1584 843 843 844 844 845 846 845 void CGenericAlgorithmTransformation::computeTransformationMappingNonDistributed(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst, 847 vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, vector<bool>& localMaskOnGridDest) 846 vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, 847 int nlocalIndexDest) 848 849 //void CGenericAlgorithmTransformation::computeTransformationMappingNonDistributed(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst, 850 // vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, 851 // vector<bool>& localMaskOnGridDest) 848 852 { 849 853 … … 871 875 872 876 int nlocalIndexSrc=1 ; 873 int nlocalIndexDest=1 ; 877 // int nlocalIndexDest=1 ; 878 nlocalIndexDest=1 ; 874 879 CArray<bool,1> maskScalar(1) ; 875 880 maskScalar = true ; … … 933 938 nlocalIndexDest=nlocalIndexDest*nIndexDst[i] ; 934 939 } 935 936 937 938 939 940 940 941 941 vector<int> dstLocalInd ; … … 986 986 987 987 // just get the local src mask 988 CArray<bool,1> localMaskOnSrcGrid;989 gridSrc->getLocalMask(localMaskOnSrcGrid) ;988 // CArray<bool,1> localMaskOnSrcGrid; 989 // gridSrc->getLocalMask(localMaskOnSrcGrid) ; 990 990 // intermediate grid, mask is not initialized => set up mask to true 991 if (localMaskOnSrcGrid.isEmpty())992 {993 localMaskOnSrcGrid.resize(nlocalIndexSrc) ;994 localMaskOnSrcGrid=true ;995 }996 997 998 localMaskOnGridDest.resize(nlocalIndexDest,false) ;991 // if (localMaskOnSrcGrid.isEmpty()) 992 // { 993 // localMaskOnSrcGrid.resize(nlocalIndexSrc) ; 994 // localMaskOnSrcGrid=true ; 995 // } 996 997 998 // localMaskOnGridDest.resize(nlocalIndexDest,false) ; 999 999 1000 1000 vector<vector<vector<pair<int,double> > > > dstIndWeight(transformationMapping_.size()) ; … … 1023 1023 int srcIndCompressed=0 ; 1024 1024 1025 // nonDistributedrecursiveFunct(nElement-1,true,elementPositionInGrid,maskSrc,maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight, 1026 // currentInd,localSrc,localDst,weight, localMaskOnSrcGrid, localMaskOnGridDest ); 1027 // nonDistributedrecursiveFunct(nElement-1,true,elementPositionInGrid,maskSrc,maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight, 1028 // currentInd,localSrc,localDst,weight, localMaskOnGridDest ); 1025 1029 nonDistributedrecursiveFunct(nElement-1,true,elementPositionInGrid,maskSrc,maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight, 1026 currentInd,localSrc,localDst,weight , localMaskOnSrcGrid, localMaskOnGridDest);1030 currentInd,localSrc,localDst,weight); 1027 1031 1028 1032 } 1029 1033 1030 1034 1031 void CGenericAlgorithmTransformation::nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid, vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 1032 vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, CArray<bool,1>& localMaskOnGridSrc, vector<bool>& localMaskOnGridDest ) 1035 void CGenericAlgorithmTransformation::nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid, 1036 vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, 1037 int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, 1038 int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 1039 vector<int>& localSrc, vector<int>& localDst, vector<double>& weight) 1040 // CArray<bool,1>& localMaskOnGridSrc 1041 // , vector<bool>& localMaskOnGridDest ) 1033 1042 { 1034 1043 int masked_ ; … … 1043 1052 masked_=masked ; 1044 1053 if (!mask(i)) masked_=false ; 1045 nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight, currentInd, localSrc, localDst, weight, localMaskOnGridSrc, localMaskOnGridDest) ; 1054 // nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight, currentInd, localSrc, localDst, weight, localMaskOnGridSrc, localMaskOnGridDest) ; 1055 nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, 1056 dstIndWeight, currentInd, localSrc, localDst, weight);//, localMaskOnGridDest) ; 1046 1057 } 1047 1058 } … … 1057 1068 for(vector<pair<int,double> >::iterator it = dstIndWeight[t][currentInd].begin(); it!=dstIndWeight[t][currentInd].end(); ++it) 1058 1069 { 1059 if (localMaskOnGridSrc(srcInd))1070 // if (localMaskOnGridSrc(srcInd)) 1060 1071 { 1061 1072 localSrc.push_back(srcIndCompressed) ; 1062 1073 localDst.push_back(it->first) ; 1063 1074 weight.push_back(it->second) ; 1064 localMaskOnGridDest[it->first]=true ;1075 // localMaskOnGridDest[it->first]=true ; 1065 1076 } 1066 1077 (it->first)++ ; … … 1068 1079 } 1069 1080 if (t < dstIndWeight.size()-1) t++ ; 1070 if (localMaskOnGridSrc(srcInd)) srcIndCompressed ++ ; 1081 // if (localMaskOnGridSrc(srcInd)) 1082 srcIndCompressed ++ ; 1071 1083 } 1072 1084 srcInd++ ; … … 1086 1098 masked_=masked ; 1087 1099 if (!mask(i)) masked_=false ; 1088 nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight , i, localSrc, localDst, weight, localMaskOnGridSrc, localMaskOnGridDest) ; 1100 nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, 1101 srcIndCompressed, nIndexSrc, t, dstIndWeight , i, localSrc, localDst, weight); 1102 // localMaskOnGridSrc, 1103 // localMaskOnGridDest) ; 1089 1104 } 1090 1105 } … … 1100 1115 for(vector<pair<int,double> >::iterator it = dstIndWeight[t][i].begin(); it!=dstIndWeight[t][i].end(); ++it) 1101 1116 { 1102 if (localMaskOnGridSrc(srcInd))1117 // if (localMaskOnGridSrc(srcInd)) 1103 1118 { 1104 1119 localSrc.push_back(srcIndCompressed) ; 1105 1120 localDst.push_back(it->first) ; 1106 1121 weight.push_back(it->second) ; 1107 localMaskOnGridDest[it->first]=true ;1122 // localMaskOnGridDest[it->first]=true ; 1108 1123 } 1109 1124 (it->first)++ ; … … 1111 1126 } 1112 1127 if (t < dstIndWeight.size()-1) t++ ; 1113 if (localMaskOnGridSrc(srcInd)) srcIndCompressed ++ ; 1128 // if (localMaskOnGridSrc(srcInd)) 1129 srcIndCompressed ++ ; 1114 1130 } 1115 1131 srcInd++ ;
Note: See TracChangeset
for help on using the changeset viewer.