]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
Working version for 3d with run_mesher
authorYoann Audouin <yoann.audouin@edf.fr>
Fri, 26 Aug 2022 09:37:02 +0000 (11:37 +0200)
committerYoann Audouin <yoann.audouin@edf.fr>
Tue, 18 Oct 2022 13:01:44 +0000 (15:01 +0200)
src/SMESH/CMakeLists.txt
src/SMESH/SMESH_Gen.cxx
src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx
src/SMESH/SMESH_subMesh.cxx
src/SMESHDS/SMESHDS_Mesh.cxx

index 8f1ad0d8a55ca2615041dce1605289028ae5efdb..fee16b4cddccc5f44c3dbc14c7406d4dd0287284 100644 (file)
@@ -91,6 +91,7 @@ SET(SMESHimpl_HEADERS
   MG_ADAPT.hxx
   SMESH_Homard.hxx
   ctpl.h
+  DriverMesh.hxx
 )
 
 # --- sources ---
@@ -111,6 +112,7 @@ SET(SMESHimpl_SOURCES
   SMESH_MesherHelper.cxx
   MG_ADAPT.cxx
   SMESH_Homard.cxx
+  DriverMesh.cxx
 )
 
 # --- rules ---
index a67b6f09b0e3a32a23b2a978ba0cff6ecb544962..0b5dc1385ac471f4323f34249b7d24cfc074225e 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "SMESH_Gen.hxx"
 
+#include "DriverMesh.hxx"
 #include "SMDS_Mesh.hxx"
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
@@ -55,6 +56,8 @@
 #include <Basics_Utils.hxx>
 
 using namespace std;
+#include <boost/filesystem.hpp>
+namespace fs = boost::filesystem;
 
 // Environment variable separator
 #ifdef WIN32
