]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
semaine 37
authorpascale.noyret <pascale.noyret@edf.fr>
Fri, 16 Sep 2016 11:51:54 +0000 (13:51 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Fri, 16 Sep 2016 11:51:54 +0000 (13:51 +0200)
18 files changed:
Extensions/localisation.py
InterfaceQT4/configuration.py
InterfaceQT4/editor.py
InterfaceQT4/monRechercheCatalogue.py [new file with mode: 0644]
ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok [new file with mode: 0644]
ProcessOutputs_Eficas/qtEficas_PSEN_N1.py [new file with mode: 0755]
SPECA/SPECA_Cata_V1.py
SPECA/SPECA_Cata_V2016.py [new file with mode: 0644]
SPECA/prefs_SPECA.py
SPECA/qtEficasSPECA.py [new file with mode: 0755]
UiQT4/desRechercheCatalogue.ui [new file with mode: 0644]
UiQT4/eficas_en.ts
UiQT4/makefile
UiQT5/desRechercheCatalogue.ui [new file with mode: 0644]
UiQT5/makefile
convert/convert_TELEMAC3.py [new file with mode: 0644]
generator/generator_TELEMAC.py
generator/generator_python.py

index 7b6a19d4fce3ee1dbd2c9d2c57fa78abd517f9e8..0c0b67375b2ace710acaa4384b54d8ea03107c84 100644 (file)
@@ -77,7 +77,7 @@ def localise(application, locale=None,file=None ):
     if locale=="ang" : locale="en"
     #print "eficas_" + locale, monPath
     if file != None :
-       print 'chagrement de ', file,monPath
+       #print 'chagrement de ', file,monPath
        print eficas_translator.load(file,monPath)
        print QApplication.installTranslator(eficas_translator)
        return
@@ -85,9 +85,9 @@ def localise(application, locale=None,file=None ):
 
     if eficas_translator.load("eficas_" + locale, monPath):
         QApplication.installTranslator(eficas_translator)
-        print "chargement eficas_", locale, monPath
     else:
         print "Unable to load Eficas translator!"
+       
 
     
 
index 97b46c0d6ff8263639c90d92f57b612bf03717b9..4f92bf84317baafad9cdb427493b2fd98c08a55d 100644 (file)
@@ -96,6 +96,9 @@ class CONFIG_BASE:
         self.savedir = os.path.abspath('C:/')\r
       self.mode_nouv_commande='initial'\r
       self.affiche="alpha"\r
+      self.closeAutreCommande = False\r
+      self.closeFrameRechercheCommande = False\r
+\r
  \r
   #--------------------------------------\r
   def lecture_fichier_ini_standard(self):\r
index 95c543a79c425e491110b355a6519c4a375f9e90..43865d7a584f75a10262be5c9b7a8c393ff37f51 100755 (executable)
@@ -94,6 +94,8 @@ class JDCEditor(Ui_baseWidget,QWidget):
         if self.code == 'PSEN_N1' : self.afficheListesPliees = False
 
         self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande
+        self.closeAutreCommande=self.appliEficas.CONFIGURATION.closeAutreCommande
+        self.closeFrameRechercheCommande=self.appliEficas.CONFIGURATION.closeFrameRechercheCommande
         self.affiche=self.appliEficas.CONFIGURATION.affiche
         #if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
         if self.code in ['MAP','CARMELCND'] : self.afficheCommandesPliees=False
@@ -221,6 +223,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
             self.tree = browser.JDCTree( jdc_item,  self )
         self.appliEficas.construitMenu()
 
+        
         #############
         self.splitterSizes =  [320,1320,320]
         self.splitter.setSizes(self.splitterSizes)
@@ -582,6 +585,14 @@ class JDCEditor(Ui_baseWidget,QWidget):
       monRechercheDialg=DRecherche(parent=self,fl=0)
       monRechercheDialg.show()
 
+
+    #--------------------------------#
+    def handleRechercherDsCatalogue(self):
+    #-----------------------------#
+      from monRechercheCatalogue import DRechercheCatalogue
+      monRechercheDialg=DRechercheCatalogue(self.QWParent,self)
+      monRechercheDialg.show()
+
     #---------------------#
     def handleDeplier(self):
     #---------------------#
@@ -836,8 +847,11 @@ class JDCEditor(Ui_baseWidget,QWidget):
             f.close()
             return 1
         except IOError, why:
-            QMessageBox.critical(self, tr('Sauvegarde du Fichier'),
+            if (self.appliEficas.ssIhm == False):
+                QMessageBox.critical(self, tr('Sauvegarde du Fichier'),
                 tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
+            else :
+                print why
             return 0
 
     #-----------------------------------------------------------#
@@ -849,7 +863,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
          # Le generateur existe on l'utilise
          self.generator=generator.plugins[format]()
          try :
-            jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.CONFIGURATION)
+            jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.CONFIGURATION,appli=self.appliEficas)
             if pourRun : jdc_formate=self.generator.textePourRun
          except ValueError,e:
             QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
diff --git a/InterfaceQT4/monRechercheCatalogue.py b/InterfaceQT4/monRechercheCatalogue.py
new file mode 100644 (file)
index 0000000..ac115eb
--- /dev/null
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Modules Python
+# Modules Eficas
+
+from desRechercheCatalogue import Ui_desRechercheCatalogue
+from determine import monEnvQT5
+if monEnvQT5:
+    from PyQt5.QtWidgets import QDialog, QCompleter
+    from PyQt5.QtCore import Qt
+else :
+    from PyQt4.QtGui  import *
+    from PyQt4.QtCore import *
+
+from Extensions.i18n import tr
+
+# Import des panels
+
+class DRechercheCatalogue (Ui_desRechercheCatalogue ,QDialog):
+  """
+  Classe définissant le panel associé aux mots-clés qui demandent
+  à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+  discrètes
+  """
+  def __init__(self,parent,editor ):
+      QDialog.__init__(self,parent)
+      #self.setModal(True)
+      self.setupUi(self)
+      self.editor=editor
+      self.CBRecherche.setEditable(True)
+      if monEnvQT5 :
+         self.LERecherche.returnPressed.connect(self.rechercheLE)
+         self.CBRecherche.lineEdit().returnPressed.connect(self.rechercheCB)
+         self.CBRecherche.currentIndexChanged.connect(self.rechercheCB)
+      else :
+         self.connect(self.LERecherche,SIGNAL("returnPressed()"),self.rechercheLE)
+         self.connect(self.CBRecherche.lineEdit(),SIGNAL("returnPressed()"),self.rechercheCB)
+         self.connect(self.CBRecherche,SIGNAL("currentIndexChanged(int)"),self.rechercheCB)
+
+      self.initRecherche()
+
+  def initRecherche(self):
+      listeChoix=self.editor.readercata.dicoInverse.keys()
+      self.CBRecherche.addItem("")
+      for choix in listeChoix:
+          self.CBRecherche.addItem(choix)
+      monCompleteur=QCompleter(listeChoix,self)
+      monCompleteur.setCompletionMode(QCompleter.PopupCompletion)
+      self.CBRecherche.setCompleter(monCompleteur)
+
+
+  def rechercheCB(self):
+      motAChercher=self.CBRecherche.lineEdit().text()
+      self.recherche(motAChercher)
+
+  def rechercheLE(self):
+      motAChercher=self.LERecherche.text()
+      self.recherche(motAChercher)
+
+  def recherche(self,motAChercher):
+      if str(motAChercher)=="" or str(motAChercher) == None : return
+      if str(motAChercher) not in self.editor.readercata.dicoInverse.keys():return
+      try :
+      #if 1  :
+        genea= self.editor.readercata.dicoInverse[str(motAChercher)]
+        print genea
+        listeGenea=[]
+        for t in genea : listeGenea.append(t[0])
+        listeGenea.reverse()
+        texte=''
+        i=0
+        for mc in listeGenea :
+         ligne = i*'   '+str(mc) + ' / '+tr(str(mc))+'\n' 
+         i=i+1
+         texte += ligne
+        self.teGenea.setText(texte)
+        self.teDoc.setText(getattr(genea[0][1],self.editor.appliEficas.langue))
+        
+        
+      except :
+        pass
+
diff --git a/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok b/ProcessOutputs_Eficas/PSEN_Cata_N1.py.ok
new file mode 100644 (file)
index 0000000..f259816
--- /dev/null
@@ -0,0 +1,250 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2013   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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+#from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC, A_VALIDATOR
+from Accas import *
+import opsPSEN_N1
+#
+#
+
+# import types
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+# class Matrice:
+#   def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None):
+#       self.nbLigs=nbLigs
+#       self.nbCols=nbCols
+#       self.methodeCalculTaille=methodeCalculTaille
+#       self.formatSortie=formatSortie
+#       self.valSup=valSup
+#       self.valMin=valMin
+#       self.structure=structure
+#
+#   def __convert__(self,valeur):
+#     # Attention ne verifie pas grand chose
+#     if type(valeur) != types.ListType :
+#       return None
+#     return valeur
+#
+#   def info(self):
+#       return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+#
+#       __repr__=info
+#       __str__=info
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PSEN',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION' ),
+                            # AU_MOINS_UN ( 'DIRECTORY' ),
+                            # AU_MOINS_UN ( 'DISTRIBUTION' ),
+                            # AU_MOINS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
+                            # AU_PLUS_UN ( 'DIRECTORY' ),
+                            # AU_PLUS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'CORRELATION' ),
+                            # AU_PLUS_UN ( 'N_1_GENERATORS' ),
+                            # AU_PLUS_UN ( 'N_1_LINES' ),
+                            # AU_PLUS_UN ( 'N_1_LOADS' ),
+                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
+
+                            ),
+                 ) # Fin JDC_CATA
+
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+## TODO : RUN
+CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
+                      sd_prod = opsPSEN_N1.INCLUDE,
+                      op_init = opsPSEN_N1.INCLUDE_context,
+                      fichier_ini = 1,
+                      op = None,
+                      fr = "Sélectionnez les cas à analyser",
+                      ang = 'Select the cases to analyze',
+                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
+                      output_folder = SIMP(statut="o", typ="Repertoire"),
+
+
+                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
+                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
+                 )
+N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
+                            op = None,
+                            ang = "Select whether the program should be displaying data ablout the different categories. The values displayed will be the min, max, and mean of each item, plus a chart.",  
+                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Threshold_selection_for_the_treated_cases = FACT(
+                              statut = 'f',
+                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                           ),
+                           )
+
+
+CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
+                            op = None,
+                            
+                            GeneralOptions = FACT(statut='o',
+                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
+                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
+                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
+                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
+                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
+                                ),                            
+
+                            LoadFlowOptions = FACT(statut='o',
+                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
+                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
+                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
+                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
+                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
+                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
+                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
+                                ),
+                            
+                            OutputOptions = FACT(statut='o',
+                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
+                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
+                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
+                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
+                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
+                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),                            
+                            ),
+                        )
+
+
+
+
+CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
+                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
+                      ),
+                      
+                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
+                      CaseSelectionFromFiles = FACT(
+                           statut = 'o',
+                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
+                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
+                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                        ),
+                        
+#                      CaseSelectionFromFile = FACT(
+#                           statut = 'o',
+#                           input_path = SIMP(statut="o",typ='Repertoire'),
+#                           branch_cases = SIMP(statut='o', typ='TXM'),
+#                           transformer_cases = SIMP(statut='o', typ='TXM'),
+#                           high_cases = SIMP(statut='o', typ='TXM'),
+#                           low_cases = SIMP(statut='o', typ='TXM'),
+#                        ),
+                        
+                        ),
+                        
+#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
+#                      SelectAllCases = FACT(
+#                           statut='o',
+#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
+#                         ),
+#                         ),
+                         
+                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
+                      SelectWorstCases = FACT(
+                          regles = (UN_PARMI('AvgBranchLoad', 'AvgBranchLoadPercent'), UN_PARMI('AvgTransformerLoad', 'AvgTransformerLoadPercent'), UN_PARMI('AvgHighVoltage', 'AvgHighVoltagePercent'), UN_PARMI('AvgLowVoltage', 'AvgLowVoltagePercent'),),
+                          statut = 'o',
+                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
+                          AvgBranchLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgBranchLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                        ),
+                        ),
+
+
+                      Automatic_N_2_Selection = FACT(statut='f',
+                                                     
+                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),                                                    
+                        ),
+
+                     MultipleContingencyList = FACT (statut='f',
+                                                          max="**",
+                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
+                     ),
+
+                      )
+
+CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
+                        sd_prod = opsPSEN_N1.PROCESS,
+                        op_init = opsPSEN_N1.PROCESS_context,
+                                                
+                        #sd_prod=None,
+
+                        op = None,
+                        fichier_ini = 1,
+                        fr = "",
+                        ang="",
+                        XLS_file = SIMP(statut="o", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
+                        TabList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**',  homo = 'SansOrdreNiDoublon'), 
+                        
+#                        b_highVoltage = BLOC(condition="'High Voltage 0' in TabList",
+#                                                     HighVoltageBuses = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+#                                                     HighVoltageContingencies = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+#                                                     ),
+                        
+                    )
+
+Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_OPTIONS' , 'CONTINGENCY_SELECTION',)
diff --git a/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py b/ProcessOutputs_Eficas/qtEficas_PSEN_N1.py
new file mode 100755 (executable)
index 0000000..7717336
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2012   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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+#sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+#acceder scripts de Lucie
+path1 = os.path.abspath(os.path.join(os.path.abspath(__file__),'TreatOutputs'))
+path1 = 'C:\\Logiciels DER\\PSEN_V15\\Code\\ProcessOutputs_Eficas\TreatOutputs'
+sys.path.append(path1)
+
+
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
index ffc96af912f5018ec5785eb7a58e8755f4e638dc..72771cf552076519a2fe763af97a89dcd839d123 100644 (file)
@@ -31,7 +31,7 @@ class Tuple:
 #\r
 #CONTEXT.debug = 1\r
 \r
-\r
+VERSION_CATALOGUE="2.0.0";\r
 \r
 JdC = JDC_CATA ( code = 'SPECA',\r
                 execmodul = None,\r
@@ -47,8 +47,11 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
               fr        = "Specification des analyses",\r
               TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
               # pour V1.1 flexion uniquement\r
-              TYPE_COMPORTEMENT = SIMP(statut='o', typ='TXM',into=('FLEXION'),defaut='FLEXION',fr="Renseignement du type de comportement voulu"),\r
-\r
+              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",\r
+                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Inclure la flexion ?"),\r
+                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Inclure la torsion ?"),\r
+                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Inclure la compression ?"),\r
+                                      ),\r
 ### ----- CALCUL STATIQUE ----- ##\r
               ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",\r
               \r
@@ -121,6 +124,7 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
                              FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
                              NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequence"),\r
                       ), # fin CENTRE\r
+                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la méthode de résolution"),\r
                       \r
                       POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Choix du type de post-traitement",\r
                              TYPE = SIMP(statut='o',typ='TXM',defaut=None,into=('TABLEAU_PARAM_MODAUX','DIAG_CAMPBELL'),),\r
@@ -236,6 +240,7 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
 \r
 ### ----- CALCUL TRANSITOIRE ----- ##\r
               ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire",\r
+                      POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
                       VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation"),\r
                       BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",\r
                               BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix de la base du calcul transitoire"),\r
