Changeset 650 for XIOS/trunk/src/node/grid.cpp
- Timestamp:
- 07/24/15 16:40:05 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/grid.cpp
r632 r650 21 21 CGrid::CGrid(void) 22 22 : CObjectTemplate<CGrid>(), CGridAttributes() 23 , isChecked(false), isDomainAxisChecked(false) , storeIndex(1)23 , isChecked(false), isDomainAxisChecked(false) 24 24 , vDomainGroup_(), vAxisGroup_(), axisList_(), isAxisListSet(false), isDomListSet(false), clientDistribution_(0), isIndexSent(false) 25 25 , serverDistribution_(0), serverDistributionDescription_(0), clientServerMap_(0), writtenDataSize_(0), globalDim_() … … 31 31 } 32 32 33 CGrid::CGrid(const StdString 33 CGrid::CGrid(const StdString& id) 34 34 : CObjectTemplate<CGrid>(id), CGridAttributes() 35 , isChecked(false), isDomainAxisChecked(false) , storeIndex(1)35 , isChecked(false), isDomainAxisChecked(false) 36 36 , vDomainGroup_(), vAxisGroup_(), axisList_(), isAxisListSet(false), isDomListSet(false), clientDistribution_(0), isIndexSent(false) 37 37 , serverDistribution_(0), serverDistributionDescription_(0), clientServerMap_(0), writtenDataSize_(0), globalDim_() … … 45 45 CGrid::~CGrid(void) 46 46 { 47 deque< CArray<int, 1>* >::iterator it ;48 49 for(deque< CArray<int,1>* >::iterator it=storeIndex.begin(); it!=storeIndex.end();it++) delete *it ;50 for(map<int,CArray<size_t,1>* >::iterator it=outIndexFromClient.begin();it!=outIndexFromClient.end();++it) delete (it->second);51 52 47 if (0 != clientDistribution_) delete clientDistribution_; 53 48 if (0 != serverDistribution_) delete serverDistribution_; … … 58 53 ///--------------------------------------------------------------- 59 54 60 StdString CGrid::GetName(void) { return (StdString("grid")); } 61 StdString CGrid::GetDefName(void) { return (CGrid::GetName()); } 62 ENodeType CGrid::GetType(void) { return (eGrid); } 63 64 //---------------------------------------------------------------- 65 66 const std::deque< CArray<int,1>* > & CGrid::getStoreIndex(void) const 67 { 68 return (this->storeIndex ); 69 } 55 StdString CGrid::GetName(void) { return StdString("grid"); } 56 StdString CGrid::GetDefName(void) { return CGrid::GetName(); } 57 ENodeType CGrid::GetType(void) { return eGrid; } 70 58 71 59 //--------------------------------------------------------------- 72 // 73 // const std::deque< CArray<int,1>* > & CGrid::getOutIIndex(void) const 74 // { 75 // return (this->out_i_index ); 76 // } 77 // 78 // //--------------------------------------------------------------- 79 // 80 // const std::deque< CArray<int,1>* > & CGrid::getOutJIndex(void) const 81 // { 82 // return (this->out_j_index ); 83 // } 84 // 85 // //--------------------------------------------------------------- 86 // 87 // const std::deque< CArray<int,1>* > & CGrid::getOutLIndex(void) const 88 // { 89 // return (this->out_l_index ); 90 // } 91 // 92 // //--------------------------------------------------------------- 93 // 94 // const CAxis* CGrid::getRelAxis (void) const 95 // { 96 // return (this->axis ); 97 // } 98 99 // //--------------------------------------------------------------- 100 // 101 // const CDomain* CGrid::getRelDomain(void) const 102 // { 103 // return (this->domain ); 104 // } 60 61 StdSize CGrid::getDimension(void) const 62 { 63 return globalDim_.size(); 64 } 105 65 106 66 //--------------------------------------------------------------- 107 67 108 // bool CGrid::hasAxis(void) const109 // {110 // return (this->withAxis);111 // }112 113 //---------------------------------------------------------------114 115 StdSize CGrid::getDimension(void) const116 {117 return (globalDim_.size());118 }119 120 //---------------------------------------------------------------121 122 /*123 std::vector<StdSize> CGrid::getLocalShape(void) const124 {125 std::vector<StdSize> retvalue;126 retvalue.push_back(domain->zoom_ni_loc.getValue());127 retvalue.push_back(domain->zoom_nj_loc.getValue());128 if (this->withAxis)129 retvalue.push_back(this->axis->zoom_size.getValue());130 return (retvalue);131 }132 */133 //---------------------------------------------------------------134 135 /*136 StdSize CGrid::getLocalSize(void) const137 {138 StdSize retvalue = 1;139 std::vector<StdSize> shape_ = this->getLocalShape();140 for (StdSize s = 0; s < shape_.size(); s++)141 retvalue *= shape_[s];142 return (retvalue);143 }144 */145 //---------------------------------------------------------------146 /*147 std::vector<StdSize> CGrid::getGlobalShape(void) const148 {149 std::vector<StdSize> retvalue;150 retvalue.push_back(domain->ni.getValue());151 retvalue.push_back(domain->nj.getValue());152 if (this->withAxis)153 retvalue.push_back(this->axis->size.getValue());154 return (retvalue);155 }156 */157 //---------------------------------------------------------------158 159 /*160 StdSize CGrid::getGlobalSize(void) const161 {162 StdSize retvalue = 1;163 std::vector<StdSize> shape_ = this->getGlobalShape();164 for (StdSize s = 0; s < shape_.size(); s++)165 retvalue *= shape_[s];166 return (retvalue);167 }168 */169 68 StdSize CGrid::getDataSize(void) const 170 69 { … … 228 127 void CGrid::checkMaskIndex(bool doSendingIndex) 229 128 { 230 CContext* context = CContext::getCurrent() 231 CContextClient* client=context->client 129 CContext* context = CContext::getCurrent(); 130 CContextClient* client=context->client; 232 131 233 132 if (isScalarGrid()) … … 253 152 if (context->hasClient) 254 153 { 255 checkMask() ; 256 this->computeIndex() ; 257 this->storeIndex.push_front(new CArray<int,1>() ); 154 checkMask(); 155 this->computeIndex(); 258 156 } 259 157 this->isChecked = true; … … 382 280 void CGrid::computeIndex(void) 383 281 { 384 CContext* context = CContext::getCurrent() 385 CContextClient* client =context->client;282 CContext* context = CContext::getCurrent(); 283 CContextClient* client = context->client; 386 284 387 285 // First of all, compute distribution on client side … … 477 375 CGrid* grid = createGrid(vecDom, vecAxis, axisDomainOrder); 478 376 479 return (grid);377 return grid; 480 378 } 481 379 … … 487 385 CGrid* grid = createGrid(vecDom, vecAxis, axisDomainOrder); 488 386 489 return (grid);387 return grid; 490 388 } 491 389 … … 494 392 StdString new_id = StdString("__"); 495 393 if (!domains.empty()) for (int i = 0; i < domains.size(); ++i) new_id += domains[i]->getId() + StdString("_"); 496 if (!axis.empty()) for (int i = 0; i < axis.size(); ++i) new_id += axis[i]->getId() + StdString("_") 394 if (!axis.empty()) for (int i = 0; i < axis.size(); ++i) new_id += axis[i]->getId() + StdString("_"); 497 395 if (domains.empty() && axis.empty()) new_id += StdString("scalar_grid"); 498 396 new_id += StdString("_"); 499 397 500 CGrid* grid = CGridGroup::get("grid_definition")->createChild(new_id) 398 CGrid* grid = CGridGroup::get("grid_definition")->createChild(new_id); 501 399 grid->setDomainList(domains); 502 400 grid->setAxisList(axis); … … 521 419 grid->computeGridGlobalDimension(domains, axis, grid->axis_domain_order); 522 420 523 return (grid);421 return grid; 524 422 } 525 423 526 424 CDomainGroup* CGrid::getVirtualDomainGroup() const 527 425 { 528 return (this->vDomainGroup_);426 return this->vDomainGroup_; 529 427 } 530 428 531 429 CAxisGroup* CGrid::getVirtualAxisGroup() const 532 430 { 533 return (this->vAxisGroup_);431 return this->vAxisGroup_; 534 432 } 535 433 536 434 void CGrid::outputField(int rank, const CArray<double, 1>& stored, double* field) 537 435 { 538 CArray<size_t,1>& out_i=*outIndexFromClient[rank];436 const CArray<size_t,1>& out_i = outIndexFromClient[rank]; 539 437 StdSize numElements = stored.numElements(); 540 438 for (StdSize n = 0; n < numElements; ++n) 541 439 { 542 *(field+out_i(n))= stored(n);440 field[out_i(n)] = stored(n); 543 441 } 544 442 } … … 546 444 void CGrid::inputField(int rank, const double* const field, CArray<double,1>& stored) 547 445 { 548 CArray<size_t,1>& out_i = *outIndexFromClient[rank];446 const CArray<size_t,1>& out_i = outIndexFromClient[rank]; 549 447 StdSize numElements = stored.numElements(); 550 448 for (StdSize n = 0; n < numElements; ++n) 551 449 { 552 stored(n) = *(field+out_i(n));450 stored(n) = field[out_i(n)]; 553 451 } 554 452 } … … 556 454 //---------------------------------------------------------------- 557 455 558 559 void CGrid::storeField_arr 560 (const double * const data, CArray<double, 1>& stored) const 561 { 562 const StdSize size = storeIndex_client.numElements() ; 563 564 stored.resize(size) ; 565 for(StdSize i = 0; i < size; i++) stored(i) = data[storeIndex_client(i)] ; 566 } 567 568 void CGrid::restoreField_arr 569 (const CArray<double, 1>& stored, double * const data) const 570 { 571 const StdSize size = storeIndex_client.numElements() ; 572 573 for(StdSize i = 0; i < size; i++) data[storeIndex_client(i)] = stored(i) ; 456 void CGrid::storeField_arr(const double* const data, CArray<double, 1>& stored) const 457 { 458 const StdSize size = storeIndex_client.numElements(); 459 460 stored.resize(size); 461 for(StdSize i = 0; i < size; i++) stored(i) = data[storeIndex_client(i)]; 462 } 463 464 void CGrid::restoreField_arr(const CArray<double, 1>& stored, double* const data) const 465 { 466 const StdSize size = storeIndex_client.numElements(); 467 468 for(StdSize i = 0; i < size; i++) data[storeIndex_client(i)] = stored(i); 574 469 } 575 470 … … 591 486 void CGrid::sendIndexScalarGrid() 592 487 { 593 CContext* context = CContext::getCurrent() ; 594 CContextClient* client=context->client ; 595 596 CEventClient event(getType(),EVENT_ID_INDEX); 597 list<shared_ptr<CMessage> > list_msg ; 598 list< CArray<size_t,1>* > listOutIndex; 488 CContext* context = CContext::getCurrent(); 489 CContextClient* client = context->client; 490 491 CEventClient event(getType(), EVENT_ID_INDEX); 492 list<CMessage> listMsg; 493 list<CArray<size_t,1> > listOutIndex; 494 599 495 if (0 == client->clientRank) 600 496 { … … 602 498 { 603 499 int nb = 1; 604 CArray<size_t, 1> outGlobalIndexOnServer(nb); 605 CArray<int, 1> outLocalIndexToServer(nb); 500 storeIndex_toSrv.insert(std::make_pair(rank, CArray<int,1>(nb))); 501 listOutIndex.push_back(CArray<size_t,1>(nb)); 502 503 CArray<int, 1>& outLocalIndexToServer = storeIndex_toSrv[rank]; 504 CArray<size_t, 1>& outGlobalIndexOnServer = listOutIndex.back(); 505 606 506 for (int k = 0; k < nb; ++k) 607 507 { … … 610 510 } 611 511 612 storeIndex_toSrv.insert( pair<int,CArray<int,1>* >(rank,new CArray<int,1>(outLocalIndexToServer) )); 613 listOutIndex.push_back(new CArray<size_t,1>(outGlobalIndexOnServer)); 614 615 list_msg.push_back(shared_ptr<CMessage>(new CMessage)); 616 *list_msg.back()<<getId()<<isDataDistributed_<<*listOutIndex.back(); 617 618 event.push(rank, 1, *list_msg.back()); 619 } 512 listMsg.push_back(CMessage()); 513 listMsg.back() << getId( )<< isDataDistributed_ << listOutIndex.back(); 514 515 event.push(rank, 1, listMsg.back()); 516 } 517 620 518 client->sendEvent(event); 621 519 } 622 520 else 623 521 client->sendEvent(event); 624 625 for(list<CArray<size_t,1>* >::iterator it=listOutIndex.begin();it!=listOutIndex.end();++it) delete *it ;626 522 } 627 523 628 524 void CGrid::sendIndex(void) 629 525 { 630 CContext* context = CContext::getCurrent() 631 CContextClient* client =context->client;632 633 CEventClient event(getType(), EVENT_ID_INDEX);634 int rank 635 list< shared_ptr<CMessage> > list_msg;636 list< CArray<size_t,1>*> listOutIndex;526 CContext* context = CContext::getCurrent(); 527 CContextClient* client = context->client; 528 529 CEventClient event(getType(), EVENT_ID_INDEX); 530 int rank; 531 list<CMessage> listMsg; 532 list<CArray<size_t,1> > listOutIndex; 637 533 const std::map<int, std::vector<size_t> >& globalIndexOnServer = clientServerMap_->getGlobalIndexOnServer(); 638 534 const CArray<int,1>& localIndexSendToServer = clientDistribution_->getLocalDataIndexSendToServer(); … … 643 539 if (0 == client->clientRank) 644 540 { 645 CArray<size_t, 1> outGlobalIndexOnServer = globalIndexSendToServer; 646 CArray<int,1> outLocalIndexToServer = localIndexSendToServer; 541 const CArray<size_t, 1>& outGlobalIndexOnServer = globalIndexSendToServer; 542 const CArray<int,1>& outLocalIndexToServer = localIndexSendToServer; 543 647 544 for (rank = 0; rank < client->serverSize; ++rank) 648 545 { 649 storeIndex_toSrv.insert( pair<int,CArray<int,1>* >(rank,new CArray<int,1>(outLocalIndexToServer))); 650 listOutIndex.push_back(new CArray<size_t,1>(outGlobalIndexOnServer)); 651 652 list_msg.push_back(shared_ptr<CMessage>(new CMessage)); 653 *list_msg.back()<<getId()<<isDataDistributed_<<*listOutIndex.back(); 654 655 event.push(rank, 1, *list_msg.back()); 656 } 546 storeIndex_toSrv.insert(std::make_pair(rank, CArray<int,1>(outLocalIndexToServer))); 547 listOutIndex.push_back(CArray<size_t,1>(outGlobalIndexOnServer)); 548 549 listMsg.push_back(CMessage()); 550 listMsg.back() << getId() << isDataDistributed_ << listOutIndex.back(); 551 552 event.push(rank, 1, listMsg.back()); 553 } 554 657 555 client->sendEvent(event); 658 556 } … … 669 567 std::map<int,std::vector<int> >localIndexTmp; 670 568 std::map<int,std::vector<size_t> > globalIndexTmp; 569 671 570 for (; itGlobalMap != iteGlobalMap; ++itGlobalMap) 672 571 { … … 691 590 nb = globalIndexTmp[rank].size(); 692 591 693 CArray<size_t, 1> outGlobalIndexOnServer(nb); 694 CArray<int, 1> outLocalIndexToServer(nb); 592 storeIndex_toSrv.insert(make_pair(rank, CArray<int,1>(nb))); 593 listOutIndex.push_back(CArray<size_t,1>(nb)); 594 595 CArray<int, 1>& outLocalIndexToServer = storeIndex_toSrv[rank]; 596 CArray<size_t, 1>& outGlobalIndexOnServer = listOutIndex.back(); 597 695 598 for (int k = 0; k < nb; ++k) 696 599 { … … 699 602 } 700 603 701 storeIndex_toSrv.insert( pair<int,CArray<int,1>* >(rank,new CArray<int,1>(outLocalIndexToServer) )); 702 listOutIndex.push_back(new CArray<size_t,1>(outGlobalIndexOnServer)); 703 704 list_msg.push_back(shared_ptr<CMessage>(new CMessage)); 705 *list_msg.back()<<getId()<<isDataDistributed_<<*listOutIndex.back(); 706 707 event.push(rank, nbSenders[rank], *list_msg.back()); 604 listMsg.push_back(CMessage()); 605 listMsg.back() << getId() << isDataDistributed_ << listOutIndex.back(); 606 607 event.push(rank, nbSenders[rank], listMsg.back()); 708 608 } 709 609 710 610 client->sendEvent(event); 711 611 } 712 713 for(list<CArray<size_t,1>* >::iterator it=listOutIndex.begin();it!=listOutIndex.end();++it) delete *it ;714 612 } 715 613 … … 721 619 722 620 list<CEventServer::SSubEvent>::iterator it; 723 for (it =event.subEvents.begin();it!=event.subEvents.end();++it)621 for (it = event.subEvents.begin(); it != event.subEvents.end(); ++it) 724 622 { 725 623 ranks.push_back(it->rank); … … 728 626 buffers.push_back(buffer); 729 627 } 730 get(gridId)->recvIndex(ranks, buffers) 628 get(gridId)->recvIndex(ranks, buffers); 731 629 } 732 630 … … 768 666 Verify whether one server need to write data 769 667 There are some cases on which one server has nodata to write. For example, when we 770 just only want to zoom on a domain.668 just only want to zoom on a domain. 771 669 */ 772 670 bool CGrid::doGridHaveDataToWrite() 773 671 { 774 // size_t ssize = 0;775 // for (map<int, CArray<size_t, 1>* >::const_iterator it = outIndexFromClient.begin();776 // it != outIndexFromClient.end(); ++it)777 // {778 // ssize += (it->second)->numElements();779 // }780 // return (0 != ssize);781 672 return (0 != writtenDataSize_); 782 673 } … … 785 676 Return size of data which is written on each server 786 677 Whatever dimension of a grid, data which are written on server must be presented as 787 an one dimension array.788 \return size of data written on server678 an one dimension array. 679 \return size of data written on server 789 680 */ 790 681 size_t CGrid::getWrittenDataSize() const … … 828 719 CArray<size_t,1> outIndex; 829 720 buffer >> outIndex; 830 outIndexFromClient.insert(std:: pair<int, CArray<size_t,1>* >(rank, new CArray<size_t,1>(outIndex)));721 outIndexFromClient.insert(std::make_pair(rank, outIndex)); 831 722 std::vector<int> nZoomBegin(1,0), nZoomSize(1,1), nGlob(1,1), nZoomBeginGlobal(1,0); 832 723 serverDistribution_ = new CDistributionServer(server->intraCommRank, nZoomBegin, nZoomSize, … … 899 790 writtenDataSize_ += dataSize; 900 791 901 outIndexFromClient.insert(std:: pair<int, CArray<size_t,1>* >(rank, new CArray<size_t,1>(outIndex)));792 outIndexFromClient.insert(std::make_pair(rank, outIndex)); 902 793 connectedDataSize_[rank] = outIndex.numElements(); 903 794 } … … 916 807 { 917 808 918 if (SuperClass::dispatchEvent(event)) return true 809 if (SuperClass::dispatchEvent(event)) return true; 919 810 else 920 811 { … … 922 813 { 923 814 case EVENT_ID_INDEX : 924 recvIndex(event) 925 return true 926 break 815 recvIndex(event); 816 return true; 817 break; 927 818 928 819 case EVENT_ID_ADD_DOMAIN : 929 recvAddDomain(event) 930 return true 931 break 820 recvAddDomain(event); 821 return true; 822 break; 932 823 933 824 case EVENT_ID_ADD_AXIS : 934 recvAddAxis(event) 935 return true 936 break 825 recvAddAxis(event); 826 return true; 827 break; 937 828 default : 938 829 ERROR("bool CDomain::dispatchEvent(CEventServer& event)", 939 <<"Unknown Event") ; 940 return false ; 941 } 942 } 943 } 944 945 void CGrid::inputFieldServer(const std::deque< CArray<double, 1>* > storedClient, CArray<double, 1>& storedServer) const 946 { 947 if ((this->storeIndex.size()-1 ) != storedClient.size()) 948 ERROR("void CGrid::inputFieldServer(const std::deque< CArray<double, 1>* > storedClient, CArray<double, 1>& storedServer) const", 949 << "[ Expected received field = " << (this->storeIndex.size()-1) << ", " 950 << "[ received fiedl = " << storedClient.size() << "] " 951 << "Data from clients are missing!") ; 952 storedServer.resize(storeIndex[0]->numElements()); 953 954 for (StdSize i = 0, n = 0; i < storedClient.size(); i++) 955 for (StdSize j = 0; j < storedClient[i]->numElements(); j++) 956 storedServer(n++) = (*storedClient[i])(j); 957 } 958 959 void CGrid::outputFieldToServer(CArray<double,1>& fieldIn, int rank, CArray<double,1>& fieldOut) 960 { 961 CArray<int,1>& index = *storeIndex_toSrv[rank] ; 962 int nb=index.numElements() ; 963 fieldOut.resize(nb) ; 964 965 for(int k=0;k<nb;k++) fieldOut(k)=fieldIn(index(k)) ; 966 } 830 << "Unknown Event"); 831 return false; 832 } 833 } 834 } 835 967 836 ///--------------------------------------------------------------- 968 837 969 838 CDomain* CGrid::addDomain(const std::string& id) 970 839 { 971 return vDomainGroup_->createChild(id) 840 return vDomainGroup_->createChild(id); 972 841 } 973 842 974 843 CAxis* CGrid::addAxis(const std::string& id) 975 844 { 976 return vAxisGroup_->createChild(id) 845 return vAxisGroup_->createChild(id); 977 846 } 978 847 … … 1008 877 void CGrid::sendAddDomain(const string& id) 1009 878 { 1010 CContext* context=CContext::getCurrent() 879 CContext* context=CContext::getCurrent(); 1011 880 1012 881 if (! context->hasServer ) 1013 882 { 1014 CContextClient* client=context->client 1015 1016 CEventClient event(this->getType(),EVENT_ID_ADD_DOMAIN) 883 CContextClient* client=context->client; 884 885 CEventClient event(this->getType(),EVENT_ID_ADD_DOMAIN); 1017 886 if (client->isServerLeader()) 1018 887 { 1019 CMessage msg 1020 msg<<this->getId() 1021 msg<<id 888 CMessage msg; 889 msg<<this->getId(); 890 msg<<id; 1022 891 const std::list<int>& ranks = client->getRanksServerLeader(); 1023 892 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1024 893 event.push(*itRank,1,msg); 1025 client->sendEvent(event) 894 client->sendEvent(event); 1026 895 } 1027 else client->sendEvent(event) 896 else client->sendEvent(event); 1028 897 } 1029 898 } … … 1035 904 void CGrid::sendAddAxis(const string& id) 1036 905 { 1037 CContext* context=CContext::getCurrent() 906 CContext* context=CContext::getCurrent(); 1038 907 1039 908 if (! context->hasServer ) 1040 909 { 1041 CContextClient* client=context->client 1042 1043 CEventClient event(this->getType(),EVENT_ID_ADD_AXIS) 910 CContextClient* client=context->client; 911 912 CEventClient event(this->getType(),EVENT_ID_ADD_AXIS); 1044 913 if (client->isServerLeader()) 1045 914 { 1046 CMessage msg 1047 msg<<this->getId() 1048 msg<<id 915 CMessage msg; 916 msg<<this->getId(); 917 msg<<id; 1049 918 const std::list<int>& ranks = client->getRanksServerLeader(); 1050 919 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1051 920 event.push(*itRank,1,msg); 1052 client->sendEvent(event) 921 client->sendEvent(event); 1053 922 } 1054 else client->sendEvent(event) 923 else client->sendEvent(event); 1055 924 } 1056 925 } … … 1063 932 { 1064 933 1065 CBufferIn* buffer =event.subEvents.begin()->buffer;934 CBufferIn* buffer = event.subEvents.begin()->buffer; 1066 935 string id; 1067 *buffer >>id;1068 get(id)->recvAddDomain(*buffer) 936 *buffer >> id; 937 get(id)->recvAddDomain(*buffer); 1069 938 } 1070 939 … … 1075 944 void CGrid::recvAddDomain(CBufferIn& buffer) 1076 945 { 1077 string id 1078 buffer >>id;1079 addDomain(id) 946 string id; 947 buffer >> id; 948 addDomain(id); 1080 949 } 1081 950 … … 1087 956 { 1088 957 1089 CBufferIn* buffer =event.subEvents.begin()->buffer;958 CBufferIn* buffer = event.subEvents.begin()->buffer; 1090 959 string id; 1091 *buffer >>id;1092 get(id)->recvAddAxis(*buffer) 960 *buffer >> id; 961 get(id)->recvAddAxis(*buffer); 1093 962 } 1094 963 … … 1099 968 void CGrid::recvAddAxis(CBufferIn& buffer) 1100 969 { 1101 string id 1102 buffer >>id;1103 addAxis(id) 970 string id; 971 buffer >> id; 972 addAxis(id); 1104 973 } 1105 974 … … 1169 1038 ERROR("CGrid::transformGrid(CGrid* transformGridSrc)", 1170 1039 << "Two grids have different dimension size" 1171 << "Dimension of grid destination " << this->getId() << " is " << axis_domain_order.numElements() << std::endl1172 << "Dimension of grid source " << transformGridSrc->getId() << " is " << transformGridSrc->axis_domain_order.numElements());1040 << "Dimension of grid destination " << this->getId() << " is " << axis_domain_order.numElements() << std::endl 1041 << "Dimension of grid source " << transformGridSrc->getId() << " is " << transformGridSrc->axis_domain_order.numElements()); 1173 1042 } 1174 1043 else … … 1178 1047 if (axis_domain_order(i) != (transformGridSrc->axis_domain_order)(i)) 1179 1048 ERROR("CGrid::transformGrid(CGrid* transformGridSrc)", 1180 << "Grids " << this->getId() <<" and " << transformGridSrc->getId()1049 << "Grids " << this->getId() << " and " << transformGridSrc->getId() 1181 1050 << " don't have elements in the same order"); 1182 1051 } … … 1229 1098 int sizeDom = domList.size(); 1230 1099 domList_.resize(sizeDom); 1231 for (int i = 0 1100 for (int i = 0; i < sizeDom; ++i) 1232 1101 { 1233 1102 domList_[i] = domList[i]->getId(); … … 1302 1171 } 1303 1172 1304 void CGrid::parse(xml::CXMLNode 1173 void CGrid::parse(xml::CXMLNode& node) 1305 1174 { 1306 1175 SuperClass::parse(node); … … 1323 1192 this->getVirtualAxisGroup()->parseChild(node); 1324 1193 } 1325 } while (node.goToNextElement()) 1194 } while (node.goToNextElement()); 1326 1195 node.goToParentElement(); 1327 1196 } … … 1340 1209 setAxisList(); 1341 1210 } 1342 1343 1211 } // namespace xios
Note: See TracChangeset
for help on using the changeset viewer.