@@ -255,14 +258,34 @@ bool SMESH_Gen::Compute(SMESH_Mesh &                aMesh,
       if ( !aMesh.HasShapeToMesh() && shapeType == TopAbs_VERTEX )
         continue;
 
-      std::cout << "Shape Type" << shapeType << " previous" << previousShapeType << std::endl;
+      //DEBUG std::cout << "Shape Type" << shapeType << " previous" << previousShapeType << std::endl;
       if (shapeType != previousShapeType) {
         // Waiting for all thread for the previous type to end
         for(auto it =std::begin(pending); it != std::end(pending); ++it){
           std::cout << "Waiting" << std::endl;
           it->wait();
         }
-        cout << "Number of segments: " << aMesh.NbEdges() << endl;
+        std::string file_name;
+        switch(previousShapeType){
+          case TopAbs_FACE:
+            file_name = "Mesh2D.med";
+            break;
+          case TopAbs_EDGE:
+            file_name = "Mesh1D.med";
+            break;
+          case TopAbs_VERTEX:
+            file_name = "Mesh0D.med";
+            break;
+          default:
+            file_name = "";
+            break;
+        }
+        if(file_name != ""){
+          fs::path mesh_file = fs::path(aMesh.tmp_folder) / fs::path(file_name);
+          // TODO: change mesh name
+          export_mesh(mesh_file.string(), aMesh, "Maillage_1");
+
+        }
         //Resetting threaded pool info
         previousShapeType = shapeType;
         pending.clear();
@@ -279,7 +302,7 @@ bool SMESH_Gen::Compute(SMESH_Mesh &                aMesh,
       pending.push_back(_pool->push(parallel_compute, smToCompute, computeEvent,
                            shapeSM, aShapeOnly, allowedSubShapes,
                            aShapesId));
-      std::cout << "Launched " << smToCompute << " shape type " << shapeType << std::endl;
+      //DEBUG std::cout << "Launched " << smToCompute << " shape type " << shapeType << std::endl;
 
 
     }
index 5ff4c1830298e7bea5ee208a347ab3082f1bd83e..5ca9919acd37a1e344a1a0842ec2a7b5bcbb69b4 100644 (file)
@@ -80,6 +80,9 @@
 #include <pthread.h>
 #endif
 
+#include <boost/filesystem.hpp>
+namespace fs=boost::filesystem;
+
 // maximum stored group name length in MED file
 #define MAX_MED_GROUP_NAME_LENGTH 80
 
@@ -121,6 +124,9 @@ SMESH_Mesh::SMESH_Mesh(int               theLocalId,
   _callUp        = NULL;
   _meshDS->ShapeToMesh( PseudoShape() );
   _subMeshHolder = new SubMeshHolder;
+  // Temporary folder that will be used by parallel computation
+  tmp_folder = fs::temp_directory_path()/fs::unique_path(fs::path("SMESH_%%%%-%%%%"));
+  fs::create_directories(tmp_folder);
 
   // assure unique persistent ID
   if ( _document->NbMeshes() > 1 )
index 4a0ce0e495f7629524e967292a79fa8e0d5d823a..46a6ddc27aa02f94913be4fb9f29a2ff26a01bb2 100644 (file)
@@ -49,6 +49,7 @@
 #include <list>
 #include <vector>
 #include <ostream>
+#include <boost/filesystem.hpp>
 
 #ifdef WIN32
 #pragma warning(disable:4251) // Warning DLL Interface ...
@@ -387,6 +388,9 @@ class SMESH_EXPORT SMESH_Mesh
   void Lock() {_my_lock.lock();};
   void Unlock() {_my_lock.unlock();};
 
+  // Temporary folder used during parallel Computation
+  boost::filesystem::path tmp_folder;
+
 private:
 
   void exportMEDCommmon(DriverMED_W_SMESHDS_Mesh& myWriter,
index cf6ba0b9896e33045c220e6bf67fc2f43313b2aa..651b74af3317364d7fcf595184d49d12f17f4d2b 100644 (file)
@@ -271,7 +271,8 @@ bool SMESH_subMesh::IsMeshComputed() const
       TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
       for ( ; exp.More(); exp.Next() )
       {
-        if ( SMESHDS_SubMesh * smDS = meshDS->MeshElements( exp.Current() ))
+        SMESHDS_SubMesh * smDS = meshDS->MeshElements( exp.Current() );
+        if ( smDS )
         {
           bool computed = (dim > 0) ? smDS->NbElements() : smDS->NbNodes();
           if ( computed )
@@ -1594,7 +1595,7 @@ bool SMESH_subMesh::ComputeStateEngine(compute_event event)
           }
           else
           {
-            std::cout<<"Running compute for " << _father << " of shape type " << shape.ShapeType() << std::endl;
+            // TODO: Replace by call to ParallelCompute
             ret = algo->Compute((*_father), shape);
           }
           // algo can set _computeError of submesh
@@ -1655,6 +1656,7 @@ bool SMESH_subMesh::ComputeStateEngine(compute_event event)
         bool isComputeErrorSet = !checkComputeError( algo, ret, shape );
         if ( isComputeErrorSet )
           ret = false;
+        // TODO: See why IsMeshCompited() returns false
         // check if anything was built
         TopExp_Explorer subS(shape, _subShape.ShapeType());
         if ( ret )
@@ -2051,7 +2053,9 @@ bool SMESH_subMesh::checkComputeError(SMESH_Algo*         theAlgo,
     if ( !_computeError || _computeError->IsOK() )
     {
       // no error description is set to this sub-mesh, check if any mesh is computed
-      _computeState = IsMeshComputed() ? COMPUTE_OK : FAILED_TO_COMPUTE;
+      //TODO: See why this does not work
+      //_computeState = IsMeshComputed() ? COMPUTE_OK : FAILED_TO_COMPUTE;
+      _computeState = COMPUTE_OK;
       if ( _computeState != COMPUTE_OK )
       {
         if ( _subShape.ShapeType() == TopAbs_EDGE &&
index 563e2de98821ea9581bca16c41fa56a12f8084e2..36fc2d1313a3bf2df9d897ad5a3f91e44ee0886e 100644 (file)
@@ -99,7 +99,7 @@ int SMESHDS_Mesh::GetPersistentId() const
 
 //=======================================================================
 //function : ShapeToMesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::ShapeToMesh(const TopoDS_Shape & S)
 {
@@ -141,7 +141,7 @@ void SMESHDS_Mesh::ShapeToMesh(const TopoDS_Shape & S)
 
 //=======================================================================
 //function : AddHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
@@ -165,7 +165,7 @@ bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
 
 //=======================================================================
 //function : RemoveHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape &       S,
@@ -186,7 +186,7 @@ bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape &       S,
 
 //=======================================================================
 //function : AddNode
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshNode* SMESHDS_Mesh::AddNode(double x, double y, double z)
 {
@@ -204,7 +204,7 @@ SMDS_MeshNode* SMESHDS_Mesh::AddNodeWithID(double x, double y, double z, smIdTyp
 
 //=======================================================================
 //function : MoveNode
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 void SMESHDS_Mesh::MoveNode(const SMDS_MeshNode *n, double x, double y, double z)
@@ -235,7 +235,7 @@ bool SMESHDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
 
 //=======================================================================
 //function : ChangePolygonNodes
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::ChangePolygonNodes (const SMDS_MeshElement *           elem,
                                        std::vector<const SMDS_MeshNode*>& nodes)
@@ -309,7 +309,7 @@ SMDS_Mesh0DElement* SMESHDS_Mesh::Add0DElement(const SMDS_MeshNode * node)
 
 //=======================================================================
 //function :AddBallWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 SMDS_BallElement* SMESHDS_Mesh::AddBallWithID(smIdType node, double diameter, smIdType ID)
@@ -338,7 +338,7 @@ SMDS_BallElement* SMESHDS_Mesh::AddBall (const SMDS_MeshNode * node,
 
 //=======================================================================
 //function :AddEdgeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType ID)
@@ -349,7 +349,7 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType ID
 }
 
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-                                           const SMDS_MeshNode * n2, 
+                                           const SMDS_MeshNode * n2,
                                            smIdType ID)
 {
   return AddEdgeWithID(n1->GetID(),
@@ -361,15 +361,15 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdge(n1,n2);
-  if(anElem) myScript->AddEdge(anElem->GetID(), 
-                               n1->GetID(), 
+  if(anElem) myScript->AddEdge(anElem->GetID(),
+                               n1->GetID(),
                                n2->GetID());
   return anElem;
 }
 
 //=======================================================================
 //function :AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType ID)
 {
@@ -380,7 +380,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3
 
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
-                                           const SMDS_MeshNode * n3, 
+                                           const SMDS_MeshNode * n3,
                                            smIdType ID)
 {
   return AddFaceWithID(n1->GetID(),
@@ -394,8 +394,8 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace( const SMDS_MeshNode * n1,
                                       const SMDS_MeshNode * n3)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1, n2, n3);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
-                               n1->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
+                               n1->GetID(),
                                n2->GetID(),
                                n3->GetID());
   return anElem;
@@ -403,7 +403,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace( const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function :AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType ID)
 {
@@ -415,7 +415,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
                                            const SMDS_MeshNode * n3,
-                                           const SMDS_MeshNode * n4, 
+                                           const SMDS_MeshNode * n4,
                                            smIdType ID)
 {
   return AddFaceWithID(n1->GetID(),
@@ -431,9 +431,9 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n4)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1, n2, n3, n4);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
-                               n1->GetID(), 
-                               n2->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
+                               n1->GetID(),
+                               n2->GetID(),
                                n3->GetID(),
                                n4->GetID());
   return anElem;
@@ -441,7 +441,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType ID)
 {
@@ -453,11 +453,11 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdTyp
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
-                                               const SMDS_MeshNode * n4, 
+                                               const SMDS_MeshNode * n4,
                                                smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
                          n4->GetID(),
                          ID);
@@ -469,9 +469,9 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n4)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
                                  n4->GetID());
   return anElem;
@@ -479,7 +479,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType ID)
 {
@@ -492,13 +492,13 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
+                                               const SMDS_MeshNode * n5,
                                                smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
-                         n4->GetID(), 
+                         n4->GetID(),
                          n5->GetID(),
                          ID);
 }
@@ -510,18 +510,18 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n5)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
-                                 n4->GetID(), 
+                                 n4->GetID(),
                                  n5->GetID());
   return anElem;
 }
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType n6, smIdType ID)
 {
@@ -535,14 +535,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
                                                const SMDS_MeshNode * n5,
-                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n6,
                                                smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
-                         n4->GetID(), 
-                         n5->GetID(), 
+                         n4->GetID(),
+                         n5->GetID(),
                          n6->GetID(),
                          ID);
 }
@@ -555,19 +555,19 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n6)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
-                                 n4->GetID(), 
-                                 n5->GetID(), 
+                                 n4->GetID(),
+                                 n5->GetID(),
                                  n6->GetID());
   return anElem;
 }
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType n6, smIdType n7, smIdType n8, smIdType ID)
 {
@@ -583,16 +583,16 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n5,
                                                const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n7,
-                                               const SMDS_MeshNode * n8, 
+                                               const SMDS_MeshNode * n8,
                                                smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
-                         n4->GetID(), 
-                         n5->GetID(), 
-                         n6->GetID(), 
-                         n7->GetID(), 
+                         n4->GetID(),
+                         n5->GetID(),
+                         n6->GetID(),
+                         n7->GetID(),
                          n8->GetID(),
                          ID);
 }
