]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
[telemac] Corrections pour telemac
authorYOANN AUDOUIN <B61570@dsp0919998.atlas.edf.fr>
Mon, 30 Nov 2020 14:15:14 +0000 (15:15 +0100)
committerYOANN AUDOUIN <B61570@dsp0919998.atlas.edf.fr>
Mon, 30 Nov 2020 14:15:14 +0000 (15:15 +0100)
InterfaceQT4/editorSsIhm.py
InterfaceQT4/viewManagerSsIhm.py
Telemac/CMakeLists.txt
Telemac/prefs_TELEMAC.py
convert/convert_TELEMAC.py
generator/generator_TELEMAC.py

index d6f8b9d4addfa3f953181810f567c315b4c36db4..cdf8db4714649b9e0844a9f08a72829b5cd19f22 100755 (executable)
@@ -123,7 +123,7 @@ class JDCEditorSsIhm :
         self.maConfiguration.mesconvertisseurs = convert
         try    : self.XMLgenerator=generator.plugins['xml']()
         except : self.XMLgenerator=None
-        
+
 
         if self.formatFichierOut in generator.plugins.keys():
            self.generator = generator.plugins[self.formatFichierOut]()
@@ -145,8 +145,9 @@ class JDCEditorSsIhm :
                try :
                #if 1 :
                    self.jdc = self.readFile(self.fichier)
-               except :
+               except Exception as e:
                    print ("mauvaise lecture du fichier")
+                   print(e)
                if self.salome :
                   try    : self.appliEficas.addJdcInSalome( self.fichier)
                   except : print ("mauvais enregistrement dans Salome")
@@ -168,7 +169,7 @@ class JDCEditorSsIhm :
             self.jdc.lang    = self.appliEficas.langue
             self.jdc.aReafficher=False
             txt_exception  = None
-            if not jdc:            
+            if not jdc:
                 if self.extensionFichier == '.xml' :
                    if self.appliEficas.maConfiguration.withXSD: self.jdc.analyseXML()
                    else : print ('run MDM with -x option  (MDM for XML)'); exit()
@@ -266,7 +267,7 @@ class JDCEditorSsIhm :
         if units is not None:
            jdc.recorded_units=units
            jdc.old_recorded_units=units
-        # chgt le 15/10/19 
+        # chgt le 15/10/19
         # Attention positionne  contexte ?
         # est ce qu on ne doit pas changer le format en Accas si on vient d accas ?
         jdc.editor=self
@@ -378,7 +379,7 @@ class JDCEditorSsIhm :
     def viewJdcRegles(self):
     #-----------------------#
         # on ajoute les regles
-        texte_global, test_global =  self.jdc.verifRegles() 
+        texte_global, test_global =  self.jdc.verifRegles()
         self._viewText(texte_global, "JDC_REGLES")
 
     #-----------------------#
@@ -437,7 +438,7 @@ class JDCEditorSsIhm :
             print('Sauvegarde du Fichier', 'Le fichier'+str(fn) + 'n a pas pu etre sauvegarde :'  , str(why))
             self.afficheInfos('Le fichier'+str(fn) + 'n a pas pu etre sauvegarde '  , 'red')
             return 0
-           
+
 
     #-----------------------------------------------------------#
     def getTextJDC(self,format = None,pourRun=0,formatLigne="beautifie"):
@@ -493,7 +494,7 @@ class JDCEditorSsIhm :
            hash_checksum.update(newtexte.encode('utf-8'))
            checksum = hash_checksum.hexdigest()
            ligne = ligne="#CHECKSUM:"+checksum+":FIN CHECKSUM"
-        except : 
+        except :
            try :
               newtexte=texte.replace('"','\\"')
               commande='echo "'+newtexte+'"|md5sum'
index 030f86a86088919376d9c3d559fc025183bfc839..e115c544c329953087284644d4d3edd3cf4c7dd1 100644 (file)
@@ -79,7 +79,7 @@ class MyViewManagerSsIhm(object):
 #--------------------------------
 # Symetrique de ViewManager mais pas d heritage entre les 2
 # dans le viewManager pas de souci pour savoir qui est le jdc sur lequel on travaille
