- 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/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 ;
Note: See TracChangeset
for help on using the changeset viewer.