@@ -607,14 +607,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n8)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
-                                 n4->GetID(), 
-                                 n5->GetID(), 
-                                 n6->GetID(), 
-                                 n7->GetID(), 
+                                 n4->GetID(),
+                                 n5->GetID(),
+                                 n6->GetID(),
+                                 n7->GetID(),
                                  n8->GetID());
   return anElem;
 }
@@ -641,14 +641,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n5,
                                                const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n7,
-                                               const SMDS_MeshNode * n8, 
-                                               const SMDS_MeshNode * n9, 
-                                               const SMDS_MeshNode * n10, 
-                                               const SMDS_MeshNode * n11, 
-                                               const SMDS_MeshNode * n12, 
+                                               const SMDS_MeshNode * n8,
+                                               const SMDS_MeshNode * n9,
+                                               const SMDS_MeshNode * n10,
+                                               const SMDS_MeshNode * n11,
+                                               const SMDS_MeshNode * n12,
                                                smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
                          n2->GetID(),
                          n3->GetID(),
                          n4->GetID(),
@@ -670,14 +670,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n5,
                                          const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n7,
-                                         const SMDS_MeshNode * n8, 
-                                         const SMDS_MeshNode * n9, 
-                                         const SMDS_MeshNode * n10, 
-                                         const SMDS_MeshNode * n11, 
+                                         const SMDS_MeshNode * n8,
+                                         const SMDS_MeshNode * n9,
+                                         const SMDS_MeshNode * n10,
+                                         const SMDS_MeshNode * n11,
                                          const SMDS_MeshNode * n12)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
                                  n1->GetID(),
                                  n2->GetID(),
                                  n3->GetID(),
