Changeset 913
- Timestamp:
- 08/03/16 15:49:11 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/transformation/axis_algorithm_interpolate.cpp
r912 r913 272 272 CDomain* dom = domListP[0]; 273 273 size_t vecAxisValueSize = dom->i_index.numElements(); 274 size_t vecAxisValueSizeWithMask = 0; 275 for (size_t idx = 0; idx < vecAxisValueSize; ++idx) 276 { 277 if (dom->mask_1d(idx)) ++vecAxisValueSizeWithMask; 278 } 279 274 280 int niGlobDom = dom->ni_glo.getValue(); 275 vecAxisValue.resize(vecAxisValueSize );281 vecAxisValue.resize(vecAxisValueSizeWithMask); 276 282 if (transPosition_.empty()) 277 283 { 278 transPosition_.resize(vecAxisValueSize); 284 size_t indexMask = 0; 285 transPosition_.resize(vecAxisValueSizeWithMask); 279 286 for (size_t idx = 0; idx < vecAxisValueSize; ++idx) 280 287 { 281 transPosition_[idx].resize(1); 282 transPosition_[idx][0] = (dom->i_index)(idx) + niGlobDom * (dom->j_index)(idx); 283 } 284 } 285 this->transformationMapping_.resize(vecAxisValueSize); 286 this->transformationWeight_.resize(vecAxisValueSize); 287 this->transformationPosition_.resize(vecAxisValueSize); 288 if (dom->mask_1d(idx)) 289 { 290 transPosition_[indexMask].resize(1); 291 transPosition_[indexMask][0] = (dom->i_index)(idx) + niGlobDom * (dom->j_index)(idx); 292 ++indexMask; 293 } 294 295 } 296 } 297 this->transformationMapping_.resize(vecAxisValueSizeWithMask); 298 this->transformationWeight_.resize(vecAxisValueSizeWithMask); 299 this->transformationPosition_.resize(vecAxisValueSizeWithMask); 288 300 289 301 const CDistributionClient::GlobalLocalDataMap& globalLocalIndexSendToServer = grid->getDistributionClient()->getGlobalLocalDataSendToServer(); … … 292 304 std::vector<int> globalDimension = grid->getGlobalDimension(); 293 305 306 size_t indexMask = 0; 294 307 for (size_t idx = 0; idx < vecAxisValueSize; ++idx) 295 308 { 296 size_t axisValueSize = 0; 297 for (size_t jdx = 0; jdx < axisSrcSize; ++jdx) 298 { 299 size_t globalIndex = ((dom->i_index)(idx) + (dom->j_index)(idx)*globalDimension[0]) + (axisSrc_->index)(jdx)*globalDimension[0]*globalDimension[1]; 300 if (iteIndex != globalLocalIndexSendToServer.find(globalIndex)) 301 { 302 ++axisValueSize; 303 } 304 } 305 306 vecAxisValue[idx].resize(axisValueSize); 307 axisValueSize = 0; 308 for (size_t jdx = 0; jdx < axisSrcSize; ++jdx) 309 { 310 size_t globalIndex = ((dom->i_index)(idx) + (dom->j_index)(idx)*globalDimension[0]) + (axisSrc_->index)(jdx)*globalDimension[0]*globalDimension[1]; 311 itIndex = globalLocalIndexSendToServer.find(globalIndex); 312 if (iteIndex != itIndex) 313 { 314 vecAxisValue[idx](axisValueSize) = (*dataAuxInputs[0])(itIndex->second); 315 ++axisValueSize; 316 } 317 } 318 } 319 } 320 } 321 322 } 309 if (dom->mask_1d(idx)) 310 { 311 size_t axisValueSize = 0; 312 for (size_t jdx = 0; jdx < axisSrcSize; ++jdx) 313 { 314 size_t globalIndex = ((dom->i_index)(idx) + (dom->j_index)(idx)*globalDimension[0]) + (axisSrc_->index)(jdx)*globalDimension[0]*globalDimension[1]; 315 if (iteIndex != globalLocalIndexSendToServer.find(globalIndex)) 316 { 317 ++axisValueSize; 318 } 319 } 320 321 vecAxisValue[indexMask].resize(axisValueSize); 322 axisValueSize = 0; 323 for (size_t jdx = 0; jdx < axisSrcSize; ++jdx) 324 { 325 size_t globalIndex = ((dom->i_index)(idx) + (dom->j_index)(idx)*globalDimension[0]) + (axisSrc_->index)(jdx)*globalDimension[0]*globalDimension[1]; 326 itIndex = globalLocalIndexSendToServer.find(globalIndex); 327 if (iteIndex != itIndex) 328 { 329 vecAxisValue[indexMask](axisValueSize) = (*dataAuxInputs[0])(itIndex->second); 330 ++axisValueSize; 331 } 332 } 333 ++indexMask; 334 } 335 } 336 } 337 } 338 339 }
Note: See TracChangeset
for help on using the changeset viewer.