@@ -338,6 +343,8 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
                               MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
                               FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
                               PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner l'instant pour déclencher le balourd"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner le temps pour la montée jusqu'à la valeur finale du balourd"),\r
                       ),# fin BALOURD\r
                       FORCE = BLOC(condition = "CHARGES == 'FORCE' ",fr="Application d'une force",\r
                               PARAM_FORCE = FACT(statut='o',min=1,max='**',fr="Parametres de la force",\r
@@ -390,6 +397,7 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
                       LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste de pas",\r
                               LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
                       ), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Renseignement du pas d'archivage",),\r
                       SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema temporel"),\r
                       NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Choix de la methode de NEWMARK",\r
                               BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
@@ -437,6 +445,7 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
 ### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
               ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle",\r
                       #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
+                     POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
                      BASE_MODALE = BLOC(condition = "True", fr="Choix des parametres de la base modale",\r
                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
                               NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de mode"),\r
@@ -460,6 +469,8 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
                               MAGNITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la magnitude de la charge balourd (en kg.m)"),\r
                               FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge balourd (autant de valeurs que de vitesses de rotation)"),\r
                               PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (en degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner l'instant pour déclencher le balourd"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseigner le temps pour la montée jusqu'à la valeur finale du balourd"),\r
                       ),# fin BALOURD\r
                      # a commenter\r
                      # 20121018 retrait de defaut_fn a la demande de EDF\r
@@ -502,6 +513,8 @@ SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',
                               #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
                       #), # fin LIST_INST\r
                       PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=None,fr="Renseignement du pas d'archivage",),\r
+                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille de la memoire en Mo",),\r
+                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU max en secondes",),\r
                       SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema temporel"),\r
                       \r
                       ## POST_TRAITEMENTS de l'analyse transitoire\r
diff --git a/SPECA/SPECA_Cata_V2016.py b/SPECA/SPECA_Cata_V2016.py
new file mode 100644 (file)
index 0000000..fddaecb
--- /dev/null
@@ -0,0 +1,415 @@
+## -*- coding: utf-8 -*-\r
+#\r
+## --------------------------------------------------\r
+## debut entete\r
+## --------------------------------------------------\r
+#\r
+from Accas import *\r
+\r
+\r
+# rend disponible le type tuple (liste)\r
+import types\r
+class Tuple:\r
+  def __init__(self,ntuple):\r
+    self.ntuple=ntuple\r
+\r
+  def __convert__(self,valeur):\r
+    if type(valeur) == types.StringType:\r
+      return None\r
+    if len(valeur) != self.ntuple:\r
+      return None\r
+    return valeur\r
+\r
+  def info(self):\r
+    return "Tuple de %s elements" % self.ntuple\r
+\r
+  __repr__=info\r
+  __str__=info\r
+\r
+\r
+\r
+#\r
+#CONTEXT.debug = 1\r
+\r
+VERSION_CATALOGUE="2016.0.0";\r
+\r
+JdC = JDC_CATA ( code = 'SPECA',\r
+                execmodul = None,\r
+                regles=(AU_MOINS_UN('SPECIFICATION_ANALYSE',),\r
+                        AU_PLUS_UN('SPECIFICATION_ANALYSE',),\r
+                        ),\r
+                       )# Fin JDC_CATA\r
+\r
+## ----- SPECIFICATION DE L'ETUDE ----- ##\r
+SPECIFICATION_ANALYSE= MACRO (nom       = 'SPECIFICATION_ANALYSE',\r
+              op        = None,\r
+              UIinfo    = {"groupes":("Machine tournante",)},\r
+              fr        = "Specification des analyses",\r
+              TYPE_ANALYSE     = SIMP(statut='o', typ='TXM',into=('STATIQUE', 'MODALE', 'HARMONIQUE', 'TRANSITOIRE', 'TRANSITOIRE_ACCIDENTEL','SYNTHESE')),\r
+              # pour V1.1 flexion uniquement\r
+              #TYPE_COMPORTEMENT = SIMP(statut='o', typ='TXM',into=('FLEXION',),defaut='FLEXION',fr="Renseignement du type de comportement voulu"),\r
+              TYPE_COMPORTEMENT = BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL')",\r
+                                        FLEXION = SIMP(statut='o',typ='TXM',into=('OUI',),defaut='OUI',fr="Prise en compte la flexion de la ligne d'arbres: obligatoire"),\r
+                                        TORSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la torsion de la ligne d'arbres"),\r
+                                        COMPRESSION = SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='NON',fr="Choix de la prise en compte la traction/compression de la ligne d'arbres"),\r
+                                      ),\r
+\r
+                 SURCHARGE=BLOC(condition = "TYPE_ANALYSE in ('MODALE','HARMONIQUE','STATIQUE','TRANSITOIRE','TRANSITOIRE_ACCIDENTEL','SYNTHESE')",statut="f",\r
+                                               TEMPLATE=SIMP(  statut="f",\r
+                                                               typ=("Fichier","Fichier Template (*.tpl)"),\r
+                                                               min=1,max=1,\r
+                                                                fr="Utiliser un template d'analyse modifie"\r
+                                                               ),\r
+                                               PARAMETRES= FACT(statut='f',min=1,max='**',fr="Definition et renseignement des parametres utilises dans le template surcharge",\r
+                                                                               CLE=SIMP(statut='o',typ='TXM',defaut=None,fr="Nom du parametre dans le template"),\r
+                                                                               TYPE=SIMP(statut='o',typ='TXM',into=('ENTIER','REEL','CHAINE','FICHIER','REPERTOIRE'),fr="Nature du parametre a renseigner"),\r
+                                                                               ENTIER=BLOC(condition="TYPE=='ENTIER'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='I',defaut=0,fr="Renseignement d'un nombre entier"),\r
+                                                                                       ),\r
+                                                                               REEL=BLOC(condition="TYPE=='REEL'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='R',defaut=0.0,fr="Renseignement d'un nombre reel"),\r
+                                                                                       ),\r
+                                                                               CHAINE=BLOC(condition="TYPE=='CHAINE'",\r
+                                                                                       VALUE=SIMP(statut='o',typ='TXM',defaut='',fr="Renseignement d'une chaine de caracteres"),\r
+                                                                                       ),\r
+                                                                               FICHIER=BLOC(condition="TYPE=='FICHIER'",\r
+                                                                                       VALUE=SIMP(statut='o',typ=("Fichier","All files (*.*)"),fr="Renseignement d'un fichier")\r
+                                                                                       ),\r
+                                                                               REPERTOIRE =BLOC(condition="TYPE=='REPERTOIRE'",\r
+                                                                                       VALUE=SIMP(statut='o',typ="Repertoire",fr="Renseignement d'un repertoire")\r
+                                                                                       ),\r
+\r
+                                                                       ),\r
+                       ),\r
+\r
+\r
+\r
+### ----- CALCUL STATIQUE ----- ##\r
+              ANALYSE_STATIQUE = BLOC(condition = "TYPE_ANALYSE == 'STATIQUE' ",fr="Analyse statique (vitesse de rotation nulle de la ligne d'arbres)",              \r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','FORCE','MOMENT','DELIGNAGE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                      ), # fin MOMENT\r
+                      DELIGNAGE = BLOC(condition = "TYPE == 'DELIGNAGE' ",fr="Application d'un delignage sur un ou plusieurs paliers",\r
+                              NOM_PALIER = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom du palier deligne"),\r
+                              DX = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant X du palier (m)"),\r
+                              DY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du delignage suivant Y du palier (m)"),\r
+                      ), # fin Delignage\r
+                      ), #fin CHARGES\r
+                     \r
+                      # POST-TRAITEMENTS DU CALCUL STATIQUE\r
+                      POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ),  #fin POST_TRAITEMENTS\r
+              ),# fin ANALYSE_STATIQUE\r
+\r
+### ----- CALCUL MODALE ----- ##\r
+              ANALYSE_MODALE = BLOC(condition = "TYPE_ANALYSE == 'MODALE' ",fr="Analyse modale de la ligne d'arbres",\r
+                      BASE_CALCUL = SIMP(statut='o',typ="TXM",into=('MODALE','PHYSIQUE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
+                      BASE_MODALE = BLOC(condition="BASE_CALCUL=='MODALE'",fr="Resolution sur base modale",\r
+                                         regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                         NB_MODES=SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                         FREQ_MAX=SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                      ), # fin BASE_MODALE\r
+                      AMORTISSEMENT = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de l'amortissment"),\r
+                      GYROSCOPIE = SIMP(statut='o',typ='TXM',min=1,max=1,into=('OUI','NON'),defaut='OUI',fr="Choix de la prise en compte de la gyroscopie"),\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
+                     OPTION_CALCUL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('PLUS_PETITE','CENTRE'),defaut=None,fr="Choix de l'option de calcul"),\r
+                      PLUS_PETITE = BLOC(condition="OPTION_CALCUL=='PLUS_PETITE'",fr="Calcul des n premieres frequences",\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences a calculer"),\r
+                      ), # fin PLUS_PETITE\r
+                      CENTRE = BLOC(condition="OPTION_CALCUL=='CENTRE'",fr="Calcul d'un nombre n de frequences autour d'une frequence donnee",\r
+                             FREQ = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence centrale (Hz)"),\r
+                             NMAX_FREQ = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre maximal de frequences"),\r
+                      ), # fin CENTRE\r
+                      METHODE=SIMP(statut='f',typ='TXM',min=1,max=1,into=('QZ','SORENSEN'),defaut='SORENSEN',fr="Choix de la methode de resolution"),\r
+\r
+                     # POST-TRAITEMENTS DU CALCUL MODAL\r
+                     POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                                               TYPE = SIMP(statut='o',typ='TXM',into=('AUCUN','DIAG_CAMPBELL'), defaut = 'AUCUN'),\r
+                                               DIAG_CAMPBELL = BLOC(condition="TYPE == 'DIAG_CAMPBELL'",fr="Choix des options du diagramme de Campbell",\r
+                                               PRECESSION = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('SOMME','PLUS_GRANDE_ORBITE'),fr="Critere de determination de la precession"),\r
+                                               SUIVI= SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('SANS_TRI','TRI_PREC','TRI_FORM_MOD'),fr="Methode de suivi des modes"),\r
+                                               NB_MODES = SIMP(statut='o',typ='I',min=1,max=1,defaut=None,fr="Nombre de modes affiches dans le diagramme, doit etre inferieur au nombre de modes calcules (NMAX_FREQ)"),\r
+                                               ), # fin DIAG_CAMPBELL\r
+                              ),# fin POST_TRAITEMENTS\r
+              ), # fin ANALYSE_MODALE\r
+\r
+## ----- CALCUL HARMONIQUE ----- ##\r
+              ANALYSE_HARMONIQUE = BLOC(condition = "TYPE_ANALYSE == 'HARMONIQUE' ",fr="Analyse harmonique de la ligne d'arbres",\r
+              \r
+                      ## specification calcul harmonique\r
+                     BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse modale (sur base physique ou sur base modale)"),\r
+                     BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                             #MODALE = FACT(statut='o',\r
+                                     regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                     NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             #),# fin MODALE\r
+                     ),# fin BASE_MODALE\r
+                     AMORTISSEMENT_P = BLOC(condition = "BASE_CALCUL == 'PHYSIQUE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL',),defaut='STRUCTUREL',fr="Choix du type d'amortissement"),\r
+                     ), # fin AMORTISSEMENT_P\r
+                     AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                             ),# fin AMOR_MODALE\r
+                     ), # fin AMORTISSEMENT_M\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste des vitesses de rotation etudiees (tr/min)"),\r
+                      # 20121018 retrait de defaut_fn a la demande de EDF\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('BALOURD','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                      ),# fin BALOURD\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la liste de coefficients appliques sur la charge harmonique (autant que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #FIN CHARGES\r
+\r
+                      # POST-TRAITEMENTS DU CALCUL HARMONIQUE\r
+                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ),\r
+                     ## fin POST_TRAITEMENTS\r
+                      \r
+              ),# fin ANALYSE_HARMONIQUE\r
+\r
+### ----- CALCUL TRANSITOIRE ----- ##\r
+              ANALYSE_TRANSISTOIRE = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE' ",fr="Analyse transitoire de la ligne d'arbres",\r
+                      \r
+                      VITESSE = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,into=('CONSTANTE','VARIABLE'),fr="Renseignement du type de vitesse de rotation consideree"),\r
+                      BASE_C = BLOC(condition ="VITESSE == 'CONSTANTE'",fr="Analyse transitoire a vitesse constante",\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('PHYSIQUE','MODALE'),defaut=None,fr="Choix du type de resolution de l'analyse transitoire (sur base physique ou sur base modale)"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                                               regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                                NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                               FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT_M = BLOC(condition = "BASE_CALCUL == 'MODALE' ",\r
+                                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                                     AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                             AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                                     ),# fin AMOR_MODALE\r
+                             ), # fin AMORTISSEMENT_M\r
+                      ), # fin BASE_C\r
+                      BASE_V = BLOC(condition ="VITESSE == 'VARIABLE'",fr="Analyse transitoire a vitesse variable",\r
+                              BASE_CALCUL = SIMP(statut='o',typ='TXM',into=('MODALE',),defaut='MODALE',fr="Choix du type de resolution de l'analyse transitoire (obligatoirement sur base modale)"),\r
+                              BASE_MODALE = BLOC(condition = "BASE_CALCUL == 'MODALE' ", fr="Resolution sur base modale",\r
+                                                regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                                      NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                                     FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                             ),# fin BASE_MODALE\r
+                             AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('REDUIT','STRUCTUREL'),defaut=None,fr="Choix du type d'amortissement"),\r
+                             AMOR_MODAL = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                                     #AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max=1,defaut=None,fr="Renseignement de l'amortissement modal reduit (en %)"),\r
+                                     AMOR_REDUIT = SIMP(statut='o', typ='R', min=1, max='**',defaut=None,fr="Renseignement de l'amortissement modal reduit (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                             ),# fin AMOR_MODALE\r
+                      ), # fin BASE_C\r
+                     VITESSE_CONSTANTE = BLOC(condition = "VITESSE == 'CONSTANTE' ", fr="Vitesse de rotation constante",\r
+                              VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
+                      ),# fin VITESSE_CONSTANTE\r
+                      VITESSE_VARIABLE = BLOC(condition = "VITESSE == 'VARIABLE' ", fr="Vitesse de rotation variable", regles=UN_PARMI('LINEAIRE','EXPONENTIELLE','FORMULE'),\r
+                              LINEAIRE = FACT(statut='f',min=1,max=1,fr="Variation lineaire de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin LINEAIRE\r
+                              EXPONENTIELLE = FACT(statut='f',min=1,max=1,fr="Variation exponentielle de la vitesse de rotation",\r
+                                      VITESSE_INITIALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation initiale (tr/min)",),\r
+                                      VITESSE_FINALE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation finale (tr/min)",),\r
+                                      DEPHASAGE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la postion angulaire initiale (degres)"),\r
+                                      LAMBDA = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du parametre de la loi exponentielle (Hz)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin EXPONENTIELLE\r
+                              FORMULE = FACT(statut='f',min=1,max=1,fr="Fonction personnalisee decrivant la variation de la vitesse de rotation",\r
+                                      FICHIER = SIMP(statut='o',typ=('Fichier','Formule vitesse rotation (*.*)'),min=1,max=1,defaut=None,fr="Renseignement du fichier contenant les fonctions de la vitesse de rotation"),\r
+                                      PHI = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de position angulaire (max 8 caractere)"),\r
+                                      OM = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule de vitesse angulaire (max 8 caractere)"),\r
+                                      ACC = SIMP(statut='o',typ='TXM',min=1,max=1,defaut=None,fr="Renseignement du nom de la formule d'acceleration angulaire (max 8 caractere)"),\r
+                                      VITE_MOY = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la moyenne des vitesses balayees (tr/min)"),\r
+                                      PAS_MAJ = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement du pas de mise a jour des matrices des paliers (tr/min)"),\r
+                              ),# fin FORMULE\r
+                      ),# fin VITESSE_VARIABLE\r
+                      #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
+                      ),# fin BALOURD\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du poids (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du poids (s)"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique la force (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant la force (N)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la force (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la force (s)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du moment (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du moment (s)"),\r
+                      ), # fin MOMENT\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la charge harmonique (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la charge harmonique (s)"),\r
+                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #fin CHARGES\r
+\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              RESULTAT = SIMP(statut='f',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees de type 'resultat' de Code_Aster"),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=0.0,fr="Renseignement de l'instant de la structure de donnees a partir duquel il faut lancer le calcul (s)"),\r
+                      ), # fin ETAT_INIT\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LISTE'),defaut=None,fr="Choix du type de discretisation temporelle"),\r
+                      #PAS = BLOC(condition = "VITESSE == 'VARIABLE'",fr="Renseignement des parametres des pas",\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS'",fr="Renseignement de pas de temps",\r
+                              TEMPS_PAS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration(en s)"),\r
+                              INST_INI = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial du calcul (s)"),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (s)"),\r
+                      ), # fin TEMPS_PAS\r
+                      LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LISTE'",fr="Renseignement d'une liste d'instants",\r
+                              LISTE = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste d'instants auxquels resoudre le calcul (s)"),\r
+                      ), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('NEWMARK','EULER','WILSON','ADAPT_ORDRE1','ADAPT_ORDRE2','DIFF_CENTRE'),defaut='NEWMARK',fr="Choix d'un schema d'integration temporelle"),\r
+                      NEWMARK = BLOC(condition = "SCHEMA_TEMPS == 'NEWMARK' ",fr="Methode de NEWMARK",\r
+                              BETA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur beta pour la methode de NEWMARK"),\r
+                              GAMMA = SIMP(statut='f',typ='R',max=1,defaut=0.25,fr="Renseignement de la valeur gamma pour la methode de NEWMARK"),\r
+                      ),# fin NEWMARK\r
+                      WILSON = BLOC(condition = "SCHEMA_TEMPS == 'WILSON' ",fr="Methode de WILSON",\r
+                              THETA = SIMP(statut='f',typ='R',max=1,defaut=1.4,fr="Renseignement de la valeur theta pour la methode de WILSON"),\r
+                      ), # fin WILSON\r
+                      \r
+                      # POST-TRAITEMENTS DU CALCUL TRANSITOIRE\r
+                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ), # fin POST_TRAITEMENTS\r
+              \r
+              ), # fin ANALYSE_TRANSISTOIRE\r
+              \r
+\r
+### ----- CALCUL COUPLE CODE_ASTER/EYDOS ----- ##\r
+              ANALYSE_TRANSITOIRE_ACCIDENTEL = BLOC(condition = "TYPE_ANALYSE == 'TRANSITOIRE_ACCIDENTEL' ",fr="Analyse transitoire accidentelle de la ligne d'arbres",\r
+                      #BASE_MODALE = FACT(statut='o', fr="Choix des parametres de la base modale",                                \r
+                     #POIDS = SIMP(statut='o',typ='TXM',into=('OUI','NON'),defaut='OUI',fr="Choix d'application d'un poids"),\r
+                     BASE_MODALE = BLOC(condition = "True", fr="Resolution sur base modale",\r
+                                        regles=UN_PARMI('NB_MODES','FREQ_MAX'),\r
+                              NB_MODES = SIMP(statut='f',typ='I',min=1,max=1,defaut=None,fr="Renseignement du nombre de modes constituant la base de projection"),\r
+                             FREQ_MAX = SIMP(statut='f',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence maximale des modes constituant la base de projection (Hz)"),\r
+                     ),# fin BASE_MODALE      \r
+                      # cft 20131217 suppression amortissement reduit\r
+                     #AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL','REDUIT'),defaut=None,fr="Choix du type d'amortissement"),\r
+                     AMORTISSEMENT = SIMP(statut='o', typ='TXM',into=('STRUCTUREL',),defaut='STRUCTUREL',fr="Choix du type d'amortissement"),\r
+                     AMOR_REDUIT = BLOC(condition = "AMORTISSEMENT == 'REDUIT' ",\r
+                             #LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements"),\r
+                             LIST_AMOR = SIMP(statut='o', typ='R', min=1,max='**',defaut=None,fr="Renseignement de la liste des amortissements modaux reduits (en %), la taille de la liste doit etre egale au nombre de modes constituant la base de projection"),\r
+                     ),# fin AMOR_REDUIT\r
+                      VITESSE_ROTATION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la vitesse de rotation (tr/min)"),\r
+\r
+                      CHARGES= FACT(statut='o',min=1,max='**',fr="Definition et renseignement du chargement applique",\r
+                      TYPE = SIMP(statut='o',typ='TXM',into=('POIDS','BALOURD','FORCE','MOMENT','HARMONIQUE'),defaut=None,min=1,max=1,fr="Choix du type de chargement a appliquer"),\r
+                      BALOURD = BLOC(condition = "TYPE == 'BALOURD' ",fr="Chargement de type balourd",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique le balourd (m)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude du balourd (kg.m)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge balourd (degres)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du balourd (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre l'amplitude nominale du balourd (s)"),\r
+                      ),# fin BALOURD\r
+                      POIDS = BLOC(condition = "TYPE == 'POIDS' ",fr="Prise en compte du champ de pesanteur",\r
+                                             GRAVITE = SIMP(statut='o',typ='R',defaut=9.81,fr="Renseignement de l'intensite de la gravite (m/s^2)"),\r
+                                             DIRECTION = SIMP(statut='o',typ='R',min=3,max=3,defaut=(1,0,0),fr="Renseignement de la direction de la force de gravite"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du poids (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du poids (s)"),\r
+                      ), # fin POIDS\r
+                      FORCE = BLOC(condition = "TYPE == 'FORCE' ",fr="Application d'une force ponctuelle",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la force (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la force (s)"),\r
+                                             #FONC_APPLI = SIMP(statut='f',typ='R',min=2,max=2,defaut=None,fr="Renseignement de la fonction appliquee"),\r
+                      ), # fin FORCE\r
+                      MOMENT = BLOC(condition = "TYPE == 'MOMENT' ",fr="Application d'un moment ponctuel",\r
+                                             POSITION = SIMP(statut='o',typ='R',defaut=None,fr="Renseignement de la position axiale ou s'applique le moment (m)"),\r
+                                             AMPLITUDE = SIMP(statut='o',typ='R',min=3,max=3,defaut=None,fr="Renseignement des 3 composantes decrivant le moment (N/m)"),\r
+                                             INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition du moment (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale du moment (s)"),\r
+                      ), # fin MOMENT\r
+                      HARMONIQUE = BLOC(condition = "TYPE == 'HARMONIQUE' ",fr="Charge harmonique",\r
+                              POSITION = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la position axiale ou s'applique la charge harmonique (m)"),\r
+                              FREQUENCE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de la frequence d'excitation harmonique (Hz)"),\r
+                              AMPLITUDE = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement de l'amplitude de la charge harmonique, (N)"),\r
+                              INST_APPLI= SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement de l'instant d'apparition de la charge harmonique (s)"),\r
+                              TEMPS_MONTEE=SIMP(statut='f',typ='R',min=1,max=1,defaut=0,fr="Renseignement du temps necessaire pour atteindre la valeur nominale de la charge harmonique (s)"),\r
+                              #FONC_APPLI = SIMP(statut='o',typ='R',min=1,max='**',defaut=None,fr="Renseignement de la fonction appliquee de la charge harmonique (autant de valeurs que de vitesses de rotation)"),\r
+                              PHASE_DEG = SIMP(statut='o',typ='R',min=1,max=1,defaut=None,fr="Renseignement du decalage de la phase de la charge harmonique (degres)"),\r
+                              TYPE_DDL = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DRX','DY','DRY','DZ','DRZ'),defaut=None,fr="Renseignement du DDL sur lequel s'applique la charge harmonique"),\r
+                      ), # fin HARMONIQUE\r
+                      ), #fin CHARGES\r
+                      ETAT_INIT = FACT(statut='o',fr="Renseignement de l'etat initial du calcul",\r
+                              #RESULTAT = SIMP(statut='o',typ=('sd_resultat'),max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              # 20121126\r
+                              #RESULTAT = SIMP(statut='o',typ='TXM',max=1,defaut=None,fr="Choix de la structure de donnees resultat de code aster "),\r
+                              INST_INIT = SIMP(statut='f',typ='R',max=1,defaut=None,fr="Renseignement de l'instant initial a partir duquel il faut lancer le calcul (s)"),\r
+                      ), # fin ETAT_INIT\r
+                      #PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS','LIST_INST'),defaut=None,fr="Choix du type de parametrage temporel"),\r
+                      # 20121126\r
+                      PARAM_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('PAS',),defaut="PAS",fr="Choix du type de discretisation temporelle",),\r
+                      PAS = BLOC(condition = "PARAM_TEMPS == 'PAS' ",fr="Renseignement de pas de temps",\r
+                              PAS_ASTER = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Code_Aster (en s)",),\r
+                              PAS_EDYOS = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement du pas de temps d'integration Edyos (en s)",),\r
+                              INST_FIN = SIMP(statut='o',typ='R',max=1,defaut=None,fr="Renseignement de l'instant final du calcul (en s)",),\r
+                      ), # fin TEMPS_PAS\r
+                      #LIST_INST = BLOC(condition = "PARAM_TEMPS == 'LIST_INST' ",fr="Renseignement d'une liste de pas",\r
+                              #LISTE = SIMP(statut='f',typ='R',min=1,max='**',defaut=None,fr="Renseignement d'une liste de pas"),\r
+                      #), # fin LIST_INST\r
+                      PAS_ARCHIVAGE = SIMP(statut='o',typ='I',max=1,defaut=1,fr="Renseignement du pas d'archivage des resultats (une sauvegarde tous les 'PAS_ARCHIVAGE' instants d'integration)",),\r
+                      PARA_MEM = SIMP(statut='f',typ='I',max=1,defaut=6400,fr="Renseigner la taille maximale de la memoire (Mo)",),\r
+                      PARA_CPU = SIMP(statut='f',typ='I',max=1,defaut=10000,fr="Renseigner le temps CPU maximal (s)",),\r
+                      SCHEMA_TEMPS = SIMP(statut='o',typ='TXM',max=1,into=('EULER','ADAPT_ORDRE1','ADAPT_ORDRE2'),defaut='ADAPT_ORDRE2',fr="Choix d'un schema d'integration temporelle"),\r
+                      \r
+                      # POST-TRAITEMENTS DU CALCUL TRANSITOIRE ACCIDENTEL\r
+                  POST_TRAITEMENTS = FACT(statut='o',max='**',fr="Definition et renseignement des post-traitements",\r
+                      CONTRAINTES = SIMP(statut='o',typ='TXM',into=('OUI', 'NON'),defaut='NON',fr="Export des contraintes en tout noeud de la ligne d'arbres"),\r
+                  ), # fin POST_TRAITEMENTS\r
+              ), # fin ANALYSE_TRANSITOIRE_ACCIDENTEL\r
+                 \r
+)# fin SPECIFICATION_ANALYSE\r
index 6deea70a7fc7b1bb62eda285cef9928c7752181e..21b1e76c5076af2b17a38b0eadc819c2464d181a 100644 (file)
@@ -34,5 +34,5 @@ encoding='iso-8859-1'
 
 #
 catalogues=(
-   ('SPECA','default',os.path.join(repIni,'SPECA_Cata_V1.py'),'python','python'),
+   ('SPECA','V2016',os.path.join(repIni,'SPECA_Cata_V2016.py'),'python','python'),
 )
diff --git a/SPECA/qtEficasSPECA.py b/SPECA/qtEficasSPECA.py
new file mode 100755 (executable)
index 0000000..e02b8c7
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour MAP 
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lance_eficas(code=prefs.code)
diff --git a/UiQT4/desRechercheCatalogue.ui b/UiQT4/desRechercheCatalogue.ui
new file mode 100644 (file)
index 0000000..8951383
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>desRechercheCatalogue</class>
+ <widget class="QDialog" name="desRechercheCatalogue">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>817</width>
+    <height>359</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Rechercher dans le Catalogue</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="minimumSize">
+        <size>
+         <width>105</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>105</width>
+         <height>22</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>Mot à charcher</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="CBRecherche"/>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="LERecherche">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>411</width>
+         <height>41</height>
+        </size>
+       </property>
+       <property name="styleSheet">
+        <string notr="true">background:rgb(240,240,240)</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Généalogie</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QTextEdit" name="teGenea">
+     <property name="minimumSize">
+      <size>
+       <width>419</width>
+       <height>91</height>
+      </size>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout_3">
+     <item>
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Documentation</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QTextEdit" name="teDoc">
+       <property name="minimumSize">
+        <size>
+         <width>419</width>
+         <height>101</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
index f89ee2a7597804bd4732f7fde7def46dae3b330f..afe86d8a800a0ed8c66d9370e8b2a86ab136dfbb 100644 (file)
 <context>
     <name>@default</name>
     <message>
-       <source>Discretisations_En_Espace</source>
-       <translation>Discretizations_In_Space</translation>
+        <source>COEFFICIENT_TO_CALIBRATE_TIDAL_VELOCITIES</source>
+        <translation>Coefficient to calibrate tidal velocities</translation>
     </message>
     <message>
-       <source>Option_De_Supg</source>
-       <translation>Supg_Option</translation>
+        <source>BOTTOM_TOPOGRAPHY_FILE</source>
+        <translation>Bottom topography file</translation>
     </message>
     <message>
-       <source>Forme_De_La_Convection</source>
-       <translation>Type_Of_Advection</translation>
+        <source>NUMBER_OF_CORRECTIONS_OF_DISTRIBUTIVE_SCHEMES</source>
+        <translation>Number of corrections of distributive schemes</translation>
     </message>
     <message>
-       <source>Cote constante</source>
-       <translation>Constant elevation</translation>
+        <source>WATER_DENSITY</source>
+        <translation>Water density</translation>
     </message>
     <message>
-       <source>Cote Nulle</source>
-       <translation>Zero elevation</translation>
+        <source>VALUE_OF_ATMOSPHERIC_PRESSURE</source>
+        <translation>Value of atmospheric pressure</translation>
     </message>
     <message>
-       <source>Hauteur Nulle</source>
-       <translation>Zero depth</translation>
+        <source>LISTING_FOR_PRINTOUT_PERIOD</source>
+        <translation>Listing for printout period</translation>
     </message>
     <message>
-       <source>Hauteur constante</source>
-       <translation>Constant depth</translation>
+        <source>CONSERVATIVE_N_SCHEME</source>
+        <translation>Conservative N-Scheme</translation>
     </message>
     <message>
-       <source>Particulieres</source>
-       <translation>Special</translation>
+        <source>wave_celerity_(m/s)</source>
+        <translation>Wave celerity (m/s)</translation>
     </message>
     <message>
-       <source>Altimetrie satellite tpxo</source>
-       <translation>Tpxo satellite altimetry</translation>
+        <source>scalar_flowrate_of_fluid_(m2/s)</source>
+        <translation>Scalar flowrate of fluid (m2/s)</translation>
     </message>
     <message>
-       <source>Sequentiel</source>
-       <translation>Sequential</translation>
+        <source>constant_normal_profile</source>
+        <translation>Constant normal profile</translation>
     </message>
     <message>
-       <source>Parallele</source>
-       <translation>Parallel</translation>
+        <source>LAMBERT_4_CORSICA</source>
+        <translation>Lambert 4 corsica</translation>
+    </message>
+    <message>
+        <source>MERCATOR</source>
+        <translation>Mercator</translation>
+    </message>
+    <message>
+        <source>VELOCITY_DIFFUSIVITY</source>
+        <translation>Velocity diffusivity</translation>
+    </message>
+    <message>
+        <source>LINEARIZED_PROPAGATION</source>
+        <translation>Linearized propagation</translation>
+    </message>
+    <message>
+        <source>PRINTOUT_PERIOD_FOR_DROGUES</source>
+        <translation>Printout period for drogues</translation>
+    </message>
+    <message>
+        <source>BINARY_RESULTS_FILE_FORMAT</source>
+        <translation>Binary results file format</translation>
+    </message>
+    <message>
+        <source>COMPUTATION_CONTINUED</source>
+        <translation>Computation continued</translation>
+    </message>
+    <message>
+        <source>PARALLEL_PROCESSORS</source>
+        <translation>Parallel processors</translation>
+    </message>
+    <message>
+        <source>COEFFICIENT_FOR_DIFFUSION_OF_TRACERS</source>
+        <translation>Coefficient for diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>LAMBERT_3_SOUTH</source>
+        <translation>Lambert 3 south</translation>
+    </message>
+    <message>
+        <source>DIAMETER_OF_ALGAE</source>
+        <translation>Diameter of algae</translation>
+    </message>
+    <message>
+        <source>FRICTION_DATA_FILE</source>
+        <translation>Friction data file</translation>
+    </message>
+    <message>
+        <source>Real_tide_(recommended_methodology)</source>
+        <translation>Real tide (recommended methodology)</translation>
+    </message>
+    <message>
+        <source>NAMES_OF_POINTS</source>
+        <translation>Names of points</translation>
+    </message>
+    <message>
+        <source>GIGARTINA_LEPTORHYNCHOS</source>
+        <translation>Gigartina leptorhynchos</translation>
+    </message>
+    <message>
+        <source>STOP_CRITERIA</source>
+        <translation>Stop criteria</translation>
+    </message>
+    <message>
+        <source>Roe_scheme</source>
+        <translation>Roe scheme</translation>
+    </message>
+    <message>
+        <source>FINITE_VOLUME_SCHEME</source>
+        <translation>Finite volume scheme</translation>
+    </message>
+    <message>
+        <source>IMPLICITATION_COEFFICIENT_OF_TRACERS</source>
+        <translation>Implicitation coefficient of tracers</translation>
+    </message>
+    <message>
+        <source>gradient_simple</source>
+        <translation>Gradient simple</translation>
+    </message>
+    <message>
+        <source>SPATIAL_PROJECTION_TYPE</source>
+        <translation>Spatial projection type</translation>
+    </message>
+    <message>
+        <source>PHYSICAL_CHARACTERISTICS_OF_THE_TSUNAMI</source>
+        <translation>Physical characteristics of the tsunami</translation>
+    </message>
+    <message>
+        <source>direct</source>
+        <translation>Direct</translation>
+    </message>
+    <message>
+        <source>zero</source>
+        <translation>Zero</translation>
+    </message>
+    <message>
+        <source>FRICTION_COEFFICIENT</source>
+        <translation>Friction coefficient</translation>
+    </message>
+    <message>
+        <source>BREACHES_DATA_FILE</source>
+        <translation>Breaches data file</translation>
+    </message>
+    <message>
+        <source>COEFFICIENT_1_FOR_LAW_OF_TRACERS_DEGRADATION</source>
+        <translation>Coefficient 1 for law of tracers degradation</translation>
+    </message>
+    <message>
+        <source>TREATMENT_OF_FLUXES_AT_THE_BOUNDARIES</source>
+        <translation>Treatment of fluxes at the boundaries</translation>
+    </message>
+    <message>
+        <source>GLOBAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATER</source>
+        <translation>Global number of the point to calibrate high water</translation>
+    </message>
+    <message>
+        <source>REFERENCE_FILE_FORMAT</source>
+        <translation>Reference file format</translation>
+    </message>
+    <message>
+        <source>conjugate_residual</source>
+        <translation>Conjugate residual</translation>
+    </message>
+    <message>
+        <source>BOTTOM_SURFACES_DELWAQ_FILE</source>
+        <translation>Bottom surfaces DELWAQ file</translation>
+    </message>
+    <message>
+        <source>N_SCHEME_FOR_TIDAL_FLATS</source>
+        <translation>N-Scheme for tidal flats</translation>
+    </message>
+    <message>
+        <source>NO_FRICTION</source>
+        <translation>No friction</translation>
+    </message>
+    <message>
+        <source>no_preconditioning_</source>
+        <translation>No preconditioning </translation>
+    </message>
+    <message>
+        <source>CONTINUITY_CORRECTION</source>
+        <translation>Continuity correction</translation>
+    </message>
+    <message>
+        <source>F(T90)_LAW</source>
+        <translation>F(T90) law</translation>
+    </message>
+    <message>
+        <source>FREE_SURFACE_GRADIENT_COMPATIBILITY</source>
+        <translation>Free surface gradient compatibility</translation>
+    </message>
+    <message>
+        <source>gmres</source>
+        <translation>GMRES</translation>
+    </message>
+    <message>
+        <source>strong</source>
+        <translation>Strong</translation>
+    </message>
+    <message>
+        <source>1/h_div_(_h_nu_grad(U)</source>
+        <translation>1/h div ( h nu grad(U)</translation>
+    </message>
+    <message>
+        <source>SMAGORINSKI</source>
+        <translation>Smagorinski</translation>
+    </message>
+    <message>
+        <source>NAMES_OF_PRIVATE_VARIABLES</source>
+        <translation>Names of private variables</translation>
+    </message>
+    <message>
+        <source>NODES_DISTANCES_DELWAQ_FILE</source>
+        <translation>Nodes distances DELWAQ file</translation>
+    </message>
+    <message>
+        <source>SCHEME_OPTION_FOR_ADVECTION_OF_TRACERS</source>
+        <translation>Scheme option for advection of tracers</translation>
+    </message>
+    <message>
+        <source>MERCATOR_FOR_TELEMAC</source>
+        <translation>Mercator for telemac</translation>
+    </message>
+    <message>
+        <source>TIME_STEP_REDUCTION_FOR_K_EPSILON_MODEL</source>
+        <translation>Time step reduction for K-Epsilon model</translation>
+    </message>
+    <message>
+        <source>quasi_bubble</source>
+        <translation>Quasi-bubble</translation>
+    </message>
+    <message>
+        <source>NON_DIMENSIONAL_DISPERSION_COEFFICIENTS</source>
+        <translation>Non-dimensional dispersion coefficients</translation>
+    </message>
+    <message>
+        <source>classical_EBE</source>
+        <translation>Classical ebe</translation>
+    </message>
+    <message>
+        <source>IMPLICIT_NON_CONSERVATIVE_N_SCHEME</source>
+        <translation>Implicit non conservative n scheme</translation>
+    </message>
+    <message>
+        <source>GEOMETRY_FILE_FORMAT</source>
+        <translation>Geometry file format</translation>
+    </message>
+    <message>
+        <source>ORIGINAL_HOUR_OF_TIME</source>
+        <translation>Original hour of time</translation>
+    </message>
+    <message>
+        <source>DIFFUSIVITY_FOR_DELWAQ</source>
+        <translation>Diffusivity for DELWAQ</translation>
+    </message>
+    <message>
+        <source>Q(Z)_not_programmed</source>
+        <translation>Q(Z) not programmed</translation>
+    </message>
+    <message>
+        <source>DISSIPATION_COEFFICIENT_FOR_SECONDARY_CURRENTS</source>
+        <translation>Dissipation coefficient for secondary currents</translation>
+    </message>
+    <message>
+        <source>ALGAE_TRANSPORT_MODEL</source>
+        <translation>Algae transport model</translation>
+    </message>
+    <message>
+        <source>TOLERANCES_FOR_IDENTIFICATION</source>
+        <translation>Tolerances for identification</translation>
+    </message>
+    <message>
+        <source>WGS84_SOUTHERN_UTM</source>
+        <translation>WGS84 southern utm</translation>
+    </message>
+    <message>
+        <source>air_pressure_(Pa)</source>
+        <translation>Air pressure (Pa)</translation>
+    </message>
+    <message>
+        <source>No_model</source>
+        <translation>No model</translation>
+    </message>
+    <message>
+        <source>DELWAQ_PRINTOUT_PERIOD</source>
+        <translation>DELWAQ printout period</translation>
+    </message>
+    <message>
+        <source>DROGUES_FILE</source>
+        <translation>Drogues file</translation>
+    </message>
+    <message>
+        <source>MASS_LUMPING_FOR_WEAK_CHARACTERISTICS</source>
+        <translation>Mass-lumping for weak characteristics</translation>
+    </message>
+    <message>
+        <source>GRAVITY_ACCELERATION</source>
+        <translation>Gravity acceleration</translation>
+    </message>
+    <message>
+        <source>BINARY_DATABASE_2_FOR_TIDE</source>
+        <translation>Binary database 2 for tide</translation>
+    </message>
+    <message>
+        <source>6_points</source>
+        <translation>6 points</translation>
+    </message>
+    <message>
+        <source>TIME_RANGE_FOR_FOURIER_ANALYSIS</source>
+        <translation>Time range for fourier analysis</translation>
+    </message>
+    <message>
+        <source>EDGE_BASED_N_SCHEME</source>
+        <translation>Edge-based N-Scheme</translation>
+    </message>
+    <message>
+        <source>Priority_to_fluxes</source>
+        <translation>Priority to fluxes</translation>
+    </message>
+    <message>
+        <source>LAMBERT_1_NORTH</source>
+        <translation>Lambert 1 north</translation>
+    </message>
+    <message>
+        <source>velocity_proportional_to_square_root_of_depth</source>
+        <translation>Velocity proportional to square root of depth</translation>
+    </message>
+    <message>
+        <source>STRICKLER</source>
+        <translation>Strickler</translation>
+    </message>
+    <message>
+        <source>LAMBERT_2_EXTENDED</source>
+        <translation>Lambert 2 extended</translation>
+    </message>
+    <message>
+        <source>ELEMENTS_MASKED_BY_USER</source>
+        <translation>Elements masked by user</translation>
+    </message>
+    <message>
+        <source>NAMES_OF_TRACERS</source>
+        <translation>Names of tracers</translation>
+    </message>
+    <message>
+        <source>H_CLIPPING</source>
+        <translation>H clipping</translation>
+    </message>
+    <message>
+        <source>conjugate_residuals</source>
+        <translation>Conjugate residuals</translation>
+    </message>
+    <message>
+        <source>PARAMETER_ESTIMATION</source>
+        <translation>Parameter estimation</translation>
+    </message>
+    <message>
+        <source>CHECKING_THE_MESH</source>
+        <translation>Checking the mesh</translation>
+    </message>
+    <message>
+        <source>SOLVER_FOR_K_EPSILON_MODEL</source>
+        <translation>Solver for K-Epsilon model</translation>
+    </message>
+    <message>
+        <source>LIST_OF_FILES</source>
+        <translation>List of files</translation>
+    </message>
+    <message>
+        <source>Wave_equation</source>
+        <translation>Wave equation</translation>
+    </message>
+    <message>
+        <source>NAMES_OF_CLANDESTINE_VARIABLES</source>
+        <translation>Names of clandestine variables</translation>
+    </message>
+    <message>
+        <source>WAQTEL_STEERING_FILE</source>
+        <translation>Waqtel steering file</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_ITERATIONS_FOR_ADVECTION_SCHEMES</source>
+        <translation>Maximum number of iterations for advection schemes</translation>
+    </message>
+    <message>
+        <source>squared_conjugate_gradient</source>
+        <translation>Squared conjugate gradient</translation>
+    </message>
+    <message>
+        <source>LAW_OF_BOTTOM_FRICTION</source>
+        <translation>Law of bottom friction</translation>
+    </message>
+    <message>
+        <source>MATRIX_VECTOR_PRODUCT</source>
+        <translation>Matrix-vector product</translation>
+    </message>
+    <message>
+        <source>ACCURACY_FOR_DIFFUSION_OF_TRACERS</source>
+        <translation>Accuracy for diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>cgstab</source>
+        <translation>CGSTAB</translation>
+    </message>
+    <message>
+        <source>MANNING</source>
+        <translation>Manning</translation>
+    </message>
+    <message>
+        <source>SCHEME_FOR_ADVECTION_OF_TRACERS</source>
+        <translation>Scheme for advection of tracers</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_THE_SOLVER_FOR_K_EPSILON_MODEL</source>
+        <translation>Option for the solver for K-Epsilon model</translation>
+    </message>
+    <message>
+        <source>conjugate_gradient_squared_stabilised_(cgstab)</source>
+        <translation>Conjugate gradient squared stabilised (CGSTAB)</translation>
+    </message>
+    <message>
+        <source>PELVETIOPSIS_LIMITATA</source>
+        <translation>Pelvetiopsis limitata</translation>
+    </message>
+    <message>
+        <source>LIKE_1_BUT_WITH_POROSITY_(DEFINA_METHOD)</source>
+        <translation>Like 1 but with porosity (defina method)</translation>
+    </message>
+    <message>
+        <source>FRICTION_DATA</source>
+        <translation>Friction data</translation>
+    </message>
+    <message>
+        <source>TUBES_DATA_FILE</source>
+        <translation>Tubes data file</translation>
+    </message>
+    <message>
+        <source>ZONES_FILE</source>
+        <translation>Zones file</translation>
+    </message>
+    <message>
+        <source>Mean_tide</source>
+        <translation>Mean tide</translation>
+    </message>
+    <message>
+        <source>DENSITY_EFFECTS</source>
+        <translation>Density effects</translation>
+    </message>
+    <message>
+        <source>THRESHOLD_DEPTH_FOR_RECEDING_PROCEDURE</source>
+        <translation>Threshold depth for receding procedure</translation>
+    </message>
+    <message>
+        <source>explicit</source>
+        <translation>Explicit</translation>
+    </message>
+    <message>
+        <source>DRY_ELEMENTS_FROZEN</source>
+        <translation>Dry elements frozen</translation>
+    </message>
+    <message>
+        <source>extrapolation</source>
+        <translation>Extrapolation</translation>
+    </message>
+    <message>
+        <source>conjugate_gradient_on_normal_equation</source>
+        <translation>Conjugate gradient on normal equation</translation>
+    </message>
+    <message>
+        <source>TREATMENT_OF_NEGATIVE_DEPTHS</source>
+        <translation>Treatment of negative depths</translation>
+    </message>
+    <message>
+        <source>STEERING_FILE</source>
+        <translation>Steering file</translation>
+    </message>
+    <message>
+        <source>ZONE_NUMBER_IN_GEOGRAPHIC_SYSTEM</source>
+        <translation>Zone number in geographic system</translation>
+    </message>
+    <message>
+        <source>DIFFUSION_OF_TRACERS</source>
+        <translation>Diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>PREVIOUS_COMPUTATION_FILE</source>
+        <translation>Previous computation file</translation>
+    </message>
+    <message>
+        <source>DIAMETER_OF_ROUGHNESS_ELEMENTS</source>
+        <translation>Diameter of roughness elements</translation>
+    </message>
+    <message>
+        <source>friction_velocity</source>
+        <translation>Friction velocity</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_TIME_STEPS</source>
+        <translation>Number of time steps</translation>
+    </message>
+    <message>
+        <source>NEWMARK_TIME_INTEGRATION_COEFFICIENT</source>
+        <translation>Newmark time integration coefficient</translation>
+    </message>
+    <message>
+        <source>TOMAWAC_STEERING_FILE</source>
+        <translation>TOMAWAC steering file</translation>
+    </message>
+    <message>
+        <source>CONSTANT_VISCOSITY</source>
+        <translation>Constant viscosity</translation>
+    </message>
+    <message>
+        <source>INITIAL_DEPTH</source>
+        <translation>Initial depth</translation>
+    </message>
+    <message>
+        <source>WATER_QUALITY</source>
+        <translation>Water quality</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_ITERATIONS_FOR_DIFFUSION_OF_TRACERS</source>
+        <translation>Maximum number of iterations for diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>ANGLAIS</source>
+        <translation>Anglais</translation>
+    </message>
+    <message>
+        <source>EQUATIONS_SOLVED_EVERYWHERE_WITH_CORRECTION_ON_TIDAL_FLATS</source>
+        <translation>Equations solved everywhere with correction on tidal flats</translation>
+    </message>
+    <message>
+        <source>LAW_OF_FRICTION_ON_LATERAL_BOUNDARIES</source>
+        <translation>Law of friction on lateral boundaries</translation>
+    </message>
+    <message>
+        <source>COUPLING_PERIOD_FOR_SISYPHE</source>
+        <translation>Coupling period for sisyphe</translation>
+    </message>
+    <message>
+        <source>NON_CONSERVATIVE_PSI_SCHEME</source>
+        <translation>Non conservative PSI scheme</translation>
+    </message>
+    <message>
+        <source>STAGE_DISCHARGE_CURVES_FILE</source>
+        <translation>Stage-discharge curves file</translation>
+    </message>
+    <message>
+        <source>INITIAL_CONDITIONS</source>
+        <translation>Initial conditions</translation>
+    </message>
+    <message>
+        <source>predictor_corrector</source>
+        <translation>Predictor-corrector</translation>
+    </message>
+    <message>
+        <source>LAMBERT</source>
+        <translation>Lambert</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_THE_DIFFUSION_OF_TRACERS</source>
+        <translation>Option for the diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>ACCURACY_OF_EPSILON</source>
+        <translation>Accuracy of epsilon</translation>
+    </message>
+    <message>
+        <source>THRESHOLD_DEPTH_FOR_WIND</source>
+        <translation>Threshold depth for wind</translation>
+    </message>
+    <message>
+        <source>SOLVER_ACCURACY</source>
+        <translation>Solver accuracy</translation>
+    </message>
+    <message>
+        <source>TURBULENCE_MODEL_FOR_SOLID_BOUNDARIES</source>
+        <translation>Turbulence model for solid boundaries</translation>
+    </message>
+    <message>
+        <source>BOUNDARY_CONDITIONS_FILE</source>
+        <translation>Boundary conditions file</translation>
+    </message>
+    <message>
+        <source>VALIDATION</source>
+        <translation>Validation</translation>
+    </message>
+    <message>
+        <source>tracer</source>
+        <translation>Tracer</translation>
+    </message>
+    <message>
+        <source>TIDE_GENERATING_FORCE</source>
+        <translation>Tide generating force</translation>
+    </message>
+    <message>
+        <source>SUPG</source>
+        <translation>SUPG</translation>
+    </message>
+    <message>
+        <source>PRESCRIBED_FLOWRATES</source>
+        <translation>Prescribed flowrates</translation>
+    </message>
+    <message>
+        <source>Mean_spring_tide</source>
+        <translation>Mean spring tide</translation>
+    </message>
+    <message>
+        <source>BINARY_DATABASE_1_FOR_TIDE</source>
+        <translation>Binary database 1 for tide</translation>
+    </message>
+    <message>
+        <source>LAW_OF_TRACERS_DEGRADATION</source>
+        <translation>Law of tracers degradation</translation>
+    </message>
+    <message>
+        <source>SECTIONS_INPUT_FILE</source>
+        <translation>Sections input file</translation>
+    </message>
+    <message>
+        <source>MINIMUM_VALUE_OF_DEPTH</source>
+        <translation>Minimum value of depth</translation>
+    </message>
+    <message>
+        <source>No_tide</source>
+        <translation>No tide</translation>
+    </message>
+    <message>
+        <source>SPACING_OF_ROUGHNESS_ELEMENTS</source>
+        <translation>Spacing of roughness elements</translation>
+    </message>
+    <message>
+        <source>SCHEME_OPTION_FOR_ADVECTION_OF_K_EPSILON</source>
+        <translation>Scheme option for advection of K-epsilon</translation>
+    </message>
+    <message>
+        <source>LISTING_PRINTOUT_PERIOD</source>
+        <translation>Listing printout period</translation>
+    </message>
+    <message>
+        <source>COLEBROOK_WHITE</source>
+        <translation>Colebrook-white</translation>
+    </message>
+    <message>
+        <source>MINOR_CONSTITUENTS_INFERENCE</source>
+        <translation>Minor constituents inference</translation>
+    </message>
+    <message>
+        <source>CARTESIAN,_NOT_GEOREFERENCED</source>
+        <translation>Cartesian, not georeferenced</translation>
+    </message>
+    <message>
+        <source>No_Tsunami</source>
+        <translation>No tsunami</translation>
+    </message>
+    <message>
+        <source>drift_along_x_(m)</source>
+        <translation>Drift along X (m)</translation>
+    </message>
+    <message>
+        <source>UTM_ZONE,_E.G.</source>
+        <translation>Utm zone, e.g.</translation>
+    </message>
+    <message>
+        <source>CONSERVATIVE_PSI_SCHEME</source>
+        <translation>Conservative PSI-Scheme</translation>
+    </message>
+    <message>
+        <source>PREVIOUS_COMPUTATION_FILE_FORMAT</source>
+        <translation>Previous computation file format</translation>
+    </message>
+    <message>
+        <source>VALUES_OF_THE_TRACERS_AT_THE_SOURCES</source>
+        <translation>Values of the tracers at the sources</translation>
+    </message>
+    <message>
+        <source>linear</source>
+        <translation>Linear</translation>
+    </message>
+    <message>
+        <source>BINARY_RESULTS_FILE</source>
+        <translation>Binary results file</translation>
+    </message>
+    <message>
+        <source>diagonal</source>
+        <translation>Diagonal</translation>
+    </message>
+    <message>
+        <source>EXCHANGE_AREAS_DELWAQ_FILE</source>
+        <translation>Exchange areas DELWAQ file</translation>
+    </message>
+    <message>
+        <source>IMPLICITATION_FOR_DIFFUSION_OF_VELOCITY</source>
+        <translation>Implicitation for diffusion of velocity</translation>
+    </message>
+    <message>
+        <source>conjugate_gradient</source>
+        <translation>Conjugate gradient</translation>
+    </message>
+    <message>
+        <source>WGS84_NORTHERN_UTM</source>
+        <translation>WGS84 northern utm</translation>
+    </message>
+    <message>
+        <source>WEIRS_DATA_FILE</source>
+        <translation>Weirs data file</translation>
+    </message>
+    <message>
+        <source>IMPLICITATION_FOR_VELOCITY</source>
+        <translation>Implicitation for velocity</translation>
+    </message>
+    <message>
+        <source>DEFINITION_OF_ZONES</source>
+        <translation>Definition of zones</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_ITERATIONS_FOR_K_AND_EPSILON</source>
+        <translation>Maximum number of iterations for K and Epsilon</translation>
+    </message>
+    <message>
+        <source>MEAN_DEPTH_FOR_LINEARIZATION</source>
+        <translation>Mean depth for linearization</translation>
+    </message>
+    <message>
+        <source>3_points</source>
+        <translation>3 points</translation>
+    </message>
+    <message>
+        <source>wind_along_y_axis_(m/s)</source>
+        <translation>Wind along Y axis (m/s)</translation>
+    </message>
+    <message>
+        <source>div(_nu_grad(T)_)</source>
+        <translation>Div( nu grad(t) )</translation>
+    </message>
+    <message>
+        <source>minimum_error</source>
+        <translation>Minimum error</translation>
+    </message>
+    <message>
+        <source>SCHEME_OPTION_FOR_ADVECTION_OF_VELOCITIES</source>
+        <translation>Scheme option for advection of velocities</translation>
+    </message>
+    <message>
+        <source>DESIRED_COURANT_NUMBER</source>
+        <translation>Desired courant number</translation>
+    </message>
+    <message>
+        <source>flowrate_along_x_axis_(m2/s)</source>
+        <translation>Flowrate along X axis (m2/s)</translation>
+    </message>
+    <message>
+        <source>SUPG_OPTION</source>
+        <translation>SUPG option</translation>
+    </message>
+    <message>
+        <source>1/h_div_(_h_nu_grad(T)</source>
+        <translation>1/h div ( h nu grad(t)</translation>
+    </message>
+    <message>
+        <source>crout</source>
+        <translation>Crout</translation>
+    </message>
+    <message>
+        <source>conjugate_gradient_squared</source>
+        <translation>Conjugate gradient squared</translation>
+    </message>
+    <message>
+        <source>STOP_IF_A_STEADY_STATE_IS_REACHED</source>
+        <translation>Stop if a steady state is reached</translation>
+    </message>
+    <message>
+        <source>DEFAULT_PARALLEL_EXECUTABLE</source>
+        <translation>Default parallel executable</translation>
+    </message>
+    <message>
+        <source>INFORMATION_ABOUT_SOLVER</source>
+        <translation>Information about solver</translation>
+    </message>
+    <message>
+        <source>K_EPSILON_MODEL</source>
+        <translation>K-Epsilon model</translation>
+    </message>
+    <message>
+        <source>AIR_PRESSURE</source>
+        <translation>Air pressure</translation>
+    </message>
+    <message>
+        <source>RESULTS_FILE</source>
+        <translation>Results file</translation>
+    </message>
+    <message>
+        <source>VERTICAL_FLUXES_DELWAQ_FILE</source>
+        <translation>Vertical fluxes DELWAQ file</translation>
+    </message>
+    <message>
+        <source>DELWAQ_STEERING_FILE</source>
+        <translation>DELWAQ steering file</translation>
+    </message>
+    <message>
+        <source>wind_along_x_axis_(m/s)</source>
+        <translation>Wind along X axis (m/s)</translation>
+    </message>
+    <message>
+        <source>Lagrange_interp.</source>
+        <translation>Lagrange interp.</translation>
+    </message>
+    <message>
+        <source>MASS_BALANCE</source>
+        <translation>Mass-balance</translation>
+    </message>
+    <message>
+        <source>turbulent_viscosity_(m2/s)</source>
+        <translation>Turbulent viscosity (m2/s)</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_TIDAL_BOUNDARY_CONDITIONS</source>
+        <translation>Option for tidal boundary conditions</translation>
+    </message>
+    <message>
+        <source>ADVECTION_OF_TRACERS</source>
+        <translation>Advection of tracers</translation>
+    </message>
+    <message>
+        <source>DIFFUSION_OF_VELOCITY</source>
+        <translation>Diffusion of velocity</translation>
+    </message>
+    <message>
+        <source>scalar_velocity_(m/s)</source>
+        <translation>Scalar velocity (m/s)</translation>
+    </message>
+    <message>
+        <source>COEFFICIENT_OF_WIND_INFLUENCE</source>
+        <translation>Coefficient of wind influence</translation>
+    </message>
+    <message>
+        <source>PRODUCTION_COEFFICIENT_FOR_SECONDARY_CURRENTS</source>
+        <translation>Production coefficient for secondary currents</translation>
+    </message>
+    <message>
+        <source>HLLC_scheme_order_1</source>
+        <translation>HLLC scheme order 1</translation>
+    </message>
+    <message>
+        <source>RESULTS_FILE_FORMAT</source>
+        <translation>Results file format</translation>
+    </message>
+    <message>
+        <source>COUPLING_PERIOD_FOR_TOMAWAC</source>
+        <translation>Coupling period for TOMAWAC</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_PRIVATE_ARRAYS</source>
+        <translation>Number of private arrays</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_FRICTION_DOMAINS</source>
+        <translation>Maximum number of friction domains</translation>
+    </message>
+    <message>
+        <source>DURATION</source>
+        <translation>Duration</translation>
+    </message>
+    <message>
+        <source>BINARY_DATA_FILE_2_FORMAT</source>
+        <translation>Binary data file 2 format</translation>
+    </message>
+    <message>
+        <source>HORIZONTAL_WITH_SAME_NUMBER_OF_NODES_UPSTREAM/DOWNSTREAM</source>
+        <translation>Horizontal with same number of nodes upstream/downstream</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_THE_DIFFUSION_OF_VELOCITIES</source>
+        <translation>Option for the diffusion of velocities</translation>
+    </message>
+    <message>
+        <source>MASS_LUMPING_ON_TRACERS</source>
+        <translation>Mass-lumping on tracers</translation>
+    </message>
+    <message>
+        <source>NORTH</source>
+        <translation>North</translation>
+    </message>
+    <message>
+        <source>RAIN_OR_EVAPORATION</source>
+        <translation>Rain or evaporation</translation>
+    </message>
+    <message>
+        <source>FRANCAIS</source>
+        <translation>Francais</translation>
+    </message>
+    <message>
+        <source>PARTITIONING_TOOL</source>
+        <translation>Partitioning tool</translation>
+    </message>
+    <message>
+        <source>FORMATTED_RESULTS_FILE</source>
+        <translation>Formatted results file</translation>
+    </message>
+    <message>
+        <source>VERTICAL_STRUCTURES</source>
+        <translation>Vertical structures</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_TSUNAMI_GENERATION</source>
+        <translation>Option for tsunami generation</translation>
+    </message>
+    <message>
+        <source>VARIABLE_TIME_STEP</source>
+        <translation>Variable time-step</translation>
+    </message>
+    <message>
+        <source>IRIDAEA_FLACCIDA_(CLOSE_TO_ULVA)</source>
+        <translation>Iridaea flaccida (close to ulva)</translation>
+    </message>
+    <message>
+        <source>PROPAGATION_OPTION</source>
+        <translation>Propagation option</translation>
+    </message>
+    <message>
+        <source>REFERENCE_FILE</source>
+        <translation>Reference file</translation>
+    </message>
+    <message>
+        <source>TIDAL_DATA_BASE</source>
+        <translation>Tidal data base</translation>
+    </message>
+    <message>
+        <source>INITIAL_ELEVATION</source>
+        <translation>Initial elevation</translation>
+    </message>
+    <message>
+        <source>average</source>
+        <translation>Average</translation>
+    </message>
+    <message>
+        <source>STOCHASTIC_DIFFUSION_MODEL</source>
+        <translation>Stochastic diffusion model</translation>
+    </message>
+    <message>
+        <source>FORTRAN_FILE</source>
+        <translation>Fortran file</translation>
+    </message>
+    <message>
+        <source>BREACH</source>
+        <translation>Breach</translation>
+    </message>
+    <message>
+        <source>Z(Q)</source>
+        <translation>Z(Q)</translation>
+    </message>
+    <message>
+        <source>NO_DEFAULT_VALUE</source>
+        <translation>No default value</translation>
+    </message>
+    <message>
+        <source>no_preconditioning</source>
+        <translation>No preconditioning</translation>
+    </message>
+    <message>
+        <source>TIME_STEP</source>
+        <translation>Time step</translation>
+    </message>
+    <message>
+        <source>rough</source>
+        <translation>Rough</translation>
+    </message>
+    <message>
+        <source>SALINITY_DELWAQ_FILE</source>
+        <translation>Salinity DELWAQ file</translation>
+    </message>
+    <message>
+        <source>IMPLICITATION_FOR_DEPTH</source>
+        <translation>Implicitation for depth</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_LAGRANGIAN_DRIFTS</source>
+        <translation>Number of lagrangian drifts</translation>
+    </message>
+    <message>
+        <source>TEMPERATURE_FOR_DELWAQ</source>
+        <translation>Temperature for DELWAQ</translation>
+    </message>
+    <message>
+        <source>GENERAL</source>
+        <translation>General</translation>
+    </message>
+    <message>
+        <source>SECONDARY_CURRENTS</source>
+        <translation>Secondary currents</translation>
+    </message>
+    <message>
+        <source>PRECONDITIONING</source>
+        <translation>Preconditioning</translation>
+    </message>
+    <message>
+        <source>MANNING_DEFAULT_VALUE_FOR_COLEBROOK_WHITE_LAW</source>
+        <translation>Manning default value for colebrook-white law</translation>
+    </message>
+    <message>
+        <source>ADVECTION_OF_H</source>
+        <translation>Advection of H</translation>
+    </message>
+    <message>
+        <source>DEBUGGER</source>
+        <translation>Debugger</translation>
+    </message>
+    <message>
+        <source>LATITUDE_OF_ORIGIN_POINT</source>
+        <translation>Latitude of origin point</translation>
+    </message>
+    <message>
+        <source>PRESCRIBED_TRACERS_VALUES</source>
+        <translation>Prescribed tracers values</translation>
+    </message>
+    <message>
+        <source>RECORD_NUMBER_FOR_RESTART</source>
+        <translation>Record number for restart</translation>
+    </message>
+    <message>
+        <source>turbulent_viscosity_of_k_epsilon_model_(m2/s)</source>
+        <translation>Turbulent viscosity of K-epsilon model (m2/s)</translation>
+    </message>
+    <message>
+        <source>LISTING_PRINTOUT</source>
+        <translation>Listing printout</translation>
+    </message>
+    <message>
+        <source>CORIOLIS_COEFFICIENT</source>
+        <translation>Coriolis coefficient</translation>
+    </message>
+    <message>
+        <source>TURBULENCE_MODEL</source>
+        <translation>Turbulence model</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_FIRST_TIME_STEP_FOR_LISTING_PRINTOUTS</source>
+        <translation>Number of first time step for listing printouts</translation>
+    </message>
+    <message>
+        <source>PRINTING_CUMULATED_FLOWRATES</source>
+        <translation>Printing cumulated flowrates</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_THE_TREATMENT_OF_TIDAL_FLATS</source>
+        <translation>Option for the treatment of tidal flats</translation>
+    </message>
+    <message>
+        <source>variable_in_time_and_space_given_by_formated_file</source>
+        <translation>Variable in time and space given by formated file</translation>
+    </message>
+    <message>
+        <source>CONTROL_SECTIONS</source>
+        <translation>Control sections</translation>
+    </message>
+    <message>
+        <source>SOLVER_FOR_DIFFUSION_OF_TRACERS</source>
+        <translation>Solver for diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>SECTIONS_OUTPUT_FILE</source>
+        <translation>Sections output file</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_SUB_STEPS_OF_DISTRIBUTIVE_SCHEMES</source>
+        <translation>Number of sub-steps of distributive schemes</translation>
+    </message>
+    <message>
+        <source>UPWIND_COEFFICIENTS</source>
+        <translation>Upwind coefficients</translation>
+    </message>
+    <message>
+        <source>time_of_maximum_elevation</source>
+        <translation>Time of maximum elevation</translation>
+    </message>
+    <message>
+        <source>ALGAE_TYPE</source>
+        <translation>Algae type</translation>
+    </message>
+    <message>
+        <source>RAIN_OR_EVAPORATION_IN_MM_PER_DAY</source>
+        <translation>Rain or evaporation in mm per day</translation>
+    </message>
+    <message>
+        <source>FORMATTED_DATA_FILE_1</source>
+        <translation>Formatted data file 1</translation>
+    </message>
+    <message>
+        <source>FORMATTED_DATA_FILE_2</source>
+        <translation>Formatted data file 2</translation>
+    </message>
+    <message>
+        <source>C_U_PRECONDITIONING</source>
+        <translation>C-U preconditioning</translation>
+    </message>
+    <message>
+        <source>LIST_OF_POINTS</source>
+        <translation>List of points</translation>
+    </message>
+    <message>
+        <source>WGS84_LONGITUDE/LATITUDE_IN_REAL_DEGREES</source>
+        <translation>WGS84 longitude/latitude in real degrees</translation>
+    </message>
+    <message>
+        <source>MISCELLANEOUS_(LEGOS_NEA,_FES20XX,_PREVIMER...)</source>
+        <translation>Miscellaneous (LEGOS-NEA, FES20XX, PREVIMER...)</translation>
+    </message>
+    <message>
+        <source>conj_gradient</source>
+        <translation>Conj gradient</translation>
+    </message>
+    <message>
+        <source>weak</source>
+        <translation>Weak</translation>
+    </message>
+    <message>
+        <source>SCHEME_FOR_ADVECTION_OF_VELOCITIES</source>
+        <translation>Scheme for advection of velocities</translation>
+    </message>
+    <message>
+        <source>gmres_(see_option_for_the_solver_for_k_epsilon_model)</source>
+        <translation>GMRES (see option for the solver for K-Epsilon model)</translation>
+    </message>
+    <message>
+        <source>NO_ADVECTION</source>
+        <translation>No advection</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_FIRST_TIME_STEP_FOR_GRAPHIC_PRINTOUTS</source>
+        <translation>Number of first time step for graphic printouts</translation>
+    </message>
+    <message>
+        <source>DEPTH_IN_FRICTION_TERMS</source>
+        <translation>Depth in friction terms</translation>
+    </message>
+    <message>
+        <source>FOURIER_ANALYSIS_PERIODS</source>
+        <translation>Fourier analysis periods</translation>
+    </message>
+    <message>
+        <source>EQUATIONS</source>
+        <translation>Equations</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_ITERATIONS_FOR_IDENTIFICATION</source>
+        <translation>Maximum number of iterations for identification</translation>
+    </message>
+    <message>
+        <source>WIND</source>
+        <translation>Wind</translation>
+    </message>
+    <message>
+        <source>SPEED_AND_DIRECTION_OF_WIND</source>
+        <translation>Speed and direction of wind</translation>
+    </message>
+    <message>
+        <source>TYPE_OF_SOURCES</source>
+        <translation>Type of sources</translation>
+    </message>
+    <message>
+        <source>TITLE</source>
+        <translation>Title</translation>
+    </message>
+    <message>
+        <source>MASS_LUMPING_ON_H</source>
+        <translation>Mass-lumping on H</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_SUB_ITERATIONS_FOR_NON_LINEARITIES</source>
+        <translation>Number of sub-iterations for non-linearities</translation>
+    </message>
+    <message>
+        <source>PSI_SCHEME_OPTION</source>
+        <translation>Psi scheme option</translation>
+    </message>
+    <message>
+        <source>LIQUID_BOUNDARIES_FILE</source>
+        <translation>Liquid boundaries file</translation>
+    </message>
+    <message>
+        <source>VELOCITIES_OF_THE_SOURCES_ALONG_X</source>
+        <translation>Velocities of the sources along X</translation>
+    </message>
+    <message>
+        <source>VELOCITIES_OF_THE_SOURCES_ALONG_Y</source>
+        <translation>Velocities of the sources along Y</translation>
+    </message>
+    <message>
+        <source>CHARACTERISTICS</source>
+        <translation>Characteristics</translation>
+    </message>
+    <message>
+        <source>BOTTOM_SMOOTHINGS</source>
+        <translation>Bottom smoothings</translation>
+    </message>
+    <message>
+        <source>SALINITY_FOR_DELWAQ</source>
+        <translation>Salinity for DELWAQ</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_CHARACTERISTICS</source>
+        <translation>Option for characteristics</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_TRACERS</source>
+        <translation>Maximum number of tracers</translation>
+    </message>
+    <message>
+        <source>maximum_velocity</source>
+        <translation>Maximum velocity</translation>
+    </message>
+    <message>
+        <source>FREE_INTEGER_20</source>
+        <translation>Free integer 20</translation>
+    </message>
+    <message>
+        <source>ZERO</source>
+        <translation>Zero</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_WIND</source>
+        <translation>Option for wind</translation>
+    </message>
+    <message>
+        <source>BINARY_DATA_FILE_1</source>
+        <translation>Binary data file 1</translation>
+    </message>
+    <message>
+        <source>BINARY_DATA_FILE_2</source>
+        <translation>Binary data file 2</translation>
+    </message>
+    <message>
+        <source>free_surface_elevation_(m)</source>
+        <translation>Free surface elevation (m)</translation>
+    </message>
+    <message>
+        <source>PRESCRIBED_VELOCITIES</source>
+        <translation>Prescribed velocities</translation>
+    </message>
+    <message>
+        <source>water_depth_(m)</source>
+        <translation>Water depth (m)</translation>
+    </message>
+    <message>
+        <source>VELOCITY_DELWAQ_FILE</source>
+        <translation>Velocity DELWAQ file</translation>
+    </message>
+    <message>
+        <source>kinetic_order_2</source>
+        <translation>Kinetic order 2</translation>
+    </message>
+    <message>
+        <source>kinetic_order_1</source>
+        <translation>Kinetic order 1</translation>
+    </message>
+    <message>
+        <source>coupled</source>
+        <translation>Coupled</translation>
+    </message>
+    <message>
+        <source>LAMBERT_2_CENTER</source>
+        <translation>Lambert 2 center</translation>
+    </message>
+    <message>
+        <source>COMPATIBLE_COMPUTATION_OF_FLUXES</source>
+        <translation>Compatible computation of fluxes</translation>
+    </message>
+    <message>
+        <source>Astronomical_neap_tide</source>
+        <translation>Astronomical neap tide</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_TRACERS</source>
+        <translation>Number of tracers</translation>
+    </message>
+    <message>
+        <source>Dirac</source>
+        <translation>Dirac</translation>
+    </message>
+    <message>
+        <source>COUPLING_DIRECTORY</source>
+        <translation>Coupling directory</translation>
+    </message>
+    <message>
+        <source>DEFAULT_EXECUTABLE</source>
+        <translation>Default executable</translation>
+    </message>
+    <message>
+        <source>GEOMETRY_FILE</source>
+        <translation>Geometry file</translation>
+    </message>
+    <message>
+        <source>DICTIONARY</source>
+        <translation>Dictionary</translation>
+    </message>
+    <message>
+        <source>WAF_scheme_order_2</source>
+        <translation>WAF scheme order 2</translation>
+    </message>
+    <message>
+        <source>VARIABLES_FOR_GRAPHIC_PRINTOUTS</source>
+        <translation>Variables for graphic printouts</translation>
+    </message>
+    <message>
+        <source>INFORMATION_ABOUT_K_EPSILON_MODEL</source>
+        <translation>Information about K-Epsilon model</translation>
+    </message>
+    <message>
+        <source>OIL_SPILL_STEERING_FILE</source>
+        <translation>Oil spill steering file</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_BOUNDARIES</source>
+        <translation>Maximum number of boundaries</translation>
+    </message>
+    <message>
+        <source>DIFFUSIVITY_DELWAQ_FILE</source>
+        <translation>Diffusivity DELWAQ file</translation>
+    </message>
+    <message>
+        <source>Thompson_method_based_on_characteristics</source>
+        <translation>Thompson method based on characteristics</translation>
+    </message>
+    <message>
+        <source>DESCRIPTION_OF_LIBRARIES</source>
+        <translation>Description of libraries</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_WEIRS</source>
+        <translation>Number of weirs</translation>
+    </message>
+    <message>
+        <source>SPHERE</source>
+        <translation>Sphere</translation>
+    </message>
+    <message>
+        <source>Computed_with_c,u,v</source>
+        <translation>Computed with C,U,V</translation>
+    </message>
+    <message>
+        <source>Astronomical_tide</source>
+        <translation>Astronomical tide</translation>
+    </message>
+    <message>
+        <source>velocity_along_y_axis_(m/s)</source>
+        <translation>Velocity along Y axis (m/s)</translation>
+    </message>
+    <message>
+        <source>CULVERT_DATA_FILE</source>
+        <translation>Culvert data file</translation>
+    </message>
+    <message>
+        <source>bottom_elevation_(m)</source>
+        <translation>Bottom elevation (m)</translation>
+    </message>
+    <message>
+        <source>EXCHANGES_BETWEEN_NODES_DELWAQ_FILE</source>
+        <translation>Exchanges between nodes DELWAQ file</translation>
+    </message>
+    <message>
+        <source>SOLVER_OPTION_FOR_TRACERS_DIFFUSION</source>
+        <translation>Solver option for tracers diffusion</translation>
+    </message>
+    <message>
+        <source>INITIAL_VALUES_OF_TRACERS</source>
+        <translation>Initial values of tracers</translation>
+    </message>
+    <message>
+        <source>flowrate_along_y_axis_(m2/s)</source>
+        <translation>Flowrate along Y axis (m2/s)</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_TUBES</source>
+        <translation>Number of tubes</translation>
+    </message>
+    <message>
+        <source>LONGITUDE_OF_ORIGIN_POINT</source>
+        <translation>Longitude of origin point</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_ITERATIONS_FOR_SOLVER</source>
+        <translation>Maximum number of iterations for solver</translation>
+    </message>
+    <message>
+        <source>CORIOLIS</source>
+        <translation>Coriolis</translation>
+    </message>
+    <message>
+        <source>ADVECTION</source>
+        <translation>Advection</translation>
+    </message>
+    <message>
+        <source>Edge_based_storage</source>
+        <translation>Edge-based storage</translation>
+    </message>
+    <message>
+        <source>EXPLICIT_+_MURD_SCHEME_PSI</source>
+        <translation>Explicit + murd scheme PSI</translation>
+    </message>
+    <message>
+        <source>previous</source>
+        <translation>Previous</translation>
+    </message>
+    <message>
+        <source>ABSCISSAE_OF_SOURCES</source>
+        <translation>Abscissae of sources</translation>
+    </message>
+    <message>
+        <source>VECTOR_LENGTH</source>
+        <translation>Vector length</translation>
+    </message>
+    <message>
+        <source>GRAPHIC_PRINTOUT_PERIOD</source>
+        <translation>Graphic printout period</translation>
+    </message>
+    <message>
+        <source>COUPLING_WITH</source>
+        <translation>Coupling with</translation>
+    </message>
+    <message>
+        <source>CHEZY</source>
+        <translation>CHEZY</translation>
+    </message>
+    <message>
+        <source>variable_in_time_given_by_formated_file</source>
+        <translation>Variable in time given by formated file</translation>
+    </message>
+    <message>
+        <source>WATER_DISCHARGE_OF_SOURCES</source>
+        <translation>Water discharge of sources</translation>
+    </message>
+    <message>
+        <source>ADVECTION_OF_U_AND_V</source>
+        <translation>Advection of U and V</translation>
+    </message>
+    <message>
+        <source>Zokagoa_scheme_order_1</source>
+        <translation>Zokagoa scheme order 1</translation>
+    </message>
+    <message>
+        <source>DEFINED_BY_USER</source>
+        <translation>Defined by user</translation>
+    </message>
+    <message>
+        <source>LATITUDE_LONGITUDE</source>
+        <translation>Latitude longitude</translation>
+    </message>
+    <message>
+        <source>VOLUMES_DELWAQ_FILE</source>
+        <translation>Volumes DELWAQ file</translation>
+    </message>
+    <message>
+        <source>VELOCITY_FOR_DELWAQ</source>
+        <translation>Velocity for DELWAQ</translation>
+    </message>
+    <message>
+        <source>ROUGHNESS_COEFFICIENT_OF_BOUNDARIES</source>
+        <translation>Roughness coefficient of boundaries</translation>
+    </message>
+    <message>
+        <source>TPXO</source>
+        <translation>TPXO</translation>
+    </message>
+    <message>
+        <source>INITIAL_TIME_SET_TO_ZERO</source>
+        <translation>Initial time set to zero</translation>
+    </message>
+    <message>
+        <source>EXPLICIT_+_SUPG</source>
+        <translation>Explicit + SUPG</translation>
+    </message>
+    <message>
+        <source>INITIAL_GUESS_FOR_U</source>
+        <translation>Initial guess for U</translation>
+    </message>
+    <message>
+        <source>SCHEME_FOR_ADVECTION_OF_K_EPSILON</source>
+        <translation>Scheme for advection of K-epsilon</translation>
+    </message>
+    <message>
+        <source>NO_DEGRADATION</source>
+        <translation>No degradation</translation>
+    </message>
+    <message>
+        <source>TEMPERATURE_DELWAQ_FILE</source>
+        <translation>Temperature DELWAQ file</translation>
+    </message>
+    <message>
+        <source>Froude_number</source>
+        <translation>Froude number</translation>
+    </message>
+    <message>
+        <source>classical</source>
+        <translation>Classical</translation>
+    </message>
+    <message>
+        <source>nombre_de_courants_</source>
+        <translation>Nombre de courants </translation>
+    </message>
+    <message>
+        <source>SOURCES_FILE</source>
+        <translation>Sources file</translation>
+    </message>
+    <message>
+        <source>LOG_LAW</source>
+        <translation>Log law</translation>
+    </message>
+    <message>
+        <source>CONTROL_OF_LIMITS</source>
+        <translation>Control of limits</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_GAUSS_POINTS_FOR_WEAK_CHARACTERISTICS</source>
+        <translation>Number of Gauss points for weak characteristics</translation>
+    </message>
+    <message>
+        <source>TYPE_OF_WEIRS</source>
+        <translation>Type of weirs</translation>
+    </message>
+    <message>
+        <source>THRESHOLD_FOR_NEGATIVE_DEPTHS</source>
+        <translation>Threshold for negative depths</translation>
+    </message>
+    <message>
+        <source>velocity_proportional_to_square_root_of_depth,_variant</source>
+        <translation>Velocity proportional to square root of depth, variant</translation>
+    </message>
+    <message>
+        <source>VELOCITY_PROFILES</source>
+        <translation>Velocity profiles</translation>
+    </message>
+    <message>
+        <source>LANGUAGE</source>
+        <translation>Language</translation>
+    </message>
+    <message>
+        <source>STAGE_DISCHARGE_CURVES</source>
+        <translation>Stage-discharge curves</translation>
+    </message>
+    <message>
+        <source>Courant_number_</source>
+        <translation>Courant number </translation>
+    </message>
+    <message>
+        <source>COST_FUNCTION</source>
+        <translation>Cost function</translation>
+    </message>
+    <message>
+        <source>JMJ</source>
+        <translation>JMJ</translation>
+    </message>
+    <message>
+        <source>ORIGIN_COORDINATES</source>
+        <translation>Origin coordinates</translation>
+    </message>
+    <message>
+        <source>RECORD_NUMBER_IN_WAVE_FILE</source>
+        <translation>Record number in wave file</translation>
+    </message>
+    <message>
+        <source>tracer_1_etc.</source>
+        <translation>Tracer 1 etc.</translation>
+    </message>
+    <message>
+        <source>TYPE_OF_ADVECTION</source>
+        <translation>Type of advection</translation>
+    </message>
+    <message>
+        <source>WIND_VELOCITY_ALONG_X</source>
+        <translation>Wind velocity along X</translation>
+    </message>
+    <message>
+        <source>WIND_VELOCITY_ALONG_Y</source>
+        <translation>Wind velocity along Y</translation>
+    </message>
+    <message>
+        <source>MAXIMUM_NUMBER_OF_SOURCES</source>
+        <translation>Maximum number of sources</translation>
+    </message>
+    <message>
+        <source>HAALAND</source>
+        <translation>HAALAND</translation>
+    </message>
+    <message>
+        <source>div(_nu_grad(U)_)</source>
+        <translation>Div( nu grad(U) )</translation>
+    </message>
+    <message>
+        <source>DISCRETIZATIONS_IN_SPACE</source>
+        <translation>Discretizations in space</translation>
+    </message>
+    <message>
+        <source>SISYPHE_STEERING_FILE</source>
+        <translation>Sisyphe steering file</translation>
+    </message>
+    <message>
+        <source>ADVECTION_OF_K_AND_EPSILON</source>
+        <translation>Advection of K and epsilon</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_CULVERTS</source>
+        <translation>Number of culverts</translation>
+    </message>
+    <message>
+        <source>RELEASE</source>
+        <translation>Release</translation>
+    </message>
+    <message>
+        <source>list_of_tests</source>
+        <translation>List of tests</translation>
+    </message>
+    <message>
+        <source>PRECONDITIONING_FOR_DIFFUSION_OF_TRACERS</source>
+        <translation>Preconditioning for diffusion of tracers</translation>
+    </message>
+    <message>
+        <source>EXPLICIT_LEO_POSTMA</source>
+        <translation>Explicit Leo Postma</translation>
+    </message>
+    <message>
+        <source>LOCAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATER</source>
+        <translation>Local number of the point to calibrate high water</translation>
+    </message>
+    <message>
+        <source>Tchamen_scheme_order_1</source>
+        <translation>Tchamen scheme order 1</translation>
+    </message>
+    <message>
+        <source>supplementary_variable_O</source>
+        <translation>Supplementary variable o</translation>
+    </message>
+    <message>
+        <source>WAVE_ENHANCED_FRICTION_FACTOR</source>
+        <translation>Wave enhanced friction factor</translation>
+    </message>
+    <message>
+        <source>ELDER</source>
+        <translation>Elder</translation>
+    </message>
+    <message>
+        <source>supplementary_variable_N</source>
+        <translation>Supplementary variable n</translation>
+    </message>
+    <message>
+        <source>gauss_seidel</source>
+        <translation>Gauss-Seidel</translation>
+    </message>
+    <message>
+        <source>TREATMENT_OF_THE_LINEAR_SYSTEM</source>
+        <translation>Treatment of the linear system</translation>
+    </message>
+    <message>
+        <source>VARIABLES_TO_BE_PRINTED</source>
+        <translation>Variables to be printed</translation>
+    </message>
+    <message>
+        <source>normal_velocity_given_in_ubor_in_the_conlim_file</source>
+        <translation>Normal velocity given in ubor in the conlim file</translation>
+    </message>
+    <message>
+        <source>DENSITY_OF_ALGAE</source>
+        <translation>Density of algae</translation>
+    </message>
+    <message>
+        <source>NON_SUBMERGED_VEGETATION_FRICTION</source>
+        <translation>Non-submerged vegetation friction</translation>
+    </message>
+    <message>
+        <source>TIDAL_FLATS</source>
+        <translation>Tidal flats</translation>
+    </message>
+    <message>
+        <source>diagonal_and_crout</source>
+        <translation>Diagonal and Crout</translation>
+    </message>
+    <message>
+        <source>HARMONIC_CONSTANTS_FILE</source>
+        <translation>Harmonic constants file</translation>
+    </message>
+    <message>
+        <source>Priority_to_prescribed_values</source>
+        <translation>Priority to prescribed values</translation>
+    </message>
+    <message>
+        <source>BINARY_DATA_FILE_1_FORMAT</source>
+        <translation>Binary data file 1 format</translation>
+    </message>
+    <message>
+        <source>Normal</source>
+        <translation>Normal</translation>
+    </message>
+    <message>
+        <source>nodal</source>
+        <translation>Nodal</translation>
+    </message>
+    <message>
+        <source>PRESCRIBED_ELEVATIONS</source>
+        <translation>Prescribed elevations</translation>
+    </message>
+    <message>
+        <source>LIMIT_VALUES</source>
+        <translation>Limit values</translation>
+    </message>
+    <message>
+        <source>quadratic</source>
+        <translation>Quadratic</translation>
+    </message>
+    <message>
+        <source>ORDINATES_OF_SOURCES</source>
+        <translation>Ordinates of sources</translation>
+    </message>
+    <message>
+        <source>Real_tide_(methodology_before_2010)</source>
+        <translation>Real tide (methodology before 2010)</translation>
+    </message>
+    <message>
+        <source>NUMBER_OF_DROGUES</source>
+        <translation>Number of drogues</translation>
+    </message>
+    <message>
+        <source>maximum_elevation</source>
+        <translation>Maximum elevation</translation>
+    </message>
+    <message>
+        <source>dissipation_of_turbulent_energy_(W/kg)</source>
+        <translation>Dissipation of turbulent energy (W/kg)</translation>
+    </message>
+    <message>
+        <source>PROPAGATION</source>
+        <translation>Propagation</translation>
+    </message>
+    <message>
+        <source>constant_in_time_and_space</source>
+        <translation>Constant in time and space</translation>
+    </message>
+    <message>
+        <source>Mean_neap_tide</source>
+        <translation>Mean neap tide</translation>
+    </message>
+    <message>
+        <source>gmres_(see_option_for_the_solver_for_tracer_diffusion)</source>
+        <translation>GMRES (see option for the solver for tracer diffusion)</translation>
+    </message>
+    <message>
+        <source>SOLVER_OPTION</source>
+        <translation>Solver option</translation>
+    </message>
+    <message>
+        <source>MATRIX_STORAGE</source>
+        <translation>Matrix storage</translation>
+    </message>
+    <message>
+        <source>COEFFICIENT_TO_CALIBRATE_TIDAL_RANGE</source>
+        <translation>Coefficient to calibrate tidal range</translation>
+    </message>
+    <message>
+        <source>brownian_movement</source>
+        <translation>Brownian movement</translation>
+    </message>
+    <message>
+        <source>SOLVER</source>
+        <translation>Solver</translation>
+    </message>
+    <message>
+        <source>smooth</source>
+        <translation>Smooth</translation>
+    </message>
+    <message>
+        <source>turbulent_kinetic_energy_in_k_epsilon_model_(J/kg)</source>
+        <translation>Turbulent kinetic energy in K-Epsilon model (W/kg)</translation>
+    </message>
+    <message>
+        <source>NIKURADSE</source>
+        <translation>Nikuradse</translation>
+    </message>
+    <message>
+        <source>PRECONDITIONING_FOR_K_EPSILON_MODEL</source>
+        <translation>Preconditioning for K-Epsilon model</translation>
+    </message>
+    <message>
+        <source>drift_along_y_(m)</source>
+        <translation>Drift along Y (m)</translation>
+    </message>
+    <message>
+        <source>velocity_along_x_axis_(m/s)</source>
+        <translation>Velocity along X axis (m/s)</translation>
+    </message>
+    <message>
+        <source>LEO_POSTMA_FOR_TIDAL_FLATS</source>
+        <translation>Leo Postma for tidal flats</translation>
+    </message>
+    <message>
+        <source>block_diagonal_(4_9_matrices)</source>
+        <translation>Block-diagonal (4-9 matrices)</translation>
+    </message>
+    <message>
+        <source>Computed_with_h,u,v</source>
+        <translation>Computed with H,U,V</translation>
+    </message>
+    <message>
+        <source>ACCURACY_OF_K</source>
+        <translation>Accuracy of K</translation>
+    </message>
+    <message>
+        <source>WATER_QUALITY_PROCESS</source>
+        <translation>Water quality process</translation>
+    </message>
+    <message>
+        <source>OPTION_FOR_LIQUID_BOUNDARIES</source>
+        <translation>Option for liquid boundaries</translation>
+    </message>
+    <message>
+        <source>COEFFICIENT_TO_CALIBRATE_SEA_LEVEL</source>
+        <translation>Coefficient to calibrate sea level</translation>
+    </message>
+    <message>
+        <source>INITIAL_GUESS_FOR_H</source>
+        <translation>Initial guess for H</translation>
+    </message>
+    <message>
+        <source>SPHERICAL_COORDINATES</source>
+        <translation>Spherical coordinates</translation>
+    </message>
+    <message>
+        <source>no</source>
+        <translation>No</translation>
+    </message>
+    <message>
+        <source>THICKNESS_OF_ALGAE</source>
+        <translation>Thickness of algae</translation>
+    </message>
+    <message>
+        <source>MEAN_TEMPERATURE</source>
+        <translation>Mean temperature</translation>
+    </message>
+    <message>
+        <source>IDENTIFICATION_METHOD</source>
+        <translation>Identification method</translation>
+    </message>
+    <message>
+        <source>friction_coefficient</source>
+        <translation>Friction coefficient</translation>
+    </message>
+    <message>
+        <source>MASS_LUMPING_ON_VELOCITY</source>
+        <translation>Mass-lumping on velocity</translation>
+    </message>
+    <message>
+        <source>time_of_maximum_velocity</source>
+        <translation>Time of maximum velocity</translation>
+    </message>
+    <message>
+        <source>VALUES_OF_TRACERS_IN_THE_RAIN</source>
+        <translation>Values of tracers in the rain</translation>
+    </message>
+    <message>
+        <source>supplementary_variable_Z</source>
+        <translation>Supplementary variable Z</translation>
+    </message>
+    <message>
+        <source>supplementary_variable_R</source>
+        <translation>Supplementary variable R</translation>
+    </message>
+    <message>
+        <source>EXPLICIT_+_MURD_SCHEME_N</source>
+        <translation>Explicit + murd Scheme N</translation>
+    </message>
+    <message>
+        <source>conjugate_gradient_on_a_normal_equation</source>
+        <translation>Conjugate gradient on a normal equation</translation>
+    </message>
+    <message>
+        <source>WAVE_DRIVEN_CURRENTS</source>
+        <translation>Wave driven currents</translation>
+    </message>
+    <message>
+        <source>Tsunami_generated_on_the_basis_of_the_Okada_model_1992</source>
+        <translation>Tsunami generated on the basis of the Okada model 1992</translation>
+    </message>
+    <message>
+        <source>ASCII_DATABASE_FOR_TIDE</source>
+        <translation>ASCII database for tide</translation>
+    </message>
+    <message>
+        <source>OIL_SPILL_MODEL</source>
+        <translation>Oil spill model</translation>
+    </message>
+    <message>
+        <source>1_point</source>
+        <translation>1 point</translation>
+    </message>
+    <message>
+        <source>ORIGINAL_DATE_OF_TIME</source>
+        <translation>Original date of time</translation>
+    </message>
+    <message>
+        <source>GEOGRAPHIC_SYSTEM</source>
+        <translation>Geographic system</translation>
+    </message>
+    <message>
+        <source>TIDAL_MODEL_FILE</source>
+        <translation>Tidal model file</translation>
+    </message>
+    <message>
+        <source>absolute_value_of_diagonal</source>
+        <translation>Absolute value of diagonal</translation>
+    </message>
+    <message>
+        <source>u_and_v_given_in_the_conlim_file</source>
+        <translation>U and V given in the conlim file</translation>
     </message>
     <message>
         <location filename="../../convert/convert_ini.py" line="81"/>
index 53b664492b2aad59eeba4011ab842c2044e8fc91..bbe1c168679f2e8666f0043a04194cd323c53222 100644 (file)
@@ -4,7 +4,8 @@ QTRELEASE = lrelease-qt4
 .SUFFIXES : .ui .py .ts .qm
 
 
-PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py desRecherche.py \
+PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \
+        desRecherche.py desRechercheCatalogue.py \
        desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \
        desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py  \
        desWidgetBloc.py desWidgetCB.py desWidgetCommentaire.py desWidgetDate.py \
diff --git a/UiQT5/desRechercheCatalogue.ui b/UiQT5/desRechercheCatalogue.ui
new file mode 100644 (file)
index 0000000..2b67f65
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>desRechercheCatalogue</class>
+ <widget class="QDialog" name="desRechercheCatalogue">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>817</width>
+    <height>359</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Rechercher dans le Catalogue</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="minimumSize">
+        <size>
+         <width>105</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>105</width>
+         <height>22</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>Mot à charcher</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="LERecherche">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>411</width>
+         <height>41</height>
+        </size>
+       </property>
+       <property name="styleSheet">
+        <string notr="true">background:rgb(240,240,240)</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Généalogie</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QPlainTextEdit" name="teGenea">
+     <property name="minimumSize">
+      <size>
+       <width>419</width>
+       <height>91</height>
+      </size>
+     </property>
+     <property name="plainText">
+      <string/>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout_3">
+     <item>
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Documentation</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPlainTextEdit" name="teDoc">
+       <property name="minimumSize">
+        <size>
+         <width>419</width>
+         <height>101</height>
+        </size>
+       </property>
+       <property name="plainText">
+        <string/>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
index b09643547f4c691e4dfb88c69928ac0fe128cce9..fdcf5e67047f01e69fd4e45fd817c792ea298168 100644 (file)
@@ -4,7 +4,8 @@ QTRELEASE = lrelease
 .SUFFIXES : .ui .py .ts .qm
 
 
-PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py desRecherche.py \
+PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \
+        desRecherche.py  desRechercheCatalogue.py\
        desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \
        desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py  \
        desWidgetBloc.py desWidgetCB.py desWidgetCommentaire.py desWidgetDate.py \
diff --git a/convert/convert_TELEMAC3.py b/convert/convert_TELEMAC3.py
new file mode 100644 (file)
index 0000000..0aa9645
--- /dev/null
@@ -0,0 +1,503 @@
+# Copyright (C) 2007-2013   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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+import re, string
+from Extensions.i18n import tr
+
+                                                                                        
+from convert_python import PythonParser
+
+pattern_comment_slash   = re.compile(r"^\s*/")
+pattern_eta   = re.compile(r".*&ETA.*")
+pattern_fin   = re.compile(r".*&FIN.*")
+pattern_oui   = re.compile(r"^\s*(oui|OUI|YES|yes|TRUE|VRAI)\s*$")
+pattern_non   = re.compile(r"^\s*(non|NON|NO|no|FALSE|FAUX)\*s$")
+pattern_blanc = re.compile(r"^\s*$")
+pattern_listeVide = re.compile(r"^\s*'\s*'\s*$")
+pattern_tracers = re.compile(r"^\s*(NAMES OF TRACERS|NOMS DES TRACEURS).*")
+pattern_commence_par_quote=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 POUR LES SORTIES GRAPHIQUES)\s*[:=]\s*(?P<valeur>\w(,\w)*)\s*(?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_ContientDouble=re.compile (r"^.*''.*$")
+
+# le pattern texte reconnait 
+#nom1 nom 2 : ou = chaine entre ' 
+# avec eventuellement  des quotes au milieu par exemple
+# TITRE = 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$'
+# m.group("texte") va rendre 'TELEMAC 2D : GOUTTE D''EAU DANS UN BASSIN$' 
+
+
+#Si le code n est pas Telemac
+try :
+#if 1 :
+   from aideAuxConvertisseurs import ListeSupprimeCasToEficas
+   from enumDicoTelemac       import TelemacdicoEn
+except :
+   pass
+
+from Extensions import localisation
+
+from determine import monEnvQT5
+
+
+
+def entryPoint():
+   """
+   Return a dictionary containing the description needed to load the plugin
+   """
+   return {
+          'name' : 'TELEMAC3',
+          'factory' : TELEMACParser
+          }
+
+class TELEMACParser(PythonParser):
+   """
+   This converter works like PythonParser, except that it also initializes all
+   model variables to None in order to avoid Python syntax errors when loading
+   a file with a different or inexistent definition of variables.
+   """
+
+   def convert(self, outformat, appli=None):
+
+      from Accas import A_BLOC, A_FACT, A_SIMP
+      self.dicoCasToCata=appli.readercata.dicoCasToCata
+      self.dicoInverse=appli.readercata.dicoInverse
+      self.dicoMC=appli.readercata.dicoMC
+      self.Ordre_Des_Commandes=appli.readercata.Ordre_Des_Commandes
+   
+
+      text=""
+      self.dictSimp={}
+
+      # Traitement des noms des tracers qui peuvent etre sur plusieurs lignes
+      l_lignes_texte = string.split(self.text,'\n')
+      l_lignes=[]
+      i=0
+      while (i < len(l_lignes_texte)) :
+          ligne=l_lignes_texte[i]
+          i=i+1
+          if not(pattern_tracers.match(ligne)):
+             l_lignes.append(ligne)
+             continue
+          while (i < len(l_lignes_texte)):
+             ligne_complementaire=l_lignes_texte[i]
+             if not(pattern_commence_par_quote.match(ligne_complementaire)) :
+                l_lignes.append(ligne)
+                break
+             else : 
+                ligne=ligne +ligne_complementaire
+                i=i+1
+                if i == len(l_lignes_texte):
+                   l_lignes.append(ligne)
+                   continue
+  
+
+      for ligne in l_lignes :
+          if pattern_comment_slash.match(ligne) : continue
+          if pattern_eta.match(ligne) : continue
+          if pattern_fin.match(ligne) : continue
+          if pattern_blanc.match(ligne) : continue
+
+          finLigne=ligne
+          while finLigne != "" :
+              if pattern_comment_slash.match(finLigne) : finLigne=""; continue
+              valeur=""
+              if pattern_variables.match(finLigne) :
+                 m=pattern_variables.match(finLigne)
+                 valeur=m.group('valeur')
+                 finLigne=m.group('reste')
+                 self.dictSimp[simp]=valeur
+                 continue
+
+              m=pattern_ligne.match(finLigne)
+              if m == None : 
+                 #print "________________________________________________"
+                 print 'pb avec ****', finLigne , '**** dans ', ligne
+                 #print "________________________________________________"
+                 break
+      
+              simpCas=self.traiteIdent(m.group('ident'))
+              if not simpCas : 
+                 finLigne=m.group('reste')
+                 continue
+
+              #print simpCas
+              finLigne=m.group('reste')
+              # attention, l ordre des if est important
+              if pattern_liste.match(finLigne) :
+                 m=pattern_liste.match(finLigne)
+              elif pattern_liste_texte.match(finLigne) :
+                 m=pattern_liste_texte.match(finLigne)
+              elif pattern_texteQuote.match(finLigne) :
+                 m=pattern_texteQuote.match(finLigne)
+              elif pattern_flottant.match(finLigne) : 
+                 m=pattern_flottant.match(finLigne)
+              elif pattern_texteVide.match(finLigne):
+                 m=pattern_texteVide.match(finLigne)
+              elif pattern_texteSimple.match(finLigne):
+                 m=pattern_texteSimple.match(finLigne)
+              else :
+                 #print "________________________________________________"
+                 print 'pb avec ****', finLigne , '**** dans ', ligne
+                 print "non match"
+                 #print "________________________________________________"
+                 break
+              
+
+              valeur=m.group('valeur')
+              if pattern_blanc.match(valeur) : valeur=None
+
+              if pattern_flottant.match(finLigne) : 
+                 valeur=re.sub("d","e",valeur)
+                 valeur=re.sub("D","E",valeur)
+
+              if pattern_liste.match(finLigne) or pattern_liste_texte.match(finLigne):
+                 valeur=valeur.split(";")
+
+
+              finLigne=m.group('reste')
+              self.dictSimp[simpCas]=valeur
+      
+      if 'TITLE' not in self.dictSimp.keys() :
+          import os
+          self.dictSimp['TITLE']=os.path.basename(self.filename)
+      
+      dicoParMC={}
+      #for simp in self.dictSimp.keys():
+      #    if simp in TELEMACParser.__dict__.keys() : apply(TELEMACParser.__dict__[simp],(self,))
+
+      for simp in self.dictSimp.keys():
+          if simp in ListeSupprimeCasToEficas: continue
+          if simp not in self.dicoInverse.keys() : 
+             #print "************"
+             print "pb avec dans dicoInverse", simp,'------'
+             #print "************"
+             #print poum
+             continue
+          listeGenea=self.dicoInverse[simp]
+          listeGeneaReverse=[]
+          for (u,v) in listeGenea : 
+              if isinstance(v,A_BLOC.BLOC): continue
+              listeGeneaReverse.append(u)
+          listeGeneaReverse.reverse()
+          dicoTravail=dicoParMC
+          i=0
+          #print (listeGeneaReverse[0:-1])
+          while i < len(listeGeneaReverse[0:-1]) : 
+            mot=listeGeneaReverse[i]
+            i=i+1
+            if mot not in dicoTravail.keys(): dicoTravail[mot]={}
+            dicoTravail=dicoTravail[mot]
+          dicoTravail[simp]=self.dictSimp[simp]
+        
+      self.textePy=""
+      #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+      #print dicoParMC
+      #print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+      listeMC=self.tri(dicoParMC.keys())
+      for k in listeMC :
+          #print "----------- traitement de " , k
+          self.textePy += str(k )+ "("
+          self.traiteMC(dicoParMC[k])
+          self.textePy += ");\n"
+          #print "----------- " 
+           
+              
+
+      appli.listeTelemac=self.dictSimp.keys()  
+      return self.textePy
+
+
+   #----------------------------------------
+   def traiteIdent(self,ident):
+   # enleve les espaces de part et autre
+   # traduit du langage Telemac vers le langage Catalogue
+   #----------------------------------------
+          while ident[-1] == " " or ident[-1] == '\t' : ident=ident[0:-1]
+          while ident[0]  == " " or ident[0]  == '\t' : ident=ident[1:]
+          try : identCata=self.dicoCasToCata[ident]
+          except :  
+            print  "---> ", "pb conversion type pour", ident
+            identCata=None
+          return identCata
+
+
+   def traiteMC(self,dico) :
+       from Accas import A_BLOC, A_FACT, A_SIMP
+       for k in dico.keys() :
+           valeur= dico[k]
+           if k not in self.dicoMC.keys() : kA=self.dicoFrancaisAnglais[k] 
+           else : kA=k
+           obj=self.dicoMC[kA]
+           if isinstance(obj,A_FACT.FACT):   self.convertFACT(obj,kA,valeur)
+           elif isinstance(obj,A_BLOC.BLOC): self.convertBLOC(obj,kA,valeur)
+           elif isinstance(obj,A_SIMP.SIMP): self.convertSIMP(obj,kA,valeur)
+           else : print "%%%%%%%%%%%\n", "pb conversion type pour", k, obj, "\n%%%%%%%%%%%"
+
+           #print "_____________"
+
+   def convertFACT(self,obj,nom,valeur):
+       #print "convertFACT", nom,valeur
+       #if nom in TELEMACParser.__dict__.keys() : 
+       #   apply(TELEMACParser.__dict__[nom],(self,))
+       #   return
+       self.textePy +=  nom + "=_F( "
+       self.traiteMC(valeur)
+       self.textePy += '),\n'
+
+
+   def convertBLOC(self,obj,nom,valeur):
+       print "BLOC "
+       print nom
+
+   def convertSIMP(self,obj,nom,valeur):
+       #print obj,nom,valeur
+       #if nom in ("PRESCRIBED_FLOWRATES", "PRESCRIBED_VELOCITIES", "PRESCRIBED_ELEVATIONS" ): return
+       if obj.max==1 : 
+          if hasattr(obj.type[0],'ntuple') : 
+             lval=[]
+             for v in valeur : 
+               try :    v=eval(v,{})
+               except : pass
+               lval.append(v)
+             self.textePy += nom + "=" + str(lval) +","
+             return
+          if 'TXM' in obj.type :
+
+              if pattern_ContientDouble.match(str(valeur)):
+                 valeur=re.sub("''","\'\'",str(valeur))
+                 self.textePy += nom + "=" + str(valeur) +","
+                 return
+              valeur=str(valeur)
+
+              # ceinture et bretelle si les re sont correctes -)
+              while valeur[-1] == " " or valeur[-1] == '\t' : valeur=valeur[0:-1]
+              while valeur[0]  == " " or valeur[0]  == '\t' : valeur=valeur[1:]
+
+
+
+          # Pour les enum
+          try    : valeur=eval(valeur,{})
+          except : pass
+
+          if nom in TelemacdicoEn.keys(): 
+             try    : 
+               valeur=TelemacdicoEn[nom][valeur]
+               self.textePy += nom + "= '" + str(valeur) +"',"
+               return
+             except : pass
+
+
+          if obj.into != [] and obj.into != None and not('R' in obj.type) and not('I' in obj.type):
+             for possible in obj.into :
+                try :
+                  if possible.upper() == valeur.upper():
+                     valeur=possible
+                     break
+                  v=valeur[0].upper()+valeur[1:].lower()
+                  v2=tr(v)
+                  if possible.upper() == v2.upper():
+                     valeur=possible
+                     break
+                except:
+                   print "pb avec le type de ", obj.nom, obj.type, 'et la valeur ', valeur
+
+          if 'Fichier' in obj.type or 'TXM' in obj.type or 'Repertoire' in obj.type :
+              valeur=str(valeur)
+              while valeur[-1] == " " : valeur=valeur[0:-1]
+              while valeur[0]  == " " : valeur=valeur[1:]
+              self.textePy += nom + "= '" + str(valeur) +"' ,"
+              return
+
+          if bool in obj.type :
+            if   valeur == True  :  self.textePy += nom + "= True,"
+            elif valeur == False :  self.textePy += nom + "= False,"
+            elif pattern_oui.match(valeur) : self.textePy += nom + "= True,"
+            elif pattern_non.match(valeur) : self.textePy += nom + "= False,"
+            else :  self.textePy += nom + "= None,"
+            return
+          self.textePy += nom + "=" + str(valeur) +","
+
+       else :
+          if valeur == () or valeur ==[] or pattern_listeVide.match(str(valeur)) :
+             self.textePy += nom + "= None,"
+             return
+
+          # les 4 lignes suivantes sont probablement inutiles
+          while valeur[-1] == " " or  valeur[-1]=="'" : valeur=valeur[0:-1]
+          while valeur[0]  == " " or  valeur[-0]=="'" : valeur=valeur[1:]
+          if   ";" in valeur : valeur=valeur.split(';')
+          elif "," in valeur : valeur=valeur.split(',')
+
+          if valeur == None : return
+          newVal=[]
+          for v in valeur :
+            try :    v=eval(v,{})
+            except : pass
+            if nom in TelemacdicoEn.keys():
+               #print "est dans le dico des enum, valeurs multiples"
+               try    : v=TelemacdicoEn[nom][v]
+               except : pass
+            newVal.append(v)
+          self.textePy += nom + "=" + str(newVal) +","
+          
+
+
+   def tri(self, listeIn):
+      if len(listeIn) == 1 : return listeIn
+      if self.Ordre_Des_Commandes == None : return listeIn
+      #print listeIn
+      listeOut=[listeIn[0],]
+      for kF in listeIn[1:]:
+          k=str(self.dicoFrancaisAnglais[kF])
+          ordreK=self.Ordre_Des_Commandes.index(k)
+          i=0
+          while i < len(listeOut):
+             ordreI=self.Ordre_Des_Commandes.index(self.dicoFrancaisAnglais[listeOut[i]])
+             if ordreK < ordreI : break
+             i=i+1
+          listeOut.insert(i,kF)
+      return listeOut
+
+   def PARALLEL_PROCESSORS(self):
+      #YOANN
+      if self.dictSimp["PARALLEL_PROCESSORS"] == 0 : del  self.dictSimp["PARALLEL_PROCESSORS"]
+      #else : self.dictSimp["Parallel_Computation"]="Parallel"
+   def decoupeListe(self,valeurs,label):
+      #print "decoupeListe"
+      #print valeurs
+      i=0
+      for prefixe in ('_U_AND_V','_H'):
+          labelComplet=label+prefixe
+          valeur=valeurs[i]
+          try    : valeur=eval(valeur,{})
+          except : pass
+          if label in TelemacdicoEn.keys(): 
+             try    : valeur=TelemacdicoEn[label][valeur]
+             except : pass
+          self.dictSimp[labelComplet]=valeur
+          i=i+1
+      if len(valeurs)==2 : return
+      #for prefixe in ('_K_AND_EPSILON','_TRACERS'):
+      for prefixe in ('_TRACERS','_K_AND_EPSILON','_TRACERS'):
+          labelComplet=label+prefixe
+          valeur=valeurs[i]
+          try    : valeur=eval(valeur,{})
+          except : pass
+          if label in TelemacdicoEn.keys(): 
+             try    : valeur=TelemacdicoEn[label][valeur]
+             except : pass
+          self.dictSimp[labelComplet]=valeur
+          i=i+1
+
+   def SUPG_OPTION(self):
+       return
+       #print "ds Option_De_Supg"
+       self.decoupeListe( self.dictSimp["SUPG_OPTION"],"SUPG_OPTION")
+       del self.dictSimp["SUPG_OPTION"]
+
+   def TYPE_OF_ADVECTION(self):
+       self.decoupeListe( self.dictSimp["TYPE_OF_ADVECTION"],"ADVECTION")
+       valeurs=self.dictSimp["TYPE_OF_ADVECTION"]
+       del self.dictSimp["TYPE_OF_ADVECTION"]
+       self.dictSimp['ADVECTION_OF_U_AND_V']=True
+       self.dictSimp['ADVECTION_OF_H']=True
+       if len(valeurs)==2 : return 
+       self.dictSimp['ADVECTION_OF_K_AND_EPSILON']=True
+       self.dictSimp['ADVECTION_OF_TRACERS']=True
+
+   def DISCRETIZATIONS_IN_SPACE(self):
+       self.decoupeListe( self.dictSimp["DISCRETIZATIONS_IN_SPACE"],"DISCRETIZATIONS_IN_SPACE")
+       del self.dictSimp["Discretisations_En_Espace"]
+       
+   def ORIGINAL_DATE_OF_TIME (self):
+       valeurs=self.dictSimp["Date_De_L_Origine_Des_Temps"]
+       self.dictSimp['Annee']=valeurs[0]
+       self.dictSimp['Mois']=valeurs[1]
+       self.dictSimp['Jour']=valeurs[2]
+       del  self.dictSimp["Date_De_L_Origine_Des_Temps"]
+       
+   
+   def ORIGINAL_HOUR_OF_TIME (self):
+       valeurs=self.dictSimp["ORIGINAL_HOUR_OF_TIME"]
+       self.dictSimp['Heure']=valeurs[0]
+       self.dictSimp['Minute']=valeurs[1]
+       self.dictSimp['Seconde']=valeurs[2]
+       del  self.dictSimp["ORIGINAL_HOUR_OF_TIME"]
+
+   def Liquid_Boundaries(self):
+       #print 'Liquid Boundaries'
+       texte_Boundaries="Liquid_Boundaries=( "
+       premier=0
+       if 'Prescribed_Elevations' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Prescribed_Elevations"]
+       elif 'Cotes_Imposees' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Cotes_Imposees"]
+       else : valeurs=()
+       #print valeurs
+       for e in range(len(valeurs)):
+          if valeurs[e] == "" or valeurs[e] == "\n" : continue
+          if eval(valeurs[e],{})==0 : continue
+          if not premier : premier=1
+          texte_Boundaries += "_F(Type_Condition = 'Prescribed Elevations',\n"
+          texte_Boundaries += "Prescribed_Elevations = " + str(valeurs[e]) + "),\n"
+               
+       if 'Prescribed_Flowrates' in self.dictSimp.keys(): 
+          valeurs=self.dictSimp["Prescribed_Flowrates"]
+       elif 'Debits_Imposes' in self.dictSimp.keys(): 
+          valeurs=self.dictSimp["Debits_Imposes"]
+       else : valeurs=()
+       #print valeurs
+       for e in range(len(valeurs)):
+          if valeurs[e] == "" or valeurs[e] == "\n" : continue
+          if eval(valeurs[e],{})==0 : continue
+          if not premier : premier=1
+          texte_Boundaries += "_F(Type_Condition = 'Prescribed Flowrates',\n"
+          texte_Boundaries += "Prescribed_Flowrates = " + str(valeurs[e]) + "),\n"
+               
+       if 'Prescribed_Velocity' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Prescribed_Velocity"]
+       elif 'Vitesses_Imposees' in self.dictSimp.keys(): 
+           valeurs=self.dictSimp["Vitesses_Imposees"]
+       else : valeurs=()
+       #print valeurs
+       for e in range(len(valeurs)):
+          if valeurs[e] == "" or valeurs[e] == "\n" : continue
+          if eval(valeurs[e],{})==0 : continue
+          if not premier : premier=1
+          texte_Boundaries += "_F(Type_Condition = 'Prescribed Velocity',\n"
+          texte_Boundaries += "Prescribed_Velocity = " + str(valeurs[e]) + "),\n"
+       if premier :  texte_Boundaries +="),\n"
+       else : texte_Boundaries="" ; print "pb texte_Boundaries "
+       self.textePy += texte_Boundaries
+      
index 78b5ccd3937a298cdb66480d0c0e7e08249b3f50..19ca63889791d1cd25d8121b024523f82ade844d 100644 (file)
@@ -26,11 +26,19 @@ from Extensions.i18n import tr
 from generator_python import PythonGenerator
 
 extensions=('.comm',)
+#if 1:
 try :
-  from aideAuxConvertisseurs import listeSupprime, DicoAglomere, DicoEficasToCas
-  from enumDicoTelemac       import DicoEnumCasEnInverse
+   from enumDicoTelemac       import TelemacdicoEn
+   DicoEnumCasEnInverse={}
+   for motClef in TelemacdicoEn.keys():
+     d={}
+     for valTelemac in TelemacdicoEn[motClef].keys():
+        valEficas= TelemacdicoEn[motClef][valTelemac]
+        d[valEficas]=valTelemac
+     DicoEnumCasEnInverse[motClef]=d
+
 except :
 pass
+ pass
 
 
 def entryPoint():
@@ -40,7 +48,7 @@ def entryPoint():
    """
    return {
         # Le nom du plugin
-          'name' : 'TELEMAC',
+          'name' : 'TELEMAC3',
         # La factory pour creer une instance du plugin
           'factory' : TELEMACGenerator,
           }
@@ -55,11 +63,20 @@ class TELEMACGenerator(PythonGenerator):
    """
 
 #----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None):
+   def gener(self,obj,format='brut',config=None,appli=None):
        
       self.initDico()
-      #print self.texteDico
-      
+      # Pour Simplifier les verifs d ecriture
+      if hasattr(appli,'listeTelemac') : self.listeTelemac=appli.listeTelemac
+      else : self.listeTelemac = None
+
+      self.dicoCataToCas={}
+      self.dicoCasToCata=appli.readercata.dicoCasToCata
+      for motClef in self.dicoCasToCata.keys():
+           self.dicoCataToCas[self.dicoCasToCata[motClef]]=motClef
+
+
+
       # Cette instruction genere le contenu du fichier de commandes (persistance)
       self.text=PythonGenerator.gener(self,obj,format)
       return self.text
@@ -87,7 +104,7 @@ class TELEMACGenerator(PythonGenerator):
 #----------------------------------------------------------------------------------------
 
    def writeDefault(self,fn) :
-       self.texteDico+='\n&ETA\n'
+       self.texteDico+='\n&ETA\n&FIN\n'
        fileDico = fn[:fn.rfind(".")] + '.py'
        f = open( str(fileDico), 'wb')
        f.write( self.texteDico )
@@ -104,43 +121,61 @@ class TELEMACGenerator(PythonGenerator):
         s=PythonGenerator.generPROC_ETAPE(self,obj)
         #print obj
         #print obj.nom
-        if obj.nom in TELEMACGenerator.__dict__.keys() : apply(TELEMACGenerator.__dict__[obj.nom],(self,obj))
+        #if obj.nom in TELEMACGenerator.__dict__.keys() : apply(TELEMACGenerator.__dict__[obj.nom],(self,obj))
         
         return s
 
    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
         s=PythonGenerator.generMCSIMP(self,obj)
-        if obj.nom == "Title" :
+        #if obj.nom == "Title" :
             #print s
-            print str(obj.valeur)
+         #  print str(obj.valeur)
             #print repr(obj.valeur)
 
        
         # Attention pas sur --> ds certains cas non traite par MCFACT ?
         # a reflechir avec Yoann 
-        if hasattr(obj.definition,'defaut') :
-           if obj.definition.defaut == obj.valeur : return s
+        #if hasattr(obj.definition,'defaut') :
+        #   if obj.definition.defaut == obj.valeur : return s
+        if self.listeTelemac != None and obj.nom not in self.listeTelemac : return s
 
-        nomMajuscule=obj.nom.upper()
-        nom=nomMajuscule.replace('_',' ') 
-        if nom in listeSupprime or s == "" : return s
+        #nomMajuscule=obj.nom.upper()
+        #nom=nomMajuscule.replace('_',' ') 
+        #if nom in listeSupprime or s == "" : return s
+        if s == "" : return s
 
+       
         sTelemac=s[0:-1]
         if not( type(obj.valeur) in (types.TupleType,types.ListType) ):
            if obj.nom in DicoEnumCasEnInverse.keys():  
              try : sTelemac=str(DicoEnumCasEnInverse[obj.nom][obj.valeur])
              except : print "generMCSIMP Pb valeur avec ", obj.nom, obj.valeur
         if type(obj.valeur) in (types.TupleType,types.ListType) :
+           #print "je passe pour", obj.nom
            if obj.nom in DicoEnumCasEnInverse.keys():  
-             sT = "'"
+             #sT = "'"
+             sT=''
              for v in obj.valeur:
                try : sT +=str(DicoEnumCasEnInverse[obj.nom][v]) +";"
                except : print "generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur
-             sTelemac=sT[0:-1]+"'"
+             #sTelemac=sT[0:-1]+"'"
+             sTelemac=sT[0:-1]
+           else  :
+             sTelemac=sTelemac[0:-1]
+             if sTelemac.find("'") > 0 :
+                sTelemac= sTelemac.replace (',',';\n   ') 
+
 
-        if nom in DicoEficasToCas.keys() : nom=DicoEficasToCas[nom]
-        self.texteDico+=nom+ ":" + str(sTelemac) + "\n"
+        s1=str(sTelemac).replace('True','YES')
+        s2=s1.replace('False','NO')
+        s3=s2.replace(',',';')
+        if s3 != "" and s3[0]=='(' : 
+          try : s3=s3[1:-1] # cas de liste vide
+          except : s3 = ' '
+        nom=self.dicoCataToCas[obj.nom]
+        self.texteDico+=nom+ ":" + s3 + "\n"
         return s
 
    def generMCFACT(self,obj):
index 4c8e61f2e201ea38d2e837bd6ce1f1208d77e0dd..9bdd1f26f0f5eb3df8de26830478168bf86e402b 100644 (file)
@@ -86,7 +86,7 @@ class PythonGenerator:
       fp.write(self.text)
       fp.close()
 
-   def gener(self,obj,format='brut',config=None):
+   def gener(self,obj,format='brut',config=None,appli=None):
       """
           Retourne une representation du JDC obj sous une
           forme qui est parametree par format.