X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParaMEDMEM%2FInterpolationMatrix.hxx;h=3543875d42b10f0a63dec3a7e65ad7f33e8a9261;hb=b219559763498c4bd10c730cd3d2c62b1eed45db;hp=a9dcef734557f0e80f71727d257312480ec1ea22;hpb=5da72d398d0eb1820c3ce6dd90b8579b6b14edf5;p=tools%2Fmedcoupling.git diff --git a/src/ParaMEDMEM/InterpolationMatrix.hxx b/src/ParaMEDMEM/InterpolationMatrix.hxx index a9dcef734..3543875d4 100644 --- a/src/ParaMEDMEM/InterpolationMatrix.hxx +++ b/src/ParaMEDMEM/InterpolationMatrix.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2019 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -51,13 +51,13 @@ namespace MEDCoupling virtual ~InterpolationMatrix(); void addContribution(MEDCouplingPointSet& distant_support, int iproc_distant, - const int* distant_elems, const std::string& srcMeth, const std::string& targetMeth); + const mcIdType* distant_elems, const std::string& srcMeth, const std::string& targetMeth); void finishContributionW(ElementLocator& elementLocator); void finishContributionL(ElementLocator& elementLocator); void multiply(MEDCouplingFieldDouble& field) const; void transposeMultiply(MEDCouplingFieldDouble& field)const; void prepare(); - int getNbRows() const { return _row_offsets.size(); } + mcIdType getNbRows() const { return ToIdType(_row_offsets.size()); } MPIAccessDEC* getAccessDEC() { return _mapping.getAccessDEC(); } private: void computeConservVolDenoW(ElementLocator& elementLocator); @@ -69,33 +69,33 @@ namespace MEDCoupling void computeRevIntegralDenoL(ElementLocator& elementLocator); void computeLocalColSum(std::vector& res) const; - void computeLocalRowSum(const std::vector& distantProcs, std::vector >& resPerProcI, + void computeLocalRowSum(const std::vector& distantProcs, std::vector >& resPerProcI, std::vector >& resPerProcD) const; void computeGlobalRowSum(ElementLocator& elementLocator, std::vector >& denoStrorage, std::vector >& denoStrorageInv); void computeGlobalColSum(std::vector >& denoStrorage); void resizeGlobalColSum(std::vector >& denoStrorage); - void fillDSFromVM(int iproc_distant, const int* distant_elems, const std::vector< std::map >& values, MEDCouplingFieldDouble *surf); - void serializeMe(std::vector< std::vector< std::map > >& data1, std::vector& data2) const; + void fillDSFromVM(int iproc_distant, const mcIdType* distant_elems, const std::vector< std::map >& values, MEDCouplingFieldDouble *surf); + void serializeMe(std::vector< std::vector< std::map > >& data1, std::vector& data2) const; void initialize(); - void findAdditionnalElements(ElementLocator& elementLocator, std::vector >& elementsToAdd, - const std::vector >& resPerProcI, const std::vector >& globalIdsPartial); - void addGhostElements(const std::vector& distantProcs, const std::vector >& elementsToAdd); + void findAdditionnalElements(ElementLocator& elementLocator, std::vector >& elementsToAdd, + const std::vector >& resPerProcI, const std::vector >& globalIdsPartial); + void addGhostElements(const std::vector& distantProcs, const std::vector >& elementsToAdd); int mergePolicies(const std::vector& policyPartial); - void mergeRowSum(const std::vector< std::vector >& rowsPartialSumD, const std::vector< std::vector >& globalIdsPartial, - std::vector& globalIdsLazySideInteraction, std::vector& sumCorresponding); - void mergeRowSum2(const std::vector< std::vector >& globalIdsPartial, std::vector< std::vector >& rowsPartialSumD, - const std::vector& globalIdsLazySideInteraction, const std::vector& sumCorresponding); - void mergeRowSum3(const std::vector< std::vector >& globalIdsPartial, std::vector< std::vector >& rowsPartialSumD); - void mergeCoeffs(const std::vector& procsInInteraction, const std::vector< std::vector >& rowsPartialSumI, - const std::vector >& globalIdsPartial, std::vector >& denoStrorageInv); - void divideByGlobalRowSum(const std::vector& distantProcs, const std::vector >& resPerProcI, + void mergeRowSum(const std::vector< std::vector >& rowsPartialSumD, const std::vector< std::vector >& globalIdsPartial, + std::vector& globalIdsLazySideInteraction, std::vector& sumCorresponding); + void mergeRowSum2(const std::vector< std::vector >& globalIdsPartial, std::vector< std::vector >& rowsPartialSumD, + const std::vector& globalIdsLazySideInteraction, const std::vector& sumCorresponding); + void mergeRowSum3(const std::vector< std::vector >& globalIdsPartial, std::vector< std::vector >& rowsPartialSumD); + void mergeCoeffs(const std::vector& procsInInteraction, const std::vector< std::vector >& rowsPartialSumI, + const std::vector >& globalIdsPartial, std::vector >& denoStrorageInv); + void divideByGlobalRowSum(const std::vector& distantProcs, const std::vector >& resPerProcI, const std::vector >& resPerProcD, std::vector >& deno); private: bool isSurfaceComputationNeeded(const std::string& method) const; private: const MEDCoupling::ParaFIELD *_source_field; - std::vector _row_offsets; - std::map, int > _col_offsets; + std::vector _row_offsets; + std::map, mcIdType > _col_offsets; MEDCouplingPointSet *_source_support; MxN_Mapping _mapping;