X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingGaussLocalization.hxx;h=c43a706d10d20576928adfef2ecb8aac534f4a20;hb=b607ffc713080a567fb90595118069ac18181e99;hp=31adcb8528588aa725b5fb19df2c17cb44ed7dbd;hpb=887d0e1efce4f46f68d2596dcd801f02f5c1f99e;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling/MEDCouplingGaussLocalization.hxx b/src/MEDCoupling/MEDCouplingGaussLocalization.hxx index 31adcb852..c43a706d1 100644 --- a/src/MEDCoupling/MEDCouplingGaussLocalization.hxx +++ b/src/MEDCoupling/MEDCouplingGaussLocalization.hxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D +// Copyright (C) 2007-2020 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 // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -23,45 +23,55 @@ #include "MEDCoupling.hxx" #include "NormalizedUnstructuredMesh.hxx" +#include "MEDCouplingMemArray.hxx" #include "InterpKernelException.hxx" #include -namespace ParaMEDMEM +namespace MEDCoupling { class MEDCouplingMesh; + class MEDCouplingUMesh; - class MEDCOUPLING_EXPORT MEDCouplingGaussLocalization + class MEDCouplingGaussLocalization { public: - MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType type, const std::vector& refCoo, - const std::vector& gsCoo, const std::vector& w) throw(INTERP_KERNEL::Exception); - INTERP_KERNEL::NormalizedCellType getType() const { return _type; } - int getNumberOfGaussPt() const { return (int)_weight.size(); } - int getDimension() const; - int getNumberOfPtsInRefCell() const; - std::string getStringRepr() const; - std::size_t getHeapMemorySize() const; - void checkCoherency() const throw(INTERP_KERNEL::Exception); - bool isEqual(const MEDCouplingGaussLocalization& other, double eps) const; - void pushTinySerializationIntInfo(std::vector& tinyInfo) const; - void pushTinySerializationDblInfo(std::vector& tinyInfo) const; - const double *fillWithValues(const double *vals); + MEDCOUPLING_EXPORT MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType type, const std::vector& refCoo, + const std::vector& gsCoo, const std::vector& w); + MEDCOUPLING_EXPORT MEDCouplingGaussLocalization(INTERP_KERNEL::NormalizedCellType typ); + MEDCOUPLING_EXPORT INTERP_KERNEL::NormalizedCellType getType() const { return _type; } + MEDCOUPLING_EXPORT void setType(INTERP_KERNEL::NormalizedCellType typ); + MEDCOUPLING_EXPORT int getNumberOfGaussPt() const { return (int)_weight.size(); } + MEDCOUPLING_EXPORT int getDimension() const; + MEDCOUPLING_EXPORT int getNumberOfPtsInRefCell() const; + MEDCOUPLING_EXPORT std::string getStringRepr() const; + MEDCOUPLING_EXPORT std::size_t getMemorySize() const; + MEDCOUPLING_EXPORT void checkConsistencyLight() const; + MEDCOUPLING_EXPORT bool isEqual(const MEDCouplingGaussLocalization& other, double eps) const; + MEDCOUPLING_EXPORT void pushTinySerializationIntInfo(std::vector& tinyInfo) const; + MEDCOUPLING_EXPORT void pushTinySerializationDblInfo(std::vector& tinyInfo) const; + MEDCOUPLING_EXPORT const double *fillWithValues(const double *vals); // - const std::vector& getRefCoords() const { return _ref_coord; } - double getRefCoord(int ptIdInCell, int comp) const throw(INTERP_KERNEL::Exception); - const std::vector& getGaussCoords() const { return _gauss_coord; } - double getGaussCoord(int gaussPtIdInCell, int comp) const throw(INTERP_KERNEL::Exception); - const std::vector& getWeights() const { return _weight; } - double getWeight(int gaussPtIdInCell, double newVal) const throw(INTERP_KERNEL::Exception); - void setRefCoord(int ptIdInCell, int comp, double newVal) throw(INTERP_KERNEL::Exception); - void setGaussCoord(int gaussPtIdInCell, int comp, double newVal) throw(INTERP_KERNEL::Exception); - void setWeight(int gaussPtIdInCell, double newVal) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT MCAuto localizePtsInRefCooForEachCell(const DataArrayDouble *ptsInRefCoo, const MEDCouplingUMesh *mesh) const; + MEDCOUPLING_EXPORT MCAuto buildRefCell() const; // - static MEDCouplingGaussLocalization BuildNewInstanceFromTinyInfo(int dim, const std::vector& tinyData); - static bool AreAlmostEqual(const std::vector& v1, const std::vector& v2, double eps); + MEDCOUPLING_EXPORT const std::vector& getRefCoords() const { return _ref_coord; } + MEDCOUPLING_EXPORT double getRefCoord(int ptIdInCell, int comp) const; + MEDCOUPLING_EXPORT const std::vector& getGaussCoords() const { return _gauss_coord; } + MEDCOUPLING_EXPORT double getGaussCoord(int gaussPtIdInCell, int comp) const; + MEDCOUPLING_EXPORT const std::vector& getWeights() const { return _weight; } + MEDCOUPLING_EXPORT double getWeight(int gaussPtIdInCell, double newVal) const; + MEDCOUPLING_EXPORT void setRefCoord(int ptIdInCell, int comp, double newVal); + MEDCOUPLING_EXPORT void setGaussCoord(int gaussPtIdInCell, int comp, double newVal); + MEDCOUPLING_EXPORT void setWeight(int gaussPtIdInCell, double newVal); + MEDCOUPLING_EXPORT void setRefCoords(const std::vector& refCoo); + MEDCOUPLING_EXPORT void setGaussCoords(const std::vector& gsCoo); + MEDCOUPLING_EXPORT void setWeights(const std::vector& w); + // + MEDCOUPLING_EXPORT static MEDCouplingGaussLocalization BuildNewInstanceFromTinyInfo(mcIdType dim, const std::vector& tinyData); + MEDCOUPLING_EXPORT static bool AreAlmostEqual(const std::vector& v1, const std::vector& v2, double eps); private: - int checkCoherencyOfRequest(int gaussPtIdInCell, int comp) const throw(INTERP_KERNEL::Exception); + int checkCoherencyOfRequest(mcIdType gaussPtIdInCell, int comp) const; private: INTERP_KERNEL::NormalizedCellType _type; std::vector _ref_coord;