19 int elementPositionInGrid,
20 std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
21 std::map<int, int>& elementPositionInGridSrc2AxisPosition,
22 std::map<int, int>& elementPositionInGridSrc2DomainPosition,
23 std::map<int, int>& elementPositionInGridDst2ScalarPosition,
24 std::map<int, int>& elementPositionInGridDst2AxisPosition,
25 std::map<int, int>& elementPositionInGridDst2DomainPosition)
28 std::vector<CDomain*> domainListDestP = gridDst->getDomains();
29 std::vector<CDomain*> domainListSrcP = gridSrc->getDomains();
32 int domainDstIndex = elementPositionInGridDst2DomainPosition[elementPositionInGrid];
33 int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid];
52 compute_connectivityDomain->
checkValid(domainDestination);
57 switch (compute_connectivityDomain->type)
59 case CComputeConnectivityDomain::type_attr::node :
62 case CComputeConnectivityDomain::type_attr::edge :
83 int& nbConnectivityMax,
93 int ncell = bounds_lon.shape()[1];
95 for (
int idx = 0; idx <ncell; ++idx) localIndex(idx) = idx;
97 mesh.
getLocalNghbFaces(type, localIndex, bounds_lon, bounds_lat, localConnectivity, nbConnectivity);
98 nbConnectivityMax = 0;
99 for (
int idx =0; idx < nbConnectivity.numElements(); ++idx)
100 if (nbConnectivityMax < nbConnectivity(idx)) nbConnectivityMax = nbConnectivity(idx);
CArray< int, 1 > & nbNeighbor
Algorithm for compute_connectivitying on an domain.
static bool registerTrans()
void computeIndexSourceMapping_(const std::vector< CArray< double, 1 > * > &dataAuxInputs)
Compute the index mapping between domain on grid source and one on grid destination.
void computeLocalConnectivity(int type, CDomain *domain, int &nbConnectivityMax, CArray< int, 1 > &nbConnectivity, CArray< int, 2 > &localConnectivity)
Compute local connectivity of a domain.
virtual void checkValid(CDomain *domain)
void getLocalNghbFaces(const int, const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &, CArray< int, 1 > &)
Declaration of class CMesh.
CArray< int, 2 > & localNeighbors
static CGenericAlgorithmTransformation * create(CGrid *gridDst, CGrid *gridSrc, CTransformation< CDomain > *transformation, int elementPositionInGrid, std::map< int, int > &elementPositionInGridSrc2ScalarPosition, std::map< int, int > &elementPositionInGridSrc2AxisPosition, std::map< int, int > &elementPositionInGridSrc2DomainPosition, std::map< int, int > &elementPositionInGridDst2ScalarPosition, std::map< int, int > &elementPositionInGridDst2AxisPosition, std::map< int, int > &elementPositionInGridDst2DomainPosition)
CDomainAlgorithmComputeConnectivity(CDomain *domainDestination, CDomain *domainSource, CComputeConnectivityDomain *compute_connectivityDomain)