]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Some doc on nature of field + some little factorization.
authorageay <ageay>
Wed, 18 Apr 2012 06:47:26 +0000 (06:47 +0000)
committerageay <ageay>
Wed, 18 Apr 2012 06:47:26 +0000 (06:47 +0000)
13 files changed:
src/MEDCoupling/MEDCouplingCMesh.cxx
src/MEDCoupling/MEDCouplingCMesh.hxx
src/MEDCoupling/MEDCouplingExtrudedMesh.cxx
src/MEDCoupling/MEDCouplingExtrudedMesh.hxx
src/MEDCoupling/MEDCouplingField.cxx
src/MEDCoupling/MEDCouplingField.hxx
src/MEDCoupling/MEDCouplingMesh.hxx
src/MEDCoupling/MEDCouplingPointSet.cxx
src/MEDCoupling/MEDCouplingPointSet.hxx
src/MEDCoupling/MEDCouplingUMesh.cxx
src/MEDCoupling/MEDCouplingUMesh.hxx
src/MEDCoupling/MEDCouplingUMeshDesc.cxx
src/MEDCoupling/MEDCouplingUMeshDesc.hxx

index 0178d4b3f19f230e0ce7dbe6bbcf15a00d459589..03e27a72f2a31c85c57b75a593a20c4fba759bf2 100644 (file)
@@ -419,7 +419,7 @@ void MEDCouplingCMesh::getNodeIdsOfCell(int cellId, std::vector<int>& conn) cons
     };
 }
 
-void MEDCouplingCMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
+void MEDCouplingCMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception)
 {
   int tmp[3];
   int spaceDim=getSpaceDimension();
index 17a7f7df6ec1216fccd6e2ac78dfef7af67f0c91..204299178dc96f84fe24d8649b59b63c0d61eb25 100644 (file)
@@ -57,7 +57,7 @@ namespace ParaMEDMEM
     std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
     int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
-    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
+    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception);
     std::string simpleRepr() const;
     std::string advancedRepr() const;
     const DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception);
index aaefc22fff77938153f8fc19ee77ae09b626f7e4..c88f88662f2aded54c791423499795b84276ec38 100644 (file)
@@ -248,7 +248,7 @@ void MEDCouplingExtrudedMesh::getNodeIdsOfCell(int cellId, std::vector<int>& con
   conn.insert(conn.end(),tmp2.begin(),tmp2.end());
 }
 
-void MEDCouplingExtrudedMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
+void MEDCouplingExtrudedMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception)
 {
   int nbOfNodes2D=_mesh2D->getNumberOfNodes();
   int locId=nodeId%nbOfNodes2D;
index 4203962d1df099aeb91101e84019279cab9efa96..672dcd9a2055ed69beaf667d254287df22fca5b5 100644 (file)
@@ -55,7 +55,7 @@ namespace ParaMEDMEM
     std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
     int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
-    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
+    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception);
     std::string simpleRepr() const;
     std::string advancedRepr() const;
     void checkCoherency() const throw (INTERP_KERNEL::Exception);
index 5516965fe02dcb32b3d560958d0cf9f78f9be9b8..454afd98cfcf749eb2b1255fa8e9d291fa92e79e 100644 (file)
@@ -99,6 +99,21 @@ TypeOfField MEDCouplingField::getTypeOfField() const
   return _type->getEnum();
 }
 
+/*!
+ * This method returns the nature of field. This information is very important during interpolation process using ParaMEDMEM::MEDCouplingRemapper or ParaMEDMEM::InterpKernelDEC.
+ * In other context than the two mentioned before this attribute of the field is not sensitive. This attribute is not store in MED file in MEDLoader.
+ * More information of the semantic, and the behaviour of the interpolation, is explained \ref NatureOfField "here".
+ */
+NatureOfField MEDCouplingField::getNature() const
+{
+  return _nature;
+}
+
+/*!
+ * This method set the nature of field in \b this.This  information is very important during interpolation process using ParaMEDMEM::MEDCouplingRemapper or ParaMEDMEM::InterpKernelDEC.
+ * In other context than the two mentioned before this attribute of the field is not sensitive. This attribute is not store in MED file in MEDLoader.
+ * More information of the semantic, and the behaviour of the interpolation, is explained \ref TableNatureOfField "here".
+ */
 void MEDCouplingField::setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception)
 {
   _nature=nat;
index 772a87ef71d1025cc1bfc187b981629382aded27..50e1ad397e248739d62a47403bbe597d95ea0153 100644 (file)
@@ -54,7 +54,7 @@ namespace ParaMEDMEM
     void setDescription(const char *desc) { _desc=desc; }
     const char *getName() const { return _name.c_str(); }
     TypeOfField getTypeOfField() const;
-    NatureOfField getNature() const { return _nature; }
+    NatureOfField getNature() const;
     virtual void setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception);
     DataArrayDouble *getLocalizationOfDiscr() const throw(INTERP_KERNEL::Exception);
     MEDCouplingFieldDouble *buildMeasureField(bool isAbs) const throw(INTERP_KERNEL::Exception);
