source: XIOS/dev/dev_ym/XIOS_COUPLING/src/distribution/grid_client_server_remote_connector.cpp @ 2304

Last change on this file since 2304 was 2304, checked in by ymipsl, 2 years ago

Fix problem in remote connector for read variable : supress redondance optimisation on remote connector in read case.
YM

  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.5 KB
Line 
1#include "grid_client_server_remote_connector.hpp"
2
3namespace xios
4{
5  /**
6   * \brief class constructor.
7   * \param srcView List of sources views.
8   * \param dstView List of remotes views.
9   * \param localComm Local MPI communicator
10   * \param remoteSize Size of the remote communicator
11   */ 
12  CGridClientServerRemoteConnector::CGridClientServerRemoteConnector( vector<shared_ptr<CLocalView> >& srcFullView, vector<shared_ptr<CLocalView>>& srcWorkflowView, 
13                                                                      vector<shared_ptr<CDistributedView>>& dstView, MPI_Comm localComm, int remoteSize) 
14                       : CGridRemoteConnector(srcFullView, dstView, localComm, remoteSize) , srcWorkflowView_(srcWorkflowView)
15  {}
16
17
18  void CGridClientServerRemoteConnector::computeConnector(bool eliminateRedondant)
19  {
20    if (eliminateRedondant)
21    {
22      auto workflowRemoteConnector=make_shared<CGridRemoteConnector>(srcWorkflowView_,dstView_,localComm_,remoteSize_) ;
23      workflowRemoteConnector->computeConnector() ;
24      computeViewDistribution() ;
25   
26      for(int i=0;i<srcView_.size();i++) isSrcViewDistributed_[i] =  isSrcViewDistributed_[i] || workflowRemoteConnector->getIsSrcViewDistributed()[i]  ;
27      computeConnectorMethods() ;
28      computeRedondantRanks() ;
29
30      for(auto& rank : rankToRemove_)
31        if (workflowRemoteConnector->getRankToRemove().count(rank)!=0)
32          for(auto& element : elements_) element.erase(rank) ;
33    }
34    else 
35    {
36      computeViewDistribution() ;
37      computeConnectorRedundant() ;
38    }
39  }
40
41}
Note: See TracBrowser for help on using the repository browser.