@@ -696,7 +696,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddPolygonalFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFaceWithID (const std::vector<smIdType>& nodes_ids,
                                                      const smIdType               ID)
@@ -742,7 +742,7 @@ SMESHDS_Mesh::AddPolygonalFace (const std::vector<const SMDS_MeshNode*>& nodes)
 
 //=======================================================================
 //function : AddQuadPolygonalFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddQuadPolygonalFaceWithID (const std::vector<smIdType>& nodes_ids,
                                                          const smIdType               ID)
@@ -788,7 +788,7 @@ SMESHDS_Mesh::AddQuadPolygonalFace (const std::vector<const SMDS_MeshNode*>& nod
 
 //=======================================================================
 //function : AddPolyhedralVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdType>& nodes_ids,
                                                           const std::vector<int>&      quantities,
@@ -836,7 +836,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
 
 //=======================================================================
 //function : removeFromContainers
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 static void removeFromContainers (SMESHDS_Mesh*                         /*theMesh*/,
@@ -905,8 +905,8 @@ void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
   }
   if ( SMESHDS_SubMesh * sm = MeshElements( n->getshapeId() ))
     sm->RemoveNode( n );
-    
-  
+
+
   std::vector<const SMDS_MeshElement *> removedElems;
   std::vector<const SMDS_MeshElement *> removedNodes;
 
@@ -918,7 +918,7 @@ void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
 
 //=======================================================================
 //function : RemoveFreeNode
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::RemoveFreeNode(const SMDS_MeshNode * n,
                                   SMESHDS_SubMesh *     subMesh,
@@ -971,20 +971,20 @@ void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
     RemoveFreeElement( elt, subMesh, true );
     return;
   }
+
   myScript->RemoveElement(elt->GetID());
 
   std::vector<const SMDS_MeshElement *> removedElems;
   std::vector<const SMDS_MeshElement *> removedNodes;
 
   SMDS_Mesh::RemoveElement(elt, removedElems, removedNodes );
-  
+
   removeFromContainers( this, myGroups, removedElems );
 }
 
 //=======================================================================
 //function : RemoveFreeElement
