- Timestamp:
- 12/01/21 16:52:24 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.