Changeset 2267 for XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution
- Timestamp:
- 12/01/21 16:52:24 (3 years ago)
- Location:
- XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution
- Files:
-
- 33 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/distributed_view.cpp
r1936 r2267 6 6 { 7 7 8 CDistributedView::CDistributedView( CDistributedElement*parent, CElementView::type, const std::map<int,CArray<int,1>>& indexView)8 CDistributedView::CDistributedView(shared_ptr<CDistributedElement> parent, CElementView::type, const std::map<int,CArray<int,1>>& indexView) 9 9 : globalIndex_(parent->globalIndex_), globalSize_(parent->globalSize_), localSize_(parent->localSize_) 10 10 { … … 16 16 } 17 17 18 CDistributedView::CDistributedView( CDistributedElement*parent, CElementView::type, const std::map<int,CArray<bool,1>>& maskView)18 CDistributedView::CDistributedView(shared_ptr<CDistributedElement> parent, CElementView::type, const std::map<int,CArray<bool,1>>& maskView) 19 19 : globalIndex_(parent->globalIndex_), globalSize_(parent->globalSize_), localSize_(parent->localSize_) 20 20 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/distributed_view.hpp
r2180 r2267 14 14 public: 15 15 16 CDistributedView( CDistributedElement*parent, CElementView::type type, const std::map<int,CArray<int,1>>& indexView) ;17 CDistributedView( CDistributedElement*parent, CElementView::type type, const std::map<int,CArray<bool,1>>& maskView) ;16 CDistributedView(shared_ptr<CDistributedElement> parent, CElementView::type type, const std::map<int,CArray<int,1>>& indexView) ; 17 CDistributedView(shared_ptr<CDistributedElement> parent, CElementView::type type, const std::map<int,CArray<bool,1>>& maskView) ; 18 18 19 19 std::map<int,CArray<int,1>>& getIndex(void) { return index_ ;} … … 48 48 } 49 49 50 void getGlobalIndex(int rank, vector<size_t>& globalIndex, size_t sliceIndex, size_t* sliceSize, CDistributedView** view, int pos)50 void getGlobalIndex(int rank, vector<size_t>& globalIndex, size_t sliceIndex, size_t* sliceSize, shared_ptr<CDistributedView>* view, int pos) 51 51 { 52 52 // using map can be expensive, find an otherway later -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/element.cpp
r1930 r2267 28 28 void CDistributedElement::addView(CElementView::type type, std::map<int, CArray<int,1>>& indexView) 29 29 { 30 views_[type] = new CDistributedView(this, type, indexView) ;30 views_[type] = make_shared<CDistributedView>(shared_from_this(), type, indexView) ; 31 31 } 32 32 33 33 void CDistributedElement::addView(CElementView::type type, std::map<int, CArray<bool,1>>& maskView) 34 34 { 35 views_[type] = new CDistributedView(this, type, maskView) ;35 views_[type] = make_shared<CDistributedView>(shared_from_this(), type, maskView) ; 36 36 } 37 37 … … 120 120 void CLocalElement::addView(CElementView::type type, CArray<int,1>& indexView) 121 121 { 122 views_[type] = new CLocalView(this, type, indexView) ;122 views_[type] = make_shared<CLocalView>(static_pointer_cast<CLocalElement>(shared_from_this()), type, indexView) ; 123 123 } 124 124 125 125 void CLocalElement::addView(CElementView::type type, CArray<bool,1>& maskView) 126 126 { 127 views_[type] = new CLocalView(this, type, maskView) ;127 views_[type] = make_shared<CLocalView>(static_pointer_cast<CLocalElement>(shared_from_this()), type, maskView) ; 128 128 } 129 129 … … 137 137 } 138 138 139 CLocalConnector* CLocalElement::getConnector(CElementView::type srcType, CElementView::type dstType) 139 shared_ptr<CLocalView> CLocalElement::getView(CElementView::type type) 140 { 141 if (views_[(size_t)type]==nullptr) { ERROR("CLocalElement::getView(CElementView::type type)",<<"View is not initialized");} 142 else return static_pointer_cast<CLocalView>(views_[(size_t)type]) ; 143 } 144 145 shared_ptr<CLocalConnector> CLocalElement::getConnector(CElementView::type srcType, CElementView::type dstType) 140 146 { 141 147 auto newPair = pair<CElementView::type,CElementView::type>(srcType,dstType); … … 143 149 if (it==connectors_.end()) 144 150 { 145 auto insertPair=pair<pair<CElementView::type,CElementView::type>, CLocalConnector*>(newPair,new CLocalConnector(getView(srcType),getView(dstType))) ;151 auto insertPair=pair<pair<CElementView::type,CElementView::type>, shared_ptr<CLocalConnector>>(newPair,make_shared<CLocalConnector>(getView(srcType),getView(dstType))) ; 146 152 it=connectors_.insert(insertPair).first ; 147 153 it->second->computeConnector() ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/element.hpp
r1999 r2267 15 15 class CLocalConnector ; 16 16 17 class CDistributedElement 17 class CDistributedElement : public std::enable_shared_from_this<CDistributedElement> 18 18 { 19 19 … … 22 22 std::map<int, int> localSize_ ; 23 23 size_t globalSize_ ; 24 std::vector< CDistributedView*> views_= std::vector<CDistributedView*>(CElementView::numViewType_) ;24 std::vector<shared_ptr<CDistributedView>> views_= std::vector<shared_ptr<CDistributedView>>(CElementView::numViewType_) ; 25 25 CDistributedElement(void) {} ; 26 26 … … 34 34 std::map<int, CArray<size_t,1>>& getGlobalIndex(void) { return globalIndex_;} 35 35 36 CDistributedView*getView(CElementView::type type)36 shared_ptr<CDistributedView> getView(CElementView::type type) 37 37 { 38 38 if (views_[(size_t)type]==nullptr) { ERROR("CDistributedElement::getView(CElementView::type type)",<<"View is not initialized");} … … 51 51 { 52 52 // keep local connector inside 53 std::map<pair<CElementView::type,CElementView::type>, CLocalConnector*> connectors_ ;53 std::map<pair<CElementView::type,CElementView::type>, shared_ptr<CLocalConnector>> connectors_ ; 54 54 55 55 public: … … 61 61 void addView(CElementView::type type, CArray<bool,1>& maskView) ; 62 62 void addFullView(void) ; 63 CLocalView* getView(CElementView::type type) 64 { 63 64 shared_ptr<CLocalView> getView(CElementView::type type) ; 65 /* { 65 66 if (views_[(size_t)type]==nullptr) { ERROR("CLocalElement::getView(CElementView::type type)",<<"View is not initialized");} 66 else return (CLocalView*) views_[(size_t)type] ;67 else return static_pointer_cast<CLocalView>(views_[(size_t)type]) ; 67 68 } 68 69 CLocalConnector*getConnector(CElementView::type srcType, CElementView::type dstType) ;69 */ 70 shared_ptr<CLocalConnector> getConnector(CElementView::type srcType, CElementView::type dstType) ; 70 71 71 72 private : -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/gatherer_connector.hpp
r2118 r2267 17 17 { 18 18 private: 19 CDistributedView*srcView_;20 CLocalView*dstView_;19 shared_ptr<CDistributedView> srcView_; 20 shared_ptr<CLocalView> dstView_; 21 21 map<int, vector<int>> connector_ ; 22 22 map<int, vector<bool>> mask_ ; // mask is on src view … … 25 25 26 26 public: 27 CGathererConnector( CDistributedView* srcView, CLocalView*dstView) : srcView_(srcView), dstView_(dstView) {} ;27 CGathererConnector(shared_ptr<CDistributedView> srcView, shared_ptr<CLocalView> dstView) : srcView_(srcView), dstView_(dstView) {} ; 28 28 void computeConnector(void) ; 29 29 … … 75 75 76 76 template<typename T> 77 void transfer(int rank, CGathererConnector** connectors, int nConnectors, const T* input, T* output)77 void transfer(int rank, shared_ptr<CGathererConnector>* connectors, int nConnectors, const T* input, T* output) 78 78 { 79 79 auto& connector = connector_[rank] ; // probably costly, find a better way to avoid the map … … 111 111 112 112 // hook for transfering mask in grid connector, maybe find an other way to doing that... 113 void transfer_or(int rank, CGathererConnector** connectors, int nConnectors, const bool* input, bool* output)113 void transfer_or(int rank, shared_ptr<CGathererConnector>* connectors, int nConnectors, const bool* input, bool* output) 114 114 { 115 115 auto& connector = connector_[rank] ; // probably costly, find a better way to avoid the map … … 210 210 } 211 211 212 int getSrcSliceSize(int rank, CGathererConnector** connectors, int nConnectors)212 int getSrcSliceSize(int rank, shared_ptr<CGathererConnector>* connectors, int nConnectors) 213 213 { if (nConnectors==0) return srcSize_[rank] ; else return srcSize_[rank] * (*(connectors-1))->getSrcSliceSize(rank, connectors-1,nConnectors-1) ; } 214 214 215 int getDstSliceSize( CGathererConnector** connectors, int nConnectors)215 int getDstSliceSize(shared_ptr<CGathererConnector>* connectors, int nConnectors) 216 216 { if (nConnectors==0) return dstSize_ ; else return dstSize_ * (*(connectors-1))->getDstSliceSize(connectors-1,nConnectors-1) ; } 217 217 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_client_server_remote_connector.cpp
r2236 r2267 10 10 * \param remoteSize Size of the remote communicator 11 11 */ 12 CGridClientServerRemoteConnector::CGridClientServerRemoteConnector(vector<CLocalView*>& srcFullView, vector<CLocalView*>& srcWorkflowView, vector<CDistributedView*>& dstView, MPI_Comm localComm, int remoteSize) 12 CGridClientServerRemoteConnector::CGridClientServerRemoteConnector( vector<shared_ptr<CLocalView> >& srcFullView, vector<shared_ptr<CLocalView>>& srcWorkflowView, 13 vector<shared_ptr<CDistributedView>>& dstView, MPI_Comm localComm, int remoteSize) 13 14 : CGridRemoteConnector(srcFullView, dstView, localComm, remoteSize) , srcWorkflowView_(srcWorkflowView) 14 15 {} … … 17 18 void CGridClientServerRemoteConnector::computeConnector(void) 18 19 { 19 CGridRemoteConnector workflowRemoteConnector(srcWorkflowView_,dstView_,localComm_,remoteSize_) ;20 workflowRemoteConnector .computeConnector() ;20 auto workflowRemoteConnector=make_shared<CGridRemoteConnector>(srcWorkflowView_,dstView_,localComm_,remoteSize_) ; 21 workflowRemoteConnector->computeConnector() ; 21 22 computeViewDistribution() ; 22 23 23 for(int i=0;i<srcView_.size();i++) isSrcViewDistributed_[i] = isSrcViewDistributed_[i] || workflowRemoteConnector .getIsSrcViewDistributed()[i] ;24 for(int i=0;i<srcView_.size();i++) isSrcViewDistributed_[i] = isSrcViewDistributed_[i] || workflowRemoteConnector->getIsSrcViewDistributed()[i] ; 24 25 computeConnectorMethods() ; 25 26 computeRedondantRanks() ; 26 27 27 28 for(auto& rank : rankToRemove_) 28 if (workflowRemoteConnector .getRankToRemove().count(rank)!=0)29 if (workflowRemoteConnector->getRankToRemove().count(rank)!=0) 29 30 for(auto& element : elements_) element.erase(rank) ; 30 31 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_client_server_remote_connector.hpp
r2236 r2267 12 12 public: 13 13 14 CGridClientServerRemoteConnector(vector< CLocalView*>& srcView, vector<CLocalView*>& worflowSrcView, vector<CDistributedView*>& dstView, MPI_Comm localComm, int remoteSize) ;14 CGridClientServerRemoteConnector(vector<shared_ptr<CLocalView>>& srcView, vector<shared_ptr<CLocalView>>& worflowSrcView, vector<shared_ptr<CDistributedView>>& dstView, MPI_Comm localComm, int remoteSize) ; 15 15 void computeConnector(void) ; 16 vector< CLocalView*> srcWorkflowView_ ;16 vector<shared_ptr<CLocalView>> srcWorkflowView_ ; 17 17 } ; 18 18 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_elements.cpp
r1960 r2267 6 6 { 7 7 8 CGridLocalView*CGridLocalElements::getView(CElementView::type type)8 shared_ptr<CGridLocalView> CGridLocalElements::getView(CElementView::type type) 9 9 { 10 if (views_[type]==nullptr) views_[type] = new CGridLocalView(this, type) ;10 if (views_[type]==nullptr) views_[type] = make_shared<CGridLocalView>(shared_from_this(), type) ; 11 11 return views_[type] ; 12 12 } 13 13 14 CGridLocalConnector*CGridLocalElements::getConnector(CElementView::type srcType, CElementView::type dstType, bool withMask)14 shared_ptr<CGridLocalConnector> CGridLocalElements::getConnector(CElementView::type srcType, CElementView::type dstType, bool withMask) 15 15 { 16 16 auto newPair = pair<CElementView::type,CElementView::type>(srcType,dstType); … … 18 18 if (it==connectors_.end()) 19 19 { 20 auto insertPair=pair<pair<CElementView::type,CElementView::type>, CGridLocalConnector*>(newPair,new CGridLocalConnector(this, srcType, dstType, withMask)) ;20 auto insertPair=pair<pair<CElementView::type,CElementView::type>, shared_ptr<CGridLocalConnector>>(newPair, make_shared<CGridLocalConnector>(shared_from_this(), srcType, dstType, withMask)) ; 21 21 it=connectors_.insert(insertPair).first ; 22 22 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_elements.hpp
r1960 r2267 11 11 class CGridLocalConnector ; 12 12 13 class CGridLocalElements 13 class CGridLocalElements : public std::enable_shared_from_this<CGridLocalElements> 14 14 { 15 15 private: 16 std::vector< CLocalElement*> elements_ ;17 std::vector< CGridLocalView*> views_= std::vector<CGridLocalView*>(CElementView::numViewType_) ;18 std::map<pair<CElementView::type,CElementView::type>, CGridLocalConnector*> connectors_ ;16 std::vector<shared_ptr<CLocalElement>> elements_ ; 17 std::vector<shared_ptr<CGridLocalView>> views_= std::vector<shared_ptr<CGridLocalView>>(CElementView::numViewType_) ; 18 std::map<pair<CElementView::type,CElementView::type>, shared_ptr<CGridLocalConnector>> connectors_ ; 19 19 vector<bool> localMask_ ; 20 20 21 21 public: 22 CGridLocalElements(vector< CLocalElement*> elements) : elements_(elements) {}23 CGridLocalElements(vector< CLocalElement*> elements, vector<bool>& localMask) : elements_(elements), localMask_(localMask) {}22 CGridLocalElements(vector<shared_ptr<CLocalElement> > elements) : elements_(elements) {} 23 CGridLocalElements(vector<shared_ptr<CLocalElement>> elements, vector<bool>& localMask) : elements_(elements), localMask_(localMask) {} 24 24 25 25 bool hasLocalMask() { return !localMask_.empty() ;} 26 26 vector<bool>& getLocalMask(void) { return localMask_ ;} 27 27 28 std::vector< CLocalElement*>& getElements(void) { return elements_ ; }29 CGridLocalView*getView(CElementView::type type) ;30 CGridLocalConnector*getConnector(CElementView::type srcType, CElementView::type dstType, bool withMask=false) ;28 std::vector<shared_ptr<CLocalElement>>& getElements(void) { return elements_ ; } 29 shared_ptr<CGridLocalView> getView(CElementView::type type) ; 30 shared_ptr<CGridLocalConnector> getConnector(CElementView::type srcType, CElementView::type dstType, bool withMask=false) ; 31 31 } ; 32 32 } -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_gatherer_connector.hpp
r2011 r2267 19 19 private: 20 20 21 vector< CGathererConnector*> elementsConnector_ ;21 vector<shared_ptr<CGathererConnector>> elementsConnector_ ; 22 22 int dstSize_ ; 23 23 24 24 public: 25 CGridGathererConnector(vector< CGathererConnector*> elementsConnector) : elementsConnector_(elementsConnector)25 CGridGathererConnector(vector<shared_ptr<CGathererConnector>> elementsConnector) : elementsConnector_(elementsConnector) 26 26 { 27 27 dstSize_ = 1 ; … … 33 33 { 34 34 int n = elementsConnector_.size()-1 ; 35 CGathererConnector** connector = elementsConnector_.data() + n ;35 shared_ptr<CGathererConnector>* connector = elementsConnector_.data() + n ; 36 36 output.resize(dstSize_) ; 37 37 for(auto& rankDataIn : input) … … 45 45 { 46 46 int n = elementsConnector_.size()-1 ; 47 CGathererConnector** connector = elementsConnector_.data() + n ;47 shared_ptr<CGathererConnector>* connector = elementsConnector_.data() + n ; 48 48 output.resize(dstSize_) ; 49 49 output = missingValue ; … … 93 93 { 94 94 int n = elementsConnector_.size()-1 ; 95 CGathererConnector** connector = elementsConnector_.data() + n ;95 shared_ptr<CGathererConnector>* connector = elementsConnector_.data() + n ; 96 96 output.resize(dstSize_) ; 97 97 output = false ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_local_connector.cpp
r1960 r2267 8 8 { 9 9 10 CGridLocalConnector::CGridLocalConnector(const std::vector< CLocalConnector*>& elementsConnector) : elementsConnector_(elementsConnector)10 CGridLocalConnector::CGridLocalConnector(const std::vector<shared_ptr<CLocalConnector>>& elementsConnector) : elementsConnector_(elementsConnector) 11 11 { 12 12 srcSize_=1 ; … … 16 16 } 17 17 18 CGridLocalConnector::CGridLocalConnector( CGridLocalElements*parent, CElementView::type srcType, CElementView::type dstType, bool withMask)18 CGridLocalConnector::CGridLocalConnector(shared_ptr<CGridLocalElements> parent, CElementView::type srcType, CElementView::type dstType, bool withMask) 19 19 { 20 CGridLocalView*srcView=parent->getView(srcType) ;21 CGridLocalView*dstView=parent->getView(dstType) ;20 shared_ptr<CGridLocalView> srcView=parent->getView(srcType) ; 21 shared_ptr<CGridLocalView> dstView=parent->getView(dstType) ; 22 22 23 vector< CLocalView*> srcViews = srcView->getViews() ;24 vector< CLocalView*> dstViews = dstView->getViews() ;23 vector<shared_ptr<CLocalView>> srcViews = srcView->getViews() ; 24 vector<shared_ptr<CLocalView>> dstViews = dstView->getViews() ; 25 25 26 vector< CLocalElement*>& elements = parent->getElements();26 vector<shared_ptr<CLocalElement>>& elements = parent->getElements(); 27 27 for(auto element : elements) elementsConnector_.push_back(element->getConnector(srcType, dstType)) ; 28 28 srcSize_=1 ; … … 33 33 if (parent->hasLocalMask() && withMask) 34 34 { 35 vector< CLocalConnector*> elementsConnector ;35 vector<shared_ptr<CLocalConnector>> elementsConnector ; 36 36 for(auto element : elements) elementsConnector.push_back(element->getConnector(CElementView::FULL, dstType)) ; 37 CGridLocalConnector localToDst(elementsConnector) ;38 CArray<bool,1> maskIn(localToDst .getSrcSize()) ;39 CArray<bool,1> maskOut1(localToDst .getDstSize()) ;40 CArray<bool,1> maskOut2(localToDst .getDstSize()) ;37 auto localToDst=make_shared<CGridLocalConnector>(elementsConnector) ; 38 CArray<bool,1> maskIn(localToDst->getSrcSize()) ; 39 CArray<bool,1> maskOut1(localToDst->getDstSize()) ; 40 CArray<bool,1> maskOut2(localToDst->getDstSize()) ; 41 41 maskIn=true ; 42 localToDst .transfer(maskIn,maskOut1,false) ;42 localToDst->transfer(maskIn,maskOut1,false) ; 43 43 auto& localMask = parent->getLocalMask() ; 44 44 for(int i=0 ; i < maskIn.numElements() ; i++) maskIn(i)=localMask[i] ; 45 localToDst .transfer(maskIn,maskOut2,false) ;45 localToDst->transfer(maskIn,maskOut2,false) ; 46 46 mask_.assign(dstSize_,true) ; 47 47 for(int i=0;i<dstSize_;i++) if (maskOut1(i)==true && maskOut2(i)==false) mask_[i]=false ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_local_connector.hpp
r1960 r2267 17 17 18 18 private: 19 std::vector< CLocalConnector*> elementsConnector_ ;19 std::vector<shared_ptr<CLocalConnector>> elementsConnector_ ; 20 20 int srcSize_ ; 21 21 int dstSize_ ; … … 24 24 public: 25 25 26 CGridLocalConnector(const std::vector< CLocalConnector*>& elementsConnector) ;27 CGridLocalConnector( CGridLocalElements*parent, CElementView::type srcType, CElementView::type dstType, bool withMask=false) ;26 CGridLocalConnector(const std::vector<shared_ptr<CLocalConnector>>& elementsConnector) ; 27 CGridLocalConnector(shared_ptr<CGridLocalElements> parent, CElementView::type srcType, CElementView::type dstType, bool withMask=false) ; 28 28 int getSrcSize(void) { return srcSize_ ;} 29 29 int getDstSize(void) { return dstSize_ ;} … … 37 37 { 38 38 int n = elementsConnector_.size()-1 ; 39 CLocalConnector** connector = elementsConnector_.data() + n ;39 shared_ptr<CLocalConnector>* connector = elementsConnector_.data() + n ; 40 40 elementsConnector_[n]->transfer(connector, n, input.dataFirst(), output.dataFirst()) ; 41 41 } … … 45 45 { 46 46 int n = elementsConnector_.size()-1 ; 47 CLocalConnector** connector = elementsConnector_.data() + n ;47 shared_ptr<CLocalConnector>* connector = elementsConnector_.data() + n ; 48 48 elementsConnector_[n]->transfer(connector, n, input.dataFirst(), output.dataFirst(), missingValue) ; 49 49 if (!computeMask_done_) computeMask() ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_local_view.cpp
r1930 r2267 4 4 namespace xios 5 5 { 6 CGridLocalView::CGridLocalView( CGridLocalElements*parent, CElementView::type type) : localMask_(parent->getLocalMask())6 CGridLocalView::CGridLocalView(shared_ptr<CGridLocalElements> parent, CElementView::type type) : localMask_(parent->getLocalMask()) 7 7 { 8 8 size_ = 1 ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_local_view.hpp
r1999 r2267 12 12 { 13 13 private: 14 std::vector< CLocalView*> views_ ;14 std::vector<shared_ptr<CLocalView>> views_ ; 15 15 std::vector<bool>& localMask_ ; 16 16 int size_ ; 17 17 18 18 public: 19 CGridLocalView( CGridLocalElements*parent, CElementView::type type) ;20 std::vector< CLocalView*>& getViews(void) {return views_ ;}21 CLocalView*getView(int i) {return views_[i] ;}19 CGridLocalView(shared_ptr<CGridLocalElements> parent, CElementView::type type) ; 20 std::vector<shared_ptr<CLocalView>>& getViews(void) {return views_ ;} 21 shared_ptr<CLocalView> getView(int i) {return views_[i] ;} 22 22 int getSize() { return size_ ;} 23 23 } ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_mask_connector.hpp
r1955 r2267 15 15 public: 16 16 17 CGridMaskConnector(vector< CLocalView*>& views) : views_(views) {}17 CGridMaskConnector(vector<shared_ptr<CLocalView>>& views) : views_(views) {} 18 18 void computeConnector(CArray<bool,1>& mask) ; 19 19 … … 22 22 23 23 private: 24 vector< CLocalView*> views_ ;24 vector<shared_ptr<CLocalView>> views_ ; 25 25 vector<CArray<bool,1>> elementsMask_ ; 26 26 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_remote_connector.cpp
r2236 r2267 15 15 * \param remoteSize Size of the remote communicator 16 16 */ 17 CGridRemoteConnector::CGridRemoteConnector(vector< CLocalView*>& srcView, vector<CDistributedView*>& dstView, MPI_Comm localComm, int remoteSize)17 CGridRemoteConnector::CGridRemoteConnector(vector<shared_ptr<CLocalView>>& srcView, vector<shared_ptr<CDistributedView>>& dstView, MPI_Comm localComm, int remoteSize) 18 18 : srcView_(srcView), dstView_(dstView), localComm_(localComm), remoteSize_(remoteSize) 19 19 {} … … 26 26 * \param remoteSize Size of the remote communicator 27 27 */ 28 CGridRemoteConnector::CGridRemoteConnector(vector< CLocalView*>& srcView, vector<CLocalView*>& dstView, MPI_Comm localComm, int remoteSize)28 CGridRemoteConnector::CGridRemoteConnector(vector<shared_ptr<CLocalView>>& srcView, vector< shared_ptr<CLocalView> >& dstView, MPI_Comm localComm, int remoteSize) 29 29 : srcView_(srcView), localComm_(localComm), remoteSize_(remoteSize) 30 30 { 31 for(auto& it : dstView) dstView_.push_back(( CDistributedView*) it) ;31 for(auto& it : dstView) dstView_.push_back((shared_ptr<CDistributedView>) it) ; 32 32 } 33 33 … … 135 135 void CGridRemoteConnector::computeConnectorMethods(void) 136 136 { 137 vector< CLocalView*> srcView ;138 vector< CDistributedView*> dstView ;137 vector<shared_ptr<CLocalView>> srcView ; 138 vector<shared_ptr<CDistributedView>> dstView ; 139 139 vector<int> indElements ; 140 140 elements_.resize(srcView_.size()) ; … … 435 435 * \param indElements Index of the view making the correspondance between all views and views distributed (that are in input) 436 436 */ 437 void CGridRemoteConnector::computeGenericMethod(vector< CLocalView*>& srcView, vector<CDistributedView*>& dstView, vector<int>& indElements)437 void CGridRemoteConnector::computeGenericMethod(vector<shared_ptr<CLocalView>>& srcView, vector<shared_ptr<CDistributedView>>& dstView, vector<int>& indElements) 438 438 { 439 439 // generic method, every element can be distributed -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_remote_connector.hpp
r2236 r2267 18 18 public: 19 19 20 CGridRemoteConnector(vector< CLocalView*>& srcView, vector<CDistributedView*>& dstView, MPI_Comm localComm, int remoteSize) ;21 CGridRemoteConnector(vector< CLocalView*>& srcView, vector<CLocalView*>& dstView, MPI_Comm localComm, int remoteSize) ;20 CGridRemoteConnector(vector<shared_ptr<CLocalView>>& srcView, vector<shared_ptr<CDistributedView>>& dstView, MPI_Comm localComm, int remoteSize) ; 21 CGridRemoteConnector(vector<shared_ptr<CLocalView>>& srcView, vector<shared_ptr<CLocalView>>& dstView, MPI_Comm localComm, int remoteSize) ; 22 22 void computeViewDistribution(void) ; 23 23 void computeConnector(void) ; 24 24 void computeConnectorMethods(void) ; 25 void computeGenericMethod(vector< CLocalView*>& srcView, vector<CDistributedView*>& dstView, vector<int>& indElements) ;25 void computeGenericMethod(vector<shared_ptr<CLocalView>>& srcView, vector<shared_ptr<CDistributedView>>& dstView, vector<int>& indElements) ; 26 26 void computeSrcDstNonDistributed(int i, map<int,bool>& ranks) ; 27 27 void computeDstNonDistributed(int i, map<int,bool>& ranks) ; … … 39 39 * It is feed at construction time 40 40 */ 41 vector< CLocalView*> srcView_ ;41 vector<shared_ptr<CLocalView>> srcView_ ; 42 42 43 43 /** … … 45 45 * It is feed at construction time 46 46 */ 47 vector< CDistributedView*> dstView_ ;47 vector<shared_ptr<CDistributedView>> dstView_ ; 48 48 49 49 /** -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_scatterer_connector.hpp
r2130 r2267 18 18 { 19 19 private: 20 vector< CScattererConnector*> elementsConnector_ ;20 vector<shared_ptr<CScattererConnector>> elementsConnector_ ; 21 21 map<int,int> nbSenders_ ; 22 22 vector<int> ranks_ ; … … 25 25 26 26 public: 27 CGridScattererConnector(vector< CScattererConnector*> elementsConnector) : elementsConnector_(elementsConnector)27 CGridScattererConnector(vector<shared_ptr<CScattererConnector>> elementsConnector) : elementsConnector_(elementsConnector) 28 28 { 29 29 nbSenders_ = elementsConnector[0]->getNbSenders() ; … … 48 48 { 49 49 int n = elementsConnector_.size()-1 ; 50 CScattererConnector** connector = elementsConnector_.data() + n ;50 shared_ptr<CScattererConnector>* connector = elementsConnector_.data() + n ; 51 51 for(int rank : ranks_) 52 52 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_transform_connector.cpp
r2189 r2267 16 16 int nElements = srcViews_.size() ; 17 17 18 CGridRemoteConnector remoteConnector(srcViews_, remoteViews_, localComm_, commSize) ;19 remoteConnector .computeConnector() ;18 auto remoteConnector = make_shared<CGridRemoteConnector>(srcViews_, remoteViews_, localComm_, commSize) ; 19 remoteConnector->computeConnector() ; 20 20 21 vector< CDistributedElement*> sendElements(nElements) ;21 vector<shared_ptr<CDistributedElement>> sendElements(nElements) ; 22 22 scattererConnector_.resize(nElements) ; 23 23 gathererConnector_.resize(nElements) ; … … 25 25 for(int i=0;i<nElements;i++) 26 26 { 27 sendElements[i] = new CDistributedElement(srcViews_[i]->getGlobalSize(), remoteConnector.getDistributedGlobalIndex(i)) ;27 sendElements[i] = make_shared<CDistributedElement>(srcViews_[i]->getGlobalSize(), remoteConnector->getDistributedGlobalIndex(i)) ; 28 28 sendElements[i]->addFullView() ; 29 scattererConnector_[i] = new CScattererConnector(srcViews_[i], sendElements[i]->getView(CElementView::FULL), localComm_, commSize) ;29 scattererConnector_[i] = make_shared<CScattererConnector>(srcViews_[i], sendElements[i]->getView(CElementView::FULL), localComm_, commSize) ; 30 30 scattererConnector_[i]->computeConnector() ; 31 31 std::map<int, CArray<size_t,1>>& sendIndex = sendElements[i]->getGlobalIndex() ; … … 75 75 // create gatherer connector 76 76 77 CDistributedElement recvElement(remoteViews_[i]->getGlobalSize(), recvIndex) ;78 recvElement .addFullView() ;79 gathererConnector_[i] = new CGathererConnector(recvElement.getView(CElementView::FULL), remoteViews_[i]) ;77 auto recvElement = make_shared<CDistributedElement>(remoteViews_[i]->getGlobalSize(), recvIndex) ; 78 recvElement->addFullView() ; 79 gathererConnector_[i] = make_shared<CGathererConnector>(recvElement->getView(CElementView::FULL), remoteViews_[i]) ; 80 80 gathererConnector_[i]->computeConnector() ; 81 81 } 82 82 83 gridScattererConnector_ = new CGridScattererConnector(scattererConnector_) ;84 gridGathererConnector_ = new CGridGathererConnector(gathererConnector_) ;83 gridScattererConnector_ = make_shared<CGridScattererConnector>(scattererConnector_) ; 84 gridGathererConnector_ = make_shared<CGridGathererConnector>(gathererConnector_) ; 85 85 } 86 86 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_transform_connector.hpp
r1999 r2267 18 18 19 19 public: 20 CGridTransformConnector(vector< CLocalView*> srcViews, vector<CLocalView*> remoteViews, MPI_Comm localComm)20 CGridTransformConnector(vector<shared_ptr<CLocalView>> srcViews, vector<shared_ptr<CLocalView>> remoteViews, MPI_Comm localComm) 21 21 : srcViews_(srcViews), remoteViews_(remoteViews), localComm_(localComm) 22 22 { computeConnector();} … … 25 25 protected: 26 26 MPI_Comm localComm_ ; 27 vector< CLocalView*> srcViews_ ;28 vector< CLocalView*> remoteViews_ ;27 vector<shared_ptr<CLocalView>> srcViews_ ; 28 vector<shared_ptr<CLocalView>> remoteViews_ ; 29 29 map<int,int> recvRankSize_ ; 30 30 31 vector< CScattererConnector*> scattererConnector_ ;32 vector< CGathererConnector*> gathererConnector_ ;33 CGridScattererConnector*gridScattererConnector_ ;34 CGridGathererConnector*gridGathererConnector_ ;31 vector<shared_ptr<CScattererConnector>> scattererConnector_ ; 32 vector<shared_ptr<CGathererConnector>> gathererConnector_ ; 33 shared_ptr<CGridScattererConnector> gridScattererConnector_ ; 34 shared_ptr<CGridGathererConnector> gridGathererConnector_ ; 35 35 36 36 public: -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/local_connector.hpp
r1918 r2267 15 15 16 16 private: 17 CLocalView*srcView_;18 CLocalView*dstView_;17 shared_ptr<CLocalView> srcView_; 18 shared_ptr<CLocalView> dstView_; 19 19 int srcSize_ ; 20 20 int dstSize_ ; … … 24 24 public: 25 25 26 CLocalConnector( CLocalView* srcView, CLocalView*dstView) : srcView_(srcView), dstView_(dstView),26 CLocalConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView) : srcView_(srcView), dstView_(dstView), 27 27 srcSize_(srcView->getSize()), dstSize_(dstView->getSize()) {} 28 28 void computeConnector(void); … … 59 59 } 60 60 61 template<typename T> void transfer( CLocalConnector** connectors, int nConnectors, const T* input, T* output)61 template<typename T> void transfer(shared_ptr<CLocalConnector>* connectors, int nConnectors, const T* input, T* output) 62 62 { 63 63 … … 91 91 } 92 92 93 template<typename T> void transfer( CLocalConnector** connectors, int nConnectors, const T* input, T* output, T missingValue)93 template<typename T> void transfer(shared_ptr<CLocalConnector>* connectors, int nConnectors, const T* input, T* output, T missingValue) 94 94 { 95 95 int size=mask_.size() ; … … 123 123 } 124 124 125 int getSrcSliceSize( CLocalConnector** connectors, int nConnectors)125 int getSrcSliceSize(shared_ptr<CLocalConnector>* connectors, int nConnectors) 126 126 { if (nConnectors==0) return srcSize_ ; else return srcSize_ * (*(connectors-1))->getSrcSliceSize(connectors-1,nConnectors-1) ; } 127 127 128 int getDstSliceSize( CLocalConnector** connectors, int nConnectors)128 int getDstSliceSize(shared_ptr<CLocalConnector>* connectors, int nConnectors) 129 129 { if (nConnectors==0) return dstSize_ ; else return dstSize_ * (*(connectors-1))->getDstSliceSize(connectors-1,nConnectors-1) ; } 130 130 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/local_view.cpp
r1930 r2267 6 6 namespace xios 7 7 { 8 CLocalView::CLocalView( CLocalElement*parent, CElementView::type type, const CArray<int,1>& indexView)8 CLocalView::CLocalView(shared_ptr<CLocalElement> parent, CElementView::type type, const CArray<int,1>& indexView) 9 9 : CDistributedView( parent, type, {{ parent->localRank_, indexView }} ), 10 10 localRank_(parent->localRank_), … … 15 15 } 16 16 17 CLocalView::CLocalView( CLocalElement*parent, CElementView::type type, const CArray<bool,1>& maskView)17 CLocalView::CLocalView(shared_ptr<CLocalElement> parent, CElementView::type type, const CArray<bool,1>& maskView) 18 18 : CDistributedView( parent, type, {{ parent->localRank_, maskView }} ), 19 19 localRank_(parent->localRank_), … … 24 24 } 25 25 26 void CLocalView::sendRemoteElement( CRemoteConnector&connector, CContextClient* client, CEventClient& event, const CMessage& messageHeader)26 void CLocalView::sendRemoteElement(shared_ptr<CRemoteConnector> connector, CContextClient* client, CEventClient& event, const CMessage& messageHeader) 27 27 { 28 28 int n = index_.numElements() ; … … 36 36 CMessage message(messageHeader) ; 37 37 message<<globalSize_ ; 38 connector .transferToServer(ind, client, event, message) ;38 connector->transferToServer(ind, client, event, message) ; 39 39 } 40 40 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/local_view.hpp
r1954 r2267 16 16 { 17 17 public: 18 CLocalView( CLocalElement*parent, CElementView::type type, const CArray<int,1>& indexView) ;19 CLocalView( CLocalElement*parent, CElementView::type type, const CArray<bool,1>& maskView) ;18 CLocalView(shared_ptr<CLocalElement> parent, CElementView::type type, const CArray<int,1>& indexView) ; 19 CLocalView(shared_ptr<CLocalElement> parent, CElementView::type type, const CArray<bool,1>& maskView) ; 20 20 21 21 const CArray<int,1>& getIndex(void) { return index_ ;} … … 38 38 } 39 39 40 void getGlobalIndex(vector<size_t>& globalIndex, size_t sliceIndex, size_t* sliceSize, CLocalView** localView, int pos)40 void getGlobalIndex(vector<size_t>& globalIndex, size_t sliceIndex, size_t* sliceSize, shared_ptr<CLocalView>* localView, int pos) 41 41 { 42 42 if (pos==0) … … 56 56 int getLocalSize(void) {return localSize_ ;} 57 57 int getSize(void) {return size_;} 58 void sendRemoteElement( CRemoteConnector&connector, CContextClient* client, CEventClient& event, const CMessage& messageHeader) ;58 void sendRemoteElement(shared_ptr<CRemoteConnector> connector, CContextClient* client, CEventClient& event, const CMessage& messageHeader) ; 59 59 60 60 CArray<size_t,1>& globalIndex_ ; -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/reduce_transform_connector.cpp
r2000 r2267 5 5 { 6 6 7 CReduceTransformConnector::CReduceTransformConnector( CLocalView* srcView, CLocalView*dstView, EReduction op,7 CReduceTransformConnector::CReduceTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, EReduction op, 8 8 unordered_map<int, std::vector<int>>& indexMap, bool detectMissingValue) 9 9 : srcView_(srcView), dstView_(dstView), detectMissingValue_(detectMissingValue) -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/reduce_transform_connector.hpp
r2188 r2267 17 17 18 18 private: 19 CLocalView*srcView_;20 CLocalView*dstView_;19 shared_ptr<CLocalView> srcView_; 20 shared_ptr<CLocalView> dstView_; 21 21 22 22 vector<int> connector_; // sizeof sum(nWeights_) … … 34 34 public: 35 35 36 CReduceTransformConnector( CLocalView* srcView, CLocalView*dstView, EReduction op, unordered_map<int, std::vector<int>>& indexMap,36 CReduceTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, EReduction op, unordered_map<int, std::vector<int>>& indexMap, 37 37 bool detectMissingValue=true) ; 38 38 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/remote_connector.hpp
r1918 r2267 17 17 { 18 18 private: 19 CLocalView*srcView_;20 CDistributedView*dstView_;19 shared_ptr<CLocalView> srcView_; 20 shared_ptr<CDistributedView> dstView_; 21 21 map<int, vector<int>> connector_ ; // connector[rank][srcIndex] 22 22 … … 26 26 27 27 public: 28 CRemoteConnector( CLocalView* srcView, CDistributedView*dstView, MPI_Comm localComm) : srcView_(srcView), dstView_(dstView), localComm_(localComm){} ;28 CRemoteConnector(shared_ptr<CLocalView> srcView, shared_ptr<CDistributedView> dstView, MPI_Comm localComm) : srcView_(srcView), dstView_(dstView), localComm_(localComm){} ; 29 29 void computeConnector(void) ; 30 30 map<int, CArray<size_t,1>>& getDistributedGlobalIndex() { return element_ ;} -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/scatterer_connector.hpp
r2118 r2267 23 23 int remoteCommSize_ ; 24 24 25 CLocalView*srcView_ ;26 CDistributedView*dstView_ ;25 shared_ptr<CLocalView> srcView_ ; 26 shared_ptr<CDistributedView> dstView_ ; 27 27 map<int,int> nbSenders_ ; // number of participant when sending remote buffer 28 28 int srcSize_ ; … … 31 31 public: 32 32 33 CScattererConnector( CLocalView* srcView, CDistributedView*dstView, MPI_Comm localComm, int remoteCommSize)33 CScattererConnector(shared_ptr<CLocalView> srcView, shared_ptr<CDistributedView> dstView, MPI_Comm localComm, int remoteCommSize) 34 34 : srcView_(srcView), dstView_(dstView), localComm_(localComm), remoteCommSize_(remoteCommSize) {} 35 35 void computeConnector(void) ; … … 147 147 148 148 template<typename T> 149 void transfer(int rank, CScattererConnector** connectors, int nConnectors, const T* input, T* output)149 void transfer(int rank, shared_ptr<CScattererConnector>* connectors, int nConnectors, const T* input, T* output) 150 150 { 151 151 auto& connector = connector_[rank] ; // probably costly, find a better way to avoid the map … … 197 197 } 198 198 199 int getSrcSliceSize( CScattererConnector** connectors, int nConnectors)199 int getSrcSliceSize(shared_ptr<CScattererConnector>* connectors, int nConnectors) 200 200 { if (nConnectors==0) return srcSize_ ; else return srcSize_ * (*(connectors-1))->getSrcSliceSize(connectors-1,nConnectors-1) ; } 201 201 202 int getDstSliceSize(int rank, CScattererConnector** connectors, int nConnectors)202 int getDstSliceSize(int rank, shared_ptr<CScattererConnector>* connectors, int nConnectors) 203 203 { if (nConnectors==0) return dstSize_[rank] ; else return dstSize_[rank] * (*(connectors-1))->getDstSliceSize(rank, connectors-1,nConnectors-1) ; } 204 204 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/transfer_transform_connector.cpp
r1996 r2267 4 4 { 5 5 6 CTransferTransformConnector::CTransferTransformConnector( CLocalView* srcView, CLocalView*dstView, unordered_map<int, int>& indexMap)6 CTransferTransformConnector::CTransferTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, unordered_map<int, int>& indexMap) 7 7 : srcView_(srcView), dstView_(dstView) 8 8 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/transfer_transform_connector.hpp
r1999 r2267 15 15 16 16 private: 17 CLocalView*srcView_;18 CLocalView*dstView_;17 shared_ptr<CLocalView> srcView_; 18 shared_ptr<CLocalView> dstView_; 19 19 20 20 vector<int> connector_; … … 27 27 public: 28 28 29 CTransferTransformConnector( CLocalView* srcView, CLocalView*dstView, unordered_map<int, int>& indexMap) ;29 CTransferTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, unordered_map<int, int>& indexMap) ; 30 30 31 31 void transfer(int repeat, int sizeT, const CArray<double,1>& dataIn, CArray<double,1>& dataOut) -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/transform_connector.cpp
r1984 r2267 56 56 57 57 // distributed element : where to send data 58 CDistributedElement dstElement(srcView_->getGlobalSize(), dstArrayIndex) ;59 dstElement .addFullView() ;58 auto dstElement = make_shared<CDistributedElement>(srcView_->getGlobalSize(), dstArrayIndex) ; 59 dstElement->addFullView() ; 60 60 61 61 // create scatterer connector 62 62 int commSize ; 63 63 MPI_Comm_size(localComm_, &commSize) ; 64 scattererConnector_ = new CScattererConnector(srcView_, dstElement.getView(CElementView::FULL), localComm_, commSize ) ;64 scattererConnector_ = make_shared<CScattererConnector>(srcView_, dstElement->getView(CElementView::FULL), localComm_, commSize ) ; 65 65 scattererConnector_->computeConnector() ; 66 66 … … 98 98 MPI_Waitall(sendReq.size(),sendReq.data(),sendStatus.data()) ; 99 99 100 CDistributedElement remoteElement(dstView_->getGlobalSize(), remoteArrayIndex) ;101 remoteElement .addFullView() ;102 gathererConnector_= new CGathererConnector(remoteElement.getView(CElementView::FULL),dstView_) ;100 auto remoteElement = make_shared<CDistributedElement>(dstView_->getGlobalSize(), remoteArrayIndex) ; 101 remoteElement->addFullView() ; 102 gathererConnector_= make_shared<CGathererConnector>(remoteElement->getView(CElementView::FULL),dstView_) ; 103 103 gathererConnector_->computeConnector() ; 104 104 -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/transform_connector.hpp
r1984 r2267 18 18 19 19 public: 20 CTransformConnector( CLocalView* srcView, CLocalView*dstView, MPI_Comm localComm)20 CTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, MPI_Comm localComm) 21 21 : srcView_(srcView), dstView_(dstView), localComm_(localComm) {} 22 22 … … 25 25 26 26 MPI_Comm localComm_ ; 27 CLocalView*srcView_ ;28 CLocalView*dstView_ ;27 shared_ptr<CLocalView> srcView_ ; 28 shared_ptr<CLocalView> dstView_ ; 29 29 map<int,int> recvRankSize_ ; 30 CScattererConnector* scattererConnector_=nullptr;31 CGathererConnector* gathererConnector_=nullptr;30 shared_ptr<CScattererConnector> scattererConnector_ ; 31 shared_ptr<CGathererConnector> gathererConnector_ ; 32 32 33 33 public: -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/weight_transform_connector.cpp
r1984 r2267 4 4 { 5 5 6 CWeightTransformConnector::CWeightTransformConnector( CLocalView* srcView, CLocalView*dstView, unordered_map<int, std::vector<int>>& indexMap,6 CWeightTransformConnector::CWeightTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, unordered_map<int, std::vector<int>>& indexMap, 7 7 unordered_map<int, std::vector<double>>& weightMap) : srcView_(srcView), dstView_(dstView) 8 8 { -
XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/weight_transform_connector.hpp
r1984 r2267 15 15 16 16 private: 17 CLocalView*srcView_;18 CLocalView*dstView_;17 shared_ptr<CLocalView> srcView_; 18 shared_ptr<CLocalView> dstView_; 19 19 20 20 vector<double> weights_; // sizeof sum(nWeights_) … … 28 28 public: 29 29 30 CWeightTransformConnector( CLocalView* srcView, CLocalView*dstView, unordered_map<int, std::vector<int>>& indexMap,30 CWeightTransformConnector(shared_ptr<CLocalView> srcView, shared_ptr<CLocalView> dstView, unordered_map<int, std::vector<int>>& indexMap, 31 31 unordered_map<int, std::vector<double>>& weightMap) ; 32 32
Note: See TracChangeset
for help on using the changeset viewer.