Salome HOME
change version number
[modules/hydrosolver.git] / src / salome_hydro / interpolz_gui.py
index b521c0423203db7a855d3908b420a6e9ff5fe283..978c1f13bd8ced35675f51fa2de68326471d2bda 100644 (file)
@@ -1,18 +1,21 @@
 
 import sys, os
-#sys.path.append(os.path.join(os.environ['MED3HOME'], 'lib/python2.7/site-packages/med'))
+#sys.path.append(os.path.join(os.environ['MEDFILE_ROOT_DIR'], 'lib/python2.7/site-packages/med'))
+#sys.path.append(os.path.join(os.environ['MEDFICHIER_INSTALL_DIR'], 'lib/python2.7/site-packages/med'))
 hydro_solver_root = os.path.join(os.environ['HYDROSOLVER_ROOT_DIR'], 'lib', 'python2.7', 'site-packages', 'salome', 'salome', 'hydro')
 #sys.path.append(hydro_solver_root)
 
 import salome
 salome.salome_init()
 
-import MEDLoader
+import SMESH
+from salome.smesh import smeshBuilder
+smesh = smeshBuilder.New(salome.myStudy)
+
+#import MEDLoader
 import HYDROPy
 
-from PyQt5.QtCore import *
-from PyQt5.QtGui import *
-from PyQt5.QtWidgets import *
+from PyQt5.QtWidgets import QDialog, QFileDialog, QTableWidgetItem, QComboBox, QMessageBox
 from PyQt5 import uic
 
 import SalomePyQt
@@ -22,9 +25,10 @@ salome_gui = libSALOME_Swig.SALOMEGUI_Swig()
 from generate_interpolz import generate
 
 def get_med_groups( file_path ):
-    print "get_med_groups", file_path
+    #print "get_med_groups", file_path
     try:
-        meshes = MEDLoader.GetMeshNames(file_path)
+        #meshes = MEDLoader.GetMeshNames(file_path)
+        (meshes, status) = smesh.CreateMeshesFromMED(file_path)
     except:
         print 'No meshes found'
         return []
@@ -34,7 +38,13 @@ def get_med_groups( file_path ):
     mesh1 = meshes[0]
     print 'Found mesh:', mesh1
     try:
-        groups = list(MEDLoader.MEDLoader_GetMeshGroupsNames(file_path, mesh1))
+        #groups = list(MEDLoader.GetMeshGroupsNames(file_path, mesh1))
+        grps = mesh1.GetGroups()
+        groups = [grp.GetName() for grp in grps if grp.GetType() == SMESH.NODE]
+        if len(groups) == 0:
+          print "Problem! There are no groups of nodes in the mesh!"
+          print "Please create at least the groups of nodes corresponding to each region of the HYDRO case"
+          return []
         print 'Found groups:', groups
     except:
         print 'No groups found'
@@ -52,10 +62,10 @@ def get_hydro_regions( calc_case_name ):
         rname = r.GetName()
         regions_names.append( str(rname) )
 
-      #shape_groups = case.GetGeometryGroups()
-      #for sg in shape_groups:
-          #sgname = sg.GetName()
-          #regions_names.append( sgname )
+#       shape_groups = case.GetGeometryGroups()
+#       for sg in shape_groups:
+#           sgname = sg.GetName()
+#           regions_names.append( sgname )
 
       return regions_names
     else:
@@ -87,6 +97,7 @@ class InterpolzDlg( QDialog ):
         self.UndefZ.setRange( -100000, 100000 )
         self.UndefZ.setValue( -9999 )
         self.InterpMethod.addItem( "Interpolation at the nearest point" )
+        self.InterpMethod.addItem( "Linear interpolation on a cloud triangulation" )
         self.ApplyClose.clicked.connect(self.onApplyClose)
         self.Apply.clicked.connect(self.onApply)
         self.Close.clicked.connect(self.onClose)
@@ -144,7 +155,7 @@ class InterpolzDlg( QDialog ):
         for i in range( 0, self.Groups.rowCount() ):
             med_group = str( self.Groups.item( i, 0 ).text() )
             hydro_reg = str( self.Groups.cellWidget( i, 1 ).currentText() )
-            if len(med_group)>0 and len(hydro_reg)>0 and hydro_reg != 'None':
+            if len(med_group)>0 and len(hydro_reg)>0 and hydro_reg != 'None' :
                 med_groups_regions[med_group] = hydro_reg
         z_undef = self.UndefZ.value()
         interp = str(self.InterpMethod.currentText())
@@ -164,8 +175,8 @@ class InterpolzDlg( QDialog ):
         result = False
         if len(msg)==0:
             iinterp = 0
-            if "Linear" in interp:
-              iinterp =1
+            if 'Linear' in interp:
+              iinterp = 1
             generate( path, calc_case, med_file, med_groups_regions, z_undef, iinterp )
             msg = "InterpolZ script is successfully generated"
             result = True