-# ici en revanche.... c est moins sur . voir avec le fichier 
+# ici en revanche.... c est moins sur . voir avec le fichier
 
 #  --------------------------------
    def __init__(self,appliEficas):
@@ -95,7 +95,7 @@ class MyViewManagerSsIhm(object):
    def handleOpen(self,fichier=None, units=None):
 #  ------------------------------------------------------
        result = None
-       if fichier is None: 
+       if fichier is None:
              print ('nom de fichier obligatoire')
              return None
 
@@ -124,7 +124,7 @@ class MyViewManagerSsIhm(object):
           self.dictEditors[monHandler]=editor
           return monHandler
        else:
-          print ('impossible de construire le jdc') 
+          print ('impossible de construire le jdc')
           return None
 
 #  --------------------------------------------------------------------------------
@@ -166,7 +166,7 @@ class MyViewManagerSsIhm(object):
 #  ---------------------------------------------
    def handleViewJdcSource(self,handler):
 #  ---------------------------------------------
-        print (handler)
+        #print (handler)
         if not (handler in self.dictEditors) :
            print ('editor non trouve')
            return
@@ -176,7 +176,7 @@ class MyViewManagerSsIhm(object):
 #  ---------------------------------------------
    def handleViewJdcRapport(self,handler):
 #  ---------------------------------------------
-        print (handler)
+        #print (handler)
         if not (handler in self.dictEditors) :
            print ('editor non trouve')
            return
@@ -193,7 +193,7 @@ class MyViewManagerSsIhm(object):
 #  ---------------------------------------------
    def handleViewJdcRapport(self,handler):
 #  ---------------------------------------------
-        print (handler)
+        #print (handler)
         if not (handler in self.dictEditors) :
            print ('editor non trouve')
            return
@@ -203,7 +203,7 @@ class MyViewManagerSsIhm(object):
 #  ---------------------------------------------
    def generDico(self,handler):
 #  ---------------------------------------------
-        print (handler)
+        #print (handler)
         if not (handler in self.dictEditors) :
            print ('editor non trouve')
            return
@@ -213,7 +213,7 @@ class MyViewManagerSsIhm(object):
 #  ---------------------------------------------
    def isJdcValid(self,handler):
 #  ---------------------------------------------
-        print (handler)
+        #print (handler)
         if not (handler in self.dictEditors) :
            print ('editor non trouve')
            return
@@ -223,7 +223,7 @@ class MyViewManagerSsIhm(object):
 #  ---------------------------------------------
    def fileSaveAs(self,handler,fileName):
 #  ---------------------------------------------
-        print (handler)
+        #print (handler)
         if not (handler in self.dictEditors) :
            print ('editor non trouve')
            return
