Ignore:
Timestamp:
09/25/20 16:09:35 (4 years ago)
Author:
ymipsl
Message:

Solve issues for grid mask on server side.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/scalar.cpp

    r1940 r1943  
    313313    CDistributedElement scatteredElement(1,globalIndex) ; 
    314314    scatteredElement.addFullView() ; 
    315     CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL), context->getIntraComm()) ; 
     315    CScattererConnector scattererConnector(localElement_->getView(CElementView::FULL), scatteredElement.getView(CElementView::FULL),  
     316                                           context->getIntraComm(), client->getRemoteSize()) ; 
    316317    scattererConnector.computeConnector() ; 
    317318     
     
    353354    message2<<serverScalarId<<2 ;  
    354355    clientToServerElement.sendToServer(client, event2, message2) ;  
    355     clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), 
    356                                                               clientToServerElement.getView(CElementView::FULL), context->getIntraComm()) ; 
     356    clientToServerConnector_[client] = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), clientToServerElement.getView(CElementView::FULL), 
     357                                                               context->getIntraComm(), client->getRemoteSize()) ; 
    357358    clientToServerConnector_[client]->computeConnector() ; 
    358  
    359  
    360     CEventClient event3(getType(), EVENT_ID_SCALAR_DISTRIBUTION); 
    361     CMessage message3 ; 
    362     message3<<serverScalarId<<3 ;  
    363     clientToServerConnector_[client]->transfer(maskIn,client,event3,message3) ;  
    364359 
    365360    clientFromServerConnector_[client] = new CGathererConnector(clientToServerElement.getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)); 
     
    407402      gathererConnector_ -> computeConnector() ; 
    408403    } 
    409     else if (phasis==3) 
    410     { 
    411       CArray<bool,1> localMask ; 
    412       gathererConnector_->transfer(event,localMask,false) ; 
    413       localElement_->addView(CElementView::WORKFLOW, localMask) ; 
    414       mask = localMask(0) ; 
    415         
    416       serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ; 
    417       serverFromClientConnector_->computeConnector() ; 
    418  
    419       serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 
    420                                                          context->getIntraComm()) ; 
    421       serverToClientConnector_->computeConnector() ; 
    422  
    423     } 
    424404  } 
    425405  CATCH 
     406 
     407  void CScalar::setServerMask(CArray<bool,1>& serverMask, CContextClient* client) 
     408  TRY 
     409  { 
     410    CContext* context = CContext::getCurrent(); 
     411    localElement_->addView(CElementView::WORKFLOW, serverMask) ; 
     412    mask = serverMask(0) ; 
     413  
     414    serverFromClientConnector_ = new CGathererConnector(elementFrom_->getView(CElementView::FULL), localElement_->getView(CElementView::WORKFLOW)) ; 
     415    serverFromClientConnector_->computeConnector() ; 
     416       
     417    serverToClientConnector_ = new CScattererConnector(localElement_->getView(CElementView::WORKFLOW), elementFrom_->getView(CElementView::FULL), 
     418                                                         context->getIntraComm(), client->getRemoteSize()) ; 
     419    serverToClientConnector_->computeConnector() ; 
     420  } 
     421  CATCH_DUMP_ATTR 
    426422 
    427423  void CScalar::sendDistributedAttributes(CContextClient* client, CScattererConnector& scattererConnector, const string& scalarId) 
Note: See TracChangeset for help on using the changeset viewer.