Changeset 831 for XIOS/trunk/src/transformation/grid_transformation.cpp
- Timestamp:
- 03/23/16 16:11:09 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/transformation/grid_transformation.cpp
r829 r831 392 392 // Recalculate the distribution of grid destination 393 393 CDistributionClient distributionClientDest(client->clientRank, gridDestination_); 394 const std::vector<size_t>& globalIndexGridDestSendToServer = distributionClientDest.getGlobalDataIndexSendToServer(); 395 const std::vector<int>& localIndexGridDestSendToServer = distributionClientDest.getLocalDataIndexSendToServer(); 394 const CDistributionClient::GlobalLocalDataMap& globalLocalIndexGridDestSendToServer = distributionClientDest.getGlobalLocalDataSendToServer(); 396 395 397 396 // ComputeTransformation of global index of each element … … 402 401 gridDestinationDimensionSize, 403 402 gridSrcDimensionSize, 404 globalIndexGridDestSendToServer, 405 localIndexGridDestSendToServer, 403 globalLocalIndexGridDestSendToServer, 406 404 globaIndexWeightFromDestToSource); 407 405 … … 443 441 CDistributionClient distributionClientDest(client->clientRank, gridDestination_); 444 442 const std::vector<int>& localMaskIndexOnClientDest = distributionClientDest.getLocalMaskIndexOnClient(); 445 const std::vector<size_t>& globalIndexOnClientDest = distributionClientDest.getGlobalDataIndexSendToServer();446 447 std::vector<size_t>::const_iterator itbArr, itArr, iteArr;443 const CDistributionClient::GlobalLocalDataMap& globalIndexOnClientDest = distributionClientDest.getGlobalLocalDataSendToServer(); 444 445 CDistributionClient::GlobalLocalDataMap::const_iterator itbArr, itArr, iteArr; 448 446 itbArr = globalIndexOnClientDest.begin(); 449 447 iteArr = globalIndexOnClientDest.end(); … … 454 452 for (itArr = itbArr; itArr != iteArr; ++itArr) 455 453 { 456 if (iteGlobalMap != currentGridIndexToOriginalGridIndex_.find( *itArr))457 { 458 const std::vector<std::pair<int, std::pair<size_t,double> > >& vecIndex = currentGridIndexToOriginalGridIndex_[ *itArr];454 if (iteGlobalMap != currentGridIndexToOriginalGridIndex_.find(itArr->first)) 455 { 456 const std::vector<std::pair<int, std::pair<size_t,double> > >& vecIndex = currentGridIndexToOriginalGridIndex_[itArr->first]; 459 457 for (int idx = 0; idx < vecIndex.size(); ++idx) 460 458 { … … 472 470 for (itArr = itbArr; itArr != iteArr; ++itArr) 473 471 { 474 if (iteGlobalMap != currentGridIndexToOriginalGridIndex_.find( *itArr))475 { 476 const std::vector<std::pair<int, std::pair<size_t,double> > >& vecIndex = currentGridIndexToOriginalGridIndex_[ *itArr];472 if (iteGlobalMap != currentGridIndexToOriginalGridIndex_.find(itArr->first)) 473 { 474 const std::vector<std::pair<int, std::pair<size_t,double> > >& vecIndex = currentGridIndexToOriginalGridIndex_[itArr->first]; 477 475 for (int idx = 0; idx < vecIndex.size(); ++idx) 478 476 { … … 731 729 732 730 const CTransformationMapping::ReceivedIndexMap& globalIndexToReceive = transformationMap.getGlobalIndexReceivedOnGridDestMapping(); 733 const CTransformationMapping::SentIndexMap& globalIndexToSend = transformationMap.getGlobalIndexSendToGridDestMapping();734 735 // CDistributionClient distributionClientDest(client->clientRank, gridDestination_);736 // CDistributionClient distributionClientSrc(client->clientRank, originalGridSource_);737 //738 // const std::vector<size_t>& globalIndexOnClientDest = distributionClientDest.getGlobalDataIndexSendToServer();739 // const std::vector<size_t>& globalIndexOnClientSrc = distributionClientSrc.getGlobalDataIndexSendToServer();740 741 // std::vector<size_t>::const_iterator itbArr, itArr, iteArr;742 // std::vector<int>::const_iterator itIndex, itbIndex, iteIndex;743 731 CTransformationMapping::ReceivedIndexMap::const_iterator itbMapRecv, itMapRecv, iteMapRecv; 744 745 // std::vector<int> permutIndex;746 // typedef XIOSBinarySearchWithIndex<size_t> BinarySearch;747 //748 // // Find out local index on grid destination (received)749 // XIOSAlgorithms::fillInIndex(globalIndexOnClientDest.size(), permutIndex);750 // XIOSAlgorithms::sortWithIndex<size_t, CVectorStorage>(globalIndexOnClientDest, permutIndex);751 // itbIndex = permutIndex.begin();752 // iteIndex = permutIndex.end();753 // BinarySearch searchClientDest(globalIndexOnClientDest);754 732 itbMapRecv = globalIndexToReceive.begin(); 755 733 iteMapRecv = globalIndexToReceive.end(); … … 762 740 { 763 741 int vecSize = ((itMapRecv->second)[i]).size(); 764 // std::vector<std::pair<int,double> > tmpVec;765 742 for (int idx = 0; idx < vecSize; ++idx) 766 743 { 767 744 const std::pair<int, std::pair<size_t,double> >& tmpPair = (itMapRecv->second)[i][idx]; 768 745 localIndexToReceiveOnGridDest_[sourceRank][i].push_back(make_pair(tmpPair.first, tmpPair.second.second)); 769 // size_t globalIndex = (itMapRecv->second)[i][idx].first;770 // double weight = (itMapRecv->second)[i][idx].second;771 // if (searchClientDest.search(itbIndex, iteIndex, globalIndex, itIndex))772 // {773 // tmpVec.push_back(make_pair(*itIndex, weight));774 // }775 746 } 776 // localIndexToReceiveOnGridDest_[sourceRank][i] = tmpVec;777 747 } 778 748 } 779 749 780 750 // Find out local index on grid source (to send) 751 const CTransformationMapping::SentIndexMap& globalIndexToSend = transformationMap.getGlobalIndexSendToGridDestMapping(); 781 752 CTransformationMapping::SentIndexMap::const_iterator itbMap, itMap, iteMap; 782 // XIOSAlgorithms::fillInIndex(globalIndexOnClientSrc.size(), permutIndex);783 // XIOSAlgorithms::sortWithIndex<size_t, CVectorStorage>(globalIndexOnClientSrc, permutIndex);784 // itbIndex = permutIndex.begin();785 // iteIndex = permutIndex.end();786 // BinarySearch searchClientSrc(globalIndexOnClientSrc);787 753 itbMap = globalIndexToSend.begin(); 788 754 iteMap = globalIndexToSend.end(); … … 794 760 for (int idx = 0; idx < vecSize; ++idx) 795 761 { 796 // if (searchClientSrc.search(itbIndex, iteIndex, itMap->second[idx], itIndex)) 797 // { 798 localIndexToSendFromGridSource_[destRank](idx) = itMap->second[idx].first; //*itIndex; 799 // } 762 localIndexToSendFromGridSource_[destRank](idx) = itMap->second[idx].first; 800 763 } 801 764 }
Note: See TracChangeset
for help on using the changeset viewer.