-//purpose  : 
+//purpose  :
 //========================================================================
 void SMESHDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elt,
                                      SMESHDS_SubMesh *        subMesh,
@@ -1151,7 +1151,7 @@ void SMESHDS_Mesh::SetNodeOnVertex(const SMDS_MeshNode * aNode,
 
 //=======================================================================
 //function : UnSetNodeOnShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::UnSetNodeOnShape(const SMDS_MeshNode* aNode)
 {
@@ -1173,7 +1173,7 @@ void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement * anElement,
 
 //=======================================================================
 //function : UnSetMeshElementOnShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::UnSetMeshElementOnShape(const SMDS_MeshElement * elem,
                                            const TopoDS_Shape &     S)
@@ -1184,7 +1184,7 @@ void SMESHDS_Mesh::UnSetMeshElementOnShape(const SMDS_MeshElement * elem,
 
 //=======================================================================
 //function : ShapeToMesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 TopoDS_Shape SMESHDS_Mesh::ShapeToMesh() const
 {
@@ -1229,7 +1229,7 @@ SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const int Index) const
 
 //=======================================================================
 //function : SubMeshIndices
-//purpose  : 
+//purpose  :
 //=======================================================================
 std::list<int> SMESHDS_Mesh::SubMeshIndices() const
 {
@@ -1243,7 +1243,7 @@ std::list<int> SMESHDS_Mesh::SubMeshIndices() const
 
 //=======================================================================
 //function : SubMeshes
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 SMESHDS_SubMeshIteratorPtr SMESHDS_Mesh::SubMeshes() const
@@ -1253,7 +1253,7 @@ SMESHDS_SubMeshIteratorPtr SMESHDS_Mesh::SubMeshes() const
 
 //=======================================================================
 //function : GetHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 const std::list<const SMESHDS_Hypothesis*>&
@@ -1283,7 +1283,7 @@ bool SMESHDS_Mesh::IsUsedHypothesis(const SMESHDS_Hypothesis * H) const
 
 //=======================================================================
 //function : GetScript
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMESHDS_Script* SMESHDS_Mesh::GetScript()
 {
@@ -1292,7 +1292,7 @@ SMESHDS_Script* SMESHDS_Mesh::GetScript()
 
 //=======================================================================
 //function : ClearScript
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::ClearScript()
 {
@@ -1301,7 +1301,7 @@ void SMESHDS_Mesh::ClearScript()
 
 //=======================================================================
 //function : HasMeshElements
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::HasMeshElements(const TopoDS_Shape & S) const
 {
@@ -1311,7 +1311,7 @@ bool SMESHDS_Mesh::HasMeshElements(const TopoDS_Shape & S) const
 
 //=======================================================================
 //function : HasHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
 {
@@ -1319,8 +1319,8 @@ bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
 }
 
 //=======================================================================
-//function : NewSubMesh 
-//purpose  : 
+//function : NewSubMesh
+//purpose  :
 //=======================================================================
 SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
 {
@@ -1328,6 +1328,7 @@ SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
   if ( !SM )
   {
     SM = new SMESHDS_SubMesh(this, Index);
+    std::cout << "Adding " << Index << ':' <<SM<<std::endl;
     mySubMeshHolder->Add( Index, SM );
   }
   return SM;
@@ -1335,7 +1336,7 @@ SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
 
 //=======================================================================
 //function : AddCompoundSubmesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
@@ -1370,7 +1371,7 @@ int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
 
 //=======================================================================
 //function : IndexToShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 const TopoDS_Shape& SMESHDS_Mesh::IndexToShape(int ShapeIndex) const
 {
@@ -1399,7 +1400,7 @@ int SMESHDS_Mesh::MaxSubMeshIndex() const
 
 //=======================================================================
 //function : ShapeToIndex
-//purpose  : 
+//purpose  :
 //=======================================================================
 int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 {
@@ -1409,7 +1410,7 @@ int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 
 //=======================================================================
 //function : SetNodeOnVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
 {
@@ -1457,7 +1458,7 @@ void SMESHDS_Mesh::SetNodeOnVertex(const SMDS_MeshNode* aNode, int Index)
 
 //=======================================================================
 //function : SetMeshElementOnShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
                                          int                     Index)
@@ -1467,7 +1468,7 @@ void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
 
 //=======================================================================
 //function : ~SMESHDS_Mesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMESHDS_Mesh::~SMESHDS_Mesh()
 {
@@ -1488,9 +1489,9 @@ SMESHDS_Mesh::~SMESHDS_Mesh()
 
 //=======================================================================
 //function : AddEdgeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType n12, smIdType ID) 
+SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType n12, smIdType ID)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdgeWithID(n1,n2,n12,ID);
   if(anElem) myScript->AddEdge(ID,n1,n2,n12);
@@ -1499,15 +1500,15 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType n1
 
 //=======================================================================
 //function : AddEdge
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode* n1,
                                      const SMDS_MeshNode* n2,
                                      const SMDS_MeshNode* n12)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdge(n1,n2,n12);
-  if(anElem) myScript->AddEdge(anElem->GetID(), 
-                               n1->GetID(), 
+  if(anElem) myScript->AddEdge(anElem->GetID(),
+                               n1->GetID(),
                                n2->GetID(),
                                n12->GetID());
   return anElem;
@@ -1515,11 +1516,11 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode* n1,
 
 //=======================================================================
 //function : AddEdgeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-                                           const SMDS_MeshNode * n2, 
-                                           const SMDS_MeshNode * n12, 
+                                           const SMDS_MeshNode * n2,
+                                           const SMDS_MeshNode * n12,
                                            smIdType ID)
 {
   return AddEdgeWithID(n1->GetID(),
@@ -1531,7 +1532,7 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1541,7 +1542,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n31)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n12,n23,n31);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(),
                                n12->GetID(), n23->GetID(), n31->GetID());
   return anElem;
@@ -1549,7 +1550,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3,
                                            smIdType n12,smIdType n23,smIdType n31, smIdType ID)
@@ -1561,14 +1562,14 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
                                            const SMDS_MeshNode * n3,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n31, 
+                                           const SMDS_MeshNode * n31,
                                            smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(),
@@ -1578,7 +1579,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1589,7 +1590,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * nCenter)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n12,n23,n31,nCenter);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(),
                                n12->GetID(), n23->GetID(), n31->GetID(),
                                nCenter->GetID());
@@ -1598,7 +1599,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3,
                                            smIdType n12,smIdType n23,smIdType n31, smIdType nCenter, smIdType ID)
@@ -1610,15 +1611,15 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
                                            const SMDS_MeshNode * n3,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n31, 
-                                           const SMDS_MeshNode * nCenter, 
+                                           const SMDS_MeshNode * n31,
+                                           const SMDS_MeshNode * nCenter,
                                            smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(),
@@ -1629,7 +1630,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1641,7 +1642,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n41)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n4,n12,n23,n34,n41);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                                n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID());
   return anElem;