index 12b00299b80ff7a9d03c956b658e475e7c201ebb..0311d5967a5703a7a9c26bf5b2518fc35ade8717 100644 (file)
@@ -85,7 +85,7 @@ namespace ParaMEDMEM
     virtual std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const = 0;
     virtual void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const = 0;
     virtual DataArrayInt *getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const;
-    virtual void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const = 0;
+    virtual void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception) = 0;
     virtual std::string simpleRepr() const = 0;
     virtual std::string advancedRepr() const = 0;
     // tools
index dcf19c3e84c40607b8d19d64c12b942fe986c17c..f66834967956f1588247340b87affd15c8a0203a 100644 (file)
@@ -153,6 +153,27 @@ bool MEDCouplingPointSet::areCoordsEqualWithoutConsideringStr(const MEDCouplingP
   return _coords->isEqualWithoutConsideringStr(*other._coords,prec);
 }
 
+/*!
+ * Returns coordinates of node with id 'nodeId' and append it in 'coo'.
+ */
+void MEDCouplingPointSet::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception)
+{
+  if(!_coords)
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::getCoordinatesOfNode : no coordinates array set !");
+  int nbNodes=getNumberOfNodes();
+  if(nodeId>=0 && nodeId<nbNodes)
+    {
+      const double *cooPtr=_coords->getConstPointer();
+      int spaceDim=getSpaceDimension();
+      coo.insert(coo.end(),cooPtr+spaceDim*nodeId,cooPtr+spaceDim*(nodeId+1));
+    }
+  else
+    {
+      std::ostringstream oss; oss << "MEDCouplingPointSet::getCoordinatesOfNode : request of nodeId \"" << nodeId << "\" but it should be in [0,"<< nbNodes << ") !";
+      throw INTERP_KERNEL::Exception(oss.str().c_str());
+    }
+}
+
 /*!
  * This method is typically the base method used for implementation of mergeNodes. This method computes this permutation array using as input,
  * This method is const ! So this method simply computes the array, no permutation of nodes is done.
index 9f646b5d41aab3b4245eb8453c1d8dd390141a12..8e0561959ab972607ca98729dc426cad3654a61b 100644 (file)
@@ -66,6 +66,7 @@ namespace ParaMEDMEM
     bool areCoordsEqualWithoutConsideringStr(const MEDCouplingPointSet& other, double prec) const;
     virtual DataArrayInt *mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes) = 0;
     virtual DataArrayInt *mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes) = 0;
+    void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const throw(INTERP_KERNEL::Exception);
     DataArrayInt *buildPermArrayForMergeNode(double precision, int limitNodeId, bool& areNodesMerged, int& newNbOfNodes) const;
     std::vector<int> getNodeIdsNearPoint(const double *pos, double eps) const throw(INTERP_KERNEL::Exception);
     void getNodeIdsNearPoints(const double *pos, int nbOfNodes, double eps, std::vector<int>& c, std::vector<int>& cI) const throw(INTERP_KERNEL::Exception);
index de605df872f1928086a9ac3d54c65f2ce67bb5fb..92c2f95c45e8eb082a14dc10e43a689e4a5b5674 100644 (file)
@@ -1755,16 +1755,6 @@ void MEDCouplingUMesh::getNodeIdsOfCell(int cellId, std::vector<int>& conn) cons
       conn.push_back(*w);
 }
 
-/*!
- * Returns coordinates of node with id 'nodeId' and append it in 'coo'.
- */
-void MEDCouplingUMesh::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
-{
-  const double *cooPtr=_coords->getConstPointer();
-  int spaceDim=getSpaceDimension();
-  coo.insert(coo.end(),cooPtr+spaceDim*nodeId,cooPtr+spaceDim*(nodeId+1));
-}
-
 std::string MEDCouplingUMesh::simpleRepr() const
 {
   static const char msg0[]="No coordinates specified !";
index 843b9861ab1122dbcdb109b0ae87cb4e19ad483e..8cb98085ab60927351276f0309202377e548cff0 100644 (file)
@@ -70,7 +70,6 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
     MEDCOUPLING_EXPORT DataArrayInt *getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const;
-    MEDCOUPLING_EXPORT void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
     MEDCOUPLING_EXPORT std::string simpleRepr() const;
     MEDCOUPLING_EXPORT std::string advancedRepr() const;
     MEDCOUPLING_EXPORT std::string reprConnectivityOfThis() const;
index fcdd1761e12225414e6cc5a9b54007993c86ae10..893b547ca5565bd2394995313ea91eb9455b48c0 100644 (file)
@@ -56,11 +56,9 @@ MEDCouplingUMeshDesc *MEDCouplingUMeshDesc::New(const char *meshName, int meshDi
   return ret;
 }
 
-/*!
- * not implemented
- */
 MEDCouplingMesh *MEDCouplingUMeshDesc::deepCpy() const
 {
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -157,12 +155,7 @@ int MEDCouplingUMeshDesc::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCell
 
 void MEDCouplingUMeshDesc::getNodeIdsOfCell(int cellId, std::vector<int>& conn) const
 {
-  //not implemented yet.
-}
-
-void MEDCouplingUMeshDesc::getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const
-{
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
 }
 
 std::string MEDCouplingUMeshDesc::simpleRepr() const
@@ -364,14 +357,14 @@ void MEDCouplingUMeshDesc::getCellsInBoundingBox(const INTERP_KERNEL::DirectedBo
 
 DataArrayInt *MEDCouplingUMeshDesc::mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes)
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   areNodesMerged=false;
   return 0;
 }
 
 DataArrayInt *MEDCouplingUMeshDesc::mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes)
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   areNodesMerged=false;
   return 0;
 }
