Salome HOME
Copyright update 2021
[plugins/ghs3dprlplugin.git] / src / GHS3DPRLPlugin / GHS3DPRLPlugin_GHS3DPRL.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 5a3267b..1f226d0
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2021  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
@@ -57,7 +57,7 @@ static void removeFile( const TCollection_AsciiString& fileName )
   try {
     OSD_File( fileName ).Remove();
   }
-  catch ( Standard_ProgramError ) {
+  catch ( Standard_ProgramError& ) {
     MESSAGE("Can't remove file: " << fileName.ToCString() << " ; file does not exist or permission denied");
   }
 }
@@ -207,7 +207,7 @@ static void exportGMF(MG_TetraHPC_API*    theTetraInput,
 //=============================================================================
 // Here we are going to use the GHS3DPRL mesher for tetra-hpc (formerly tepal in v3 (2014))
 bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
-                                      const TopoDS_Shape& theShape)
+                                      const TopoDS_Shape& /*theShape*/)
 {
   SMESH_MesherHelper helper( theMesh );
   bool ok = Compute( theMesh, &helper );
@@ -217,7 +217,7 @@ bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
 //=============================================================================
 // Here we are going to use the GHS3DPRL mesher for tetra-hpc (formerly tepal in v3 (2014))
 bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
-                                      SMESH_MesherHelper* theHelper)
+                                      SMESH_MesherHelper* /*theHelper*/)
 {
   bool Ok=false;
   TCollection_AsciiString pluginerror("ghs3dprl: ");
@@ -261,6 +261,7 @@ bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
     fileskinmesh(""),
     path,
     casenamemed;  //_MEDName.c_str());
+  int res = 0;    // 0 is OK 
 
   casenamemed += (char *)_MEDName.c_str();
   int n=casenamemed.SearchFromEnd('/');
@@ -363,13 +364,20 @@ bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
   //sometimes it is better to wait flushing files on slow filesystem...
   system( "sleep 3" );
   //launch tetrahpc2med which launch mg-tetra_hpc.py which launch mg-tetra_hpc(_mpi?).exe
-  system( run_GHS3DPRL.ToCString() );
+  res = system( run_GHS3DPRL.ToCString() );
+  if (res > 0) 
+  {
+    pluginerror = pluginerror + "PROBLEM tetrahpc2med command";
+    cout<<pluginerror<<endl;
+    error(COMPERR_ALGO_FAILED, pluginerror.ToCString());
+    return false; //but it is not a problem but if true my message is overwritten
+  }
   system( "sleep 3" );
 
   if (_Background) {
     pluginerror = pluginerror + "backgrounding... plugin is not waiting for output files "+ casenamemed + "_*.med";
     cout<<pluginerror<<endl;
-    error(COMPERR_ALGO_FAILED, pluginerror.ToCString());
+    error(COMPERR_NO_MESH_ON_SHAPE, pluginerror.ToCString());
     return false; //but it is not a problem but if true my message is overwritten
     //return true; //but it is not a problem,
   }
@@ -377,12 +385,12 @@ bool GHS3DPRLPlugin_GHS3DPRL::Compute(SMESH_Mesh&         theMesh,
   // read a result, GHS3DPRL_Out is the name of master file (previous xml format)
   FILE * aResultFile = fopen( GHS3DPRL_Outxml.ToCString(), "r" );
   if (aResultFile){
-    Ok = false; //but it is not a problem but if true my message is overwritten
+    Ok = true;
     fclose(aResultFile);
     cout<<"GHS3DPRL OK output master file "<<casenamemed<<".xml exist !\n\n";
-    pluginerror = pluginerror + "new tetraedra not in memory, but stored in files "+ casenamemed + "_*.med";
+    pluginerror = pluginerror + "MG-tetra_hpc mesh(es) not loaded in memory, are stored in files "+ casenamemed + "_*.med";
     cout<<pluginerror<<endl;
-    error(COMPERR_ALGO_FAILED, pluginerror.ToCString());
+    error(COMPERR_WARNING, pluginerror.ToCString() );
     if (!_KeepFiles) system( run_nokeep_files.ToCString() );
   }
   else{