Changeset 1999 for XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/generic_algorithm_transformation.cpp
- Timestamp:
- 01/03/21 18:00:43 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/generic_algorithm_transformation.cpp
r1988 r1999 1143 1143 /////////////////////////////////////////////////////////////// 1144 1144 1145 CGridAlgorithm* CGenericAlgorithmTransformation::createGridAlgorithm(CGrid* gridSrc, CGrid* gridDst, int pos) 1146 { 1147 return new CGridAlgorithm(gridSrc, gridDst, pos, this) ; 1148 } 1145 1149 1146 1150 1147 1151 void CGenericAlgorithmTransformation::computeAlgorithm(CLocalView* srcView, CLocalView* dstView) 1152 { 1153 1154 this->computeRecvElement(srcView, dstView) ; 1155 /* 1156 transformConnector_ = new CTransformConnector(srcView, recvElement.getView(CElementView::FULL), CContext::getCurrent()->getIntraComm()) ; 1157 transformConnector_->computeConnector() ; 1158 */ 1159 weightTransformConnector_ = new CWeightTransformConnector(recvElement_->getView(CElementView::FULL), dstView, transformationMapping_[0], transformationWeight_[0]) ; 1160 } 1161 1162 void CGenericAlgorithmTransformation::computeRecvElement(CLocalView* srcView, CLocalView* dstView) 1148 1163 { 1149 1164 auto& srcMap = transformationMapping_[0] ; … … 1155 1170 int i=0 ; 1156 1171 for(size_t index : srcIndex) { srcArrayIndex(i) = index ; i++ ;} 1157 CLocalElement recvElement(CContext::getCurrent()->getIntraCommRank(), srcView->getGlobalSize(), srcArrayIndex) ; 1158 recvElement.addFullView() ; 1159 1160 transformConnector_ = new CTransformConnector(srcView, recvElement.getView(CElementView::FULL), CContext::getCurrent()->getIntraComm()) ; 1161 transformConnector_->computeConnector() ; 1162 weightTransformConnector_ = new CWeightTransformConnector( recvElement.getView(CElementView::FULL), dstView, transformationMapping_[0], transformationWeight_[0]) ; 1163 } 1164 1172 recvElement_ = new CLocalElement(CContext::getCurrent()->getIntraCommRank(), srcView->getGlobalSize(), srcArrayIndex) ; 1173 recvElement_->addFullView() ; 1174 } 1165 1175 1166 1176 void CGenericAlgorithmTransformation::apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, CArray<double,1>& dataOut) 1167 1177 { 1168 CArray<double,1> dataOutTmp ; 1169 transformConnector_->transfer(dimBefore, dimAfter, dataIn, dataOutTmp) ; 1170 weightTransformConnector_ -> transfer(dimBefore, dimAfter, dataOutTmp, dataOut) ; 1171 } 1172 1173 1174 1175 1176 1177 1178 } 1178 //CArray<double,1> dataOutTmp ; 1179 //transformConnector_->transfer(dimBefore, dimAfter, dataIn, dataOutTmp) ; 1180 weightTransformConnector_ -> transfer(dimBefore, dimAfter, dataIn, dataOut) ; 1181 } 1182 1183 }
Note: See TracChangeset
for help on using the changeset viewer.