@@ -383,19 +376,19 @@ void MEDCouplingUMeshDesc::tryToShareSameCoordsPermute(const MEDCouplingPointSet
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildPartOfMySelf(const int *start, const int *end, bool keepCoords) const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildPartOfMySelfNode(const int *start, const int *end, bool fullyIn) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildFacePartOfMySelfNode(const int *start, const int *end, bool fullyIn) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -406,12 +399,12 @@ DataArrayInt *MEDCouplingUMeshDesc::simplexize(int policy) throw(INTERP_KERNEL::
 
 void MEDCouplingUMeshDesc::findBoundaryNodes(std::vector<int>& nodes) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
 }
 
 MEDCouplingPointSet *MEDCouplingUMeshDesc::buildBoundaryMesh(bool keepCoords) const
 {
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -428,18 +421,18 @@ void MEDCouplingUMeshDesc::renumberCells(const int *old2NewBg, bool check) throw
 void MEDCouplingUMeshDesc::renumberNodes(const int *newNodeNumbers, int newNbOfNodes)
 {
   MEDCouplingPointSet::renumberNodes(newNodeNumbers,newNbOfNodes);
-  //not implemented yet
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
 }
 
 MEDCouplingFieldDouble *MEDCouplingUMeshDesc::getMeasureField(bool isAbs) const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 MEDCouplingFieldDouble *MEDCouplingUMeshDesc::getMeasureFieldOnNode(bool isAbs) const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -447,13 +440,13 @@ MEDCouplingFieldDouble *MEDCouplingUMeshDesc::buildOrthogonalField() const
 {
   if(getMeshDimension()!=2)
     throw INTERP_KERNEL::Exception("Expected a cmesh with meshDim == 2 !");
-  //not implemented yet !
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 DataArrayInt *MEDCouplingUMeshDesc::zipCoordsTraducer()
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
@@ -478,13 +471,13 @@ void MEDCouplingUMeshDesc::checkFullyDefined() const throw(INTERP_KERNEL::Except
 
 MEDCouplingMesh *MEDCouplingUMeshDesc::mergeMyselfWith(const MEDCouplingMesh *other) const
 {  
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
 DataArrayDouble *MEDCouplingUMeshDesc::getBarycenterAndOwner() const
 {
-  //not implemented yet.
+  throw INTERP_KERNEL::Exception("Not implemented yet !");
   return 0;
 }
 
index ac1424f5122a1e34ac8d09b17053b1f3142315be..ffbeebf2b64f524bb80dbd0ae6987b58c2fcb103 100644 (file)
@@ -51,7 +51,6 @@ namespace ParaMEDMEM
     MEDCOUPLING_EXPORT std::set<INTERP_KERNEL::NormalizedCellType> getAllGeoTypes() const;
     MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const;
     MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector<int>& conn) const;
-    MEDCOUPLING_EXPORT void getCoordinatesOfNode(int nodeId, std::vector<double>& coo) const;
     MEDCOUPLING_EXPORT std::string simpleRepr() const;
     MEDCOUPLING_EXPORT std::string advancedRepr() const;
     MEDCOUPLING_EXPORT MEDCouplingMeshType getType() const { return UNSTRUCTURED_DESC; }