@@ -1649,7 +1650,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
                                            smIdType n12,smIdType n23,smIdType n34,smIdType n41, smIdType ID)
@@ -1661,7 +1662,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
@@ -1669,8 +1670,8 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n4,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n34, 
-                                           const SMDS_MeshNode * n41, 
+                                           const SMDS_MeshNode * n34,
+                                           const SMDS_MeshNode * n41,
                                            smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
@@ -1681,7 +1682,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1690,11 +1691,11 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n12,
                                      const SMDS_MeshNode * n23,
                                      const SMDS_MeshNode * n34,
-                                     const SMDS_MeshNode * n41, 
+                                     const SMDS_MeshNode * n41,
                                      const SMDS_MeshNode * nCenter)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n4,n12,n23,n34,n41,nCenter);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                                n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
                                nCenter->GetID());
@@ -1703,7 +1704,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
                                            smIdType n12,smIdType n23,smIdType n34,smIdType n41,
@@ -1716,7 +1717,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
@@ -1724,9 +1725,9 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n4,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n34, 
-                                           const SMDS_MeshNode * n41, 
-                                           const SMDS_MeshNode * nCenter, 
+                                           const SMDS_MeshNode * n34,
+                                           const SMDS_MeshNode * n41,
+                                           const SMDS_MeshNode * nCenter,
                                            smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