index ab237d8cc7795ff22b334d6adb36c58ecbf70cfc..831eba38d0c30db2d83b88d09f485f99389cff8a 100644 (file)
@@ -70,6 +70,18 @@ install ( FILES aideAuxConvertisseurs.py
                 waqtel_labelCataToIhm_en.qm
                 waqtel_labelCataToIhm_fr.qm
                 waqtel_cata_auto.py
+                gaia_dicoCasEnToCata.py
+                gaia_dicoCasFrToCata.py
+                gaia_enum_auto.py
+                gaia_labelCataToIhm_en.qm
+                gaia_labelCataToIhm_fr.qm
+                gaia_cata_auto.py
+                khione_dicoCasEnToCata.py
+                khione_dicoCasFrToCata.py
+                khione_enum_auto.py
+                khione_labelCataToIhm_en.qm
+                khione_labelCataToIhm_fr.qm
+                khione_cata_auto.py
                 prefs.py
                 prefs_TELEMAC.py
                 properties.py
index 622b68bbd39da6733c6bffc7765a4fea415156e7..89f12253fd7b29cc7c30d9cb31f1c5e4465a107e 100644 (file)
@@ -35,20 +35,8 @@ lang = 'ang'
 
 # Codage des strings qui accepte les accents (en remplacement de 'ascii')
 encoding = 'iso-8859-1'
-docPath = repIni
 
-try:
-    import TelApy
-    rep_cata = os.path.join(os.environ['HOMETEL'],
-                            'scripts',
-                            'python27',
-                            'eficas')
-except ImportError as excp:
-    print('Using eficas local catalog')
-    rep_cata = repIni
-except Exception as excep:
-    print("Missing HOMETEL in environment")
-    rep_cata = repIni
+rep_cata = repIni
 
 cata_telemac = {
       'telemac2d': os.path.join(rep_cata, 'telemac2d_cata_auto.py'),
@@ -59,8 +47,8 @@ cata_telemac = {
       'waqtel': os.path.join(rep_cata, 'waqtel_cata_auto.py'),
       'stbtel': os.path.join(rep_cata, 'stbtel_cata_auto.py'),
       'postel3d': os.path.join(rep_cata, 'postel3d_cata_auto.py'),
+      'gaia': os.path.join(rep_cata, 'gaia_cata_auto.py'),
                }
-print(cata_telemac)
 
 translator_telemac = {\
       'telemac2d': os.path.join(rep_cata, 'telemac2d_labelCataToIhm'),
@@ -71,12 +59,10 @@ translator_telemac = {\
       'waqtel': os.path.join(rep_cata, 'waqtel_labelCataToIhm'),
       'stbtel': os.path.join(rep_cata, 'stbtel_labelCataToIhm'),
       'postel3d': os.path.join(rep_cata, 'postel3d_labelCataToIhm'),
+      'gaia': os.path.join(rep_cata, 'gaia_labelCataToIhm'),
                      }
 #
 catalogues = (\
-    #('TELEMAC','default',os.path.join(repIni,'Telemac_Cata_nouveau.py'),'TELEMAC','python'),
-    #('TELEMAC','cas',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC','TELEMAC'),
-    #('2D','cas',os.path.join(repIni,'Telemac2d_Cata_auto.py'),'TELEMAC','TELEMAC'),
     ('TELEMAC', 'telemac2d', cata_telemac['telemac2d'], 'TELEMAC', 'TELEMAC'),
     ('TELEMAC', 'telemac3d', cata_telemac['telemac3d'], 'TELEMAC', 'TELEMAC'),
     ('TELEMAC', 'tomawac', cata_telemac['tomawac'], 'TELEMAC', 'TELEMAC'),
@@ -85,10 +71,7 @@ catalogues = (\
     ('TELEMAC', 'waqtel', cata_telemac['waqtel'], 'TELEMAC', 'TELEMAC'),
     ('TELEMAC', 'stbtel', cata_telemac['stbtel'], 'TELEMAC', 'TELEMAC'),
     ('TELEMAC', 'postel3d', cata_telemac['postel3d'], 'TELEMAC', 'TELEMAC'),
-    #('2222D','cas',os.path.join(repIni,'telemac2d_V6_cata.py'),'TELEMAC','TELEMAC'),
-    #('TELEMAC','cas',os.path.join(repIni,'Telemac_Cata.py'),'python','TELEMAC3'),
-    #('YOANN', 'cas', os.path.join(repIni, 'Cata.py'), 'TELEMAC', 'TELEMAC'),
-    #('TELEMAC','comm',os.path.join(repIni,'Telemac_Cata.py'),'TELEMAC2','python'),
+    ('TELEMAC', 'gaia', cata_telemac['gaia'], 'TELEMAC', 'TELEMAC'),
 )
 mode_nouv_commande = "figee"
 affiche = "ordre"
@@ -101,5 +84,6 @@ translatorFichier_sisyphe = translator_telemac['sisyphe']
 translatorFichier_waqtel = translator_telemac['waqtel']
 translatorFichier_stbtel = translator_telemac['stbtel']
 translatorFichier_postel3d = translator_telemac['postel3d']
+translatorFichier_gaia = translator_telemac['gaia']
 closeFrameRecherche = True
 differencieSiDefaut = True
index b77b3639fc2163285eb701234cb923c6d698bd7b..1e2ea8a385a626f609269ae77d8aae8e513ce2cb 100644 (file)
@@ -45,17 +45,17 @@ pattern_finit_par_virgule_ou_affect=re.compile(r'^.*(,|;|=|:)\s*$')
 
 pattern_ligne=re.compile(r'^\s*(?P<ident>[^=:]*)\s*[:=]\s*(?P<reste>.*)$')
 
-pattern_variables=re.compile (r"^\s*(?P<ident>VARIABLES FOR GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES)\s*[:=]\s*(?P<valeur>[A-Za-z]+(\d*|\*)(,[A-Za-z]+(\d*|\*))*)\s*(?P<reste>.*)$")
+pattern_variables=re.compile(r"^\s*(?P<ident>C_VSM_PRINTOUT_SELECTION|COUPLAGE AVEC|COUPLING WITH|VARIABLES FOR GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES|VARIABLES TO BE PRINTED|VARIABLES A IMPRIMER|VARIABLES FOR 3D GRAPHIC PRINTOUTS|VARIABLES POUR LES SORTIES GRAPHIQUES 3D|VARIABLES POUR LES SORTIES GRAPHIQUES 2D|VARIABLES FOR 2D GRAPHIC PRINTOUTS)\s*[:=]\s*(?P<quote>[']?)(?P<valeur>[A-Za-z]+(\d*|\*)([,;][A-Za-z]+(\d*|\*))*)\s*(?P=quote)(?P<reste>.*)$")
 
 # Attention aux listes de flottants
 pattern_liste=re.compile(r'^\s*(?P<valeur>[+-.\w]+(\s*;\s*[+-.\w]+)+)\s*(?P<reste>.*)$')
 pattern_liste_texte=re.compile(r"^\s*(?P<valeur>('.*(';\s*))+('.*'\s*)?)(?P<reste>.*)$")
 pattern_flottant=re.compile(r'^\s*(?P<valeur>[+-]?((\d+(\.\d*)?)|(\.\d+))([dDeE][+-]?\d+)?)\s*(?P<reste>.*)$')
-pattern_texteQuote  = re.compile (r"^\s*(?P<valeur>'[^']+(''[^']+)*')\s*(?P<reste>.*)$")
-pattern_texteSimple = re.compile (r"(?P<valeur>(^|\s)\s*[\w\.-]+)\s*(?P<reste>.*)$")
-pattern_texteVide   = re.compile (r"^\s*(?P<valeur>'')\s*(?P<reste>.*)$")
+pattern_texteQuote  = re.compile(r"^\s*(?P<valeur>'[^']+(''[^']+)*')\s*(?P<reste>.*)$")
+pattern_texteSimple = re.compile(r"(?P<valeur>(^|\s)\s*[\w\.-]+)\s*(?P<reste>.*)$")
+pattern_texteVide   = re.compile(r"^\s*(?P<valeur>'')\s*(?P<reste>.*)$")
 
-pattern_ContientDouble=re.compile (r"^.*''.*$")
+pattern_ContientDouble=re.compile(r"^.*''.*$")
 
 # le pattern texte reconnait
 #nom1 nom 2 : ou = chaine entre '
@@ -90,7 +90,7 @@ class TELEMACparser(Pythonparser):
    a file with a different or inexistent definition of variables.
    """
 
-   
+
 
    def convert(self, outformat, appliEficas=None):
 
@@ -108,13 +108,13 @@ class TELEMACparser(Pythonparser):
         self.TelemacdicoEn            = appliEficas.readercata.TelemacdicoEn
       except :
         self.TelemacdicoEn = {}
-        print ('pas de TelemacdicoEn')
+        print('pas de TelemacdicoEn')
       try :
         self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
       except :
         self.DicoEnumCasFrToEnumCasEn = {}
         print ('pas de DicoEnumCasFrToEnumCasEn')
-      
+
 
       if appliEficas.langue=='fr' :
           #from enum_Telemac2d_auto       import DicoEnumCasFrToEnumCasEn
@@ -190,7 +190,13 @@ class TELEMACparser(Pythonparser):
               if pattern_variables.match(finLigne) :
                  m=pattern_variables.match(finLigne)
                  simpCas=self.traiteIdent(m.group('ident'))
-                 valeur=m.group('valeur')
+                 if simpCas in ["COUPLING WITH", "COUPLAGE AVEC"]:
+                     if "," in m.group('valeur'):
+                         valeur=m.group('valeur').split(",")
+                     else:
+                         valeur=m.group('valeur').split(";")
+                 else:
+                     valeur=m.group('valeur')
                  finLigne=m.group('reste')
                  self.dictSimp[simpCas]=valeur
                  continue
@@ -474,59 +480,3 @@ class TELEMACparser(Pythonparser):
           #listeOut.insert(i,kF)
           listeOut.insert(i,k)
       return listeOut
-
-#   def BOUNDARY_CONDITIONS(self):
-#       texte_Boundaries="BOUNDARY_CONDITIONS=_F(LIQUID_BOUNDARIES=( "
-#       if 'PRESCRIBED_ELEVATIONS' in self.dictSimp:
-#              valeursPE=self.dictSimp["PRESCRIBED_ELEVATIONS"]
-#              if not type(valeursPE)==list : valeursPE = (valeursPE,)
-#              longueur=len(self.dictSimp["PRESCRIBED_ELEVATIONS"])
-#       else : valeursPE=None
-#       if 'PRESCRIBED_FLOWRATES' in self.dictSimp:
-#              valeursPF=self.dictSimp["PRESCRIBED_FLOWRATES"]
-#              if not type(valeursPF)==list : valeursPF = (valeursPF,)
-#              longueur=len(self.dictSimp["PRESCRIBED_FLOWRATES"])
-#       else : valeursPF=None
-#       if 'PRESCRIBED_VELOCITIES' in self.dictSimp:
-#              valeursPV=self.dictSimp["PRESCRIBED_VELOCITIES"]
-#              if not type(valeursPV)==list : valeursPV = (valeursPV,)
-#              longueur=len(self.dictSimp["PRESCRIBED_VELOCITIES"])
-#       else : valeursPV=None
-#
-#       if valeursPE == None and valeursPF == None and valeursPV == None :
-#             texte_Boundaries +="),\n"
-#             return
-#
-#       if valeursPE == None or valeursPF == None or valeursPV == None :
-#          listNulle=[]
-#          for i in range(longueur) : listNulle.append('0')
-#
-#
-#       if valeursPE == None : valeursPE = listNulle
-#       if valeursPF == None : valeursPF = listNulle
-#       if valeursPV == None : valeursPV = listNulle
-#
-#
-#       for e in range(len(valeursPE)):
-#          if valeursPE[e] != "" or valeursPE[e] != "\n" :
-#            if eval(valeursPE[e],{}) != 0 :
-#               texte_Boundaries += "_F(BOUNDARY_TYPE = 'Prescribed Elevations',\n"
-#               texte_Boundaries += "PRESCRIBED_ELEVATIONS = " + str(valeursPE[e]) + "),\n"
-#               continue
-#
-#          if valeursPF[e] != "" or valeursPF[e] != "\n" :
-#            if eval(valeursPF[e],{}) != 0 :
-#               texte_Boundaries += "_F(BOUNDARY_TYPE = 'Prescribed Flowrates',\n"
-#               texte_Boundaries += "PRESCRIBED_FLOWRATES = " + str(valeursPF[e]) + "),\n"
-#               continue
-#
-#          if valeursPV[e] != "" or valeursPV[e] != "\n" :
-#             if eval(valeursPV[e],{})!=0 :
-#                texte_Boundaries += "_F( BOUNDARY_TYPE= 'Prescribed Velocity',\n"
-#                texte_Boundaries += "PRESCRIBED_VELOCITIES = " + str(valeursPV[e]) + "),\n"
-#                continue
-#          print ("pb texte_Boundaries avec la valeur numero ", e)
-#
-#       texte_Boundaries +="),),"
-#       self.textePy += texte_Boundaries
-#
index 6935d5371a9fc9648935d2b88e5bec032ca8ce74..096486db1df035fd8082ee0a1e78babfd7b1af8d 100644 (file)
@@ -59,12 +59,12 @@ class TELEMACGenerator(PythonGenerator):
 
 #----------------------------------------------------------------------------------------
    def gener(self,obj,format='brut',config=None,appliEficas=None,statut="Leger"):
+
       self.statut        = statut
       self.langue        = appliEficas.langue
       try : self.TelemacdicoEn = appliEficas.readercata.TelemacdicoEn
-      except : 
-        print ('Attention : pas de TelemacdicoEn declare') 
+      except :
+        print ('Attention : pas de TelemacdicoEn declare')
         self.TelemacdicoEn = {}
       self.DicoEnumCasEnInverse = {}
       #from enum_Telemac2d_auto       import self.TelemacdicoEn
@@ -74,7 +74,7 @@ class TELEMACGenerator(PythonGenerator):
              valEficas   = self.TelemacdicoEn[motClef][valTelemac]
              d[valEficas] =valTelemac
           self.DicoEnumCasEnInverse[motClef]=d
-      if self.langue == 'fr' : 
+      if self.langue == 'fr' :
          #from  enum_Telemac2d_auto import DicoEnumCasFrToEnumCasEn
          self.DicoEnumCasFrToEnumCasEn = appliEficas.readercata.DicoEnumCasFrToEnumCasEn
          for motClef in self.DicoEnumCasFrToEnumCasEn:
@@ -94,7 +94,7 @@ class TELEMACGenerator(PythonGenerator):
       except :
         print ('Attention pas de dicoCasToCata declare')
         self.dicoCasToCata={}
-        self.dicoCataToCas={} 
+        self.dicoCataToCas={}
       for motClef in self.dicoCasToCata:
            self.dicoCataToCas[self.dicoCasToCata[motClef]]=motClef
 
@@ -185,7 +185,7 @@ class TELEMACGenerator(PythonGenerator):
         #nomMajuscule=obj.nom.upper()
         #nom=nomMajuscule.replace('_',' ')
         #if nom in listeSupprime or s == "" : return s
-        if s == "None," : s=None 
+        if s == "None," : s=None
         if s == "" or s==None : return s
 
         sTelemac=s[0:-1]
@@ -241,7 +241,7 @@ class TELEMACGenerator(PythonGenerator):
         # cas des Tuples
         if obj.waitTuple()  and s3 != '' and s3  != 'None':
            s3=s
-           if s3[-1] == ',': s3=s3[:-1] 
+           if s3[-1] == ',': s3=s3[:-1]
 
 
         if obj.nom not in self.dicoCataToCas :
@@ -249,12 +249,21 @@ class TELEMACGenerator(PythonGenerator):
            return s
 
         nom=self.dicoCataToCas[obj.nom]
-        if nom in ["VARIABLES FOR GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES", "VARIABLES TO BE PRINTED","VARIABLES A IMPRIMER"] :
+        if nom in ["VARIABLES FOR GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES",
+                   "VARIABLES TO BE PRINTED","VARIABLES A IMPRIMER",
+                   "VARIABLES FOR 3D GRAPHIC PRINTOUTS", "VARIABLES POUR LES SORTIES GRAPHIQUES 3D",
+                   "VARIABLES POUR LES SORTIES GRAPHIQUES 2D", "VARIABLES FOR 2D GRAPHIC PRINTOUTS",
+                   "C_VSM_PRINTOUT_SELECTION"]:
               if s3 != '' and s3  != 'None':
                 s3=s3.replace(';',',')
                 s3="'"+ s3 +"'"
               else:
                 s3 = "''"
+        if nom in ["COUPLING WITH", "COUPLAGE AVEC"]:
+            s3 = s3.strip().replace("\n","")\
+                           .replace(" ", "")\
+                           .replace("\t", "")\
+                           .replace("';'", ",")
         if s3 == "" or s3 == " " : s3 = " "
         ligne=nom+ " : " + s3 + "\n"
         if len(ligne) > 72 : ligne=self.redecoupeLigne(nom,s3)