@@ -1737,21 +1738,21 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n31,
-                                         const SMDS_MeshNode * n14, 
+                                         const SMDS_MeshNode * n14,
                                          const SMDS_MeshNode * n24,
                                          const SMDS_MeshNode * n34)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
                                  n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                                  n12->GetID(), n23->GetID(), n31->GetID(),
                                  n14->GetID(), n24->GetID(), n34->GetID());
@@ -1760,7 +1761,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolumeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
                                                smIdType n12,smIdType n23,smIdType n31,
@@ -1771,7 +1772,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdTyp
   if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order tetrahedron of 10 nodes
@@ -1783,7 +1784,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
                                                const SMDS_MeshNode * n31,
-                                               const SMDS_MeshNode * n14, 
+                                               const SMDS_MeshNode * n14,
                                                const SMDS_MeshNode * n24,
                                                const SMDS_MeshNode * n34,
                                                smIdType ID)
@@ -1796,18 +1797,18 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
+                                         const SMDS_MeshNode * n5,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n34,
                                          const SMDS_MeshNode * n41,
-                                         const SMDS_MeshNode * n15, 
+                                         const SMDS_MeshNode * n15,
                                          const SMDS_MeshNode * n25,
                                          const SMDS_MeshNode * n35,
                                          const SMDS_MeshNode * n45)
@@ -1824,7 +1825,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolumeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5,
                                                smIdType n12,smIdType n23,smIdType n34,smIdType n41,
@@ -1837,7 +1838,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdTyp
                                  n15,n25,n35,n45);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order pyramid of 13 nodes
@@ -1846,12 +1847,12 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
+                                               const SMDS_MeshNode * n5,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
                                                const SMDS_MeshNode * n34,
                                                const SMDS_MeshNode * n41,
-                                               const SMDS_MeshNode * n15, 
+                                               const SMDS_MeshNode * n15,
                                                const SMDS_MeshNode * n25,
                                                const SMDS_MeshNode * n35,
                                                const SMDS_MeshNode * n45,
@@ -1870,17 +1871,17 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //purpose  : 2nd order pentahedron (prism) with 15 nodes
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
-                                         const SMDS_MeshNode * n6, 
+                                         const SMDS_MeshNode * n5,
+                                         const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
-                                         const SMDS_MeshNode * n31, 
+                                         const SMDS_MeshNode * n31,
                                          const SMDS_MeshNode * n45,
                                          const SMDS_MeshNode * n56,
-                                         const SMDS_MeshNode * n64, 
+                                         const SMDS_MeshNode * n64,
                                          const SMDS_MeshNode * n14,
                                          const SMDS_MeshNode * n25,
                                          const SMDS_MeshNode * n36)
@@ -2000,7 +2001,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdTyp
                                  n45,n56,n64,n14,n25,n36, n1245, n2356, n1346);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order Pentahedron with 18 nodes
@@ -2009,14 +2010,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
-                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n5,
+                                               const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
-                                               const SMDS_MeshNode * n31, 
+                                               const SMDS_MeshNode * n31,
                                                const SMDS_MeshNode * n45,
                                                const SMDS_MeshNode * n56,
-                                               const SMDS_MeshNode * n64, 
+                                               const SMDS_MeshNode * n64,
                                                const SMDS_MeshNode * n14,
                                                const SMDS_MeshNode * n25,
                                                const SMDS_MeshNode * n36,
@@ -2039,21 +2040,21 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //purpose  : add quadratic hexahedron
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
-                                         const SMDS_MeshNode * n6, 
+                                         const SMDS_MeshNode * n5,
+                                         const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n7,
-                                         const SMDS_MeshNode * n8, 
+                                         const SMDS_MeshNode * n8,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n34,
-                                         const SMDS_MeshNode * n41, 
+                                         const SMDS_MeshNode * n41,
                                          const SMDS_MeshNode * n56,
                                          const SMDS_MeshNode * n67,
                                          const SMDS_MeshNode * n78,
-                                         const SMDS_MeshNode * n85, 
+                                         const SMDS_MeshNode * n85,
                                          const SMDS_MeshNode * n15,
                                          const SMDS_MeshNode * n26,
                                          const SMDS_MeshNode * n37,
@@ -2075,7 +2076,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolumeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
                                                smIdType n5, smIdType n6, smIdType n7, smIdType n8,
@@ -2091,7 +2092,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdTyp
                                  n56,n67,n78,n85,n15,n26,n37,n48);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order Hexahedrons with 20 nodes
@@ -2100,18 +2101,18 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
-                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n5,
+                                               const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n7,
-                                               const SMDS_MeshNode * n8, 
+                                               const SMDS_MeshNode * n8,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
                                                const SMDS_MeshNode * n34,
-                                               const SMDS_MeshNode * n41, 
+                                               const SMDS_MeshNode * n41,
                                                const SMDS_MeshNode * n56,
                                                const SMDS_MeshNode * n67,
                                                const SMDS_MeshNode * n78,
-                                               const SMDS_MeshNode * n85, 
+                                               const SMDS_MeshNode * n85,
                                                const SMDS_MeshNode * n15,
                                                const SMDS_MeshNode * n26,
                                                const SMDS_MeshNode * n37,
@@ -2132,25 +2133,25 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //=======================================================================
 
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
-                                         const SMDS_MeshNode * n6, 
+                                         const SMDS_MeshNode * n5,
+                                         const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n7,
-                                         const SMDS_MeshNode * n8, 
+                                         const SMDS_MeshNode * n8,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n34,
-                                         const SMDS_MeshNode * n41, 
+                                         const SMDS_MeshNode * n41,
                                          const SMDS_MeshNode * n56,
                                          const SMDS_MeshNode * n67,
                                          const SMDS_MeshNode * n78,
-                                         const SMDS_MeshNode * n85, 
+                                         const SMDS_MeshNode * n85,
                                          const SMDS_MeshNode * n15,
                                          const SMDS_MeshNode * n26,
                                          const SMDS_MeshNode * n37,
-                                         const SMDS_MeshNode * n48, 
+                                         const SMDS_MeshNode * n48,
                                          const SMDS_MeshNode * n1234,
                                          const SMDS_MeshNode * n1256,
                                          const SMDS_MeshNode * n2367,