Salome HOME
exceptions prints
authorpascale.noyret <pascale.noyret@edf.fr>
Thu, 9 Feb 2017 15:29:12 +0000 (16:29 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Thu, 9 Feb 2017 15:29:12 +0000 (16:29 +0100)
28 files changed:
generator/DefautASTER.py
generator/Formatage.py
generator/OpenturnsBase.py [deleted file]
generator/OpenturnsSTD.py [deleted file]
generator/OpenturnsXML.py [deleted file]
generator/generator_Creation.py [deleted file]
generator/generator_SEP.py [deleted file]
generator/generator_TELEMAC.py
generator/generator_ZCracks.py
generator/generator_cuve2dg.py [deleted file]
generator/generator_dico.py
generator/generator_homard.py [deleted file]
generator/generator_map.py
generator/generator_modification.py
generator/generator_openturns.py [deleted file]
generator/generator_openturns_study.py [deleted file]
generator/generator_openturns_wrapper.py [deleted file]
generator/generator_python.py
generator/generator_vers3DSalome.py
generator/oldCodes/OpenturnsBase.py [new file with mode: 0644]
generator/oldCodes/OpenturnsSTD.py [new file with mode: 0644]
generator/oldCodes/OpenturnsXML.py [new file with mode: 0644]
generator/oldCodes/generator_SEP.py [new file with mode: 0644]
generator/oldCodes/generator_cuve2dg.py [new file with mode: 0644]
generator/oldCodes/generator_homard.py [new file with mode: 0644]
generator/oldCodes/generator_openturns.py [new file with mode: 0644]
generator/oldCodes/generator_openturns_study.py [new file with mode: 0644]
generator/oldCodes/generator_openturns_wrapper.py [new file with mode: 0644]

index 8828a994c05509e222acebeaeecd05bc5e52f8ff..7a120f32bdcb78e4a5fd4dbd767aa8f1280947c3 100644 (file)
@@ -39,7 +39,7 @@ TexteSTDFIN += "\nif error_message is not None :\n"
 TexteSTDFIN += DecalSTD + "texte  = \"\\n=================================================\""
 TexteSTDFIN += DecalSTD + "texte += \"\\nMessage d'erreur : \" + str(error_message)"
 TexteSTDFIN += DecalSTD + "texte += \"\\n=================================================\\n\""
-TexteSTDFIN += DecalSTD + "print texte"
+TexteSTDFIN += DecalSTD + "print (texte)"
 TexteSTDFIN += DecalSTD + "\nsys.exit(error_message)\n"
 
 # C.2. Definition de composants dans le fichier STD
@@ -145,7 +145,7 @@ class MonSTDGenerateur(STDGenerateur) :
     Algorithm = str (self.DictMCVal["Algorithm"])
     texte  = "\n\n# Le resultat\n"
     texte += DecalSTDsaut + NomResu + " = " + NomAlgo +  ".getResult()"
-    texte += DecalSTDsaut + "###" + "print " + NomResu
+    texte += DecalSTDsaut + "###" + "print ( " + NomResu+")"
     texte += DecalSTDsaut + "text_resu  = \"Resultats\\n=======\\n\""
 
 #   Particularites des algorithmes de fiabilite
@@ -222,7 +222,7 @@ class MonSTDGenerateur(STDGenerateur) :
 
 #   Impression
 
-    texte += DecalSTDsaut + "print \"\\n\", text_resu, \"\\n\""
+    texte += DecalSTDsaut + "print ( \"\\n\", text_resu, \" ) \\n\""
     texte += DecalSTDsaut + "file_resu = open(\"" + self.fic_resu_OpenTURNS + "\", \"w\")"
     texte += DecalSTDsaut + "file_resu.write(text_resu)"
     texte += DecalSTDsaut + "file_resu.close()"
index 0f8efaa9328aeca5a69d525834a0cfd295d86fb1..31edf1abb7ce11fec19ef0e4a3ae4c7df7b484f3 100644 (file)
@@ -126,9 +126,9 @@ class Formatage :
         try:
           increment = len(('\n'+self.indent_courant*' ')*ind + element[0])
         except:
-          print tr('ERREUR')
-          print liste
-          print element
+          print (tr('ERREUR'))
+          print (liste)
+          print (element)
         self.texte_etape = self.texte_etape + (u'\n'+self.indent_courant*' ')*ind + element[0]
         length = len(self.indent)
         self.indent.insert(length,self.indent[length-1]+len(element[0]))
diff --git a/generator/OpenturnsBase.py b/generator/OpenturnsBase.py
deleted file mode 100644 (file)
index 465c6f8..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-# -*- 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
-#
-
-"""
-Ce module contient la partie commune 
-aux generateurs XML et Etude d Openturns
-"""
-
-__revision__ = "V1.0"
-
-import os
-import sys
-
-path=os.getcwd()
-pathDef=path+"DefautOpenturns"
-
-sys.path.append(pathDef)
-
-
-#=============================================
-# La classe generale
-#=============================================
-
-class Generateur :
-
-  '''
-  Classe generale du generateur
-  DictMCVal : dictionnaire des mots-cles
-  ListeVariables : chaque variable est decrite par un dictionnaire ; cette liste les regroupe
-  DictLois : dictionnaires des lois
-  '''
-  def __init__ (self, appli, DictMCVal = {}, ListeVariables = [], DictLois = {}, DictVariables = {} ) :
-  #---------------------------------------------------------#
-    self.ListeVariables = ListeVariables
-    self.ListeVariablesIn = []
-    self.ListeVariablesOut = []
-    self.DictLois = DictLois
-    self.DictVariables = DictVariables
-    self.DictMCVal = DictMCVal
-    self.DictTypeVar = {}
-    self.nbVarIn = 0
-    self.nbVarOut = 0
-    self.creeInfoVar()
-    self.appli = appli
-    #
-    # On charge eventuellement le Solver par defaut
-    # et les valeurs par defaut du Solver (dans l init)
-    #
-    try :
-    #if 1 :
-        Solver = self.DictMCVal["PhysicalSolver"]
-        import_name = "Defaut"+Solver
-       self.module = __import__( import_name, globals(), locals() )
-       monDefaut = self.module.Defaut( self )
-    #else :
-    except:
-        self.module = None
-
-
-  def getSTDGenerateur(self) :
-  #--------------------------#
-    try :
-       gener = self.module.__dict__["MonSTDGenerateur"]
-       monSTDGenerateur=gener( self.DictMCVal, self.ListeVariablesIn, self.ListeVariablesOut, self.DictLois )
-    except :
-        from OpenturnsSTD import STDGenerateur
-        monSTDGenerateur = STDGenerateur( self.appli, self.DictMCVal, self.ListeVariablesIn, self.ListeVariablesOut, self.DictLois )
-    return monSTDGenerateur
-      
-  def getXMLGenerateur(self) :
-  #--------------------------#
-    try :
-       gener = self.module.__dict__["MonXMLGenerateur"]
-       monXMLGenerateur=gener( self.DictMCVal, self.ListeVariables, self.DictLois )
-    except :
-        from OpenturnsXML import XMLGenerateur
-        monXMLGenerateur = XMLGenerateur( self.appli, self.DictMCVal, self.DictVariables )
-    return monXMLGenerateur
-      
-  def creeInfoVar (self) :
-  #----------------------#
-    """
-    On repere les variables in/out et on les numerote.
-    """
-    num = 0
-    liste = []
-    for DictVariable in self.ListeVariables :
-      if not DictVariable.has_key("Type") : DictVariable["Type"] = "in"
-      self.DictTypeVar[num] = DictVariable["Type"]
-      if DictVariable["Type"] == "in" : 
-         self.nbVarIn = self.nbVarIn + 1
-         self.ListeVariablesIn.append( DictVariable )
-         print "OpenturnsBase.py: new input variable = ", DictVariable
-      else:
-         self.nbVarOut = self.nbVarOut + 1
-         self.ListeVariablesOut.append( DictVariable )
-         print "OpenturnsBase.py: new output variable = ", DictVariable
-      liste.append( DictVariable )
-      num = num + 1
-    self.ListeVariables = liste
-
-
-  def ajouteDictMCVal(self, dicoPlus) :
-  #-----------------------------------#
-  # Appele par le classe Defaut du python specifique au code (exple DefautASTER.py)
-  # enrichit self.DictMCVal avec les valeurs donnees dans dicoPlus
-  # si elles ne sont pas deja dans le dictionnaire
-
-    for clef in dicoPlus.keys():
-        if not self.DictMCVal.has_key(clef) :
-          self.DictMCVal[clef] = dicoPlus[clef]
-
-  def ajouteInfoVariables (self, dicoVariablesIn, dicoVariablesOut) :
-  #-----------------------------------------------------------------#
-  # Appele par le classe Defaut du python specifique au code (exple DefautASTER.py)
-  # met a jour les dictionnaires qui decrivent les variables (regexp par exemple)
-    liste=[]
-    num = 0
-    for dictVariable in self.ListeVariables:
-         if self.DictTypeVar[num] == "in" :
-           dico = dicoVariablesIn
-        else :
-           dico = dicoVariablesOut
-        for nouvelleVariable in dico.keys() :
-           if not dictVariable.has_key(nouvelleVariable):
-              dictVariable[nouvelleVariable] = dico[nouvelleVariable]
-        liste.append( dictVariable )
-        num = num + 1
diff --git a/generator/OpenturnsSTD.py b/generator/OpenturnsSTD.py
deleted file mode 100644 (file)
index f2659e1..0000000
+++ /dev/null
@@ -1,1397 +0,0 @@
-# -*- 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 contient le generateur Etude pour Openturns
-"""
-
-from Extensions.i18n import tr
-
-__revision__ = "V1.0"
-
-defaultSTD = """#! /usr/bin/env python
-
-class StudyFileGenerationError:
-  def __init__ (self, st):
-    self.st = st
-  def __str__(self):
-    return "'%s'" % self.st
-
-raise StudyFileGenerationError, "The study file was not generated. Check analysis type."
-"""
-
-headerSTD = """#! /usr/bin/env python
-
-# Chargement du module systeme
-import sys
-sys.path[:0]=['%s']
-
-# Chargement du module math
-import math
-
-# Chargement du module Open TURNS
-from openturns import *
-
-# Fonction verifiant si un echantillon contient des valeurs non valides (NaN)
-def contain_nan_values(sample):
-  for point in sample:
-    for val in point:
-      if math.isnan(val):
-        return True
-  return False
-
-results = {}
-
-"""
-
-viewerSTD = """
-from openturns.viewer import View
-
-# Fonction de test du serveur X
-import subprocess
-xserver_available = None
-def is_xserver_available():
-  global xserver_available
-  if xserver_available is None:
-    xserver_available = True
-    try:
-      subprocess.check_call('python -c "from matplotlib import pyplot;pyplot.figure()" >/dev/null 2>&1', shell = True)
-    except:
-      xserver_available = False
-  return xserver_available
-
-"""
-
-footerSTD = """
-
-# Flush des messages en attente
-Log.Flush()
-
-# Terminaison du fichier
-#sys.exit( 0 )
-"""
-
-#=============================================
-#  La classe de creation du fichier STD
-#=============================================
-
-class STDGenerateur :
-
-  '''
-  Generation du fichier python
-  '''
-  def __init__ (self, appli, DictMCVal, ListeVariablesIn, ListeVariablesOut, DictLois ) :
-    self.DictMCVal = DictMCVal
-    self.ListeVariablesIn = ListeVariablesIn
-    self.ListeVariablesOut = ListeVariablesOut
-    self.DictLois = DictLois
-    #print "DictMCVal=", DictMCVal
-    print "ListeVariablesIn= %s", ListeVariablesIn
-
-# A REPRENDRE DEPUIS ICI !!
-    print "ListeVariablesOut= %s", ListeVariablesOut
-    #print "DictLois=", DictLois
-    self.texteSTD = defaultSTD
-    self.OpenTURNS_path = appli.CONFIGURATION.OpenTURNS_path
-
-    # Ce dictionnaire fait la correspondance entre le mot lu dans le dictionnaire des mots-clefs et la methode a appeler
-    self.traitement = {
-      "Min/Max" :
-      ( "MinMax",
-        { "Experiment Plane" : "ExperimentPlane",
-          "Random Sampling" : "MinMaxRandomSampling",
-          },
-        ),
-      "Central Uncertainty" :
-      ( "CentralUncertainty",
-        { "Taylor Variance Decomposition" : "TaylorVarianceDecomposition",
-          "Random Sampling" : "CentralUncertaintyRandomSampling",
-         },
-        ),
-      "Threshold Exceedence" :
-      ( "ThresholdExceedence",
-        { "Simulation" : "Simulation",
-          "FORM_SORM" : "Analytical",
-          "MonteCarlo" : "MonteCarlo",
-          "LHS" : "LHS",
-          "ImportanceSampling" : "ImportanceSampling",
-          "FirstOrder" : "FORM",
-          "SecondOrder" : "SORM",
-          "Cobyla" : "Cobyla",
-          "AbdoRackwitz" : "AbdoRackwitz",
-          },
-        ),
-      }
-
-    # Ce dictionnaire liste le nom des variables utilisees dans le script
-    # La clef est le nom attendu par les methodes, la valeur est le nom produit dans le fichier de sortie
-    # Le fait de passer par un dictionnaire permet de controler que les variables existent et sont correctement nommees
-    # meme si clef == valeur
-    self.variable = {
-      "n" : "n",
-      "p" : "p",
-      "wrapper" : "wrapper",
-      "wrapperdata" : "wrapperdata",
-      "frameworkdata" : "frameworkdata",
-      "framework" : "framework",
-      "studyid" : "studyid",
-      "studycase" : "studycase",
-      "componentname" : "componentname",
-      "model" : "model",
-      "scaledVector" : "scaledVector",
-      "translationVector" : "translationVector",
-      "levels" : "levels",
-      "myCenteredReductedGrid" : "myCenteredReductedGrid",
-      "myExperimentPlane" : "myExperimentPlane",
-      "inputSample" : "inputSample",
-      "outputSample" : "outputSample",
-      "minValue" : 'results["minValue"]',
-      "maxValue" : 'results["maxValue"]',
-      "flags" : "flags",
-      "inSize" : "inSize",
-      "distribution" : "distribution",
-      "marginal" : "marginal",
-      "collection" : "collection",
-      "copula" : "copula",
-      "correlation" : "correlation",
-      "R" : "R",
-      "vars" : "vars",
-      "description" : "description",
-      "inputRandomVector" : "inputRandomVector",
-      "outputRandomVector" : "outputRandomVector",
-      "myQuadraticCumul" : "myQuadraticCumul",
-      "meanFirstOrder" : 'results["meanFirstOrder"]',
-      "meanSecondOrder" : 'results["meanSecondOrder"]',
-      "standardDeviationFirstOrder" : 'results["standardDeviationFirstOrder"]',
-      "importanceFactors" : 'results["importanceFactors"]',
-      "importanceFactorsGraph" : "importanceFactorsGraph",
-      "importanceFactorsDrawing" : "importanceFactorsDrawing",
-      "empiricalMean" : 'results["empiricalMean"]',
-      "empiricalStandardDeviation" : 'results["empiricalStandardDeviation"]',
-      "empiricalQuantile" : 'results["empiricalQuantile"]',
-      "alpha" : "alpha",
-      "beta" : "beta",
-      "PCCcoefficient" : 'results["PCCcoefficient"]',
-      "PRCCcoefficient" : 'results["PRCCcoefficient"]',
-      "SRCcoefficient" : 'results["SRCcoefficient"]',
-      "SRRCcoefficient" : 'results["SRRCcoefficient"]',
-      "kernel" : "kernel",
-      "kernelSmoothedDist" : "kernelSmoothedDist",
-      "kernelSmoothedPDFDrawing" : "kernelSmoothedPDFDrawing",
-      "kernelSmoothedGraph" : "kernelSmoothedGraph",
-      "meanVector" : "meanVector",
-      "importanceDensity" : "importanceDensity",
-      "myEvent" : "myEvent",
-      "myAlgo" : "myAlgo",
-      "myResult" : "myResult",
-      "probability" : 'results["probability"]',
-      "standardDeviation" : 'results["standardDeviation"]',
-      "level" : "level",
-      "length" : "length",
-      "coefficientOfVariation" : 'results["coefficientOfVariation"]',
-      "convergenceGraph" : "convergenceGraph",
-      "convergenceDrawing" : "convergenceDrawing",
-      "simulationNumbers" : 'results["simulationNumbers"]',
-      "myOptimizer" : "myOptimizer",
-      "specificParameters" : "specificParameters",
-      "startingPoint" : "startingPoint",
-      "hasoferReliabilityIndex" : 'results["hasoferReliabilityIndex"]',
-      "standardSpaceDesignPoint" : 'results["standardSpaceDesignPoint"]',
-      "physicalSpaceDesignPoint" : 'results["physicalSpaceDesignPoint"]',
-      "eventProbabilitySensitivity" : 'results["eventProbabilitySensitivity"]',
-      "hasoferReliabilityIndexSensitivity" : 'results["hasoferReliabilityIndexSensitivity"]',
-      "eventProbabilitySensitivityGraph" : "eventProbabilitySensitivityGraph",
-      "eventProbabilitySensitivityDrawing" : "eventProbabilitySensitivityDrawing",
-      "hasoferReliabilityIndexSensitivityGraph" : "hasoferReliabilityIndexSensitivityGraph",
-      "hasoferReliabilityIndexSensitivityDrawing" : "hasoferReliabilityIndexSensitivityDrawing",
-      "modelEvaluationCalls" : 'results["modelEvaluationCalls"]',
-      "modelGradientCalls" : 'results["modelGradientCalls"]',
-      "modelHessianCalls" : 'results["modelHessianCalls"]',
-      "tvedtApproximation" : 'results["tvedtApproximation"]',
-      "hohenBichlerApproximation" : 'results["hohenBichlerApproximation"]',
-      "breitungApproximation" : 'results["breitungApproximation"]',
-      }
-
-    # Ce dictionnaire fait la correspondance entre le mot-clef du catalogue et le flag de la bibliotheque
-    self.logFlags = {
-      "DebugMessages"   : "Log.DBG",
-      "WrapperMessages" : "Log.WRAPPER",
-      "UserMessages"    : "Log.USER",
-      "InfoMessages"    : "Log.INFO",
-      "WarningMessages" : "Log.WARN",
-      "ErrorMessages"   : "Log.ERROR",
-      }
-    
-  def CreeSTD (self) :
-    '''
-    Pilotage de la creation du fichier python
-    '''
-    TypeAnalyse = None
-    if ( self.DictMCVal.has_key( 'Type' ) ):
-      TypeAnalyse =  self.DictMCVal[ 'Type' ]
-
-    Traitement = None
-    subDict = {}
-    if ( self.traitement.has_key( TypeAnalyse ) ):
-      (Traitement, subDict) =  self.traitement[ TypeAnalyse ]
-
-    if ( Traitement is not None ):
-      self.texteSTD = apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
-    
-    return self.texteSTD
-
-  def Header (self) :
-    '''
-    Imprime l entete commun a tous les fichiers
-    '''
-    txt  = headerSTD % self.OpenTURNS_path
-    txt += viewerSTD
-    txt += "# Definit le niveau d'affichage de la log\n"
-    txt += "%s = Log.NONE\n" % self.variable["flags"]
-    for flag in self.logFlags.keys():
-      if ( self.DictMCVal.has_key( flag ) ):
-        val =  self.DictMCVal[ flag ]
-        op = "-"
-        if val == 'yes' :
-          op = "+"
-        txt += "%s = %s %s %s\n" % (self.variable["flags"], self.variable["flags"], op, self.logFlags[ flag ])
-    txt += "Log.Show( %s )\n" % self.variable["flags"]
-    txt += "\n"
-    return txt
-
-  def Footer (self) :
-    '''
-    Imprime le pied de page commun a tous les fichiers
-    '''
-    return footerSTD
-
-  def MinMax (self, subDict):
-    '''
-    Produit le fichier study correspondant a une analyse Min/Max
-    '''
-    txt  = self.Header()
-    txt += self.Model()
-    
-    Methode = None
-    if ( self.DictMCVal.has_key( 'Method' ) ):
-      Methode =  self.DictMCVal[ 'Method' ]
-
-    Traitement = None
-    if ( subDict.has_key( Methode ) ):
-      Traitement =  subDict[ Methode ]
-
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
-
-    txt += self.MinMaxResult()
-    
-    txt += self.Footer()
-    return txt
-
-  def Model (self):
-    '''
-    Importe le modele physique
-    '''
-    if ( self.DictMCVal.has_key( 'FileName' ) ):
-      name =  self.DictMCVal[ 'FileName' ]
-      
-    txt  = "# Charge le modele physique\n"
-    txt += "%s = WrapperFile( '%s' )\n" % (self.variable["wrapper"], name)
-    txt += "%s = %s.getWrapperData()\n" % (self.variable["wrapperdata"], self.variable["wrapper"])
-
-    txt += "# Ces lignes sont utiles pour le fonctionnement du script sous Salome\n"
-    txt += "if globals().has_key('%s'):\n" % self.variable["framework"]
-    txt += "  %s = %s.getFrameworkData()\n" % (self.variable["frameworkdata"], self.variable["wrapperdata"])
-    txt += "  %s.studyid_ = %s['%s']\n"  % (self.variable["frameworkdata"], self.variable["framework"], self.variable["studyid"])
-    txt += "  %s.studycase_ = %s['%s']\n"  % (self.variable["frameworkdata"], self.variable["framework"], self.variable["studycase"])
-    txt += "  %s.componentname_ = %s['%s']\n"  % (self.variable["frameworkdata"], self.variable["framework"], self.variable["componentname"])
-    txt += "  %s.setFrameworkData( %s )\n" % (self.variable["wrapperdata"], self.variable["frameworkdata"])
-    txt += "  %s.setWrapperData( %s )\n" % (self.variable["wrapper"], self.variable["wrapperdata"])
-    txt += "# Fin des lignes pour Salome\n"
-    
-    txt += "%s = NumericalMathFunction( %s )\n" % (self.variable["model"], self.variable["wrapper"],)
-    txt += "%s = %s.getInputDimension()\n" % (self.variable["n"], self.variable["model"])
-    txt += "\n"
-    return txt
-
-  def ExperimentPlane (self):
-    '''
-    Etude par plan d experience
-    '''
-    txt  = "# Etude par plan d'experience\n"
-    txt += self.Levels()
-    txt += self.CenteredReductedGrid()
-    txt += self.ScaledVector()
-    txt += self.TranslationVector()
-    txt += "%s = %s\n" % (self.variable["inputSample"], self.variable["myExperimentPlane"])
-    txt += "\n"
-    txt += "# Etude 'Min/Max'\n"
-    txt += "# Calcul\n"
-    txt += "%s = %s( %s )\n" % (self.variable["outputSample"], self.variable["model"], self.variable["inputSample"])
-    txt += "if contain_nan_values( %s ):\n" % (self.variable["outputSample"])
-    txt += "  raise Exception('Some computations failed')\n"
-    txt += "\n"
-    return txt
-
-  def MinMaxRandomSampling (self):
-    '''
-    Etude par echantillonage aleatoire
-    '''
-    size = 0
-    if ( self.DictMCVal.has_key( 'SimulationsNumber' ) ):
-      size =  self.DictMCVal[ 'SimulationsNumber' ]
-
-    txt  = "# Etude par echantillonage aleatoire\n"
-    txt += self.InputDistribution()
-    txt += self.InputRandomVector()
-    txt += "\n"
-    txt += "# Etude 'Min/Max'\n"
-    txt += "# Calcul\n"
-    txt += "%s = %d\n" % (self.variable["inSize"], size)
-    txt += "%s = RandomVector( %s, %s )\n" % (self.variable["outputRandomVector"], self.variable["model"], self.variable["inputRandomVector"])
-    txt += "%s = %s.getSample( %s )\n" % (self.variable["outputSample"], self.variable["outputRandomVector"], self.variable["inSize"])
-    txt += "if contain_nan_values( %s ):\n" % (self.variable["outputSample"])
-    txt += "  raise Exception('Some computations failed')\n"
-    return txt
-
-  def InputDistribution (self):
-    '''
-    Cree la loi jointe des variables d entree
-    '''
-    txt  = "# Definit la loi jointe des variables d'entree\n"
-    txt += "%s = DistributionCollection( %s )\n" % (self.variable["collection"], self.variable["n"])
-    txt += "%s = Description( %s )\n" % (self.variable["description"], self.variable["n"])
-    txt += "\n"
-
-    dictVariables = {}
-    for variable in self.ListeVariablesIn:
-      nomVar = variable['ModelVariable'].get_name()
-      dictVariables[ nomVar ] = variable['Distribution']
-
-    i = 0
-    sortedVarNames = dictVariables.keys()
-    sortedVarNames.sort()
-    for variable in sortedVarNames:
-      conceptloi = dictVariables[ variable ]
-      loi = self.DictLois[ conceptloi ]
-      if loi.has_key( 'Kind' ):
-        marginale = "%s_%d" % (self.variable["marginal"], i)
-        txt += "# Definit la loi marginale de la composante %d\n" % i
-        txt += "%s = %s\n" % (marginale, apply( STDGenerateur.__dict__[ loi[ 'Kind' ] ], (self, loi) ))
-        txt += "%s.setName( '%s' )\n" % (marginale, conceptloi.get_name())
-        txt += "%s[ %d ] = '%s'\n" % (self.variable["description"], i, variable)
-        txt += "%s[ %d ] = Distribution( %s )\n" % (self.variable["collection"], i, marginale)
-        txt += "\n"
-        i += 1
-
-    txt += self.Copula()
-
-    txt += "# Definit la loi jointe\n"
-    txt += "%s = ComposedDistribution( %s, Copula( %s ) )\n" % (self.variable["distribution"], self.variable["collection"], self.variable["copula"])
-    txt += "%s.setDescription( %s )\n" % (self.variable["distribution"], self.variable["description"])
-    txt += "\n"
-    return txt
-
-  def Copula (self):
-    '''
-    Cree la copule de la loi jointe
-    '''
-    txt  = "# Definit la copule de la loi jointe\n"
-
-    if ( not self.DictMCVal.has_key( 'Copula' ) ):
-      self.DictMCVal[ 'Copula' ] = 'Independent'
-
-    if ( self.DictMCVal[ 'Copula' ] in ( 'Independent', ) ):
-      txt += "%s = IndependentCopula( %s )\n" % (self.variable["copula"], self.variable["n"])
-    elif ( self.DictMCVal[ 'Copula' ] in ( 'Normal', ) ):
-      varList   = self.DictMCVal[ 'CorrelationMatrix' ][0]
-      dimension = len(varList)
-      txt += "%s = {}\n" % self.variable["correlation"]
-      for i in range( dimension ):
-        txt += "%s['%s'] = {}\n" % (self.variable["correlation"], varList[i])
-        for j in range ( dimension ):
-          txt += "%s['%s']['%s'] = %g\n" % (self.variable["correlation"], varList[i], varList[j], self.DictMCVal[ 'CorrelationMatrix' ][i+1][j])
-      txt += "%s = getCorrelationMatrixFromMap( %s.getVariableList(), %s )\n" % (self.variable["R"], self.variable["wrapperdata"], self.variable["correlation"])
-      txt += "%s = NormalCopula( %s )\n" % (self.variable["copula"], self.variable["R"])
-
-    txt += "\n"
-    return txt
-
-  def InputRandomVector (self):
-    '''
-    Cree le vector aleatoire d entree
-    '''
-    txt  = "# Definit le vecteur aleatoire d'entree\n"
-    txt += "%s = RandomVector( %s )\n" % (self.variable["inputRandomVector"], self.variable["distribution"])
-    txt += "\n"
-    return txt
-
-  def OutputRandomVector (self):
-    '''
-    Cree le vector aleatoire de sortie
-    '''
-    nomVar = "output"
-    for variable in self.ListeVariablesOut:
-      nomVar = variable['ModelVariable'].get_name()
-
-    txt  = "# Definit le vecteur aleatoire de sortie\n"
-    txt += "%s = RandomVector( %s, %s )\n" % (self.variable["outputRandomVector"], self.variable["model"], self.variable["inputRandomVector"])
-    txt += "%s.setName( '%s' )\n" % (self.variable["outputRandomVector"], nomVar)
-    txt += "\n"
-    return txt
-
-  def ScaledVector (self):
-    '''
-    Definit les coefficients multiplicateurs par composante du vecteur
-    '''
-    dimension = 0
-    if ( self.DictMCVal.has_key( 'UnitsPerDimension' ) ):
-      unitsPerDimension =  self.DictMCVal[ 'UnitsPerDimension' ]
-      dimension = len( unitsPerDimension )
-    
-    txt  = "# Definit les facteurs d'echelle dans chaque direction\n"
-    txt += "%s = NumericalPoint( %s )\n" % (self.variable["scaledVector"], self.variable["n"])
-    for i in range(dimension):
-      txt += "%s[%d] = %g\n" % (self.variable["scaledVector"], i, unitsPerDimension[i])
-    txt += "%s.scale( %s )\n" % (self.variable["myExperimentPlane"], self.variable["scaledVector"])
-    txt += "\n"
-    return txt
-
-  def TranslationVector (self):
-    '''
-    Definit le vecteur de translation
-    '''
-    dimension = 0
-    if ( self.DictMCVal.has_key( 'Center' ) ):
-      center =  self.DictMCVal[ 'Center' ]
-      dimension = len( center )
-    
-    txt  = "# Definit le vecteur de translation\n"
-    txt += "%s = NumericalPoint( %s )\n" % (self.variable["translationVector"], self.variable["n"])
-    for i in range(dimension):
-      txt += "%s[%d] = %g\n" % (self.variable["translationVector"], i, center[i])
-    txt += "%s.translate( %s )\n" % (self.variable["myExperimentPlane"], self.variable["translationVector"])
-    txt += "\n"
-    return txt
-
-  def Levels (self):
-    '''
-    Definit les niveaux du plan d experience
-    '''
-    dimension = 0
-    if ( self.DictMCVal.has_key( 'Levels' ) ):
-      levels =  self.DictMCVal[ 'Levels' ]
-      dimension = len( levels )
-    
-    txt  = "# Definit les niveaux de la structure de grille\n"
-    txt += "%s = NumericalPoint( %d )\n" % (self.variable["levels"], dimension)
-    for i in range(dimension):
-      txt += "%s[%d] = %g\n" % (self.variable["levels"], i, levels[i])
-    txt += "\n"
-    return txt
-
-  def CenteredReductedGrid (self):
-    '''
-    Definit la grille reduite du plan d experience
-    '''
-    plane = None
-    if ( self.DictMCVal.has_key( 'ExperimentPlane' ) ):
-      plane =  self.DictMCVal[ 'ExperimentPlane' ]
-
-    txt  = "# Cree le plan d'experience centre reduit\n"
-    txt += "%s = %s(%s, %s)\n" % (self.variable["myCenteredReductedGrid"], plane, self.variable["n"], self.variable["levels"])
-    txt += "%s = %s.generate()\n" % (self.variable["myExperimentPlane"], self.variable["myCenteredReductedGrid"])
-    txt += "\n"
-    return txt
-
-  def MinMaxResult (self):
-    '''
-    Produit les resultats de l etude
-    '''
-    txt  = "# Resultats\n"
-    txt += "%s = %s.getMin()\n" % (self.variable["minValue"], self.variable["outputSample"])
-    txt += "print '%s = ', %s\n" % ("minValue", self.variable["minValue"])
-    txt += "\n"
-    txt += "%s = %s.getMax()\n" % (self.variable["maxValue"], self.variable["outputSample"])
-    txt += "print '%s = ', %s\n" % ("maxValue", self.variable["maxValue"])
-    txt += "\n"
-    return txt
-
-  def CentralUncertainty (self, subDict):
-    '''
-    Produit le fichier study correspondant a une analyse d incertitude en valeur centrale
-    '''
-    txt  = self.Header()
-    txt += self.Model()
-    txt += self.InputDistribution()
-    txt += self.InputRandomVector()
-    txt += self.OutputRandomVector()
-   
-    Methode = None
-    if ( self.DictMCVal.has_key( 'Method' ) ):
-      Methode =  self.DictMCVal[ 'Method' ]
-
-    Traitement = None
-    if ( subDict.has_key( Methode ) ):
-      Traitement =  subDict[ Methode ]
-
-    if ( Traitement is not None ):
-      txt += "# Etude 'Central Uncertainty'\n"
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
-
-    txt += self.Footer()
-    return txt
-
-
-  def TaylorVarianceDecomposition (self):
-    '''
-    Etude par decomposition de Taylor
-    '''
-    txt  = "# Cumul quadratique (decomposition de Taylor)\n"
-    txt += "%s = QuadraticCumul( %s )\n" % (self.variable["myQuadraticCumul"], self.variable["outputRandomVector"])
-    txt += "\n"
-    txt += "# Resultats\n"
-    
-    if ( self.DictMCVal.has_key( 'MeanFirstOrder' ) ):
-      if ( self.DictMCVal[ 'MeanFirstOrder' ] == "yes" ):
-        txt += "%s = %s.getMeanFirstOrder()\n" % (self.variable["meanFirstOrder"], self.variable["myQuadraticCumul"])
-        txt += "print '%s = ', %s\n" % ("mean First Order", self.variable["meanFirstOrder"])
-        txt += "\n"
-       
-    if ( self.DictMCVal.has_key( 'MeanSecondOrder' ) ):
-      if ( self.DictMCVal[ 'MeanSecondOrder' ] == "yes" ):
-        txt += "%s = %s.getMeanSecondOrder()\n" % (self.variable["meanSecondOrder"], self.variable["myQuadraticCumul"])
-        txt += "print '%s = ', %s\n" % ("mean Second Order", self.variable["meanSecondOrder"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'StandardDeviationFirstOrder' ) ):
-      if ( self.DictMCVal[ 'StandardDeviationFirstOrder' ] == "yes" ):
-        txt += "%s = %s.getCovariance()\n" % (self.variable["standardDeviationFirstOrder"], self.variable["myQuadraticCumul"])
-        txt += "dim = %s.getDimension()\n" % self.variable["standardDeviationFirstOrder"]
-        txt += "for i in range( dim ):\n"
-        txt += "  %s[ i, i ] = math.sqrt( %s[ i, i ] )\n" % (self.variable["standardDeviationFirstOrder"], self.variable["standardDeviationFirstOrder"])
-        txt += "  print '%s = ', %s[ i, i ]\n" % ("standard Deviation First Order", self.variable["standardDeviationFirstOrder"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'ImportanceFactor' ) ):
-      if ( self.DictMCVal[ 'ImportanceFactor' ] == "yes" ):
-        txt += "%s = %s.getImportanceFactors()\n" % (self.variable["importanceFactors"], self.variable["myQuadraticCumul"])
-        txt += "for i in range(%s.getDimension()):\n" % self.variable["importanceFactors"]
-        txt += "  print %s.getDescription()[i], ':', %s[i]*100., '%%'\n" % (self.variable["distribution"], self.variable["importanceFactors"])
-        txt += "\n"
-        txt += "%s = %s.drawImportanceFactors()\n" % (self.variable["importanceFactorsGraph"], self.variable["myQuadraticCumul"])
-        txt += "%s = '%s'\n" % (self.variable["importanceFactorsDrawing"], self.DictMCVal[ 'ImportanceFactorDrawingFilename' ])
-        txt += "%s.draw( %s )\n" % (self.variable["importanceFactorsGraph"], self.variable["importanceFactorsDrawing"])
-        txt += "#if is_xserver_available():\n"
-        txt += "#  view = View(%s)\n" % self.variable["importanceFactorsGraph"]
-        txt += "#  view.show(block=True)\n"
-        txt += "#else:\n"
-        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["importanceFactorsGraph"]
-        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["importanceFactorsGraph"]
-        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["importanceFactorsGraph"]
-        txt += "\n"
-        
-    txt += "\n"
-    return txt
-
-  def CentralUncertaintyRandomSampling (self):
-    '''
-    Etude par echantillonage aleatoire
-    '''
-    size = 0
-    if ( self.DictMCVal.has_key( 'SimulationsNumber' ) ):
-      size =  self.DictMCVal[ 'SimulationsNumber' ]
-
-    txt  = "# Echantillonnage aleatoire de la variable de sortie\n"
-    txt += "%s = %d\n" % (self.variable["inSize"], size)
-    txt += "%s = %s.getSample( %s )\n" % (self.variable["inputSample"], self.variable["inputRandomVector"], self.variable["inSize"])
-    txt += "%s = %s( %s )\n" % (self.variable["outputSample"], self.variable["model"], self.variable["inputSample"])
-    txt += "if contain_nan_values( %s ):\n" % (self.variable["outputSample"])
-    txt += "  raise Exception('Some computations failed')\n"
-    txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'EmpiricalMean' ) ):
-      if ( self.DictMCVal[ 'EmpiricalMean' ] == "yes" ):
-        txt += "%s = %s.computeMean()\n" % (self.variable["empiricalMean"], self.variable["outputSample"])
-        txt += "print '%s =', %s[0]\n" % ("empirical Mean", self.variable["empiricalMean"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'EmpiricalStandardDeviation' ) ):
-      if ( self.DictMCVal[ 'EmpiricalStandardDeviation' ] == "yes" ):
-        txt += "%s = %s.computeCovariance()\n" % (self.variable["empiricalStandardDeviation"], self.variable["outputSample"])
-        txt += "dim = %s.getDimension()\n" % self.variable["empiricalStandardDeviation"]
-        txt += "for i in range( dim ):\n"
-        txt += "  %s[ i, i ] = math.sqrt( %s[ i, i ] )\n" % (self.variable["empiricalStandardDeviation"], self.variable["empiricalStandardDeviation"])
-        txt += "  print '%s = ', %s[ i, i ]\n" % ("empirical Standard Deviation", self.variable["empiricalStandardDeviation"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'EmpiricalQuantile_Order' ) ):
-      ordre = self.DictMCVal[ 'EmpiricalQuantile_Order' ]
-      txt += "%s = %s.computeQuantile( %s )\n" % (self.variable["empiricalQuantile"], self.variable["outputSample"], ordre)
-      txt += "print '%s ( %s ) =', %s\n" % ("empirical Quantile", ordre, self.variable["empiricalQuantile"])
-      txt += "\n"
-   
-    if ( self.DictMCVal.has_key( 'CorrelationAnalysis' ) ):
-      if ( self.DictMCVal[ 'CorrelationAnalysis' ] == "yes" ):
-        txt += "if ( %s.getDimension() == 1 ):\n" % self.variable["outputSample"]
-        txt += "  %s = CorrelationAnalysis.PCC( %s, %s )\n" % (self.variable["PCCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
-        txt += "  print 'PCC Coefficients:'\n"
-        txt += "  for i in range( %s ):\n" % self.variable["n"]
-        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["PCCcoefficient"])
-        txt += "\n"
-        txt += "  %s = CorrelationAnalysis.PRCC( %s, %s )\n" % (self.variable["PRCCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
-        txt += "  print 'PRCC Coefficients:'\n"
-        txt += "  for i in range( %s ):\n" % self.variable["n"]
-        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["PRCCcoefficient"])
-        txt += "\n"
-        txt += "  %s = CorrelationAnalysis.SRC( %s, %s )\n" % (self.variable["SRCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
-        txt += "  print 'SRC Coefficients:'\n"
-        txt += "  for i in range( %s ):\n" % self.variable["n"]
-        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["SRCcoefficient"])
-        txt += "\n"
-        txt += "  %s = CorrelationAnalysis.SRRC( %s, %s )\n" % (self.variable["SRRCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
-        txt += "  print 'SRRC Coefficients:'\n"
-        txt += "  for i in range( %s ):\n" % self.variable["n"]
-        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["SRRCcoefficient"])
-        txt += "\n"
-   
-    if ( self.DictMCVal.has_key( 'KernelSmoothing' ) ):
-      if ( self.DictMCVal[ 'KernelSmoothing' ] == "yes" ):
-        txt += "# Kernel Smoohing\n"
-        txt += "%s = KernelSmoothing()\n" % self.variable["kernel"]
-        txt += "if ( %s.getDimension() == 1 ):\n" % self.variable["outputSample"]
-        txt += "  %s.setName( 'Output' )\n" % self.variable["outputSample"]
-        txt += "  %s = %s.build( %s, 'TRUE')\n" % (self.variable["kernelSmoothedDist"], self.variable["kernel"], self.variable["outputSample"])
-        txt += "  %s = %s.drawPDF()\n" % (self.variable["kernelSmoothedGraph"], self.variable["kernelSmoothedDist"])
-        txt += "  %s = '%s'\n" % (self.variable["kernelSmoothedPDFDrawing"], self.DictMCVal[ 'KernelSmoothingDrawingFilename' ])
-        txt += "  %s.draw( %s )\n" % (self.variable["kernelSmoothedGraph"], self.variable["kernelSmoothedPDFDrawing"])
-        txt += "  #if is_xserver_available():\n"
-        txt += "  #  view = View(%s)\n" % self.variable["kernelSmoothedGraph"]
-        txt += "  #  view.show(block=True)\n"
-        txt += "  #else:\n"
-        txt += "  #  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["kernelSmoothedGraph"]
-        txt += "  print 'bitmap =', %s.getBitmap()\n"  % self.variable["kernelSmoothedGraph"]
-        txt += "  print 'postscript =', %s.getPostscript()\n"  % self.variable["kernelSmoothedGraph"]
-        txt += "\n"
-   
-    return txt
-
-  def ThresholdExceedence (self, subDict):
-    '''
-    Produit le fichier study correspondant a une analyse de depassement de seuil
-    '''
-    txt  = self.Header()
-    txt += "# Etude 'Threshold Exceedence'\n"
-
-    txt += self.RandomGenerator()
-    txt += self.Model()
-    txt += self.InputDistribution()
-    txt += self.InputRandomVector()
-    txt += self.OutputRandomVector()
-    txt += self.Event()
-   
-    Methode = None
-    if ( self.DictMCVal.has_key( 'Method' ) ):
-      Methode =  self.DictMCVal[ 'Method' ]
-
-    Traitement = None
-    if ( subDict.has_key( Methode ) ):
-      Traitement =  subDict[ Methode ]
-
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
-
-    txt += self.Footer()
-    return txt
-
-  def Simulation (self, subDict):
-    '''
-    Methodes de simulation
-    '''
-    Algorithme = None
-    if ( self.DictMCVal.has_key( 'Algorithm' ) ):
-      Algorithme =  self.DictMCVal[ 'Algorithm' ]
-
-    Traitement = None
-    if ( subDict.has_key( Algorithme ) ):
-      Traitement =  subDict[ Algorithme ]
-
-    if ( Traitement is not None ):
-      txt = apply( STDGenerateur.__dict__[ Traitement ], (self,) )
-
-    maxOuterSampling = None
-    if ( self.DictMCVal.has_key( 'MaximumOuterSampling' ) ):
-      maxOuterSampling = self.DictMCVal[ 'MaximumOuterSampling' ]
-      txt += "%s.setMaximumOuterSampling( %s )\n" % (self.variable["myAlgo"], maxOuterSampling)
-
-    blockSize = None
-    if ( self.DictMCVal.has_key( 'BlockSize' ) ):
-      blockSize = self.DictMCVal[ 'BlockSize' ]
-      txt += "%s.setBlockSize( %s )\n" % (self.variable["myAlgo"], blockSize)
-
-    maxCoefficientOfVariation = None
-    if ( self.DictMCVal.has_key( 'MaximumCoefficientOfVariation' ) ):
-      maxCoefficientOfVariation = self.DictMCVal[ 'MaximumCoefficientOfVariation' ]
-      txt += "%s.setMaximumCoefficientOfVariation( %s )\n" % (self.variable["myAlgo"], maxCoefficientOfVariation)
-
-    txt += "%s.run()\n"  % self.variable["myAlgo"]
-    txt += "\n"
-    txt += "# Resultats de la simulation\n"
-    txt += "%s = %s.getResult()\n"  % (self.variable["myResult"], self.variable["myAlgo"])
-    txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'Probability' ) ):
-      if ( self.DictMCVal[ 'Probability' ] == "yes" ):
-        txt += "%s = %s.getProbabilityEstimate()\n" % (self.variable["probability"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("probability", self.variable["probability"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'StandardDeviation' ) ):
-      if ( self.DictMCVal[ 'StandardDeviation' ] == "yes" ):
-        txt += "%s = math.sqrt( %s.getProbabilityEstimate() )\n" % (self.variable["standardDeviation"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("standard Deviation", self.variable["standardDeviation"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'ConfidenceInterval' ) and self.DictMCVal.has_key( 'Probability' ) ):
-      if ( ( self.DictMCVal[ 'ConfidenceInterval' ] == "yes" ) and ( self.DictMCVal[ 'Probability' ] == "yes" ) ):
-        level = self.DictMCVal[ 'Level' ]
-        txt += "%s = %s.getConfidenceLength( %s )\n" % (self.variable["length"], self.variable["myResult"], level)
-        txt += "print 'confidence interval at %s = [', %s-0.5*%s, ',', %s+0.5*%s, ']'\n" % (level, self.variable["probability"], self.variable["length"], self.variable["probability"], self.variable["length"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'VariationCoefficient' ) ):
-      if ( self.DictMCVal[ 'VariationCoefficient' ] == "yes" ):
-        txt += "%s = %s.getCoefficientOfVariation()\n" % (self.variable["coefficientOfVariation"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("coefficient of Variation", self.variable["coefficientOfVariation"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'SimulationsNumber' ) ):
-      if ( self.DictMCVal[ 'SimulationsNumber' ] == "yes" ):
-        txt += "%s = %s.getOuterSampling()\n" % (self.variable["simulationNumbers"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("simulation Numbers", self.variable["simulationNumbers"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'ConvergenceGraph' ) and self.DictMCVal.has_key( 'ConfidenceInterval' ) ):
-      if ( ( self.DictMCVal[ 'ConvergenceGraph' ] == "yes" ) and ( self.DictMCVal[ 'ConfidenceInterval' ] == "yes" ) ):
-        txt += "%s = %s\n" % (self.variable["alpha"], self.DictMCVal[ 'Level' ])
-        txt += "%s = %s.drawProbabilityConvergence( %s )\n" % (self.variable["convergenceGraph"], self.variable["myAlgo"], self.variable["alpha"])
-        txt += "%s = '%s'\n" % (self.variable["convergenceDrawing"], self.DictMCVal[ 'ConvergenceDrawingFilename' ])
-        txt += "%s.draw( %s )\n" % (self.variable["convergenceGraph"], self.variable["convergenceDrawing"])
-        txt += "#if is_xserver_available():\n"
-        txt += "#  view = View(%s)\n" % self.variable["convergenceGraph"]
-        txt += "#  view.show(block=True)\n"
-        txt += "#else:\n"
-        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["convergenceGraph"]
-        txt += "\n"
-
-    return txt
-
-  def Analytical (self, subDict):
-    '''
-    Methodes analytiques
-    '''
-    txt = ""
-    
-    OptimizationAlgo = None
-    if ( self.DictMCVal.has_key( 'OptimizationAlgorithm' ) ):
-      OptimizationAlgo =  self.DictMCVal[ 'OptimizationAlgorithm' ]
-
-    Traitement = None
-    if ( subDict.has_key( OptimizationAlgo ) ):
-      Traitement =  subDict[ OptimizationAlgo ]
-
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
-
-    txt += self.OptimizerSettings()
-    txt += self.PhysicalStartingPoint()
-
-    Approximation = None
-    if ( self.DictMCVal.has_key( 'Approximation' ) ):
-      Approximation =  self.DictMCVal[ 'Approximation' ]
-
-    Traitement = None
-    if ( subDict.has_key( Approximation ) ):
-      Traitement =  subDict[ Approximation ]
-
-    if ( Traitement is not None ):
-      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
-
-    txt += self.RunAlgorithm()
-    txt += self.AnalyticalResult()
-
-    return txt
-
-  def OptimizerSettings (self):
-    '''
-    Parametrage de l optimiseur
-    '''
-    txt = ""
-    
-    simulationNumbers = None
-    if ( self.DictMCVal.has_key( 'MaximumIterationsNumber' ) ):
-      simulationNumbers = self.DictMCVal[ 'MaximumIterationsNumber' ]
-      txt += "%s.setMaximumIterationsNumber( %s )\n" % (self.variable["myOptimizer"], simulationNumbers)
-
-    absoluteError = None
-    if ( self.DictMCVal.has_key( 'MaximumAbsoluteError' ) ):
-      absoluteError = self.DictMCVal[ 'MaximumAbsoluteError' ]
-      txt += "%s.setMaximumAbsoluteError( %s )\n" % (self.variable["myOptimizer"], absoluteError)
-
-    relativeError = None
-    if ( self.DictMCVal.has_key( 'MaximumRelativeError' ) ):
-      relativeError = self.DictMCVal[ 'MaximumRelativeError' ]
-      txt += "%s.setMaximumRelativeError( %s )\n" % (self.variable["myOptimizer"], relativeError)
-
-    residualError = None
-    if ( self.DictMCVal.has_key( 'MaximumResidualError' ) ):
-      residualError = self.DictMCVal[ 'MaximumResidualError' ]
-      txt += "%s.setMaximumResidualError( %s )\n" % (self.variable["myOptimizer"], residualError)
-
-    constraintError = None
-    if ( self.DictMCVal.has_key( 'MaximumConstraintError' ) ):
-      constraintError = self.DictMCVal[ 'MaximumConstraintError' ]
-      txt += "%s.setMaximumConstraintError( %s )\n" % (self.variable["myOptimizer"], constraintError)
-
-    txt += "\n"
-
-    return txt
-
-  def PhysicalStartingPoint (self):
-    '''
-    Point physique de depart
-    '''
-    txt  = "# Point physique de depart\n"
-
-    if ( self.DictMCVal.has_key( 'PhysicalStartingPoint' ) ):
-      point = self.DictMCVal[ 'PhysicalStartingPoint' ]
-      dimension = len( point )
-      txt += "%s = NumericalPoint( %d )\n" % (self.variable["startingPoint"], dimension)
-      for i in range( dimension ):
-        txt += "%s[ %d ] = %g\n" % (self.variable["startingPoint"], i, point[i])
-    else:
-      txt += "%s = %s.getMean()\n" % (self.variable["startingPoint"], self.variable["inputRandomVector"])
-      
-    txt += "\n"
-
-    return txt
-
-  def AnalyticalResult (self):
-    '''
-    Resultat des methodes analytiques
-    '''
-    txt  = "# Resultat des methodes analytiques\n"
-    txt += "%s = %s.getResult()\n" % (self.variable["myResult"], self.variable["myAlgo"])
-    
-    if ( self.DictMCVal.has_key( 'Probability' ) ):
-      if ( self.DictMCVal[ 'Probability' ] == "yes" ):
-        txt += "%s = %s.getEventProbability()\n" % (self.variable["probability"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % (self.variable["probability"], self.variable["probability"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'HasoferReliabilityIndex' ) ):
-      if ( self.DictMCVal[ 'HasoferReliabilityIndex' ] == "yes" ):
-        txt += "%s = %s.getHasoferReliabilityIndex()\n" % (self.variable["hasoferReliabilityIndex"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("hasofer Reliability Index", self.variable["hasoferReliabilityIndex"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'DesignPoint' ) ):
-      if ( self.DictMCVal[ 'DesignPoint' ] == "yes" ):
-        txt += "%s = %s.getStandardSpaceDesignPoint()\n" % (self.variable["standardSpaceDesignPoint"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("standard Space Design Point", self.variable["standardSpaceDesignPoint"])
-        txt += "%s = %s.getPhysicalSpaceDesignPoint()\n" % (self.variable["physicalSpaceDesignPoint"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("physical Space Design Point", self.variable["physicalSpaceDesignPoint"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'ImportanceFactor' ) ):
-      if ( self.DictMCVal[ 'ImportanceFactor' ] == "yes" ):
-        txt += "print 'Importance Factors:'\n"
-        txt += "%s = %s.getImportanceFactors()\n" % (self.variable["importanceFactors"], self.variable["myResult"])
-        txt += "for i in range(%s.getDimension()):\n" % self.variable["importanceFactors"]
-        txt += "  print %s.getDescription()[i], ':', %s[i]*100., '%%'\n" % (self.variable["distribution"], self.variable["importanceFactors"])
-        txt += "\n"
-        txt += "%s = %s.drawImportanceFactors()\n" % (self.variable["importanceFactorsGraph"], self.variable["myResult"])
-        txt += "%s = '%s'\n" % (self.variable["importanceFactorsDrawing"], self.DictMCVal[ 'ImportanceFactorDrawingFilename' ])
-        txt += "%s.draw( %s )\n" % (self.variable["importanceFactorsGraph"], self.variable["importanceFactorsDrawing"])
-        txt += "#if is_xserver_available():\n"
-        txt += "#  view = View(%s)\n" % self.variable["importanceFactorsGraph"]
-        txt += "#  view.show(block=True)\n"
-        txt += "#else:\n"
-        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["importanceFactorsGraph"]
-        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["importanceFactorsGraph"]
-        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["importanceFactorsGraph"]
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'FORMEventProbabilitySensitivity' ) ):
-      if ( self.DictMCVal[ 'FORMEventProbabilitySensitivity' ] == "yes" ):
-        txt += "%s = %s.getEventProbabilitySensitivity()\n" % (self.variable["eventProbabilitySensitivity"], self.variable["myResult"])
-        txt += "print 'FORM Event Probability Sensitivity:'\n"
-        txt += "for i in range( %s ):\n" % self.variable["n"]
-        txt += "  print %s.getDescription()[i], ':'\n" % self.variable["distribution"]
-        txt += "  for j in range( %s[i].getDimension() ):\n" % self.variable["eventProbabilitySensitivity"]
-        txt += "    print '  ', %s[i].getDescription()[j], ':', %s[i][j]\n" % (self.variable["eventProbabilitySensitivity"], self.variable["eventProbabilitySensitivity"])
-        txt += "\n"
-        txt += "%s = %s.drawEventProbabilitySensitivity()[0]\n" % (self.variable["eventProbabilitySensitivityGraph"], self.variable["myResult"])
-        txt += "%s = '%s'\n" % (self.variable["eventProbabilitySensitivityDrawing"], self.DictMCVal[ 'FORMEventProbabilitySensitivityDrawingFilename' ])
-        txt += "%s.draw( %s )\n" % (self.variable["eventProbabilitySensitivityGraph"], self.variable["eventProbabilitySensitivityDrawing"])
-        txt += "#if is_xserver_available():\n"
-        txt += "#  view = View(%s)\n" % self.variable["eventProbabilitySensitivityGraph"]
-        txt += "#  view.show(block=True)\n"
-        txt += "#else:\n"
-        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["eventProbabilitySensitivityGraph"]
-        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["eventProbabilitySensitivityGraph"]
-        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["eventProbabilitySensitivityGraph"]
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'HasoferReliabilityIndexSensitivity' ) ):
-      if ( self.DictMCVal[ 'HasoferReliabilityIndexSensitivity' ] == "yes" ):
-        txt += "%s = %s.getHasoferReliabilityIndexSensitivity()\n" % (self.variable["hasoferReliabilityIndexSensitivity"], self.variable["myResult"])
-        txt += "print 'Hasofer Reliability Index Sensitivity:'\n"
-        txt += "for i in range( %s ):\n" % self.variable["n"]
-        txt += "  print %s.getDescription()[i], ':'\n" % self.variable["distribution"]
-        txt += "  for j in range( %s[i].getDimension() ):\n" % self.variable["hasoferReliabilityIndexSensitivity"]
-        txt += "    print '  ', %s[i].getDescription()[j], ':', %s[i][j]\n" % (self.variable["hasoferReliabilityIndexSensitivity"], self.variable["hasoferReliabilityIndexSensitivity"])
-        txt += "\n"
-        txt += "%s = %s.drawHasoferReliabilityIndexSensitivity()[0]\n" % (self.variable["hasoferReliabilityIndexSensitivityGraph"], self.variable["myResult"])
-        txt += "%s = '%s'\n" % (self.variable["hasoferReliabilityIndexSensitivityDrawing"], self.DictMCVal[ 'HasoferReliabilityIndexSensitivityDrawingFilename' ])
-        txt += "%s.draw( %s )\n" % (self.variable["hasoferReliabilityIndexSensitivityGraph"], self.variable["hasoferReliabilityIndexSensitivityDrawing"])
-        txt += "#if is_xserver_available():\n"
-        txt += "#  view = View(%s)\n" % self.variable["hasoferReliabilityIndexSensitivityGraph"]
-        txt += "#  view.show(block=True)\n"
-        txt += "#else:\n"
-        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["hasoferReliabilityIndexSensitivityGraph"]
-        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["hasoferReliabilityIndexSensitivityGraph"]
-        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["hasoferReliabilityIndexSensitivityGraph"]
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'TvedtApproximation' ) ):
-      if ( self.DictMCVal[ 'TvedtApproximation' ] == "yes" ):
-        txt += "%s = %s.getEventProbabilityTvedt()\n" % (self.variable["tvedtApproximation"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("Tvedt Approximation", self.variable["tvedtApproximation"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'HohenBichlerApproximation' ) ):
-      if ( self.DictMCVal[ 'HohenBichlerApproximation' ] == "yes" ):
-        txt += "%s = %s.getEventProbabilityHohenBichler()\n" % (self.variable["hohenBichlerApproximation"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("HohenBichler Approximation", self.variable["tvedtApproximation"])
-        txt += "\n"
-
-    if ( self.DictMCVal.has_key( 'BreitungApproximation' ) ):
-      if ( self.DictMCVal[ 'BreitungApproximation' ] == "yes" ):
-        txt += "%s = %s.getEventProbabilityBreitung()\n" % (self.variable["breitungApproximation"], self.variable["myResult"])
-        txt += "print '%s =', %s\n" % ("Breitung Approximation", self.variable["breitungApproximation"])
-        txt += "\n"
-
-
-    return txt
-
-  def RandomGenerator (self):
-    '''
-    Generateur Aleatoire
-    '''
-    txt = ""
-    
-    seed = None
-    if ( self.DictMCVal.has_key( 'RandomGeneratorSeed' ) ):
-      seed = self.DictMCVal[ 'RandomGeneratorSeed' ]
-      txt += "# Initialise le generateur aleatoire\n"
-      txt += "RandomGenerator.SetSeed( %s )\n" % seed
-      txt += "\n"
-    
-    return txt
-
-  def Event (self):
-    '''
-    Definition de l evenement de defaillance
-    '''
-    operator = None
-    if ( self.DictMCVal.has_key( 'ComparisonOperator' ) ):
-      operator = self.DictMCVal[ 'ComparisonOperator' ]
-
-    threshold = None
-    if ( self.DictMCVal.has_key( 'Threshold' ) ):
-      threshold = self.DictMCVal[ 'Threshold' ]
-    
-    txt  = "# Evenement de defaillance\n"
-    txt += "%s = Event( %s, ComparisonOperator( %s() ), %s )\n" % (self.variable["myEvent"], self.variable["outputRandomVector"], operator, threshold)
-    txt += "%s.setName( '%s' )\n" % (self.variable["myEvent"], "myEvent")
-    txt += "\n"
-    return txt
-    
-  def MonteCarlo (self):
-    '''
-    Methode de MonteCarlo
-    '''
-    txt  = "# Simulation par MonteCarlo\n"
-    txt += "%s = MonteCarlo( %s )\n"  % (self.variable["myAlgo"], self.variable["myEvent"])
-    txt += "\n"
-   
-    return txt
-
-  def LHS (self):
-    '''
-    Methode LHS
-    '''
-    txt  = "# Simulation par LHS\n"
-    txt += "%s = LHS( %s )\n"  % (self.variable["myAlgo"], self.variable["myEvent"])
-    txt += "\n"
-   
-    return txt
-
-  def ImportanceSampling (self):
-    '''
-    Methode de tirage d importance
-    '''
-    dimension = 0
-    if ( self.DictMCVal.has_key( 'MeanVector' ) ):
-      meanVector =  self.DictMCVal[ 'MeanVector' ]
-      dimension = len( meanVector )
-        
-    txt  = "# Simulation par Tirage d'importance\n"
-    txt += "# Densite d'importance\n"
-    txt += "%s = NumericalPoint( %s )\n" % (self.variable["meanVector"], self.variable["n"])
-    for i in range(dimension):
-      txt += "%s[%d] = %g\n" % (self.variable["meanVector"], i, meanVector[i])
-      
-    txt += "%s = Normal( %s, CovarianceMatrix( IdentityMatrix( %s ) ) )\n" % (self.variable["importanceDensity"], self.variable["meanVector"], self.variable["n"])
-    txt += "%s = ImportanceSampling( %s, Distribution( %s ) )\n"  % (self.variable["myAlgo"], self.variable["myEvent"], self.variable["importanceDensity"])
-    txt += "\n"
-
-    return txt
-
-  def FORM (self):
-    '''
-    Methode FORM
-    '''
-    txt  = "# Algorithme FORM\n"
-    txt += "%s = FORM ( NearestPointAlgorithm( %s ), %s, %s )\n"  % (self.variable["myAlgo"], self.variable["myOptimizer"], self.variable["myEvent"], self.variable["startingPoint"])
-    txt += "\n"
-
-    return txt
-
-  def SORM (self):
-    '''
-    Methode SORM
-    '''
-    txt  = "# Algorithme SORM\n"
-    txt += "%s = SORM ( NearestPointAlgorithm( %s ), %s, %s )\n"  % (self.variable["myAlgo"], self.variable["myOptimizer"], self.variable["myEvent"], self.variable["startingPoint"])
-    txt += "\n"
-
-    return txt
-
-  def RunAlgorithm (self):
-    '''
-    Do the computation
-    '''
-    txt = ""
-    if ( self.DictMCVal.has_key( 'FunctionCallsNumber' ) ):
-      if ( self.DictMCVal[ 'FunctionCallsNumber' ] == "yes" ):
-        txt += "%s = %s.getEvaluationCallsNumber()\n" % (self.variable["modelEvaluationCalls"], self.variable["model"])
-        txt += "%s = %s.getGradientCallsNumber()\n" % (self.variable["modelGradientCalls"], self.variable["model"])
-        txt += "%s = %s.getHessianCallsNumber()\n" % (self.variable["modelHessianCalls"], self.variable["model"])
-        txt += "\n"
-
-    txt += "# Perform the computation\n"
-    txt += "%s.run()\n" % self.variable["myAlgo"]
-    txt += "\n"
-    
-
-    if ( self.DictMCVal.has_key( 'FunctionCallsNumber' ) ):
-      if ( self.DictMCVal[ 'FunctionCallsNumber' ] == "yes" ):
-        txt += "%s = %s.getEvaluationCallsNumber() - %s\n" % (self.variable["modelEvaluationCalls"], self.variable["model"], self.variable["modelEvaluationCalls"])
-        txt += "%s = %s.getGradientCallsNumber() - %s\n" % (self.variable["modelGradientCalls"], self.variable["model"], self.variable["modelGradientCalls"])
-        txt += "%s = %s.getHessianCallsNumber() - %s\n" % (self.variable["modelHessianCalls"], self.variable["model"], self.variable["modelHessianCalls"])
-        txt += "\n"
-        txt += "print '%s =', %s\n" % ("model Evaluation Calls", self.variable["modelEvaluationCalls"])
-        txt += "print '%s =', %s\n" % ("model Gradient Calls", self.variable["modelGradientCalls"])
-        txt += "print '%s =', %s\n" % ("model Hessian Calls", self.variable["modelHessianCalls"])
-        txt += "\n"
-
-    return txt
-
-  def Cobyla (self):
-    '''
-    Methode Cobyla
-    '''
-    txt  = "# Optimisation par Cobyla\n"
-    txt += "%s = Cobyla()\n" % self.variable["myOptimizer"]
-    txt += "#%s = CobylaSpecificParameters()\n" % self.variable["specificParameters"]
-    txt += "#%s.setSpecificParameters( %s )\n" % (self.variable["myOptimizer"], self.variable["specificParameters"])
-    txt += "\n"
-        
-    return txt
-
-  def AbdoRackwitz (self):
-    '''
-    Methode AbdoRackwitz
-    '''
-    txt  = "# Optimisation par AbdoRackwitz\n"
-    txt += "%s = AbdoRackwitz()\n" % self.variable["myOptimizer"]
-    txt += "#%s = AbdoRackwitzSpecificParameters()\n" % self.variable["specificParameters"]
-    txt += "#%s.setSpecificParameters( %s )\n" % (self.variable["myOptimizer"], self.variable["specificParameters"])
-    txt += "\n"
-    return txt
-
-  def Beta (self, loi):
-    '''
-    Definition de la loi Beta
-    '''
-    settings = {
-      "RT" : "Beta.RT",
-      "MuSigma" : "Beta.MUSIGMA",
-      }
-    if loi[ 'Settings' ] == 'RT' :
-      arg1 = loi[ 'R' ]
-      arg2 = loi[ 'T' ]
-    else :
-      arg1 = loi[ 'Mu'    ]
-      arg2 = loi[ 'Sigma' ]
-      
-    arg3 = loi[ 'A' ]
-    arg4 = loi[ 'B' ]
-    txt = "Beta( %g, %g, %g, %g, %s )" % (arg1, arg2, arg3, arg4, settings[ loi[ 'Settings' ] ])
-    return txt
-  
-  def Exponential (self, loi):
-    '''
-    Definition de la loi Exponential
-    '''
-    arg1 = loi[ 'Lambda' ]
-    arg2 = loi[ 'Gamma'  ]
-    txt = "Exponential( %g, %g )" % (arg1, arg2)
-    return txt
-  
-  def Gamma (self, loi):
-    '''
-    Definition de la loi Gamma
-    '''
-    settings = {
-      "KLambda" : "Gamma.KLAMBDA",
-      "MuSigma" : "Gamma.MUSIGMA",
-    }
-    if loi[ 'Settings' ] == 'KLambda' :
-      arg1 = loi[ 'K'      ]
-      arg2 = loi[ 'Lambda' ]
-    else :
-      arg1 = loi[ 'Mu'    ]
-      arg2 = loi[ 'Sigma' ]
-      
-    arg3 = loi[ 'Gamma' ]
-    txt = "Gamma( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
-    return txt
-
-  def Geometric (self, loi):
-    '''
-    Definition de la loi Geometric
-    '''
-    txt = "Geometric( %g )" % loi[ 'P' ]
-    return txt
-
-  def Gumbel (self, loi):
-    '''
-    Definition de la loi Gumbel
-    '''
-    settings = {
-      "AlphaBeta" : "Gumbel.ALPHABETA",
-      "MuSigma" : "Gumbel.MUSIGMA",
-    }
-    if loi[ 'Settings' ] == 'AlphaBeta' :
-      arg1 = loi[ 'Alpha' ]
-      arg2 = loi[ 'Beta'  ]
-    else :
-      arg1 = loi[ 'Mu'    ]
-      arg2 = loi[ 'Sigma' ]
-      
-    txt = "Gumbel( %g, %g, %s )" % (arg1, arg2, settings[ loi[ 'Settings' ] ])
-    return txt
-
-  def Histogram (self, loi):
-    '''
-    Definition de la loi Histogram
-    '''
-    arg1 = loi[ 'First' ]
-    arg2 = loi[ 'Values'  ]
-    txt = "Histogram( %g, %s )" % (arg1, arg2)
-    return txt
-
-  def Laplace (self, loi):
-    '''
-    Definition de la loi Laplace
-    '''
-    arg1 = loi[ 'Lambda' ]
-    arg2 = loi[ 'Mu'     ]
-    txt = "Laplace( %g, %g )" % (arg1, arg2)
-    return txt
-
-  def Logistic (self, loi):
-    '''
-    Definition de la loi Logistic
-    '''
-    arg1 = loi[ 'Alpha' ]
-    arg2 = loi[ 'Beta'  ]
-    txt = "Logistic( %g, %g )" % (arg1, arg2)
-    return txt
-
-  def LogNormal (self, loi):
-    '''
-    Definition de la loi LogNormal
-    '''
-    settings = {
-      "MuSigmaLog" : "LogNormal.MUSIGMA_LOG",
-      "MuSigma" : "LogNormal.MUSIGMA",
-      "MuSigmaOverMu" : "LogNormal.MU_SIGMAOVERMU",
-    }
-    if loi[ 'Settings' ] == 'MuSigmaLog' :
-      arg1 = loi[ 'MuLog' ]
-      arg2 = loi[ 'SigmaLog' ]
-    elif loi[ 'Settings' ] == 'MuSigmaOverMu' :
-      arg1 = loi[ 'Mu' ]
-      arg2 = loi[ 'SigmaOverMu' ]
-    else :
-      arg1 = loi[ 'Mu'    ]
-      arg2 = loi[ 'Sigma' ]
-      
-    arg3 = loi[ 'Gamma' ]
-    txt = "LogNormal( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
-    return txt
-
-  def MultiNomial (self, loi):
-    '''
-    Definition de la loi MultiNomial
-    '''
-    arg1 = loi[ 'Values' ]
-    arg2 = loi[ 'N' ]
-    txt = "MultiNomial( NumericalPoint( %s ) , %d)" % (arg1, arg2)
-    return txt
-
-  def NonCentralStudent (self, loi):
-    '''
-    Definition de la loi NonCentralStudent
-    '''
-    arg1 = loi[ 'Nu'    ]
-    arg2 = loi[ 'Delta' ]
-    arg3 = loi[ 'Gamma' ]
-    txt = "NonCentralStudent( %g, %g )" % (arg1, arg2, arg3)
-    return txt
-
-  def Normal (self, loi):
-    '''
-    Definition de la loi Normal
-    '''
-    arg1 = loi[ 'Mu'    ]
-    arg2 = loi[ 'Sigma' ]
-    txt = "Normal( %g, %g )" % (arg1, arg2)
-    return txt
-
-  def TruncatedNormal (self, loi):
-    '''
-    Definition de la loi TruncatedNormal
-    '''
-    arg1 = loi[ 'MuN' ]
-    arg2 = loi[ 'SigmaN' ]
-    arg3 = loi[ 'A' ]
-    arg4 = loi[ 'B' ]
-    txt = "TruncatedNormal( %g, %g, %g, %g )" % (arg1, arg2, arg3, arg4)
-    return txt
-
-  def Poisson (self, loi):
-    '''
-    Definition de la loi Poisson
-    '''
-    txt = "Poisson( %g )" % loi[ 'Lambda' ]
-    return txt
-
-  def Rayleigh (self, loi):
-    '''
-    Definition de la loi Rayleigh
-    '''
-    arg1 = loi[ 'Sigma' ]
-    arg2 = loi[ 'Gamma' ]
-    txt = "Rayleigh( %g, %g )" % (arg1, arg2)
-    return txt
-
-  def Student (self, loi):
-    '''
-    Definition de la loi Student
-    '''
-    arg1 = loi[ 'Mu' ]
-    arg2 = loi[ 'Nu' ]
-    arg3 = loi[ 'Sigma' ]
-    txt = "Student( %g, %g, %g )" % (arg1, arg2, arg3)
-    return txt
-
-  def Triangular (self, loi):
-    '''
-    Definition de la loi Triangular
-    '''
-    arg1 = loi[ 'A' ]
-    arg2 = loi[ 'M' ]
-    arg3 = loi[ 'B' ]
-    txt = "Triangular( %g, %g, %g )" % (arg1, arg2, arg3)
-    return txt
-
-  def Uniform (self, loi):
-    '''
-    Definition de la loi Uniform
-    '''
-    arg1 = loi[ 'A' ]
-    arg2 = loi[ 'B' ]
-    txt = "Uniform( %g, %g )" % (arg1, arg2)
-    return txt
-
-  def UserDefined (self, loi):
-    '''
-    Definition de la loi UserDefined
-    '''
-    txt = "** UserDefined not defined yet **"
-    return txt
-
-  def Weibull (self, loi):
-    '''
-    Definition de la loi Weibull
-    '''
-    settings = {
-      "AlphaBeta" : "Weibull.ALPHABETA",
-      "MuSigma" : "Weibull.MUSIGMA",
-    }
-    if loi[ 'Settings' ] == 'AlphaBeta' :
-      arg1 = loi[ 'Alpha' ]
-      arg2 = loi[ 'Beta'  ]
-    else :
-      arg1 = loi[ 'Mu'    ]
-      arg2 = loi[ 'Sigma' ]
-      
-    arg3 = loi[ 'Gamma' ]
-    txt = "Weibull( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
-    return txt
-
-
-
-  def GraphiquePDF (self, loi, chemin, fichier):
-    '''
-    Produit une image PNG representant la PDF de la loi
-    '''
-    txt  = headerSTD % self.OpenTURNS_path
-    txt += "dist = %s\n" % apply( STDGenerateur.__dict__[ loi[ 'Kind' ] ], (self, loi) )
-    txt += "graph = dist.drawPDF()\n"
-    txt += "graph.draw( '%s/%s' , 640, 480, GraphImplementation.PNG)\n" % (chemin, fichier)
-    txt += footerSTD
-    return txt
-  
diff --git a/generator/OpenturnsXML.py b/generator/OpenturnsXML.py
deleted file mode 100644 (file)
index 860508d..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-# -*- 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 contient le generateur XML pour Openturns
-"""
-import sys
-print sys.path
-from Extensions.i18n import tr
-import openturns
-
-# Dictionnaires de conversion des valeurs lues dans EFICAS
-# en valeurs reconnues par Open TURNS
-# Les clefs 'None' sont les valeurs par defaut
-
-VariableTypeByName = {
-  "in"  : openturns.WrapperDataVariableType.IN,
-  "out" : openturns.WrapperDataVariableType.OUT,
-  None  :  openturns.WrapperDataVariableType.IN,
-  }
-
-FileTypeByName = {
-  "in"  : openturns.WrapperDataFileType.IN,
-  "out" : openturns.WrapperDataFileType.OUT,
-  None  : openturns.WrapperDataFileType.IN,
-  }
-
-SymbolProvidedByName = {
-  "no"  : openturns.WrapperSymbolProvided.NO,
-  "yes" : openturns.WrapperSymbolProvided.YES,
-  None  : openturns.WrapperSymbolProvided.NO,
-  }
-
-WrapperStateByName = {
-  "shared"   : openturns.WrapperState.SHARED,
-  "specific" : openturns.WrapperState.SPECIFIC,
-  None       : openturns.WrapperState.SPECIFIC,
-  }
-
-WrapperModeByName = {
-  "static-link"  : openturns.WrapperMode.STATICLINK,
-  "dynamic-link" : openturns.WrapperMode.DYNAMICLINK,
-  "fork"         : openturns.WrapperMode.FORK,
-  None           : openturns.WrapperMode.FORK,
-  }
-
-WrapperDataTransferByName = {
-  "files"     : openturns.WrapperDataTransfer.FILES,
-  "pipe"      : openturns.WrapperDataTransfer.PIPE,
-  "arguments" : openturns.WrapperDataTransfer.ARGUMENTS,
-  "socket"    : openturns.WrapperDataTransfer.SOCKET,
-  "corba"     : openturns.WrapperDataTransfer.CORBA,
-  None        : openturns.WrapperDataTransfer.FILES,
-  }
-
-#==========================
-# La classe de creation XML 
-#==========================
-
-class XMLGenerateur :
-
-  '''
-  Generation du fichier XML
-  '''
-  def __init__ (self, appli, DictMCVal, DictVariables ) :
-    self.DictMCVal = DictMCVal
-    self.DictVariables = DictVariables
-    self.appli = appli
-
-  def CreeXML (self) :
-    '''
-    Pilotage general de la creation du fichier XML
-    '''
-    data = openturns.WrapperData()
-    data.setLibraryPath( self.GetMCVal('WrapperPath','') )
-    data.setVariableList( self.VariableList() )
-    data.setFunctionDescription( self.FunctionDefinition() )
-    data.setGradientDescription( self.GradientDefinition() )
-    data.setHessianDescription(  self.HessianDefinition()  )
-    data.setFileList( self.FileList() )
-    data.setParameters( self.Parameters() )
-    #data.setFrameworkData( self.FrameworkData() )
-    
-    wrapper=openturns.WrapperFile()
-    wrapper.setWrapperData( data )
-    
-    return wrapper
-
-
-  class __variable_ordering:
-    def __init__ (self, dictVar) :
-      self.dictVar = dictVar
-      
-    def __call__(self, a, b):
-      return self.dictVar[a]['numOrdre'] - self.dictVar[b]['numOrdre']
-  
-  def VariableList (self) :
-    '''
-    Ecrit la liste des variables
-    '''
-    varList = openturns.WrapperDataVariableCollection()
-    for var in sorted( self.DictVariables.keys(), self.__variable_ordering( self.DictVariables ) ) :
-      varList.add( self.Variable( var, self.DictVariables[var] ) )
-    return varList
-
-  def Variable (self, var, dictVar) :
-    '''
-    Ecrit le parametrage d une variable
-    '''
-    variable = openturns.WrapperDataVariable()
-    variable.id_ = var
-    if dictVar[ 'Type' ] in VariableTypeByName.keys() :
-      variable.type_ = VariableTypeByName[ dictVar[ 'Type' ] ]
-    if dictVar.has_key('Comment')   : variable.comment_ = dictVar[ 'Comment' ]
-    if dictVar.has_key('Unit')      : variable.unit_    = dictVar[ 'Unit'    ]
-    if dictVar.has_key('Regexp')    : variable.regexp_  = dictVar[ 'Regexp'  ]
-    if dictVar.has_key('Format')    : variable.format_  = dictVar[ 'Format'  ]
-    return variable
-
-  def FunctionDefinition (self) :
-    '''
-    Ecrit la description de la Fonction
-    '''
-    func = openturns.WrapperFunctionDescription()
-    func.name_ = self.GetMCVal( 'FunctionName', '' )
-    if (len(func.name_) != 0) : func.provided_ = SymbolProvidedByName[ 'yes' ]
-    return func
-  
-  def GradientDefinition (self) :
-    '''
-    Ecrit la description du Gradient
-    '''
-    grad = openturns.WrapperFunctionDescription()
-    grad.name_ = self.GetMCVal( 'GradientName', '' )
-    if (len(grad.name_) != 0) : grad.provided_ = SymbolProvidedByName[ 'yes' ]
-    return grad
-  
-  def HessianDefinition (self) :
-    '''
-    Ecrit la description de la Hessienne
-    '''
-    hess = openturns.WrapperFunctionDescription()
-    hess.name_ = self.GetMCVal( 'HessianName', '' )
-    if (len(hess.name_) != 0) : hess.provided_ = SymbolProvidedByName[ 'yes' ]
-    return hess
-  
-
-
-  def FileList (self) :
-    '''
-    Ecrit la liste des fichiers
-    '''
-    fileList = openturns.WrapperDataFileCollection()
-    for dictFile in self.GetMCVal('Files', []) :
-      fileList.add( self.File( dictFile ) )
-    return fileList
-
-  def File (self, dictFile ) :
-    '''
-    Ecrit le parametrage d un fichier
-    '''
-    fich = openturns.WrapperDataFile()
-    fich.id_ = dictFile[ 'Id' ]
-    if dictFile[ 'Type' ] in FileTypeByName.keys() :
-      fich.type_ = FileTypeByName[ dictFile[ 'Type' ] ]
-    if dictFile.has_key('Name')   : fich.name_  = dictFile[ 'Name' ]
-    if dictFile.has_key('Path')   : fich.path_  = dictFile[ 'Path' ]
-    if dictFile.has_key('Subst')  :
-      import string
-      fich.subst_ = string.join( dictFile[ 'Subst' ], ',' )
-    return fich
-
-  def Parameters (self) :
-    '''
-    Ecrit les parametres de couplage au code externe
-    '''
-    parameters = openturns.WrapperParameter()
-    parameters.mode_  = WrapperModeByName[ self.GetMCVal('WrapCouplingMode') ]
-    if (parameters.mode_ == openturns.WrapperMode.FORK ):
-      parameters.command_ = self.GetMCVal('Command')
-      userPrefix = self.GetMCVal('UserPrefix', None)
-      if userPrefix != None : parameters.userPrefix_ = userPrefix
-    parameters.state_ = WrapperStateByName[ self.GetMCVal('State') ]
-    parameters.in_    = WrapperDataTransferByName[ self.GetMCVal('InDataTransfer') ]
-    parameters.out_   = WrapperDataTransferByName[ self.GetMCVal('OutDataTransfer') ]
-    return parameters
-  
-  def FrameworkData (self) :
-    '''
-    Ecrit les donnees liees a l utilisation d un framework englobant
-    '''
-    framework = openturns.WrapperFrameworkData()
-#   framework.studycase_ = "12:23:34"
-#   framework.componentname_ = self.GetMCVal('SolverComponentName', 'UNDEFINED')
-    CN = self.GetMCVal('SolverComponentName', 'UNDEFINED')
-    print 'CN = %s', CN
-    framework.componentname_ = CN
-    return framework
-
-
-  # ---------------------------------------------------------------------------------
-
-
-  def GetTag (self, tag) :
-    '''
-    Recupere la chaine associee au tag dans la table dictTagsXML.
-    Leve une exception si le tag n est pas trouve
-    '''
-    if ( dictTagsXML.has_key(tag) ) :
-      return dictTagsXML[tag]
-    else :
-      raise KeyError, tr("Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs.", tag)
-    pass
-  
-  def GetMCVal (self, MC, default = None, mandatory = False) :
-    '''
-    Recupere la chaine associee au MC dans la table DictMCVal.
-    Leve une exception si le MC n est pas trouve et mandatory vaut True
-    '''
-    if ( self.DictMCVal.has_key(MC) and self.DictMCVal[MC] != None ) :
-      return self.DictMCVal[MC]
-    else :
-      if ( mandatory ) :
-        raise KeyError, tr(" Le mot-cle %s est obligatoire.", MC)
-      else :
-        return default
-    pass
diff --git a/generator/generator_Creation.py b/generator/generator_Creation.py
deleted file mode 100644 (file)
index 8b427f7..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-   CARMEL3D pour EFICAS.
-
-"""
-import traceback
-import types,string,re,os
-from Extensions.i18n import tr
-from generator_python import PythonGenerator
-debut="""
-lqdkqmldk
-"""
-
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'Creation',
-        # La factory pour creer une instance du plugin
-          'factory' : CreationGenerator,
-          }
-
-
-class CreationGenerator(PythonGenerator):
-   """
-
-   """
-   # Les extensions de fichier permis?
-
-   def gener(self,obj,format='brut',config=None):
-       
-      self.initDico(obj)
-      # Cette instruction genère le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      if obj.isvalid() : self.genereDescription()
-      return self.text
-
-
-   def genereParam(self):
-      listeParam=[]
-      for monParam in self.dictParam.keys():
-          if self.dico.has_key(monParam) : continue
-          listeParam.append(self.dictParam[monParam])
-
-      if len(listeParam)== 0 : return
-      try:
-         jdcDict=self.jdc.jdcDict
-      except:
-         raise ValueError,tr("toutes les donnees ne sont pas connues")
-      for param in listeParam:
-          obj=None
-          for etape in self.jdc.jdcDict.etapes:
-              if str(etape.sdnom) != str(param) : 
-                  continue
-              obj=etape
-              break
-              
-      if obj==None:
-         raise ValueError,tr("toutes les donnees ne sont pas connues")
-         return
-
-      texteEtape=self.generETAPE(obj)
-
-   def genereDescription(self) :
-      '''
-      '''
-      self.texte=debut 
-      self.genereParam()
-
-   def initDico(self,obj) :
-      self.dicoCourant={}
-      self.dico={}
-      self.dictParam={}
-      self.listeParam=[]
-      self.jdc=obj.get_jdc_root()
-      try :
-        self.texte_jdc_aux=self.jdc.recorded_units[999]
-      except :
-        self.texte_jdc_aux=""
-
-
-   def generMCSIMP(self,obj) :
-      """
-      Convertit un objet MCSIMP en texte python
-      Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
-      """
-      
-      #print "MCSIMP", obj.nom, "  ", obj.valeur
-      from cree_map_cata import param_map
-      if isinstance(obj.valeur,param_map):
-        self.dicoCourant[obj.nom]=obj.valeur.nom
-        self.dictParam[obj.valeur.nom]=obj.valeur
-      else :
-        self.dicoCourant[obj.nom]=obj.valeur
-      s=PythonGenerator.generMCSIMP(self,obj)
-      return s
-  
-   def generPROC_ETAPE(self,obj):
-      self.dicoCourant={}
-      s=PythonGenerator.generPROC_ETAPE(self,obj)
-      self.dico[obj.nom]=self.dicoCourant
-      return s
-  
-   def generETAPE(self,obj):
-      #print "ETAPE", obj.nom, " ",obj.sdnom
-      self.dicoCourant={}
-      s=PythonGenerator.generETAPE(self,obj)
-      self.dico[obj.sdnom]=self.dicoCourant
-      return s
-
diff --git a/generator/generator_SEP.py b/generator/generator_SEP.py
deleted file mode 100644 (file)
index 241d0bd..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-   SEP pour EFICAS.
-
-"""
-import traceback
-import types,string,re,os
-
-from generator_python import PythonGenerator
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'SEP',
-        # La factory pour creer une instance du plugin
-          'factory' : SEPGenerator,
-          }
-
-
-class SEPGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format py 
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-   def gener(self,obj,format='brut',config=None):
-      self.initDico()
-      # Cette instruction génère le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      # Cette instruction génère le contenu du fichier de paramètres python
-      self.genereSEP()
-      return self.text
-
-   def getTubePy(self) :
-      return self.texteTubePy
-
-   def genereSEP(self) :
-      '''
-      Prépare le contenu du fichier de paramètres python. Le contenu
-      peut ensuite être obtenu au moyen de la fonction getTubePy().
-      '''
-      #self.__genereSEP_withVariables()
-      self.__genereSEP_withDico()
-
-   def __genereSEP_withVariables(self) :
-      '''
-      Les paramètres sont transcrits sous forme de variables nom=valeur.
-      '''
-      self.texteTubePy="# Parametres generes par Eficas \n"
-      for MC in self.dictMCVal.keys():
-        ligne = MC +"="+ repr(self.dictMCVal[MC])+'\n'
-         self.texteTubePy=self.texteTubePy+ligne
-
-      print self.texteTubePy
-
-      # __GBO__: Tester self.tube pour aiguiller en fonction du cas (au besoin)
-      fichier=os.path.join(os.path.dirname(__file__),"tube.py")
-      f=open(fichier,'r')
-      for ligne in f.readlines():
-         self.texteTubePy=self.texteTubePy+ligne
-      f.close
-
-   def __genereSEP_withDico(self) :
-      """
-      Les paramètres sont transcrits sous la forme d'un dictionnaire nom=valeur.
-      """
-      from Sep import properties
-      self.texteTubePy="# -*- coding: utf-8 -*-\n"
-      self.texteTubePy+="# ======================================================================================\n"
-      self.texteTubePy+="# FICHIER GENERE PAR EFICAS - OUTIL MÉTIER SOUS-EPAISSEUR - "
-      self.texteTubePy+="VERSION "+str(properties.version)+" du "+str(properties.date)+"\n"
-      self.texteTubePy+="# ======================================================================================\n"
-      self.texteTubePy+="\n"
-      self.texteTubePy+="# Parametres Utilisateur Eficas \n"
-      self.texteTubePy+="parameters={}\n"
-      
-      for MC in self.dictMCVal.keys():
-        ligne = "parameters['"+MC+"']="+ repr(self.dictMCVal[MC])+'\n'
-         self.texteTubePy=self.texteTubePy+ligne
-
-      # On ajoute des paramètres de configuration pour contrôle de
-      # cohérence avec la procédure outil métier
-      self.texteTubePy+="# Parametres de Configuration Eficas \n"
-      ligne = "parameters['OMVERSION']="+str(properties.version)+"\n"
-      self.texteTubePy+=ligne
-
-      # __GBO__: Tester self.tube pour aiguiller en fonction du cas (au besoin)
-      self.texteTubePy+="\n"
-      self.texteTubePy+="# Exécution de la procédure outil métier \n"
-      self.texteTubePy+="import os,sys\n"
-      self.texteTubePy+="sys.path.insert(0,os.environ['OM_ROOT_DIR'])\n"
-      self.texteTubePy+="import om_data\n"
-      self.texteTubePy+="om_data.setParameters(parameters)\n"
-      self.texteTubePy+="def run():\n"
-      self.texteTubePy+="    import om_smeca\n"
-      self.texteTubePy+="\n"
-      self.texteTubePy+='if __name__ == "__main__":\n'
-      self.texteTubePy+="    run()\n"
-
-      # For debug only
-      print self.texteTubePy
-
-
-   def initDico(self) :
-      self.tube=0
-      self.coude=0
-      self.dictMCVal={}
-      self.texteTubePy=""
-
-   # __GBO__: surcharge de PythonGenerator:
-   # voir example generator_cuve2dg.py (genea)
-   def generMCSIMP(self,obj) :
-      """
-      Convertit un objet MCSIMP en texte python
-      Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
-      """
-      clef=""
-      for i in obj.get_genealogie() :
-         clef=clef+"__"+i
-      #self.dictMCVal[obj.nom]=obj.valeur
-      self.dictMCVal[clef]=obj.valeur
-
-      s=PythonGenerator.generMCSIMP(self,obj)
-      return s
-  
-   # __GBO__: surcharge de PythonGenerator
-   def generMACRO_ETAPE(self,obj):
-      print obj.nom
-      if obj.nom == "S_EP_INTERNE" :
-        self.tube=1
-      if obj.nom == "M_COUDE" :
-        self.coude=1
-      s=PythonGenerator.generMACRO_ETAPE(self,obj)
-      return s
-
index 9e01ebf1c98024958fd51dfb318cc6a2753601fa..570de1544918f90e7829e811b162f9c0fd4a872c 100644 (file)
@@ -138,8 +138,6 @@ class TELEMACGenerator(PythonGenerator):
         self.texteDico += '/\t\t\t'+obj.nom +'\n'
         self.texteDico += '/------------------------------------------------------/\n'
         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))
         
         return s
@@ -147,10 +145,6 @@ class TELEMACGenerator(PythonGenerator):
    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
         s=PythonGenerator.generMCSIMP(self,obj)
-        #if obj.nom == "Title" :
-            #print s
-         #  print str(obj.valeur)
-            #print repr(obj.valeur)
 
        
         # Attention pas sur --> ds certains cas non traite par MCFACT ?
@@ -172,15 +166,14 @@ class TELEMACGenerator(PythonGenerator):
         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
+             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=''
              for v in obj.valeur:
                try : sT +=str(DicoEnumCasEnInverse[obj.nom][v]) +";"
-               except : print "generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur
+               except : print ("generMCSIMP Pb Tuple avec ", obj.nom, v, obj.valeur)
              #sTelemac=sT[0:-1]+"'"
              sTelemac=sT[0:-1]
            else  :
@@ -207,7 +200,6 @@ class TELEMACGenerator(PythonGenerator):
 
         if obj.nom not in self.dicoCataToCas :
            if obj.nom == 'Consigne' : return ""
-           print obj.nom , ' non traite'
            return s
 
         nom=self.dicoCataToCas[obj.nom]
@@ -217,11 +209,6 @@ class TELEMACGenerator(PythonGenerator):
         ligne=nom+ " : " + s3 + "\n"
         if len(ligne) > 72 : ligne=self.redecoupeLigne(nom,s3) 
         self.texteDico+=ligne
-        #print "_______________________"
-        #print s
-        #print ligne
-        #print "_______________________"
-        return s
 
    def generMCFACT(self,obj):
       """
@@ -256,7 +243,6 @@ class TELEMACGenerator(PythonGenerator):
               self.VE=True
               self.textVE += str(valeur) +"; "
           else : self.textVE += "0.; "
-      print self.textPE, self.textFE,self.textVE
 
    def BOUNDARY_CONDITIONS(self,obj):
        # sans '; '
@@ -269,8 +255,8 @@ class TELEMACGenerator(PythonGenerator):
  
 
    def NAME_OF_TRACER(self,obj):
-       print dir(obj) 
-       print obj.get_genealogie_precise()
+       print (dir(obj) )
+       print (obj.get_genealogie_precise())
 
    def Validation(self,obj):
        self.texteDico += "VALIDATION : True \n"
@@ -279,14 +265,12 @@ class TELEMACGenerator(PythonGenerator):
        an=obj.get_child('Year').valeur
        mois=obj.get_child('Month').valeur
        jour=obj.get_child('Day').valeur
-       #print an, mois, jour
        self.texteDico += "ORIGINAL DATE OF TIME  :"+ str(an)+ " ,"+str(mois)+ "," +str(jour)+ "\n"
 
    def Original_Hour_Of_Time (self,obj):
        hh=obj.get_child('Hour').valeur
        mm=obj.get_child('Minute').valeur
        ss=obj.get_child('Second').valeur
-       #print hh, mm, ss
        self.texteDico += "ORIGINAL HOUR OF TIME :"+str(hh)+" ,"+str(mm)+ ","+str(ss)+"\n"
 
    def Type_Of_Advection(self,obj):
@@ -297,12 +281,9 @@ class TELEMACGenerator(PythonGenerator):
        self.chercheChildren(obj)
        dicoSuf={ 'U_And_V' : 0, 'H' : 1, 'K_And_Epsilon' : 2, 'Tracers' : 3}
        for c in  self.listeMCAdvection:
-           #print c.nom
            if c.nom[0:18] == 'Type_Of_Advection_' and c.valeur!=None:
               suf=c.nom[18:]
               index=dicoSuf[suf]
-              #print c.valeur
-              #print DicoEnumCasEnInverse['Type_Of_Advection']
               listeAdvection[index]=DicoEnumCasEnInverse['Type_Of_Advection'][c.valeur]
            if c.nom[0:13] == 'Supg_Option_' and c.valeur!=None:
               suf=c.nom[13:]
index 17ce5e0c5a8331e503cbf45f59cdf3eb6a56e675..eb3324bf29f753b1ee2fccc63b32d4ddb0d35d9b 100644 (file)
@@ -80,7 +80,7 @@ class ZCrackGenerator(PythonGenerator):
    def writeDefault(self,fn) :
         fileZcrack = fn[:fn.rfind(".")] + '.z7p'
         f = open( str(fileZcrack), 'wb')
-        print self.textePourRun
+        print (self.textePourRun)
       
         self.ajoutRun()
         self.textePourRunAvecDouble=self.textePourRun.replace("'",'"')
diff --git a/generator/generator_cuve2dg.py b/generator/generator_cuve2dg.py
deleted file mode 100644 (file)
index 94f901d..0000000
+++ /dev/null
@@ -1,1723 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-    DefaillCUVE pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-
-from Noyau import N_CR
-from Accas import MCSIMP
-from generator_python import PythonGenerator
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'cuve2dg',
-        # La factory pour créer une instance du plugin
-          'factory' : Cuve2dgGenerator,
-          }
-
-
-class Cuve2dgGenerator(PythonGenerator):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un texte au format eficas et 
-       un texte au format DefaillCUVE
-
-   """
-   # Les extensions de fichier préconisées
-   extensions=('.comm',)
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR generateur format DefaillCUVE pour DefaillCUVE',
-                         fin='fin CR format DefaillCUVE pour DefaillCUVE')
-      # Le texte au format DefaillCUVE est stocké dans l'attribut textCuve
-      self.textCuve=''
-
-      # Ce dictionnaire liste le nom des variables utilisees dans le script
-      self.variable = {
-         "NiveauImpression" : "MESSAGE_LEVEL",
-        "FichierDataIn"    : "DATARESUME_FILE",
-        "FichierTempSigma" : "TEMPSIG_FILE",
-        "FichierCSV"       : "CSV_FILE",
-        "FichierRESTART" : "RESTART_FILE",
-        "FichierEXTR" : "EXTR_FILE",
-        "ChoixPlugin" : "CHOIPLUG",
-        "GrandeurEvaluee" : "GRANDEUR",
-        "IncrementTemporel" : "INCRTPS",
-        "IncrementMaxTemperature" : "DTPREC",
-        "ChoixExtractionTransitoires" : "CHOIEXTR",
-        "IncrementMaxTempsAffichage" : "DTARCH",
-        "TraitementGeometrie" : "TYPEGEOM",
-        "RayonInterne" : "RINT",
-        "RayonInterne_mess" : "RINT_MESSAGE",
-        "RayonExterne" : "REXT",
-        "RayonExterne_mess" : "REXT_MESSAGE",
-        "EpaisseurRevetement" : "LREV",
-        "EpaisseurRevetement_mess" : "LREV_MESSAGE",
-        "LigamentExterneMin" : "LIGMIN",
-        "LigamentExterneMin_mess" : "LIGMIN_MESSAGE",
-        "NombreNoeudsMaillage" : "NBNO",
-        "TypeInitial" : "TYPEDEF",
-        "Orientation" : "ORIEDEF",
-        "Position" : "POSDEF",
-        "ProfondeurRadiale" : "PROFDEF",
-        "ProfondeurRadiale_mess" : "PROFDEF_MESSAGE",
-        "ModeCalculLongueur" : "OPTLONG",
-        "Longueur" : "LONGDEF",
-        "Longueur_mess" : "LONGDEF_MESSAGE",
-        "CoefDirecteur" : "PROFSURLONG",
-        "CoefDirecteur_mess" : "PROFSURLONG_MESSAGE",
-        "Constante" : "LONGCONST",
-        "ModeCalculDecalage" : "DECATYP",
-        "DecalageNormalise" : "DECANOR",
-        "DecalageNormalise_mess" : "DECANOR_MESSAGE",
-        "DecalageRadial" : "DECADEF",
-        "DecalageRadial_mess" : "DECADEF_MESSAGE",
-        "Azimut" : "ANGLDEF",
-        "Azimut_mess" : "ANGLDEF_MESSAGE",
-        "Altitude_mess" : "ANGLDEF_MESSAGE",
-        "Altitude" : "ALTIDEF",
-        "Altitude_mess" : "ALTIDEF_MESSAGE",
-        "Pointe" : "POINDEF",
-        "ModeleFluence" : "MODELFLUENCE",
-        "ZoneActiveCoeur_AltitudeSup" : "H1COEUR",
-        "ZoneActiveCoeur_AltitudeInf" : "H2COEUR",
-        "FluenceMax" : "fmax",
-        "KPFrance" : "KPFRANCE",
-        "KPUS" : "KPUS",
-        "Azimut_0deg" : "COEFFLUENCE1",
-        "Azimut_5deg" : "COEFFLUENCE2",
-        "Azimut_10deg" : "COEFFLUENCE3",
-        "Azimut_15deg" : "COEFFLUENCE4",
-        "Azimut_20deg" : "COEFFLUENCE5",
-        "Azimut_25deg" : "COEFFLUENCE6",
-        "Azimut_30deg" : "COEFFLUENCE7",
-        "Azimut_35deg" : "COEFFLUENCE8",
-        "Azimut_40deg" : "COEFFLUENCE9",
-        "Azimut_45deg" : "COEFFLUENCE10",
-        "TypeIrradiation" : "TYPEIRR",
-        "RTNDT" : "RTNDT",
-        "ModeleIrradiation" : "MODELIRR",
-        "TeneurCuivre" : "CU",
-        "TeneurCuivre_mess" : "CU_MESSAGE",
-        "TeneurNickel" : "NI",
-        "TeneurNickel_mess" : "NI_MESSAGE",
-        "TeneurPhosphore" : "P",
-        "TeneurPhosphore_mess" : "P_MESSAGE",
-        "MoyenneRTndt" : "RTimoy",
-        "MoyenneRTndt_mess" : "RTimoy_MESSAGE",
-        "CoefVariationRTndt" : "RTicov",
-        "CoefVariationRTndt_mess" : "RTicov_MESSAGE",
-        "EcartTypeRTndt" : "USectDRT",
-        "EcartTypeRTndt_mess" : "USectDRT_MESSAGE",
-        "NombreEcartTypeRTndt" : "nbectDRTNDT",
-        "NombreEcartTypeRTndt_mess" : "nbectDRTNDT_MESSAGE",
-        "ModeleTenacite" : "MODELKIC",
-        "NombreCaracteristique" : "NBCARAC",
-        "NbEcartType_MoyKIc" : "nbectKIc",
-        "NbEcartType_MoyKIc_mess" : "nbectKIc_MESSAGE",
-        "PalierDuctile_KIc" : "KICPAL",
-        "CoefficientVariation_KIc" : "KICCDV",
-        "Fractile_KIc" : "fractKIc",
-        "Fractile_KIc_mess" : "fractKIc_MESSAGE",
-        "Temperature_KIc100" : "T0WALLIN",
-        "A1" : "A1",
-        "A2" : "A2",
-        "A3" : "A3",
-        "B1" : "B1",
-        "B2" : "B2",
-        "B3" : "B3",
-        "C1" : "C1",
-        "C2" : "C2",
-        "C3" : "C3",
-        "ChoixCorrectionLongueur" : "CHOIXCL",
-        "AttnCorrBeta" : "ATTNCORRBETA",
-        "CorrIrwin" : "CORRIRWIN",
-        "ArretDeFissure" : "ARRETFISSURE",
-        "IncrementTailleFissure" : "INCRDEF",
-        "IncrementTailleFissure_mess" : "INCRDEF_MESSAGE",
-        "NbEcartType_MoyKIa" : "nbectKIa",
-        "PalierDuctile_KIa" : "KIAPAL",
-        "CoefficientVariation_KIa" : "KIACDV",
-        "ChoixCoefficientChargement" : "CHOIXSIGM",
-        "CoefficientDuctile" : "COEFSIGM1",
-        "CoefficientFragile" : "COEFSIGM2",
-        "InstantInitialisation" : "INSTINIT",
-        "ConditionLimiteThermiqueREV" : "KTHREV",
-        "TemperatureDeformationNulleREV" : "TREFREV",
-        "TemperaturePourCoefDilatThermREV" : "TDETREV",
-        "CoefficientPoissonREV" : "NUREV",
-        "ConditionLimiteThermiqueMDB" : "KTHMDB",
-        "TemperatureDeformationNulleMDB" : "TREFMDB",
-        "TemperaturePourCoefDilatThermMDB" : "TDETMDB",
-        "CoefficientPoissonMDB" : "NUMDB",
-        "TypeConditionLimiteThermique" : "TYPCLTH",
-        "Instant_1" : "INSTANT1",
-        "Instant_2" : "INSTANT2",
-        "Instant_3" : "INSTANT3",
-        "DebitAccumule" : "QACCU",
-        "DebitInjectionSecurite" : "QIS",
-        "TempInjectionSecurite" : "TIS",
-        "TempInjectionSecurite_mess" : "TIS_MESSAGE",
-        "DiametreHydraulique" : "DH",
-        "DiametreHydraulique_mess" : "DH_MESSAGE",
-        "SectionEspaceAnnulaire" : "SECTION",
-        "SectionEspaceAnnulaire_mess" : "SECTION_MESSAGE",
-        "HauteurCaracConvectionNaturelle" : "DELTA",
-        "HauteurCaracConvectionNaturelle_mess" : "DELTA_MESSAGE",
-        "CritereConvergenceRelative" : "EPS",
-        "CoefficientsVestale" : "COEFVESTALE",
-        "VolumeMelange_CREARE" : "VMTAB",
-        "TemperatureInitiale_CREARE" : "T0",
-        "TemperatureInitiale_CREARE_mess" : "T0_MESSAGE",
-        "SurfaceEchange_FluideStructure" : "SE",
-        "SurfaceEchange_FluideStructure_mess" : "SE_MESSAGE",
-        "InstantPerteCirculationNaturelle" : "INST_PCN",
-         }
-
-      # Ce dictionnaire liste le nom des valeurs proposées utilisees dans le script
-      self.valeurproposee = {
-         "Aucune impression" : "0",
-         "Temps total" : "1",
-         "Temps intermediaires" : "2",
-        "Facteur de marge KIc/KCP" : "FM_KICSURKCP",
-        "Marge KIc-KI" : "MARGE_KI",
-        "Marge KIc-KCP" : "MARGE_KCP",
-        "Topologie" : "GEOMETRIE",
-        "Maillage" : "MAILLAGE",
-        "Defaut Sous Revetement" : "DSR",
-        "Defaut Decale" : "DECALE",
-        "Defaut Debouchant" : "DEBOUCHANT",
-        "Longitudinale" : "LONGITUD",
-        "Circonferentielle" : "CIRCONF",
-        "Virole" : "VIROLE",
-        "Joint soude" : "JSOUDE",
-        "Valeur" : "VALEUR",
-        "Fonction affine de la profondeur" : "FCTAFFINE",
-        "Valeur normalisee" : "NORMALISE",
-        "A" : "A",
-        "B" : "B",
-        "A et B" : "BOTH",
-        "Exponentiel sans revetement k=9.7 (Reglementaire)" : "Reglementaire",
-        "Exponentiel sans revetement k=12.7 (France)" : "France",
-        "Exponentiel sans revetement k=0. (ValeurImposee)" : "ValeurImposee",
-        "Donnees francaises du palier CPY (SDM)" : "SDM",
-        "Regulatory Guide 1.99 rev 2 (USNRC)" : "USNRC",
-        "Dossier 900 MWe AP9701 rev 2 (REV_2)" : "REV_2",
-        "Lissage du modele ajuste (SDM_Lissage)" : "SDM_Lissage",
-        "Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)" : "GrandeDev",
-        "Grand developpement (GD_Cuve)" : "GD_Cuve",
-        "Exponentiel sans revetement k=9.7 (Reglementaire CUVE1D)" : "Cuve1D",
-        "RTndt de la cuve a l instant de l analyse" : "RTNDT",
-        "Modele d irradiation" : "FLUENCE",
-        "Formule de FIM/FIS Lefebvre modifiee" : "LEFEBnew",
-        "Metal de Base : formule de FIM/FIS Houssin" : "HOUSSIN",
-        "Metal de Base : formule de FIM/FIS Persoz" : "PERSOZ",
-        "Metal de Base : formule de FIM/FIS Lefebvre" : "LEFEBVRE",
-        "Metal de Base : Regulatory Guide 1.00 rev 2" : "USNRCmdb",
-        "Joint Soude : formulation de FIM/FIS Brillaud" : "BRILLAUD",
-        "Joint Soude : Regulatory Guide 1.00 rev 2" : "USNRCsoud",
-        "RCC-M/ASME coefficient=2" : "RCC-M",
-        "RCC-M/ASME coefficient=2 CUVE1D" : "RCC-M_simpl",
-        "RCC-M/ASME coefficient=2.33 (Houssin)" : "Houssin_RC",
-        "RCC-M/ASME avec KI=KIpalier" : "RCC-M_pal",
-        "RCC-M/ASME avec KI~exponentiel" : "RCC-M_exp",
-        "Weibull basee sur la master cuve" : "Wallin",
-        "Weibull basee sur la master cuve (REME)" : "REME",
-        "Weibull n\xb01 (etude ORNL)" : "ORNL",
-        "Weibull n\xb02" : "WEIB2",
-        "Weibull n\xb03" : "WEIB3",
-        "Weibull generalisee" : "WEIB-GEN",
-        "Exponentielle n\xb01 (Frama)" : "Frama",
-        "Exponentielle n\xb02 (LOGWOLF)" : "LOGWOLF",
-        "Quantile" : "QUANTILE",
-        "Ordre" : "ORDRE",
-        "Enthalpie" : "ENTHALPIE",
-        "Chaleur" : "CHALEUR",
-        "Temperature imposee en paroi" : "TEMP_IMPO",
-        "Flux de chaleur impose en paroi" : "FLUX_REP",
-        "Temperature imposee du fluide et coefficient echange" : "ECHANGE",
-        "Debit massique et temperature d injection de securite" : "DEBIT",
-        "Temperature imposee du fluide et debit d injection de securite" : "TEMP_FLU",
-        "Courbe APRP" : "APRP",
-        "Calcul TEMPFLU puis DEBIT" : "TFDEBIT",
-         }
-
-      # Ce dictionnaire liste le commentaire des variables utilisees dans le script
-      self.comment = {
-         "NiveauImpression" : "Niveau d impression des messages a l ecran (=0 : rien, =1 : temps calcul total, =2 : temps intermediaires)",
-        "FichierDataIn"    : "sortie du fichier recapitulatif des donnees d entree {OUI ; NON}",
-        "FichierTempSigma" : "sortie des fichiers temperature et contraintes {OUI ; NON}",
-        "FichierCSV" : "sortie du fichier resultat template_DEFAILLCUVE.CSV {OUI ; NON}",
-        "FichierRESTART" : "sortie du fichier de re-demarrage",
-        "FichierEXTR" : "sortie du fichier d extraction des transitoires",
-        "ChoixPlugin" : "choix d'un repertoire de plug-in",
-        "GrandeurEvaluee" : "choix de la grandeur sous critere evaluee {FM_KICSURKCP ; MARGE_KI ; MARGE_KCP}",
-        "IncrementTemporel" : "increment temporel pour l analyse PROBABILISTE (si DETERMINISTE, fixer a 1)",
-        "IncrementMaxTemperature" : "increment max de temp/noeud/instant (degC)",
-        "ChoixExtractionTransitoires" : "choix d'extraction de transitoires de temp et contraintes",
-        "IncrementMaxTempsAffichage" : "increment max de temps pour affichage (s)",
-        "TraitementGeometrie" : "traitement de la geometrie de la cuve : {GEOMETRIE, MAILLAGE}",
-        "RayonInterne" : "rayon interne (m)",
-        "RayonInterne_mess" : "affichage ecran du rayon interne (m)",
-        "RayonExterne" : "rayon externe (m)",
-        "RayonExterne_mess" : "affichage ecran du rayon externe (m)",
-        "EpaisseurRevetement" : "epaisseur revetement (m)",
-        "EpaisseurRevetement_mess" : "affichage ecran de l epaisseur revetement (m)",
-        "LigamentExterneMin" : "ligament externe minimal avant rupture (% de l'epaisseur de cuve)",
-        "LigamentExterneMin_mess" : "affichage ecran du ligament externe minimal avant rupture (% de l'epaisseur de cuve)",
-        "NombreNoeudsMaillage" : "nbre de noeuds dans l'epaisseur de la cuve",
-        "TypeInitial" : "type initial du defaut : DEBOUCHANT=Defaut Debouchant, DSR=Defaut Sous Revetement, DECALE=Defaut Decale",
-        "Orientation" : "orientation (LONGITUD / CIRCONF)",
-        "Position" : "Position du defaut (VIROLE / JSOUDE)",
-        "ProfondeurRadiale" : "profondeur radiale ou encore hauteur (m)",
-        "ProfondeurRadiale_mess" : "affichage ecran de la profondeur radiale ou encore hauteur (m)",
-        "ModeCalculLongueur" : "option pour definir la longueur du defaut (VALEUR pour une valeur fixe, FCTAFFINE pour une fct affine de la profondeur)",
-        "Longueur" : "longueur (m) pour defaut Sous Revetement",
-        "Longueur_mess" : "affichage ecran de la longueur (m) pour defaut Sous Revetement",
-        "CoefDirecteur" : "pente de la fonction affine l = h/profsurlong + a0",
-        "CoefDirecteur_mess" : "affichage ecran de la pente de la fonction affine l = h/profsurlong + a0",
-        "Constante" : "constante de la fonction affine a0",
-        "ModeCalculDecalage" : "type de decalage : normalise (NORMALISE) ou reel (VALEUR)",
-        "DecalageNormalise" : "decalage radial normalise (valeur comprise entre 0. et 1.) pour defaut Sous Revetement",
-        "DecalageNormalise_mess" : "affichage ecran du decalage radial normalise (valeur comprise entre 0. et 1.) pour defaut Sous Revetement",
-        "DecalageRadial" : "decalage radial reel (m) pour defaut decale",
-        "DecalageRadial_mess" : "affichage ecran du decalage radial reel (m) pour defaut decale",
-        "Azimut" : "coordonnee angulaire (degre)",
-        "Azimut_mess" : "affichage ecran de la coordonnee angulaire (degre)",
-        "Altitude" : "altitude (m) : valeur negative",
-        "Altitude_mess" : "affichage ecran de l altitude (m) : valeur negative",
-        "Pointe" : "choix du(des) point(s) du defaut considere {'A','B','BOTH'} pour DSR et DECALE (pour DEBOUCHANT : automatiquement 'B')",
-        "ModeleFluence" : "modele de fluence : {Reglementaire, France, ValeurImposee, SDM, USNRC, REV_2, SDM_Lissage, GrandeDev, GD_Cuve, Cuve1D}",
-        "ZoneActiveCoeur_AltitudeSup" : "cote superieure de la zone active de coeur (ici pour cuve palier 900Mw)",
-        "ZoneActiveCoeur_AltitudeInf" : "cote inferieure de la zone active de coeur (ici pour cuve palier 900Mw)",
-        "FluenceMax" : "fluence maximale assimilee par la cuve (n/cm2)",
-        "KPFrance" : "parametre exponentiel du modele France",
-        "KPUS" : "parametre exponentiel du modele US",
-        "Azimut_0deg" : "fluence a l'azimut 0 (10^19 n/cm)",
-        "Azimut_5deg" : "fluence a l'azimut 5 (10^19 n/cm)",
-        "Azimut_10deg" : "fluence a l'azimut 10 (10^19 n/cm)",
-        "Azimut_15deg" : "fluence a l'azimut 15 (10^19 n/cm)",
-        "Azimut_20deg" : "fluence a l'azimut 20 (10^19 n/cm)",
-        "Azimut_25deg" : "fluence a l'azimut 25 (10^19 n/cm)",
-        "Azimut_30deg" : "fluence a l'azimut 30 (10^19 n/cm)",
-        "Azimut_35deg" : "fluence a l'azimut 35 (10^19 n/cm)",
-        "Azimut_40deg" : "fluence a l'azimut 40 (10^19 n/cm)",
-        "Azimut_45deg" : "fluence a l'azimut 45 (10^19 n/cm)",
-        "TypeIrradiation" : "type irradiation : {RTNDT, FLUENCE}",
-        "RTNDT" : "RTNDT finale (degC)",
-        "ModeleIrradiation" : "modele d irradiation : LEFEBnew, ou {HOUSSIN, PERSOZ, LEFEBVRE, USNRCmdb} pour virole et {BRILLAUD,USNRCsoud} pour jointsoude",
-        "TeneurCuivre" : "teneur en cuivre (%)",
-        "TeneurCuivre_mess" : "affichage ecran de la teneur en cuivre (%)",
-        "TeneurNickel" : "teneur en nickel (%)",
-        "TeneurNickel_mess" : "affichage ecran de la teneur en nickel (%)",
-        "TeneurPhosphore" : "teneur en phosphore (%)",
-        "TeneurPhosphore_mess" : "affichage ecran de la teneur en phosphore (%)",
-        "MoyenneRTndt" : "moyenne de la RTNDT initiale : virole C1 de cuve Chinon : mdb=>-17.degC et js=>42.degC (HT-56/05/038 : p.52)",
-        "MoyenneRTndt_mess" : "affichage ecran de la moyenne de la RTNDT initiale",
-        "CoefVariationRTndt" : "coef de variation de la RTNDT initiale",
-        "CoefVariationRTndt_mess" : "affichage ecran du coef de variation de la RTNDT initiale",
-        "EcartTypeRTndt" : "pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)",
-        "EcartTypeRTndt_mess" : "affichage ecran, pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)",
-        "NombreEcartTypeRTndt" : "Nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE (en DETERMINISTE, fixer a 2.)",
-        "NombreEcartTypeRTndt_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE",
-        "ModeleTenacite" : "modele de tenacite : {RCC-M, RCC-M_pal, RCC-M_exp, RCC-M_simpl, Houssin_RC, Wallin, REME, ORNL, Frama, WEIB3, WEIB2, LOGWOLF, WEIB-GEN}",
-        "NombreCaracteristique" : "Nb caracteristique : ORDRE ou QUANTILE",
-        "NbEcartType_MoyKIc" : "Nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE (en DETERMINISTE, fixer a -2.)",
-        "NbEcartType_MoyKIc_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE",
-        "PalierDuctile_KIc" : "palier deterministe de K1c (MPa(m^0.5))",
-        "CoefficientVariation_KIc" : "coef de variation de la loi normale de K1c",
-        "Fractile_KIc" : "valeur caracteristique de KIc exprimee en ordre de fractile (%)",
-        "Fractile_KIc_mess" : "affichage ecran de la valeur caracteristique de KIc exprimee en ordre de fractile (%)",
-        "Temperature_KIc100" : "parametre T0 du modele Wallin (degC)",
-        "A1" : "coef des coefs d une WEIBULL generale",
-        "A2" : "",
-        "A3" : "",
-        "B1" : "",
-        "B2" : "",
-        "B3" : "",
-        "C1" : "",
-        "C2" : "",
-        "C3" : "",
-        "ChoixCorrectionLongueur" : "Activation ou non de la correction de longueur {OUI ; NON}",
-        "AttnCorrBeta" : "Attenuation de la correction plastique : {OUI, NON} ==> uniquement pour DSR ou DECALE",
-        "CorrIrwin" : "Correction plastique IRWIN : {OUI, NON} ==> uniquement pour DEBOUCHANT",
-        "ArretDeFissure" : "prise en compte de l arret de fissure {OUI, NON} (en PROBABILISTE, fixer a NON)",
-        "IncrementTailleFissure" : "increment de la taille de fissure (m)",
-        "IncrementTailleFissure_mess" : "affichage ecran de l increment de la taille de fissure (m)",
-        "NbEcartType_MoyKIa" : "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma)",
-        "PalierDuctile_KIa" : "palier deterministe de K1a quand modele RCC-M  (MPa(m^0.5))",
-        "CoefficientVariation_KIa" : "coef de variation de la loi normale de K1a",
-        "ChoixCoefficientChargement" : "prise en compte de coefficients sur le chargement (OUI/NON)",
-        "CoefficientDuctile" : "coefficient multiplicateur pour rupture ductile",
-        "CoefficientFragile" : "coefficient multiplicateur pour rupture fragile",
-        "InstantInitialisation" : "instant initial (s)",
-        "ConditionLimiteThermiqueREV" : "Option 'ENTHALPIE' ou 'CHALEUR'",
-        "TemperatureDeformationNulleREV" : "temperature de deformation nulle (degC)",
-        "TemperaturePourCoefDilatThermREV" : "temperature de definition du coefficient de dilatation thermique (degC)",
-        "CoefficientPoissonREV" : "coefficient de Poisson",
-        "ConditionLimiteThermiqueMDB" : "Option 'ENTHALPIE' ou 'CHALEUR'",
-        "TemperatureDeformationNulleMDB" : "temperature de deformation nulle (degC)",
-        "TemperaturePourCoefDilatThermMDB" : "temperature de definition du coefficient de dilatation thermique (degC)",
-        "CoefficientPoissonMDB" : "coefficient de Poisson",
-        "TypeConditionLimiteThermique" : "Type de condition thermique en paroi interne {TEMP_IMPO,FLUX_REP,ECHANGE,DEBIT,TEMP_FLU,APRP}",
-        "Instant_1" : "Borne superieure de l intervalle de temps du 1er palier TACCU",
-        "Instant_2" : "Borne superieure de l intervalle de temps du 2nd palier T1",
-        "Instant_3" : "Borne superieure de l intervalle de temps du 3eme palier TIS",
-        "DebitAccumule" : "Debit accumule (en m3/h)",
-        "DebitInjectionSecurite" : "Debit injection de securite (en m3/h)",
-        "TempInjectionSecurite" : "Temperature injection de securite (en degC)",
-        "TempInjectionSecurite_mess" : "affichage ecran de la temperature injection de securite",
-        "DiametreHydraulique" : "Diametre hydraulique (m)",
-        "DiametreHydraulique_mess" : "affichage ecran du diametre hydraulique (m)",
-        "SectionEspaceAnnulaire" : "Section espace annulaire (m2)",
-        "SectionEspaceAnnulaire_mess" : "affichage ecran de la section espace annulaire (m2)",
-        "HauteurCaracConvectionNaturelle" : "Hauteur caracteristique convection naturelle (m)",
-        "HauteurCaracConvectionNaturelle_mess" : "affichage ecran de la hauteur caracteristique convection naturelle (m)",
-        "CritereConvergenceRelative" : "Critere convergence relative (-)",
-        "CoefficientsVestale" : "Application des coefs de Vestale {OUI;NON}",
-        "VolumeMelange_CREARE" : "Transitoire de volume de melange CREARE (m3)",
-        "TemperatureInitiale_CREARE" : "Temperature initiale CREARE (degC)",
-        "TemperatureInitiale_CREARE_mess" : "affichage ecran de la temperature initiale CREARE (degC)",
-        "SurfaceEchange_FluideStructure" : "Surface d'echange fluide/structure (m2)",
-        "SurfaceEchange_FluideStructure_mess" : "affichage ecran de la surface d'echange fluide/structure (m2)",
-        "InstantPerteCirculationNaturelle" : "Instant de perte de circulation naturelle",
-         }
-
-      # Ce dictionnaire liste la valeur par defaut des variables utilisees dans le script
-      self.default = {
-         "NiveauImpression" : "1",
-        "FichierDataIn" : "NON",
-        "FichierTempSigma" : "NON",
-        "FichierCSV" : "NON",
-        "FichierRESTART" : "NON",
-        "FichierEXTR" : "NON",
-        "ChoixPlugin" : "NON",
-        "GrandeurEvaluee" : "FM_KICSURKCP",
-        "IncrementTemporel" : "1",
-        "IncrementMaxTemperature" : "0.1",
-        "ChoixExtractionTransitoires" : "NON",
-        "IncrementMaxTempsAffichage" : "1000.",
-        "TraitementGeometrie" : "GEOMETRIE",
-        "RayonInterne" : "1.994",
-        "RayonInterne_mess" : "NON",
-        "RayonExterne" : "2.2015",
-        "RayonExterne_mess" : "NON",
-        "EpaisseurRevetement" : "0.0075",
-        "EpaisseurRevetement_mess" : "NON",
-        "LigamentExterneMin" : "0.75",
-        "LigamentExterneMin_mess" : "NON",
-        "NombreNoeudsMaillage" : "300",
-        "TypeInitial" : "DSR",
-        "Position" : "VIROLE",
-        "ProfondeurRadiale" : "0.006",
-        "ProfondeurRadiale_mess" : "NON",
-        "ModeCalculLongueur" : "VALEUR",
-        "Longueur" : "0.060",
-        "Longueur_mess" : "NON",
-        "CoefDirecteur" : "10.",
-        "CoefDirecteur_mess" : "NON",
-        "Constante" : "0.",
-        "ModeCalculDecalage" : "VALEUR",
-        "DecalageNormalise" : "0.1",
-        "DecalageNormalise_mess" : "NON",
-        "DecalageRadial" : "0.",
-        "DecalageRadial_mess" : "NON",
-        "Azimut" : "0.",
-        "Azimut_mess" : "NON",
-        "Altitude" : "-4.",
-        "Altitude_mess" : "NON",
-        "Pointe" : "B",
-        "ModeleFluence" : "Reglementaire",
-        "ZoneActiveCoeur_AltitudeSup" : "-3.536",
-        "ZoneActiveCoeur_AltitudeInf" : "-7.194",
-        "FluenceMax" : "6.5",
-        "KPFrance" : "12.7",
-        "KPUS" : "9.4488",
-        "Azimut_0deg" : "5.8",
-        "Azimut_5deg" : "5.48",
-        "Azimut_10deg" : "4.46",
-        "Azimut_15deg" : "3.41",
-        "Azimut_20deg" : "3.37",
-        "Azimut_25deg" : "3.16",
-        "Azimut_30deg" : "2.74",
-        "Azimut_35deg" : "2.25",
-        "Azimut_40deg" : "1.89",
-        "Azimut_45deg" : "1.78",
-        "TypeIrradiation" : "RTNDT",
-        "RTNDT" : "64.",
-        "ModeleIrradiation" : "HOUSSIN",
-        "TeneurCuivre" : "0.0972",
-        "TeneurCuivre_mess" : "NON",
-        "TeneurNickel" : "0.72",
-        "TeneurNickel_mess" : "NON",
-        "TeneurPhosphore" : "0.00912",
-        "TeneurPhosphore_mess" : "NON",
-        "MoyenneRTndt" : "-12.0",
-        "MoyenneRTndt_mess" : "NON",
-        "CoefVariationRTndt" : "0.1",
-        "CoefVariationRTndt_mess" : "NON",
-        "EcartTypeRTndt" : "-2.",
-        "EcartTypeRTndt_mess" : "NON",
-        "NombreEcartTypeRTndt" : "2.",
-        "NombreEcartTypeRTndt_mess" : "NON",
-        "ModeleTenacite" : "RCC-M",
-        "NombreCaracteristique" : "Quantile",
-        "NbEcartType_MoyKIc" : "-2.",
-        "NbEcartType_MoyKIc_mess" : "NON",
-        "PalierDuctile_KIc" : "195.",
-        "CoefficientVariation_KIc" : "0.15",
-        "Fractile_KIc" : "5.",
-        "Fractile_KIc_mess" : "NON",
-        "Temperature_KIc100" : "-27.",
-        "A1" : "21.263",
-        "A2" : "9.159",
-        "A3" : "0.04057",
-        "B1" : "17.153",
-        "B2" : "55.089",
-        "B3" : "0.0144",
-        "C1" : "4.",
-        "C2" : "0.",
-        "C3" : "0.",
-        "ChoixCorrectionLongueur" : "OUI",
-        "AttnCorrBeta" : "NON",
-        "CorrIrwin" : "NON",
-        "ArretDeFissure" : "NON",
-        "IncrementTailleFissure" : "0.",
-        "IncrementTailleFissure_mess" : "NON",
-        "NbEcartType_MoyKIa" : "0.",
-        "PalierDuctile_KIa" : "0.",
-        "CoefficientVariation_KIa" : "0.",
-        "ChoixCoefficientChargement" : "NON",
-        "CoefficientDuctile" : "1.0",
-        "CoefficientFragile" : "1.0",
-        "InstantInitialisation" : "-1.",
-        "ConditionLimiteThermiqueREV" : "CHALEUR",
-        "TemperatureDeformationNulleREV" : "20.",
-        "TemperaturePourCoefDilatThermREV" : "287.",
-        "CoefficientPoissonREV" : "0.3",
-        "ConditionLimiteThermiqueMDB" : "CHALEUR",
-        "TemperatureDeformationNulleMDB" : "20.",
-        "TemperaturePourCoefDilatThermMDB" : "287.",
-        "CoefficientPoissonMDB" : "0.3",
-        "TypeConditionLimiteThermique" : "TEMP_IMPO",
-        "Instant_1" : "21.",
-        "Instant_2" : "45.",
-        "Instant_3" : "5870.",
-        "DebitAccumule" : "2.3",
-        "DebitInjectionSecurite" : "0.375",
-        "TempInjectionSecurite" : "9.",
-        "TempInjectionSecurite_mess" : "NON",
-        "DiametreHydraulique" : "0.3816",
-        "DiametreHydraulique_mess" : "NON",
-        "SectionEspaceAnnulaire" : "0.21712",
-        "SectionEspaceAnnulaire_mess" : "NON",
-        "HauteurCaracConvectionNaturelle" : "6.",
-        "HauteurCaracConvectionNaturelle_mess" : "NON",
-        "CritereConvergenceRelative" : "0.00001",
-        "CoefficientsVestale" : "NON",
-#       "VolumeMelange_CREARE" : "14.9",
-        "TemperatureInitiale_CREARE" : "250.",
-        "TemperatureInitiale_CREARE_mess" : "NON",
-        "SurfaceEchange_FluideStructure" : "0.",
-        "SurfaceEchange_FluideStructure_mess" : "NON",
-        "InstantPerteCirculationNaturelle" : "400.",
-         }
-
-      # Ce dictionnaire liste la rubrique d'appartenance des variables utilisees dans le script
-      self.bloc = {
-         "NiveauImpression" : "OPTIONS",
-        "FichierDataIn" : "OPTIONS",
-        "FichierTempSigma" : "OPTIONS",
-        "FichierCSV" : "OPTIONS",
-        "FichierRESTART" : "OPTIONS",
-        "FichierEXTR" : "OPTIONS",
-        "ChoixPlugin" : "OPTIONS",
-        "GrandeurEvaluee" : "OPTIONS",
-        "IncrementTemporel" : "OPTIONS",
-        "IncrementMaxTemperature" : "OPTIONS",
-        "ChoixExtractionTransitoires" : "OPTIONS",
-        "IncrementMaxTempsAffichage" : "OPTIONS",
-        "TraitementGeometrie" : "DONNEES DE LA CUVE",
-        "RayonInterne" : "DONNEES DE LA CUVE",
-        "RayonInterne_mess" : "DONNEES DE LA CUVE",
-        "RayonExterne" : "DONNEES DE LA CUVE",
-        "RayonExterne_mess" : "DONNEES DE LA CUVE",
-        "EpaisseurRevetement" : "DONNEES DE LA CUVE",
-        "EpaisseurRevetement_mess" : "DONNEES DE LA CUVE",
-        "LigamentExterneMin" : "DONNEES DE LA CUVE",
-        "LigamentExterneMin_mess" : "DONNEES DE LA CUVE",
-        "NombreNoeudsMaillage" : "DONNEES DE LA CUVE",
-        "TypeInitial" : "CARACTERISTIQUES DU DEFAUT",
-        "Orientation" : "CARACTERISTIQUES DU DEFAUT",
-        "Position" : "CARACTERISTIQUES DU DEFAUT",
-        "ProfondeurRadiale" : "CARACTERISTIQUES DU DEFAUT",
-        "ProfondeurRadiale_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "ModeCalculLongueur" : "CARACTERISTIQUES DU DEFAUT",
-        "Longueur" : "CARACTERISTIQUES DU DEFAUT",
-        "Longueur_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "CoefDirecteur" : "CARACTERISTIQUES DU DEFAUT",
-        "CoefDirecteur_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "Constante" : "CARACTERISTIQUES DU DEFAUT",
-        "ModeCalculDecalage" : "CARACTERISTIQUES DU DEFAUT",
-        "DecalageNormalise" : "CARACTERISTIQUES DU DEFAUT",
-        "DecalageNormalise_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "DecalageRadial" : "CARACTERISTIQUES DU DEFAUT",
-        "DecalageRadial_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "Azimut" : "CARACTERISTIQUES DU DEFAUT",
-        "Azimut_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "Altitude" : "CARACTERISTIQUES DU DEFAUT",
-        "Altitude_mess" : "CARACTERISTIQUES DU DEFAUT",
-        "Pointe" : "CARACTERISTIQUES DU DEFAUT",
-        "ModeleFluence" : "MODELES",
-        "ZoneActiveCoeur_AltitudeSup" : "MODELES",
-        "ZoneActiveCoeur_AltitudeInf" : "MODELES",
-        "FluenceMax" : "MODELES",
-        "KPFrance" : "MODELES",
-        "KPUS" : "MODELES",
-        "Azimut_0deg" : "MODELES",
-        "Azimut_5deg" : "MODELES",
-        "Azimut_10deg" : "MODELES",
-        "Azimut_15deg" : "MODELES",
-        "Azimut_20deg" : "MODELES",
-        "Azimut_25deg" : "MODELES",
-        "Azimut_30deg" : "MODELES",
-        "Azimut_35deg" : "MODELES",
-        "Azimut_40deg" : "MODELES",
-        "Azimut_45deg" : "MODELES",
-        "TypeIrradiation" : "MODELES",
-        "RTNDT" : "MODELES",
-        "ModeleIrradiation" : "MODELES",
-        "TeneurCuivre" : "MODELES",
-        "TeneurCuivre_mess" : "MODELES",
-        "TeneurNickel" : "MODELES",
-        "TeneurNickel_mess" : "MODELES",
-        "TeneurPhosphore" : "MODELES",
-        "TeneurPhosphore_mess" : "MODELES",
-        "MoyenneRTndt" : "MODELES",
-        "MoyenneRTndt_mess" : "MODELES",
-        "CoefVariationRTndt" : "MODELES",
-        "CoefVariationRTndt_mess" : "MODELES",
-        "EcartTypeRTndt" : "MODELES",
-        "EcartTypeRTndt_mess" : "MODELES",
-        "NombreEcartTypeRTndt" : "MODELES",
-        "NombreEcartTypeRTndt_mess" : "MODELES",
-        "ModeleTenacite" : "MODELES",
-        "NombreCaracteristique" : "MODELES",
-        "NbEcartType_MoyKIc" : "MODELES",
-        "NbEcartType_MoyKIc_mess" : "MODELES",
-        "PalierDuctile_KIc" : "MODELES",
-        "CoefficientVariation_KIc" : "MODELES",
-        "Fractile_KIc" : "MODELES",
-        "Fractile_KIc_mess" : "MODELES",
-        "Temperature_KIc100" : "MODELES",
-        "A1" : "MODELES",
-        "A2" : "MODELES",
-        "A3" : "MODELES",
-        "B1" : "MODELES",
-        "B2" : "MODELES",
-        "B3" : "MODELES",
-        "C1" : "MODELES",
-        "C2" : "MODELES",
-        "C3" : "MODELES",
-        "ChoixCorrectionLongueur" : "MODELES",
-        "AttnCorrBeta" : "MODELES",
-        "CorrIrwin" : "MODELES",
-        "ArretDeFissure" : "MODELES",
-        "IncrementTailleFissure" : "MODELES",
-        "IncrementTailleFissure_mess" : "MODELES",
-        "NbEcartType_MoyKIa" : "MODELES",
-        "PalierDuctile_KIa" : "MODELES",
-        "CoefficientVariation_KIa" : "MODELES",
-        "ChoixCoefficientChargement" : "ETAT INITIAL",
-        "CoefficientDuctile" : "ETAT INITIAL",
-        "CoefficientFragile" : "ETAT INITIAL",
-        "InstantInitialisation" : "ETAT INITIAL",
-        "ConditionLimiteThermiqueREV" : "CARACTERISTIQUES DU REVETEMENT",
-        "TemperatureDeformationNulleREV" : "CARACTERISTIQUES DU REVETEMENT",
-        "TemperaturePourCoefDilatThermREV" : "CARACTERISTIQUES DU REVETEMENT",
-        "CoefficientPoissonREV" : "CARACTERISTIQUES DU REVETEMENT",
-        "ConditionLimiteThermiqueMDB" : "CARACTERISTIQUES DU MDB",
-        "TemperatureDeformationNulleMDB" : "CARACTERISTIQUES DU MDB",
-        "TemperaturePourCoefDilatThermMDB" : "CARACTERISTIQUES DU MDB",
-        "CoefficientPoissonMDB" : "CARACTERISTIQUES DU MDB",
-        "TypeConditionLimiteThermique" : "TRANSITOIRE",
-        "Instant_1" : "TRANSITOIRE",
-        "Instant_2" : "TRANSITOIRE",
-        "Instant_3" : "TRANSITOIRE",
-        "DebitAccumule" : "TRANSITOIRE",
-        "DebitInjectionSecurite" : "TRANSITOIRE",
-        "TempInjectionSecurite" : "TRANSITOIRE",
-        "TempInjectionSecurite_mess" : "TRANSITOIRE",
-        "DiametreHydraulique" : "TRANSITOIRE",
-        "DiametreHydraulique_mess" : "TRANSITOIRE",
-        "SectionEspaceAnnulaire" : "TRANSITOIRE",
-        "SectionEspaceAnnulaire_mess" : "TRANSITOIRE",
-        "HauteurCaracConvectionNaturelle" : "TRANSITOIRE",
-        "HauteurCaracConvectionNaturelle_mess" : "TRANSITOIRE",
-        "CritereConvergenceRelative" : "TRANSITOIRE",
-        "CoefficientsVestale" : "TRANSITOIRE",
-        "VolumeMelange_CREARE" : "TRANSITOIRE",
-        "TemperatureInitiale_CREARE" : "TRANSITOIRE",
-        "TemperatureInitiale_CREARE_mess" : "TRANSITOIRE",
-        "SurfaceEchange_FluideStructure" : "TRANSITOIRE",
-        "SurfaceEchange_FluideStructure_mess" : "TRANSITOIRE",
-        "InstantPerteCirculationNaturelle" : "TRANSITOIRE",
-         }
-
-   def gener(self,obj,format='brut'):
-      self.text=''
-      self.textCuve=''
-      self.texteTFDEBIT=''
-      self.dico_mot={}
-      self.dico_genea={}
-      self.text=PythonGenerator.gener(self,obj,format)
-      return self.text
-
-   def generMCSIMP(self,obj) :
-       self.dico_mot[obj.nom]=obj.valeur
-       clef=""
-       for i in obj.get_genealogie() :
-           clef=clef+"_"+i
-       self.dico_genea[clef]=obj.valeur
-       s=PythonGenerator.generMCSIMP(self,obj)
-       return s
-
-   def writeCuve2DG(self, filename, file2):
-      print "je passe dans writeCuve2DG"
-      self.genereTexteCuve()
-      f = open( filename, 'wb')
-      print self.texteCuve
-      f.write( self.texteCuve )
-      f.close()
-      ftmp = open( "/tmp/data_template", 'wb')
-      ftmp.write( self.texteCuve )
-      ftmp.close()
-
-      self.genereTexteTFDEBIT()
-      f2 = open( file2, 'wb')
-      print self.texteTFDEBIT
-      f2.write( self.texteTFDEBIT )
-      f2.close()
-
-
-   def entete(self):
-      '''
-      Ecrit l'entete du fichier data_template
-      '''
-      texte  = "############################################################################################"+"\n"
-      texte += "#"+"\n"
-      texte += "#                OUTIL D'ANALYSE PROBABILISTE DE LA DUREE DE VIE DES CUVES REP"+"\n"
-      texte += "#                                     ---------------"+"\n"
-      texte += "#                               FICHIER DE MISE EN DONNEES"+"\n"
-      texte += "#"+"\n"
-      texte += "# SI CALCUL DETERMINISTE :"+"\n"
-      texte += "#       - fixer INCRTPS=1, nbectDRTNDT=2., nbectKIc=-2."+"\n"
-      texte += "#       - les calculs ne sont possibles qu'en une seule pointe du defaut (POINDEF<>BOTH)"+"\n"
-      texte += "# SI CALCUL PROBABILISTE :"+"\n"
-      texte += "#       - fixer ARRETFISSURE=NON"+"\n"
-      texte += "#"+"\n"
-      texte += "############################################################################################"+"\n"
-      texte += "#"+"\n"
-      return texte
-
-   def rubrique(self, titre):
-      '''
-      Rubrique 
-      '''
-      texte  = "#"+"\n"
-      texte += "############################################################################################"+"\n"
-      texte += "# " + titre + "\n"
-      texte += "############################################################################################"+"\n"
-      texte += "#"+"\n"
-      return texte
-
-   def sousRubrique(self, soustitre, numtitre):
-      '''
-      Sous-rubrique 
-      '''
-      texte  = "#"+"\n"
-      texte += "# " + numtitre + soustitre + "\n"
-      texte += "#==========================================================================================="+"\n"
-      texte += "#"+"\n"
-      return texte
-
-   def ecritLigne(self, variablelue):
-      '''
-      Ecrit l'affectation d'une valeur a sa variable, suivie d'un commentaire
-      '''
-      texte = "%s = %s   # %s\n" % (self.variable[variablelue], str(self.dico_mot[variablelue]), self.comment[variablelue])
-      return texte
-
-   def affecteValeurDefaut(self, variablelue):
-      '''
-      Affecte une valeur par defaut a une variable, suivie d'un commentaire
-      '''
-      print "Warning ==> Dans la rubrique",self.bloc[variablelue],", valeur par defaut pour ",variablelue," = ",self.default[variablelue]
-      texte = "%s = %s   # %s\n" % (self.variable[variablelue], self.default[variablelue], self.comment[variablelue])
-      return texte
-
-   def affecteValeur(self, variablelue, valeuraffectee):
-      '''
-      Affecte une valeur a une variable, suivie d'un commentaire
-      '''
-      texte = "%s = %s   # %s\n" % (self.variable[variablelue], valeuraffectee, self.comment[variablelue])
-      return texte
-
-   def ecritVariable(self, variablelue):
-      if self.dico_mot.has_key(variablelue):
-         texte = self.ecritLigne(variablelue)
-      else :
-         texte = self.affecteValeurDefaut(variablelue)
-      return texte
-
-   def amontAval(self, amont, aval):
-      if str(self.dico_mot[amont])=='Continu':
-         if str(self.dico_mot[aval])=='Continu':
-            texte = 'CC'+"\n"
-        if str(self.dico_mot[aval])=='Lineaire':
-            texte = 'CL'+"\n"
-        if str(self.dico_mot[aval])=='Exclu':
-            texte = 'CE'+"\n"
-      if str(self.dico_mot[amont])=='Lineaire':
-         if str(self.dico_mot[aval])=='Continu':
-            texte = 'LC'+"\n"
-        if str(self.dico_mot[aval])=='Lineaire':
-            texte = 'LL'+"\n"
-        if str(self.dico_mot[aval])=='Exclu':
-            texte = 'LE'+"\n"
-      if str(self.dico_mot[amont])=='Exclu':
-         if str(self.dico_mot[aval])=='Continu':
-            texte = 'EC'+"\n"
-        if str(self.dico_mot[aval])=='Lineaire':
-            texte = 'EL'+"\n"
-        if str(self.dico_mot[aval])=='Exclu':
-            texte = 'EE'+"\n"
-      return texte
-
-   def genereTexteCuve(self):
-      self.texteCuve  = ""
-      self.texteCuve += self.entete()
-
-      # Rubrique OPTIONS
-      self.texteCuve += self.rubrique('OPTIONS')
-
-      self.texteCuve += self.sousRubrique('Impression a l ecran', '')
-      if self.dico_mot.has_key('NiveauImpression'):
-         self.texteCuve += self.affecteValeur('NiveauImpression', self.valeurproposee[str(self.dico_mot["NiveauImpression"])])
-
-      self.texteCuve += self.sousRubrique('Generation de fichiers', '')
-      self.texteCuve += self.ecritVariable('FichierDataIn')
-      self.texteCuve += self.ecritVariable('FichierTempSigma')
-      self.texteCuve += self.ecritVariable('FichierCSV')
-      self.texteCuve += self.ecritVariable('FichierRESTART')
-      self.texteCuve += self.ecritVariable('FichierEXTR')
-      self.texteCuve += self.ecritVariable('ChoixPlugin')
-
-      self.texteCuve += self.sousRubrique('Grandeur evaluee', '')
-      if self.dico_mot.has_key('GrandeurEvaluee'):
-         self.texteCuve += self.affecteValeur('GrandeurEvaluee', self.valeurproposee[str(self.dico_mot["GrandeurEvaluee"])])
-
-      self.texteCuve += self.sousRubrique('Divers', '')
-      self.texteCuve += self.ecritVariable('IncrementTemporel')
-      self.texteCuve += self.ecritVariable('IncrementMaxTemperature')
-
-      #self.texteCuve += self.ecritVariable('ChoixExtractionTransitoires')
-      if self.dico_mot.has_key('ChoixExtractionTransitoires'):
-         self.texteCuve += self.ecritVariable('ChoixExtractionTransitoires')
-         if str(self.dico_mot["ChoixExtractionTransitoires"])=='OUI':
-            if self.dico_mot.has_key('ListeAbscisses'):
-               self.texteCuve += "# liste des abscisses pour ecriture des transitoires de T et SIG (5 ou moins)"+"\n"
-               self.imprime(1,(self.dico_mot["ListeAbscisses"]))
-               self.texteCuve+="#"+"\n"
-            else :
-               print "Warning ==> Dans la rubrique OPTIONS, fournir ListeAbscisses."
-               self.texteCuve += "# liste des abscisses pour ecriture des transitoires de T et SIG (5 ou moins)"+"\n"
-               self.texteCuve += "  1.994\n"
-               self.texteCuve += "  2.000\n"
-               self.texteCuve+="#"+"\n"
-         else :
-            self.texteCuve+="#"+"\n"
-
-      self.texteCuve += self.ecritVariable('IncrementMaxTempsAffichage')
-      if self.dico_mot.has_key('ListeInstants'):
-         self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-         self.imprime(1,(self.dico_mot["ListeInstants"]))
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-         self.texteCuve+="#"+"\n"
-      else :
-         print "Warning ==> Dans la rubrique OPTIONS, fournir ListeInstants."
-         self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
-         self.texteCuve += "  0.\n"
-         self.texteCuve += "  1.\n"
-         self.texteCuve+="#"+"\n"
-
-
-      # Rubrique DONNEES DE LA CUVE
-      self.texteCuve += self.rubrique('DONNEES DE LA CUVE')
-      if self.dico_mot.has_key('TraitementGeometrie'):
-         self.texteCuve += self.affecteValeur('TraitementGeometrie', self.valeurproposee[str(self.dico_mot["TraitementGeometrie"])])
-         if str(self.dico_mot["TraitementGeometrie"])=='Topologie':
-            self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
-            self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
-            self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
-            self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
-            self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
-            self.texteCuve+="#                         NBNO"+"\n"
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('RayonInterne')
-            self.texteCuve += self.ecritVariable('RayonInterne_mess')
-            self.texteCuve += self.ecritVariable('RayonExterne')
-            self.texteCuve += self.ecritVariable('RayonExterne_mess')
-            self.texteCuve += self.ecritVariable('EpaisseurRevetement')
-            self.texteCuve += self.ecritVariable('EpaisseurRevetement_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('LigamentExterneMin')
-            self.texteCuve += self.ecritVariable('LigamentExterneMin_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
-         if str(self.dico_mot["TraitementGeometrie"])=='Maillage':
-            self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
-            self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
-            self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
-            self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
-            self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
-            self.texteCuve+="#                         NBNO"+"\n"
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
-            self.imprime(1,(self.dico_mot["ListeAbscisses"]))
-      else :
-         self.texteCuve += self.affecteValeurDefaut('TraitementGeometrie')
-         self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
-         self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
-         self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
-         self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
-         self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
-         self.texteCuve+="#                         NBNO"+"\n"
-         self.texteCuve+="#"+"\n"
-         self.texteCuve += self.affecteValeurDefaut('RayonInterne')
-         self.texteCuve += self.affecteValeurDefaut('RayonInterne_mess')
-         self.texteCuve += self.affecteValeurDefaut('RayonExterne')
-         self.texteCuve += self.affecteValeurDefaut('RayonExterne_mess')
-         self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement')
-         self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement_mess')
-         self.texteCuve+="#"+"\n"
-         self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin')
-         self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin_mess')
-         self.texteCuve+="#"+"\n"
-         self.texteCuve += self.affecteValeurDefaut('NombreNoeudsMaillage')
-
-
-      # Rubrique CARACTERISTIQUES DU DEFAUT
-      self.texteCuve += self.rubrique('CARACTERISTIQUES DU DEFAUT')
-
-      if self.dico_mot.has_key('TypeInitial'):
-         self.texteCuve += self.affecteValeur('TypeInitial', self.valeurproposee[str(self.dico_mot["TypeInitial"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('TypeInitial')
-
-      self.texteCuve+="# Fournir ORIEDEF, (PROFDEF, PROFDEF_MESSAGE)"+"\n"
-      self.texteCuve+="# - Si DSR, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST)"+"\n"
-      self.texteCuve+="# - Si DECALE, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST), DECATYP, (DECANOR,DECANOR_MESSAGE) ou (DECADEF,DECADEF_MESSAGE)"+"\n"
-      self.texteCuve+="# - Si DEBOUCHANT, fournir IRWIN"+"\n"
-      self.texteCuve+="# Fournir (ANGLDEF, ANGLDEF_MESSAGE), (ALTIDEF, ALTIDEF_MESSAGE)"+"\n"
-      self.texteCuve+="# - Si DSR ou DECALE, fournir POINDEF"+"\n"
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Remarque :"+"\n"
-      self.texteCuve+="# - si DSR ou DECALE, dans la rubrique 'Modele de tenacite', fournir ATTNCORRBETA (ne pas fournir CORRIRWIN)"+"\n"
-      self.texteCuve+="# - si DEBOUCHANT,    dans la rubrique 'Modele de tenacite', fournir CORRIRWIN    (ne pas fournir ATTNCORRBETA)"+"\n"
-
-      self.texteCuve+="#"+"\n"
-
-      if self.dico_mot.has_key('Orientation'):
-         self.texteCuve += self.affecteValeur('Orientation', self.valeurproposee[str(self.dico_mot["Orientation"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('Orientation')
-        
-      if self.dico_mot.has_key('Position'):
-         self.texteCuve += self.affecteValeur('Position', self.valeurproposee[str(self.dico_mot["Position"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('Position')
-        
-      self.texteCuve+="#"+"\n"
-      self.texteCuve += self.ecritVariable('ProfondeurRadiale')
-      self.texteCuve += self.ecritVariable('ProfondeurRadiale_mess')
-
-      self.texteCuve+="#"+"\n"
-      if self.dico_mot.has_key('TypeInitial'):
-         if str(self.dico_mot["TypeInitial"])!='Defaut Debouchant':
-            if self.dico_mot.has_key('ModeCalculLongueur'):
-               self.texteCuve += self.affecteValeur('ModeCalculLongueur', self.valeurproposee[str(self.dico_mot["ModeCalculLongueur"])])
-               if str(self.dico_mot["ModeCalculLongueur"])=='Valeur':
-                  self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
-                  self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
-                  self.texteCuve += self.ecritVariable('Longueur')
-                  self.texteCuve += self.ecritVariable('Longueur_mess')
-               if str(self.dico_mot["ModeCalculLongueur"])=='Fonction affine de la profondeur':
-                  self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
-                  self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
-                  self.texteCuve += self.ecritVariable('CoefDirecteur')
-                  self.texteCuve += self.ecritVariable('CoefDirecteur_mess')
-                  self.texteCuve += self.ecritVariable('Constante')
-            else :
-               self.texteCuve += self.affecteValeurDefaut('ModeCalculLongueur')
-               self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
-               self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
-               self.texteCuve += self.affecteValeurDefaut('Longueur')
-               self.texteCuve += self.affecteValeurDefaut('Longueur_mess')
-
-      if self.dico_mot.has_key('TypeInitial'):
-         if str(self.dico_mot["TypeInitial"])=='Defaut Decale':
-            self.texteCuve+="#"+"\n"
-            if self.dico_mot.has_key('ModeCalculDecalage'):
-               self.texteCuve += self.affecteValeur('ModeCalculDecalage', self.valeurproposee[str(self.dico_mot["ModeCalculDecalage"])])
-               if str(self.dico_mot["ModeCalculDecalage"])=='Valeur normalisee':
-                  self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
-                  self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
-                  self.texteCuve += self.ecritVariable('DecalageNormalise')
-                  self.texteCuve += self.ecritVariable('DecalageNormalise_mess')
-               if str(self.dico_mot["ModeCalculDecalage"])=='Valeur':
-                  self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
-                  self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
-                  self.texteCuve += self.ecritVariable('DecalageRadial')
-                  self.texteCuve += self.ecritVariable('DecalageRadial_mess')
-            else :
-               self.texteCuve += self.affecteValeurDefaut('ModeCalculDecalage')
-               self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
-               self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
-               self.texteCuve += self.affecteValeurDefaut('DecalageRadial')
-               self.texteCuve += self.affecteValeurDefaut('DecalageRadial_mess')
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve += self.ecritVariable('Azimut')
-      self.texteCuve += self.ecritVariable('Azimut_mess')
-      self.texteCuve+="#"+"\n"
-      self.texteCuve += self.ecritVariable('Altitude')
-      self.texteCuve += self.ecritVariable('Altitude_mess')
-      self.texteCuve+="#"+"\n"
-      if self.dico_mot.has_key('Pointe'):
-         self.texteCuve += self.affecteValeur('Pointe', self.valeurproposee[str(self.dico_mot["Pointe"])])
-      #else :
-      #   self.texteCuve += self.affecteValeurDefaut('Pointe')
-
-      # Rubrique MODELES FLUENCE, IRRADIATION, TENACITE
-      self.texteCuve += self.rubrique('MODELES FLUENCE, IRRADIATION, TENACITE')
-      self.texteCuve += self.sousRubrique('Modele d attenuation de la fluence dans l epaisseur','A.')
-
-      if self.dico_mot.has_key('ModeleFluence'):
-         self.texteCuve += self.affecteValeur('ModeleFluence', self.valeurproposee[str(self.dico_mot["ModeleFluence"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('ModeleFluence')
-
-      self.texteCuve+="# - si France,          fournir KPFRANCE"+"\n"
-      self.texteCuve+="# - si USNRC,           fournir KPUS"+"\n"
-      self.texteCuve+="# - si modele GD_Cuve,  fournir COEFFLUENCE1, COEFFLUENCE2, ..., COEFFLUENCE9, COEFFLUENCE10"+"\n"
-      self.texteCuve+="#"+"\n"
-
-      self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeSup')
-      self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeInf')
-      self.texteCuve += self.ecritVariable('FluenceMax')
-      if self.dico_mot.has_key('ModeleFluence'):
-         if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)':
-            self.texteCuve += self.ecritVariable('KPFrance')
-         if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)':
-            self.texteCuve += self.ecritVariable('KPUS')
-         if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)':
-            self.texteCuve += self.ecritVariable('Azimut_0deg')
-            self.texteCuve += self.ecritVariable('Azimut_5deg')
-            self.texteCuve += self.ecritVariable('Azimut_10deg')
-            self.texteCuve += self.ecritVariable('Azimut_15deg')
-            self.texteCuve += self.ecritVariable('Azimut_20deg')
-            self.texteCuve += self.ecritVariable('Azimut_25deg')
-            self.texteCuve += self.ecritVariable('Azimut_30deg')
-            self.texteCuve += self.ecritVariable('Azimut_35deg')
-            self.texteCuve += self.ecritVariable('Azimut_40deg')
-            self.texteCuve += self.ecritVariable('Azimut_45deg')
-
-      self.texteCuve += self.sousRubrique('Irradiation','B.')
-
-      if self.dico_mot.has_key('TypeIrradiation'):
-         self.texteCuve += self.affecteValeur('TypeIrradiation', self.valeurproposee[str(self.dico_mot["TypeIrradiation"])])
-
-         if str(self.dico_mot["TypeIrradiation"])=='RTndt de la cuve a l instant de l analyse':
-            self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
-            self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('RTNDT')
-
-         if str(self.dico_mot["TypeIrradiation"])=='Modele d irradiation':
-            self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
-            self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
-            self.texteCuve+="#"+"\n"
-            if self.dico_mot.has_key('ModeleIrradiation'):
-               self.texteCuve += self.affecteValeur('ModeleIrradiation', self.valeurproposee[str(self.dico_mot["ModeleIrradiation"])])
-            else :
-              self.texteCuve += self.affecteValeurDefaut('ModeleIrradiation')
-            self.texteCuve+="# - pour tout modele,                                 fournir (CU, CU_MESSAGE),"+"\n"
-            self.texteCuve+="#                                                             (NI, NI_MESSAGE),"+"\n"
-            self.texteCuve+="# - si HOUSSIN, PERSOZ, LEFEBVRE, BRILLAUD, LEFEBnew, fournir (P, P_MESSAGE)"+"\n"
-            self.texteCuve+="# - pour tout modele,                                 fournir (RTimoy, RTimoy_MESSAGE),"+"\n"
-            self.texteCuve+="# - si USNRCsoud ou USNRCmdb,                         fournir (RTicov, RTicov_MESSAGE)"+"\n"
-            self.texteCuve+="#                                                             (USectDRT, USectDRT_MESSAGE)"+"\n"
-            self.texteCuve+="# - pour tout modele,                                 fournir (nbectDRTNDT, nbectDRTNDT_MESSAGE)"+"\n"
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('TeneurCuivre')
-            self.texteCuve += self.ecritVariable('TeneurCuivre_mess')
-            self.texteCuve += self.ecritVariable('TeneurNickel')
-            self.texteCuve += self.ecritVariable('TeneurNickel_mess')
-            if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Houssin' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Persoz' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Lefebvre' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : formulation de FIM/FIS Brillaud' or str(self.dico_mot["ModeleIrradiation"])=='Formule de FIM/FIS Lefebvre modifiee':
-               self.texteCuve += self.ecritVariable('TeneurPhosphore')
-               self.texteCuve += self.ecritVariable('TeneurPhosphore_mess')
-            self.texteCuve += self.ecritVariable('MoyenneRTndt')
-            self.texteCuve += self.ecritVariable('MoyenneRTndt_mess')
-            if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : Regulatory Guide 1.00 rev 2' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : Regulatory Guide 1.00 rev 2':
-               self.texteCuve += self.ecritVariable('CoefVariationRTndt')
-               self.texteCuve += self.ecritVariable('CoefVariationRTndt_mess')
-               self.texteCuve += self.ecritVariable('EcartTypeRTndt')
-               self.texteCuve += self.ecritVariable('EcartTypeRTndt_mess')
-            self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt')
-            self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt_mess')
-      else :
-         self.texteCuve += self.affecteValeurDefaut('TypeIrradiation')
-         self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
-         self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
-         self.texteCuve+="#"+"\n"
-         self.texteCuve += self.affecteValeurDefaut('RTNDT')
-
-      self.texteCuve += self.sousRubrique('Modele de tenacite','C.')
-      self.texteCuve+="# tenacite d amorcage"+"\n"
-
-      if self.dico_mot.has_key('ModeleTenacite'):
-         self.texteCuve += self.affecteValeur('ModeleTenacite', self.valeurproposee[str(self.dico_mot["ModeleTenacite"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('ModeleTenacite')
-      self.texteCuve+="# - si RCC-M, RCC-M_pal, Houssin_RC, fournir (nbectKIc, nbectKIc_MESSAGE), KICPAL, KICCDV"+"\n"
-      self.texteCuve+="# - si RCC-M_exp,                    fournir (nbectKIc, nbectKIc_MESSAGE), KICCDV"+"\n"
-      self.texteCuve+="# - si RCC-M_simpl,                  ne rien fournir"+"\n"
-      self.texteCuve+="# - si Frama, LOGWOLF,               fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
-      self.texteCuve+="# - si REME, ORNL, WEIB3, WEIB2,     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC"+"\n"
-      self.texteCuve+="# - si Wallin,                       fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
-      self.texteCuve+="#                                                     puis T0WALLIN"+"\n"
-      self.texteCuve+="# - si WEIB-GEN,                     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
-      self.texteCuve+="#                                                     puis A1, A2, A3, B1, B2, B3, C1, C2, C3"+"\n"
-      self.texteCuve+="#   loi de Weibull P(K<x) = 1 - exp{-[ (x-a(T)) / b(T) ]^c(T) }"+"\n"
-      self.texteCuve+="#   avec        a(T) = A1 + A2*exp[A3*(T-RTNDT)]"+"\n"
-      self.texteCuve+="#               b(T) = B1 + B2*exp[B3*(T-RTNDT)]"+"\n"
-      self.texteCuve+="#               c(T) = C1 + C2*exp[C3*(T-RTNDT)]"+"\n"
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Correction de la longueur"+"\n"
-      self.texteCuve += self.ecritVariable('ChoixCorrectionLongueur')
-      self.texteCuve+="#"+"\n"
-      if self.dico_mot.has_key('ModeleTenacite'):
-         if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' or str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02' or str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
-            if self.dico_mot.has_key('NombreCaracteristique'):
-               self.texteCuve += self.affecteValeur('NombreCaracteristique', self.valeurproposee[str(self.dico_mot["NombreCaracteristique"])])
-            else :
-               self.texteCuve += self.affecteValeurDefaut('NombreCaracteristique')
-            self.texteCuve+="# - Si NBCARAC = QUANTILE, fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
-            self.texteCuve+="# - Si NBCARAC = ORDRE,    fournir (fractKIc, fractKIc_MESSAGE)"+"\n"
-
-         if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2' or str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI=KIpalier' or str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2.33 (Houssin)' :
-            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
-            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
-            self.texteCuve += self.ecritVariable('PalierDuctile_KIc')
-            self.texteCuve += self.ecritVariable('CoefficientVariation_KIc')
-
-         if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb01 (Frama)' or str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb02 (LOGWOLF)' :
-            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
-            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
-
-         if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02' or str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' or str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee':
-            if str(self.dico_mot["NombreCaracteristique"])=='Quantile' :
-               self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
-               self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
-            if str(self.dico_mot["NombreCaracteristique"])=='Ordre' :
-               self.texteCuve += self.ecritVariable('Fractile_KIc')
-               self.texteCuve += self.ecritVariable('Fractile_KIc_mess')
-
-            if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' :
-               self.texteCuve += self.ecritVariable('Temperature_KIc100')
-
-            if str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
-               self.texteCuve += self.ecritVariable('A1')
-               self.texteCuve += self.ecritVariable('A2')
-               self.texteCuve += self.ecritVariable('A3')
-               self.texteCuve += self.ecritVariable('B1')
-               self.texteCuve += self.ecritVariable('B2')
-               self.texteCuve += self.ecritVariable('B3')
-               self.texteCuve += self.ecritVariable('C1')
-               self.texteCuve += self.ecritVariable('C2')
-               self.texteCuve += self.ecritVariable('C3')
-      else :
-         self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc')
-         self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc_mess')
-         self.texteCuve += self.affecteValeurDefaut('PalierDuctile_KIc')
-         self.texteCuve += self.affecteValeurDefaut('CoefficientVariation_KIc')
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Correction plastique"+"\n"
-
-      #DTV if self.dico_mot.has_key('TypeInitial'):
-      #DTV    if str(self.dico_mot["TypeInitial"])!='Defaut Debouchant':
-      if self.dico_mot.has_key('CorrectionPlastique'):
-         if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA (pour DSR et defaut decale)':
-            self.texteCuve += self.affecteValeur('AttnCorrBeta','NON')
-         if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA attenuee (pour DSR et defaut decale)':
-            self.texteCuve += self.affecteValeur('AttnCorrBeta','OUI')
-         if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique IRWIN (pour defaut debouchant)':
-            self.texteCuve += self.affecteValeur('CorrIrwin','OUI')
-      else :
-         self.texteCuve += self.affecteValeurDefaut('AttnCorrBeta')
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Prise en compte de l'arret de fissure si DETERMINISTE"+"\n"
-
-      self.texteCuve += self.ecritVariable('ArretDeFissure')
-      self.texteCuve+="# - si ARRETFISSURE=OUI, fournir (INCRDEF, INCRDEF_MESSAGE), nbectKIa, KIAPAL, KIACDV"+"\n"
-      if self.dico_mot.has_key('ArretDeFissure'):
-         if str(self.dico_mot["ArretDeFissure"])=='OUI':
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('IncrementTailleFissure')
-            self.texteCuve += self.ecritVariable('IncrementTailleFissure_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# Parametres pour le calcul de la tenacite a l arret"+"\n"
-            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIa')
-            self.texteCuve += self.ecritVariable('PalierDuctile_KIa')
-            self.texteCuve += self.ecritVariable('CoefficientVariation_KIa')
-
-      # Rubrique Etat initial
-      self.texteCuve += self.rubrique('ETAT INITIAL')
-
-      self.texteCuve+="# Profil radial de la temperature initiale dans la cuve"+"\n"
-      self.texteCuve+="# abscisse (m) / temp initiale dans la cuve"+"\n"
-      self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
-      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-      if self.dico_mot.has_key('ProfilRadial_TemperatureInitiale'):
-         self.imprime(2,(self.dico_mot["ProfilRadial_TemperatureInitiale"]))
-         self.texteCuve += self.amontAval('Amont_TemperatureInitiale','Aval_TemperatureInitiale')
-      else :
-         self.texteCuve+="    1.9940    287."+"\n"
-         self.texteCuve+="CC"+"\n"
-      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Profils radiaux des contraintes residuelles dans la cuve"+"\n"
-      self.texteCuve+="# abscisse (m) / sigma rr / sigma tt / sigma zz"+"\n"
-      self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
-      if self.dico_mot.has_key('ProfilRadial_ContraintesInitiales'):
-         self.imprime(4,(self.dico_mot["ProfilRadial_ContraintesInitiales"]))
-         self.texteCuve += self.amontAval('Amont_ContraintesInitiales','Aval_ContraintesInitiales')
-      else :
-         self.texteCuve+="1.994     0. 0.  0."+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Prise en compte de coefficients sur les contraintes"+"\n"
-      self.texteCuve += self.ecritVariable('ChoixCoefficientChargement')
-      if str(self.dico_mot["ChoixCoefficientChargement"])=='OUI':
-         self.texteCuve += self.ecritVariable('CoefficientDuctile')
-         self.texteCuve += self.ecritVariable('CoefficientFragile')
-      else :
-         self.texteCuve+="#"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Instant initial"+"\n"
-      self.texteCuve += self.ecritVariable('InstantInitialisation')
-
-      # Rubrique CARACTERISTIQUES DU REVETEMENT
-      self.texteCuve += self.rubrique('CARACTERISTIQUES DU REVETEMENT')
-
-      if self.dico_mot.has_key('ConditionLimiteThermiqueREV'):
-         self.texteCuve += self.affecteValeur('ConditionLimiteThermiqueREV', self.valeurproposee[str(self.dico_mot["ConditionLimiteThermiqueREV"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('ConditionLimiteThermiqueREV')
-      self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
-      self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
-      self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
-      self.texteCuve+="#"+"\n"
-      if self.dico_mot.has_key('ChaleurREV_Fct_Temperature'):
-         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
-         self.imprime(2,(self.dico_mot["ChaleurREV_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_ChaleurREV','Aval_ChaleurREV')
-      elif self.dico_mot.has_key('EnthalpieREV_Fct_Temperature'):
-         self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
-         self.imprime(2,(self.dico_mot["EnthalpieREV_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_EnthalpieREV','Aval_EnthalpieREV')
-      else :
-         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
-         self.texteCuve+="0.    36.03E5 "+"\n"
-         self.texteCuve+="20.   36.03E5 "+"\n"
-         self.texteCuve+="200.  41.65E5 "+"\n"
-         self.texteCuve+="350.  43.47E5 "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
-      if self.dico_mot.has_key('ConductiviteREV_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["ConductiviteREV_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_ConductiviteREV','Aval_ConductiviteREV')
-      else :
-         self.texteCuve+="0.    14.7 "+"\n"
-         self.texteCuve+="20.   14.7 "+"\n"
-         self.texteCuve+="200.  17.2 "+"\n"
-         self.texteCuve+="350.  19.3 "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
-      if self.dico_mot.has_key('ModuleYoungREV_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["ModuleYoungREV_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_ModuleYoungREV','Aval_ModuleYoungREV')
-      else :
-         self.texteCuve+="0.    198500. "+"\n"
-         self.texteCuve+="20.   197000. "+"\n"
-         self.texteCuve+="200.  184000. "+"\n"
-         self.texteCuve+="350.  172000. "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
-      if self.dico_mot.has_key('CoeffDilatThermREV_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["CoeffDilatThermREV_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_CoeffDilatThermREV','Aval_CoeffDilatThermREV')
-      else :
-         self.texteCuve+="0.    16.40E-6 "+"\n"
-         self.texteCuve+="20.   16.40E-6 "+"\n"
-         self.texteCuve+="200.  17.20E-6 "+"\n"
-         self.texteCuve+="350.  17.77E-6 "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / limite d'elasticite (MPa)"+"\n"
-      if self.dico_mot.has_key('LimiteElasticiteREV_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["LimiteElasticiteREV_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_LimiteElasticiteREV','Aval_LimiteElasticiteREV')
-      else :
-         self.texteCuve+="0.    380. "+"\n"
-         self.texteCuve+="20.   370. "+"\n"
-         self.texteCuve+="100.  330. "+"\n"
-         self.texteCuve+="300.  270. "+"\n"
-         self.texteCuve+="LL"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve += self.ecritVariable('TemperatureDeformationNulleREV')
-      self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermREV')
-      self.texteCuve += self.ecritVariable('CoefficientPoissonREV')
-
-      # Rubrique CARACTERISTIQUES DU METAL DE BASE
-      self.texteCuve += self.rubrique('CARACTERISTIQUES DU METAL DE BASE')
-
-      if self.dico_mot.has_key('ConditionLimiteThermiqueMDB'):
-         self.texteCuve += self.affecteValeur('ConditionLimiteThermiqueMDB', self.valeurproposee[str(self.dico_mot["ConditionLimiteThermiqueMDB"])])
-      else :
-         self.texteCuve += self.affecteValeurDefaut('ConditionLimiteThermiqueMDB')
-
-      self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
-      self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
-      self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
-      self.texteCuve+="#"+"\n"
-
-      if self.dico_mot.has_key('ChaleurMDB_Fct_Temperature'):
-         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
-         self.imprime(2,(self.dico_mot["ChaleurMDB_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_ChaleurMDB','Aval_ChaleurMDB')
-      elif self.dico_mot.has_key('EnthalpieMDB_Fct_Temperature'):
-         self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
-         self.imprime(2,(self.dico_mot["EnthalpieMDB_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_EnthalpieMDB','Aval_EnthalpieMDB')
-      else :
-         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
-         self.texteCuve+="0.    34.88E+05 "+"\n"
-         self.texteCuve+="20.   34.88E+05 "+"\n"
-         self.texteCuve+="200.  40.87E+05 "+"\n"
-         self.texteCuve+="350.  46.02E+05 "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
-      if self.dico_mot.has_key('ConductiviteMDB_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["ConductiviteMDB_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_ConductiviteMDB','Aval_ConductiviteMDB')
-      else :
-         self.texteCuve+="0.    37.7 "+"\n"
-         self.texteCuve+="20.   37.7 "+"\n"
-         self.texteCuve+="200.  40.5 "+"\n"
-         self.texteCuve+="350.  38.7 "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
-      if self.dico_mot.has_key('ModuleYoungMDB_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["ModuleYoungMDB_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Aval_ModuleYoungMDB','Aval_ModuleYoungMDB')
-      else :
-         self.texteCuve+="0.    205000. "+"\n"
-         self.texteCuve+="20.   204000. "+"\n"
-         self.texteCuve+="200.  193000. "+"\n"
-         self.texteCuve+="350.  180000. "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
-      if self.dico_mot.has_key('CoeffDilatThermMDB_Fct_Temperature'):
-         self.imprime(2,(self.dico_mot["CoeffDilatThermMDB_Fct_Temperature"]))
-         self.texteCuve += self.amontAval('Amont_CoeffDilatThermMDB','Aval_CoeffDilatThermMDB')
-      else :
-         self.texteCuve+="0.    11.22E-6 "+"\n"
-         self.texteCuve+="20.   11.22E-6 "+"\n"
-         self.texteCuve+="200.  12.47E-6 "+"\n"
-         self.texteCuve+="350.  13.08E-6 "+"\n"
-         self.texteCuve+="CC"+"\n"
-
-      self.texteCuve+="#"+"\n"
-      self.texteCuve += self.ecritVariable('TemperatureDeformationNulleMDB')
-      self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermMDB')
-      self.texteCuve += self.ecritVariable('CoefficientPoissonMDB')
-
-      # Rubrique CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE
-      self.texteCuve += self.rubrique('CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE')
-      self.texteCuve += self.sousRubrique('Chargement mecanique : transitoire de pression','')
-
-      self.texteCuve+="# instant (s) / pression (MPa)"+"\n"
-      self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
-      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-      if self.dico_mot.has_key('ProfilTemporel_Pression'):
-         self.imprime(2,(self.dico_mot["ProfilTemporel_Pression"]))
-         self.texteCuve += self.amontAval('Amont_Pression','Aval_Pression')
-      else :
-         self.texteCuve+="0.    15.5 "+"\n"
-         self.texteCuve+="20.   0.1 "+"\n"
-         self.texteCuve+="200.  0.1 "+"\n"
-         self.texteCuve+="1000. 0.1 "+"\n"
-         self.texteCuve+="CC"+"\n"
-      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-
-      self.texteCuve += self.sousRubrique('Chargement thermo-hydraulique','')
-      if self.dico_mot.has_key('TypeConditionLimiteThermique'):
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-         self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', self.valeurproposee[str(self.dico_mot["TypeConditionLimiteThermique"])])
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-      else :
-         self.texteCuve += self.affecteValeurDefaut('TypeConditionLimiteThermique')
-
-      self.texteCuve+="# - si TEMP_IMPO, fournir Instant (s) / Temperature imposee (degC)"+"\n"
-      self.texteCuve+="# - si FLUX_REP,  fournir Instant (s) / Flux de chaleur impose (W/m2)"+"\n"
-      self.texteCuve+="# - si ECHANGE,   fournir Instant (s) / Temperature impose (degC)"+"\n"
-      self.texteCuve+="#                    puis Instant (s) / Coefficient d echange (W/m2/K)"+"\n"
-      self.texteCuve+="# - si DEBIT,     fournir Instant (s) / Debit massique (kg/s)"+"\n"
-      self.texteCuve+="#                    puis Instant (s) / Temperature d injection de securite  (degC)"+"\n"
-      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
-      self.texteCuve+="#                    puis Modele CREARE  : "+"\n"
-      self.texteCuve+="#                        Instants(s) / Volume de melange CREARE (m3)"+"\n"
-      self.texteCuve+="#                        puis (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
-      self.texteCuve+="# - si TEMP_FLU,  fournir Instant (s) / Temperature du fluide (degC)"+"\n"
-      self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
-      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
-      self.texteCuve+="# - si TFDEBIT,   fournir INST_PCN et TIS"+"\n"
-      self.texteCuve+="#                 fournir Instant (s) / Temperature du fluide (degC)"+"\n"
-      self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
-      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
-      self.texteCuve+="#                    puis Modele CREARE  : "+"\n"
-      self.texteCuve+="#                        Instants(s) / Volume de melange CREARE (m3)"+"\n"
-      self.texteCuve+="#                        puis (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
-      self.texteCuve+="# - si APRP,      fournir INSTANT1, INSTANT2, INSTANT3, QACCU, QIS, (TIS, TIS_MESSAGE)"+"\n"
-      self.texteCuve+="#                    puis Instant (s) / Temperature du fluide (degC) tel que dans l'exemple ci-dessous"+"\n"
-      self.texteCuve+="#                         0.    286."+"\n"
-      self.texteCuve+="#                         12.   20.             # 1er palier à T=TACCU"+"\n"
-      self.texteCuve+="#                         20.   20.             # idem que ci-dessus : T=TACCU"+"\n"
-      self.texteCuve+="#                         21.   999999.         # 2nd palier à T=T1 : sera remplace par nouvelle valeur calculee par fonction idoine"+"\n"
-      self.texteCuve+="#                         45.   999999.         # idem que ci-dessus : T=T1"+"\n"
-      self.texteCuve+="#                         46.   9.              # 3eme palier à T=TIS, temperature d injection de securite : sa valeur est reactualisee avec la donnee de TIS ci-dessous"+"\n"
-      self.texteCuve+="#                         1870. 9.              # idem que ci-dessus : T=TIS"+"\n"
-      self.texteCuve+="#                         1871. 80."+"\n"
-      self.texteCuve+="#                         3871. 80."+"\n"
-      self.texteCuve+="#                         CC                    # C pour Constant, E pour Exclu, L pour Lineaire"+"\n"
-      self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
-      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
-      self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
-      self.texteCuve+="#"+"\n"
-
-      if self.dico_mot.has_key('TypeConditionLimiteThermique'):
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            self.texteCuve += self.ecritVariable('InstantPerteCirculationNaturelle')
-            self.texteCuve += self.ecritVariable('TempInjectionSecurite')
-            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# Definition de parametres pour le cas d un transitoire APRP"+"\n"
-            self.texteCuve += self.ecritVariable('Instant_1')
-            self.texteCuve += self.ecritVariable('Instant_2')
-            self.texteCuve += self.ecritVariable('Instant_3')
-            self.texteCuve += self.ecritVariable('DebitAccumule')
-            self.texteCuve += self.ecritVariable('DebitInjectionSecurite')
-            self.texteCuve += self.ecritVariable('TempInjectionSecurite')
-            self.texteCuve += self.ecritVariable('TempInjectionSecurite_mess')
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee en paroi' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP' :
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_TemperatureImposeeFluide'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
-               self.texteCuve += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
-           else :
-               self.texteCuve+="0.    286. "+"\n"
-               self.texteCuve+="20.   20. "+"\n"
-               self.texteCuve+="200.  7. "+"\n"
-               self.texteCuve+="1000. 80. "+"\n"
-               self.texteCuve+="CC"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Flux de chaleur impose en paroi':
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# instant (s) / flux de chaleur impose (W/m2)"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_FluxChaleur'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_FluxChaleur"]))
-               self.texteCuve += self.amontAval('Amont_FluxChaleur','Aval_FluxChaleur')
-               self.texteCuve+="#"+"\n"
-           else :
-               self.texteCuve+="0.    -0. "+"\n"
-               self.texteCuve+="20.   -366290. "+"\n"
-               self.texteCuve+="200.  -121076. "+"\n"
-               self.texteCuve+="1000.  -56372."+"\n"
-               self.texteCuve+="CC"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# instant (s) / Debit d injection de securite  (kg/s)"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_DebitInjection'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
-               self.texteCuve += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
-           else :
-               self.texteCuve+="0.    4590. "+"\n"
-               self.texteCuve+="20.   4590. "+"\n"
-               self.texteCuve+="200.  340. "+"\n"
-               self.texteCuve+="1000. 31.1 "+"\n"
-               self.texteCuve+="CC"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' :
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# instant (s) / Coefficient d echange (W/m2/K)"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_CoefficientEchange'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_CoefficientEchange"]))
-               self.texteCuve += self.amontAval('Amont_CoefficientEchange','Aval_CoefficientEchange')
-           else :
-               self.texteCuve+="0.    138454. "+"\n"
-               self.texteCuve+="20.   19972. "+"\n"
-               self.texteCuve+="200.  2668. "+"\n"
-               self.texteCuve+="1000. 2668. "+"\n"
-               self.texteCuve+="CC"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' :
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# instant (s) / Debit massique (kg/s)"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_DebitMassique'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_DebitMassique"]))
-               self.texteCuve += self.amontAval('Amont_DebitMassique','Aval_DebitMassique')
-           else :
-               self.texteCuve+="0.    18.4 "+"\n"
-               self.texteCuve+="20.   18.4 "+"\n"
-               self.texteCuve+="200.  31.1 "+"\n"
-               self.texteCuve+="1000. 31.1 "+"\n"
-               self.texteCuve+="CC"+"\n"
-
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# instant (s) / Temperature d injection de securite  (degC)"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_TemperatureInjection'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureInjection"]))
-               self.texteCuve += self.amontAval('Amont_TemperatureInjection','Aval_TemperatureInjection')
-           else :
-               self.texteCuve+="0.    7.0 "+"\n"
-               self.texteCuve+="20.   7.0 "+"\n"
-               self.texteCuve+="200.  7.0 "+"\n"
-               self.texteCuve+="1000. 7.0 "+"\n"
-               self.texteCuve+="CC"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP' :
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# Transitoire des coefficients d echange : modele VESTALE"+"\n"
-            self.texteCuve+="#"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            self.texteCuve += self.ecritVariable('DiametreHydraulique')
-            self.texteCuve += self.ecritVariable('DiametreHydraulique_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire')
-            self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle')
-            self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('CritereConvergenceRelative')
-            self.texteCuve += self.ecritVariable('CoefficientsVestale')
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' :
-            self.texteCuve+="#"+"\n"
-            self.texteCuve+="# Transitoire de temperature fluide locale : modele CREARE"+"\n"
-            self.texteCuve+="#"+"\n"
-            #self.texteCuve += self.ecritVariable('VolumeMelange_CREARE')
-            self.texteCuve+="# instant (s) / Volume de melange CREARE  (m3)"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            if self.dico_mot.has_key('ProfilTemporel_VolumeMelange_CREARE'):
-               self.imprime(2,(self.dico_mot["ProfilTemporel_VolumeMelange_CREARE"]))
-               self.texteCuve += self.amontAval('Amont_VolumeMelange_CREARE','Aval_VolumeMelange_CREARE')
-           else :
-               self.texteCuve+="0.    14.3 "+"\n"
-               self.texteCuve+="20.   14.2 "+"\n"
-               self.texteCuve+="CC"+"\n"
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            else :
-               self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE')
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-            self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE_mess')
-            self.texteCuve+="#"+"\n"
-            self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure')
-            self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
-            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
-               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
-      else :
-         self.texteCuve+="#"+"\n"
-         self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
-         self.texteCuve+="0.    286. "+"\n"
-         self.texteCuve+="20.   20. "+"\n"
-         self.texteCuve+="200.  7. "+"\n"
-         self.texteCuve+="1000. 80. "+"\n"
-         self.texteCuve+="CC"+"\n"
-      self.texteCuve+="#"+"\n"
-      self.texteCuve+="############################################################################################"+"\n"
-
-
-   def genereTexteTFDEBIT(self):
-
-      self.texteTFDEBIT = ""
-
-      if self.dico_mot.has_key('TypeConditionLimiteThermique'):
-         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' :
-            self.texteTFDEBIT+="# instant (s) / pression (MPa)"+"\n"
-            self.texteTFDEBIT+=" "+"\n"
-            self.imprime2(2,(self.dico_mot["ProfilTemporel_Pression"]))
-            self.texteTFDEBIT += self.amontAval('Amont_Pression','Aval_Pression')
-
-       #     self.texteTFDEBIT+=" "+"\n"
-       #     self.texteTFDEBIT += self.affecteValeur('TypeConditionLimiteThermique', self.valeurproposee[str(self.dico_mot["TypeConditionLimiteThermique"])])
-
-            self.texteTFDEBIT+=" "+"\n"
-            self.imprime2(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
-            self.texteTFDEBIT += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
-
-            self.texteTFDEBIT+=" "+"\n"
-            self.imprime2(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
-            self.texteTFDEBIT += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
-
-            self.texteTFDEBIT+=" "+"\n"
-            self.texteTFDEBIT += self.ecritVariable('DiametreHydraulique')
-            self.texteTFDEBIT += self.ecritVariable('DiametreHydraulique_mess')
-            self.texteTFDEBIT+="#"+"\n"
-            self.texteTFDEBIT += self.ecritVariable('SectionEspaceAnnulaire')
-            self.texteTFDEBIT += self.ecritVariable('SectionEspaceAnnulaire_mess')
-            self.texteTFDEBIT+="#"+"\n"
-            self.texteTFDEBIT += self.ecritVariable('HauteurCaracConvectionNaturelle')
-            self.texteTFDEBIT += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
-            self.texteTFDEBIT+="#"+"\n"
-            self.texteTFDEBIT += self.ecritVariable('CritereConvergenceRelative')
-            self.texteTFDEBIT += self.ecritVariable('CoefficientsVestale')
-
-            self.texteTFDEBIT+=" "+"\n"
-            self.imprime2(2,(self.dico_mot["ProfilTemporel_VolumeMelange_CREARE"]))
-            self.texteTFDEBIT += self.amontAval('Amont_VolumeMelange_CREARE','Aval_VolumeMelange_CREARE')
-
-            self.texteTFDEBIT+=" "+"\n"
-            self.texteTFDEBIT += self.ecritVariable('SurfaceEchange_FluideStructure')
-            self.texteTFDEBIT += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
-            self.texteTFDEBIT += self.ecritVariable('InstantPerteCirculationNaturelle')
-            self.texteTFDEBIT += self.ecritVariable('TempInjectionSecurite')
-         else :
-            self.texteTFDEBIT+="Fichier inutile"+"\n"
-
-
-   def imprime(self,nbdeColonnes,valeur):
-      self.liste=[]
-      self.transforme(valeur)
-      i=0
-      while i < len(self.liste):
-          for k in range(nbdeColonnes) :
-              self.texteCuve+=str(self.liste[i+k]) +"  "
-          self.texteCuve+="\n"
-          i=i+k+1
-               
-   def imprime2(self,nbdeColonnes,valeur):
-      self.liste=[]
-      self.transforme(valeur)
-      i=0
-      while i < len(self.liste):
-          for k in range(nbdeColonnes) :
-              self.texteTFDEBIT+=str(self.liste[i+k]) +"  "
-          self.texteTFDEBIT+="\n"
-          i=i+k+1
-               
-
-   def transforme(self,valeur):
-      for i in valeur :
-          if type(i) == tuple :
-             self.transforme(i)
-          else :
-             self.liste.append(i)
-          
-
-
-
index a3f752e9ee7635848752e62717209408b1a36ff6..bb50e3707d567bd9da4840298a65e9e74dcf0ddd 100644 (file)
@@ -75,7 +75,7 @@ class DicoGenerator(PythonGenerator):
        fileDico = fn[:fn.rfind(".")] + '.py'
        f = open( str(fileDico), 'wb')
        f.write( self.texteDico )
-       print self.texteDico
+       print (self.texteDico)
        f.close()
 
 #----------------------------------------------------------------------------------------
diff --git a/generator/generator_homard.py b/generator/generator_homard.py
deleted file mode 100644 (file)
index 0f1958c..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-    homard pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-
-from Noyau import N_CR
-from Noyau.N_utils import repr_float
-from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
-from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
-from Accas import GEOM,ASSD,MCNUPLET
-from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
-from Formatage import Formatage
-from generator_python import PythonGenerator
-
-def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'homard',
-        # La factory pour creer une instance du plugin
-          'factory' : HomardGenerator,
-          }
-
-
-class HomardGenerator(PythonGenerator):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un texte au format eficas et 
-       un texte au format homard 
-
-   """
-   # Les extensions de fichier preconis�es
-   extensions=('.comm',)
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR generateur format homard pour homard',
-                         fin='fin CR format homard pour homard')
-      # Le texte au format homard est stock� dans l'attribut text
-      self.dico_mot_clef={}
-      self.assoc={}
-      self.init_assoc()
-      self.text=''
-      self.textehomard=[]
-
-   def init_assoc(self):
-      self.lmots_clef_calcules = ('SuivFron','TypeBila','ModeHOMA','CCAssoci', 'CCNoChaI','HOMaiN__','HOMaiNP1','CCNumOrI', 'CCNumPTI')
-      self.lmot_clef  = ('CCMaiN__', 'CCNoMN__', 'CCIndica', 'CCSolN__', 'CCFronti', 'CCNoMFro', 'CCMaiNP1', 
-                         'CCNoMNP1', 'CCSolNP1', 'TypeRaff', 'TypeDera', 'NiveauMa', 'SeuilHau', 'SeuilHRe', 
-                         'SeuilHPE', 'NiveauMi', 'SeuilBas', 'SeuilBRe', 'SeuilBPE', 'ListeStd', 'NumeIter', 
-                         'Langue  ', 'CCGroFro', 'CCNoChaI', 'CCNumOrI', 'CCNumPTI', 'SuivFron', 'TypeBila', 
-                         'ModeHOMA', 'HOMaiN__', 'HOMaiNP1','CCCoChaI')
-
-# Bizarre demander a Gerald : 
-#                CVSolNP1
-      self.assoc['CCMaiN__']='FICHIER_MED_MAILLAGE_N'
-      self.assoc['CCNoMN__']='NOM_MED_MAILLAGE_N'
-      self.assoc['CCIndica']='FICHIER_MED_MAILLAGE_N'
-      self.assoc['CCSolN__']='FICHIER_MED_MAILLAGE_N'
-      self.assoc['CCFronti']='FIC_FRON'
-      self.assoc['CCNoMFro']='NOM_MED_MAILLAGE_FRONTIERE'
-      self.assoc['CCMaiNP1']='FICHIER_MED_MAILLAGE_NP1'
-      self.assoc['CCNoMNP1']='NOM_MED_MAILLAGE_NP1'
-      self.assoc['CCSolNP1']='FICHIER_MED_MAILLAGE_NP1'
-      self.assoc['TypeRaff']='RAFFINEMENT'
-      self.assoc['TypeDera']='DERAFFINEMENT'
-      self.assoc['NiveauMa']='NIVE_MAX'
-      self.assoc['SeuilHau']='CRIT_RAFF_ABS'
-      self.assoc['SeuilHRe']='CRIT_RAFF_REL'
-      self.assoc['SeuilHPE']='CRIT_RAFF_PE'
-      self.assoc['NiveauMi']='NIVE_MIN'
-      self.assoc['SeuilBas']='CRIT_DERA_ABS'
-      self.assoc['SeuilBRe']='CRIT_DERA_REL'
-      self.assoc['SeuilBPE']='CRIT_DERA_PE'
-      self.assoc['ListeStd']='MESSAGES'
-      self.assoc['NumeIter']='NITER'
-      self.assoc['Langue  ']='LANGUE'
-      self.assoc['CCGroFro']='GROUP_MA'
-#     self.assoc['CCNoChaI']='NOM_MED' (on doit aussi ajouter 'COMPOSANTE')
-      self.assoc['CCNumOrI']='NUME_ORDRE'
-      self.assoc['CCNumPTI']='NUME_PAS_TEMPS'
-      self.assoc['CCCoChaI']='COMPOSANTE'
-     
-      self.dico_mot_depend={}
-     
-      # Attention a la synthaxe
-      self.dico_mot_depend['CCIndica'] ='self.dico_mot_clef["RAFFINEMENT"] == "LIBRE" or self.dico_mot_clef["DERAFFINEMENT"] == "LIBRE"'
-      self.dico_mot_depend['CCSolN__'] ='self.dico_mot_clef.has_key("NITER")'
-      self.dico_mot_depend['CCSolNP1'] ='self.dico_mot_clef.has_key("NITER")'
-
-   def gener(self,obj,format='brut',config=None):
-      self.text=PythonGenerator.gener(self,obj,format)
-      self.genereConfiguration()
-      return self.text
-
-   def generMCSIMP(self,obj) :
-      """
-          Convertit un objet MCSIMP en une liste de chaines de caract�res � la
-          syntaxe homard
-      """
-      s=PythonGenerator.generMCSIMP(self,obj)
-      clef=obj.nom
-      self.dico_mot_clef[clef]=obj.val
-      return s
-
-   def cherche_dependance(self,mot):
-       b_eval = 0
-       a_eval=self.dico_mot_depend[mot]
-       try :
-          b_eval=eval(self.dico_mot_depend[mot])
-       except :
-          for l in a_eval.split(" or "):
-              try:
-                 b_eval=eval(l)
-                 if not (b_eval == 0 ):
-                     break
-              except :
-                 pass
-       return b_eval
-
-
-   def genereConfiguration(self):
-      ligbla=31*' '
-      self.textehomard=[]
-      for mot in self.lmot_clef:
-
-#          on verifie d'abord que le mot clef doit bien etre calcule
-          if self.dico_mot_depend.has_key(mot) :
-             if self.cherche_dependance(mot) == 0 :
-                      continue
-
-          if mot not in self.lmots_clef_calcules :
-             clef_eficas=self.assoc[mot]
-             if self.dico_mot_clef.has_key(clef_eficas):
-                val=self.dico_mot_clef[clef_eficas]
-                if val != None:
-                   try :
-                    ligne=mot+' '+val
-                   except:
-                    ligne=mot+' '+repr(val)
-                   ligne.rjust(32)
-                   self.textehomard.append(ligne)
-          else:
-             val=apply(HomardGenerator.__dict__[mot],(self,))
-             if val != None:
-                mot.rjust(8)
-                ligne=mot+' '+val
-                ligne.rjust(32)
-                self.textehomard.append(ligne)
-
-   def get_homard(self):
-       return self.textehomard
-
-   def SuivFron(self):
-        val="non"
-        if self.dico_mot_clef.has_key('NOM_MED_MAILLAGE_FRONTIERE'):
-           if self.dico_mot_clef['NOM_MED_MAILLAGE_FRONTIERE'] != None:
-                val="oui"
-        return val
-
-   def TypeBila(self):
-        inttypeBilan = 1
-        retour=None
-        dict_val={'NOMBRE':7,'INTERPENETRATION':3,'QUALITE':5,'CONNEXITE':11,'TAILLE':13}
-        for mot in ('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'):
-            if self.dico_mot_clef.has_key(mot):
-               if (self.dico_mot_clef[mot] == "OUI"):
-                  inttypeBilan=inttypeBilan*dict_val[mot]
-                  retour = repr(inttypeBilan)
-        return retour
-
-
-   def ModeHOMA(self):
-        intModeHOMA=1
-        if self.dico_mot_clef.has_key('INFORMATION'):
-           if self.dico_mot_clef['INFORMATION'] == "OUI":
-              intModeHOMA=2
-        return repr(intModeHOMA)
-           
-   def CCAssoci(self):
-        return 'MED' 
-
-   def CCNoChaI(self):
-        if not (self.dico_mot_clef.has_key('NOM_MED')):
-           return None
-        if (self.dico_mot_clef['NOM_MED']== None):
-           return None
-        if not (self.dico_mot_clef.has_key('COMPOSANTE')):
-           return None
-        if (self.dico_mot_clef['COMPOSANTE']== None):
-           return None
-        chaine=self.dico_mot_clef['COMPOSANTE']+' '+self.dico_mot_clef['NOM_MED']
-        return chaine
-
-   def HOMaiN__(self):
-       chaine=None
-       if self.dico_mot_clef.has_key('NITER'):
-          if self.dico_mot_clef['NITER'] != None :
-             num="M"+repr(self.dico_mot_clef['NITER'])
-             chaine=num+" "+num+".hom"
-       return chaine
-
-   def HOMaiNP1(self):
-       chaine=None
-       if self.dico_mot_clef.has_key('NITER'):
-          if self.dico_mot_clef['NITER'] != None :
-             num="M"+repr(self.dico_mot_clef['NITER']+1)
-             chaine=num+" "+num+".hom"
-       return chaine
-
-   def CCNumOrI(self):
-       chaine=repr(1)
-       if self.dico_mot_clef.has_key('NUME_ORDRE'):
-          if self.dico_mot_clef['NUME_ORDRE'] != None :
-             chaine=repr(self.dico_mot_clef['NUME_ORDRE'])
-       return chaine
-
-   def CCNumPTI(self):
-       chaine=repr(1)
-       if self.dico_mot_clef.has_key('NUME_PAS_TEMPS'):
-          if self.dico_mot_clef['NUME_PAS_TEMPS'] != None :
-             chaine=repr(self.dico_mot_clef['NUME_PAS_TEMPS'])
-       return chaine
index b0637c9e50cbbd705b058a3ed3b29d15009bc4d9..e3f3a91e53ebbb60a327ae9923a1565d297e090f 100644 (file)
@@ -98,7 +98,7 @@ class MapGenerator(PythonGenerator):
   
    def generRUN(self,obj,schema):
        if not(obj.isvalid()) :
-          print "TODO TODO TODO"
+          print ("TODO TODO TODO")
        self.texteEXE=""
        self.schema=schema
        textComm=self.gener(obj)
index fa5a130aefd5c63eedad18eddd62323e18644de4..ac773472a5fe4e025023947a24d92377fb0c6d34 100644 (file)
@@ -29,7 +29,6 @@ class ModificationGenerator:
       texteModification=""\r
       for t in  obj.editor.dicoNouveauxMC.keys() :\r
           # 'ajoutDefinitionMC',etape,listeAvant,nomDuMC,typ,args\r
-          print t\r
           fonction,Etape,Genea,nomSIMP,typeSIMP,arguments = obj.editor.dicoNouveauxMC[t]\r
           texteModification += "MODIFICATION_CATALOGUE(Fonction  = '" + str(fonction)+ "',\n"\r
           texteModification += "                       Etape     = '" + str(Etape)   + "',\n"\r
diff --git a/generator/generator_openturns.py b/generator/generator_openturns.py
deleted file mode 100644 (file)
index 2f4b371..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-    openturns pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-from Extensions.i18n import tr
-
-
-from generator_python import PythonGenerator
-from OpenturnsBase import Generateur 
-#from OpenturnsXML import XMLGenerateur 
-#from OpenturnsSTD import STDGenerateur 
-
-def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'openturns',
-        # La factory pour creer une instance du plugin
-          'factory' : OpenturnsGenerator,
-          }
-
-
-class OpenturnsGenerator(PythonGenerator):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un texte au format eficas et 
-       un texte au format xml 
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-   def initDico(self):
-       self.dictMCVal={}
-       self.listeVariables=[]
-       self.listeFichiers=[]
-       self.dictMCLois={}
-       self.dictTempo={}
-       self.TraiteMCSIMP=1
-
-   def gener(self,obj,format='brut',config=None):
-       #print "IDM: gener dans generator_openturns.py"
-       self.initDico()
-       self.text=PythonGenerator.gener(self,obj,format)
-       self.genereXML()
-       self.genereSTD()
-       return self.text
-
-   def generMCSIMP(self,obj) :
-       """
-       Convertit un objet MCSIMP en texte python
-       Remplit le dictionnaire des MCSIMP si nous ne sommes pas ni dans une loi, ni dans une variable
-       """
-       s=PythonGenerator.generMCSIMP(self,obj)
-       if self.TraiteMCSIMP == 1 : 
-          self.dictMCVal[obj.nom]=obj.valeur
-       else :
-          self.dictTempo[obj.nom]=obj.valeur
-       return s
-
-   def generMCFACT(self,obj):
-       # Il n est pas possible d utiliser obj.valeur qui n est pas 
-       # a jour pour les nouvelles variables ou les modifications 
-       if obj.nom == "Variables" or "Files":
-          self.TraiteMCSIMP=0
-         self.dictTempo={}
-       s=PythonGenerator.generMCFACT(self,obj)
-       if obj.nom == "Variables" :
-         self.listeVariables.append(self.dictTempo)
-         self.dictTempo={}
-       else :
-          self.listeFichiers.append(self.dictTempo)
-       self.TraiteMCSIMP=1
-       return s
-
-   def generETAPE(self,obj):
-       if obj.nom == "DISTRIBUTION" :
-          self.TraiteMCSIMP=0
-         self.dictTempo={}
-       s=PythonGenerator.generETAPE(self,obj)
-       if obj.nom == "DISTRIBUTION" :
-          self.dictMCLois[obj.sd]=self.dictTempo
-         self.dictTempo={}
-       self.TraiteMCSIMP=1
-       return s
-
-   def genereXML(self):
-       #print "IDM: genereXML dans generator_openturns.py"
-       if self.listeFichiers != [] :
-          self.dictMCVal["exchange_file"]=self.listeFichiers
-       MonBaseGenerateur=Generateur(self.dictMCVal, self.listeVariables, self.dictMCLois)
-       MonGenerateur=MonBaseGenerateur.getXMLGenerateur()
-       #try :
-       if 1== 1 :
-          self.texteXML=MonGenerateur.CreeXML()
-       #except :
-       else :
-         self.texteXML=tr("Il y a un pb a la Creation du XML")
-
-   def genereSTD(self):
-       MonBaseGenerateur=Generateur(self.dictMCVal, self.listeVariables, self.dictMCLois)
-       MonGenerateur=MonBaseGenerateur.getSTDGenerateur()
-       #try :
-       if 1== 1 :
-          self.texteSTD=MonGenerateur.CreeSTD()
-       #except :
-       else :
-                 self.texteSTD=tr("Il y a un pb a la Creation du STD")
-
-   def getOpenturnsXML(self):
-       return self.texteXML
-
-   def getOpenturnsSTD(self):
-       return self.texteSTD
diff --git a/generator/generator_openturns_study.py b/generator/generator_openturns_study.py
deleted file mode 100644 (file)
index e603d90..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-   openturns pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-from Extensions.i18n import tr
-
-
-from generator_python import PythonGenerator
-from OpenturnsBase import Generateur 
-#from OpenturnsXML import XMLGenerateur 
-#from OpenturnsSTD import STDGenerateur 
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'openturns_study',
-        # La factory pour creer une instance du plugin
-          'factory' : OpenturnsGenerator,
-          }
-
-
-class OpenturnsGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format xml 
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-   def initDico(self):
-      self.dictMCVal={}
-      self.listeVariables=[]
-      self.listeFichiers=[]
-      self.dictMCLois={}
-      self.dictTempo={}
-      self.TraiteMCSIMP=1
-      self.texteSTD="""#!/usr/bin/env python
-      import sys
-      print "Invalid file. Check build process."
-      sys.exit(1)
-      """
-
-   def gener(self,obj,format='brut',config=None):
-      print "IDM: gener dans generator_openturns_study.py"
-      self.initDico()
-      self.text=PythonGenerator.gener(self,obj,format)
-      self.genereSTD()
-      return self.text
-
-   def generMCSIMP(self,obj) :
-      """
-      Convertit un objet MCSIMP en texte python
-      Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
-      """
-      s=PythonGenerator.generMCSIMP(self,obj)
-      if self.TraiteMCSIMP == 1 : 
-         self.dictMCVal[obj.nom]=obj.valeur
-      else :
-         self.dictTempo[obj.nom]=obj.valeur
-      return s
-
-
-   def generETAPE(self,obj):
-      print "IDM: generETAPE dans generator_openturns_study.py"
-      print "IDM: obj.nom=", obj.nom
-      if obj.nom in ( "DISTRIBUTION", ) :
-         self.TraiteMCSIMP=0
-         self.dictTempo={}
-      s=PythonGenerator.generETAPE(self,obj)
-      if obj.nom in ( "DISTRIBUTION", ) :
-         self.dictMCLois[obj.sd]=self.dictTempo
-         self.dictTempo={}
-      self.TraiteMCSIMP=1
-      return s
-
-   def generPROC_ETAPE(self,obj):
-      print "IDM: generPROC_ETAPE dans generator_openturns_study.py"
-      print "IDM: obj.nom=", obj.nom
-      if obj.nom in ( "VARIABLE",  ) :
-         self.TraiteMCSIMP=0
-         self.dictTempo={}
-      s=PythonGenerator.generPROC_ETAPE(self,obj)
-      if obj.nom in ( "VARIABLE", ) :
-         self.listeVariables.append(self.dictTempo)
-         self.dictTempo={}
-      self.TraiteMCSIMP=1
-      return s
-
-   def genereSTD(self):
-      print "IDM: genereSTD dans generator_openturns_study.py"
-      print "IDM: self.listeVariables=", self.listeVariables
-      MonGenerateur=self.getGenerateur()
-      #try :
-      if 1== 1 :
-         self.texteSTD=MonGenerateur.CreeSTD()
-      #except :
-      else :
-         self.texteSTD=tr("Il y a un pb a la Creation du STD")
-
-   def writeDefault(self, fn):
-      fileSTD = fn[:fn.rfind(".")] + '.py'
-      with open(fileSTD, 'w') as f:
-        f.write(self.texteSTD)
-
-   def getGenerateur (self):
-      print "IDM: getGenerateur dans generator_openturns_study.py"
-      print "IDM: self.dictMCVal=", self.dictMCVal
-      print "IDM: self.listeVariables=", self.listeVariables
-      print "IDM: self.dictMCLois=", self.dictMCLois
-      MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, self.listeVariables, self.dictMCLois)
-      MonGenerateur=MonBaseGenerateur.getSTDGenerateur()
-      return MonGenerateur
diff --git a/generator/generator_openturns_wrapper.py b/generator/generator_openturns_wrapper.py
deleted file mode 100644 (file)
index bf0d063..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# -*- 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 contient le plugin generateur de fichier au format 
-    openturns pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-from Extensions.i18n import tr
-
-
-from generator_python import PythonGenerator
-from OpenturnsBase import Generateur 
-#from OpenturnsXML import XMLGenerateur 
-#from OpenturnsSTD import STDGenerateur 
-
-def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'openturns_wrapper',
-        # La factory pour creer une instance du plugin
-          'factory' : OpenturnsGenerator,
-          }
-
-
-class OpenturnsGenerator(PythonGenerator):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un texte au format eficas et 
-       un texte au format xml 
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-   def initDico(self):
-       self.dictMCVal={}
-       self.dictVariables={}
-       self.listeFichiers=[]
-       self.dictTempo={}
-       self.traiteMCSIMP=1
-       self.numOrdre=0
-       self.texteSTD="""#!/usr/bin/env python
-       import sys
-       print "Invalid file. Check build process."
-       sys.exit(1)
-       """
-       self.wrapperXML=None
-
-   def gener(self,obj,format='brut',config=None):
-       #print "IDM: gener dans generator_openturns_wrapper.py"
-       self.initDico()
-       self.text=PythonGenerator.gener(self,obj,format)
-       self.genereXML()
-       #self.genereSTD()
-       return self.text
-
-   def generMCSIMP(self,obj) :
-       """
-       Convertit un objet MCSIMP en texte python
-       Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
-       """
-       s=PythonGenerator.generMCSIMP(self,obj)
-       if not( type(obj.valeur) in (list, tuple)) and (obj.get_min_max()[1] != 1):
-          valeur=(obj.valeur,)
-       else :
-          valeur=obj.valeur
-       if self.traiteMCSIMP == 1 : 
-          self.dictMCVal[obj.nom]=valeur
-       else :
-          self.dictTempo[obj.nom]=valeur
-       return s
-
-   def generETAPE(self,obj):
-       #print "generETAPE" , obj.nom
-       if obj.nom == "VARIABLE" :
-          self.traiteMCSIMP=0
-          self.dictTempo={}
-       s=PythonGenerator.generETAPE(self,obj)
-       if obj.nom == "VARIABLE" :
-          self.dictTempo["numOrdre"]=self.numOrdre
-          self.numOrdre = self.numOrdre +1
-          if obj.sd == None :
-             self.dictVariables["SansNom"]=self.dictTempo
-          else :
-             self.dictVariables[obj.sd.nom]=self.dictTempo
-          self.dictTempo={}
-       self.traiteMCSIMP=1
-       return s
-
-   def generMCFACT(self,obj):
-       # Il n est pas possible d utiliser obj.valeur qui n est pas 
-       # a jour pour les nouvelles variables ou les modifications 
-       if obj.nom in ( "Files", ) :
-          self.traiteMCSIMP=0
-         self.dictTempo={}
-       s=PythonGenerator.generMCFACT(self,obj)
-       self.listeFichiers.append(self.dictTempo)
-       self.traiteMCSIMP=1
-       return s
-
-   def genereXML(self):
-       print "IDM: genereXML dans generator_openturns_wrapper.py"
-       #print "appli.CONFIGURATION=",self.appli.CONFIGURATION.__dict__
-       if self.listeFichiers != [] :
-          self.dictMCVal["Files"]=self.listeFichiers
-       print "dictMCVal", self.dictMCVal, "dictVariables", self.dictVariables
-       MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, [], {} ,self.dictVariables)
-       MonGenerateur=MonBaseGenerateur.getXMLGenerateur()
-       try :
-       #if 1== 1 :
-          self.wrapperXML=MonGenerateur.CreeXML()
-       except :
-       #else :
-         self.wrapperXML=None
-
-   def writeDefault(self, filename):
-      fileXML = filename[:filename.rfind(".")] + '.xml'
-      self.wrapperXML.writeFile( str(fileXML) )
index 30b538afc4d01104af22150dac04e62a008b2bc9..e49ca579150ef653b26290e4a5b5a4ab6148c921 100644 (file)
@@ -96,7 +96,6 @@ class PythonGenerator:
       """
       self.appli=obj.get_jdc_root().appli
       #self.appli=obj.appli
-      #print format
       liste= self.generator(obj)
       if format == 'brut':
          self.text=liste
@@ -517,7 +516,6 @@ class PythonGenerator:
             # mais seulement le nom dans le cas d'un parametre
       #      s = valeur.nom
       #   else:
-      #      print valeur
       #      s = self.generator(valeur)
 
       else :
@@ -551,7 +549,6 @@ class PythonGenerator:
                   obj.valeurFormatee.append(val)
                else :
                  obj.valeurFormatee.append(self.format_item(val,obj.etape,obj))
-               #print obj.valeurFormatee
             if len(obj.valeur) >= 1:
                s = '(' + s + '),'
             if obj.valeur==[] or obj.valeur==() : s="(),"
@@ -560,13 +557,11 @@ class PythonGenerator:
       else :
          obj.valeurFormatee=obj.valeur
          s=self.format_item(obj.valeur,obj.etape,obj) + ','
-      #print s
       return s
 
 
    def formatColonnes(self,nbrColonnes,listeValeurs,obj):
       #try :
-      #print listeValeurs
       if 1 == 1 :
         indice=0
         textformat="("
@@ -589,5 +584,4 @@ class PythonGenerator:
       #except :
       else :
          textformat=str(obj.valeur)
-      #print textformat
       return textformat
index f1be205b45527b4c92b36a89426510583305e0b6..09582f2184348d3bfd4aff203cacbf7a5a138446 100644 (file)
@@ -38,14 +38,14 @@ from generator_python import PythonGenerator
 
 def entryPoint():
    """
-       Retourne les informations nécessaires pour le chargeur de plugins
+       Retourne les informations necessaires pour le chargeur de plugins
 
-       Ces informations sont retournées dans un dictionnaire
+       Ces informations sont retournees dans un dictionnaire
    """
    return {
         # Le nom du plugin
           'name' : 'vers3DSalome',
-        # La factory pour créer une instance du plugin
+        # La factory pour creer une instance du plugin
           'factory' : vers3DSalomeGenerator,
           }
 
@@ -94,7 +94,6 @@ class vers3DSalomeGenerator(PythonGenerator):
       self.node=node
       self.list_commandes=[];
       self.generator(self.node.object)
-      #print self.list_commandes
       return self.list_commandes
 
    def generator(self,obj):
@@ -150,7 +149,7 @@ class vers3DSalomeGenerator(PythonGenerator):
 
    def generMCFACT(self,obj):
       """
-          Convertit un objet MCFACT en une liste de chaines de caractères à la
+          Convertit un objet MCFACT en une liste de chaines de caracteres a la
           syntaxe python
       """
       self.init_ligne()
@@ -205,12 +204,12 @@ class vers3DSalomeGenerator(PythonGenerator):
                val = val[0]
            if isinstance (val, Extensions.parametre.PARAMETRE):
               val=val.valeur
-              print val.__class__
+             print ( val.__class)
               context={}
               if type(val) == type("aaa") :
                  for p in self.jdc.params:
                      context[p.nom]=eval(p.val,self.jdc.const_context, context)
-                     print context[p.nom]
+                     print (context[p.nom])
                  res=eval(val,self.jdc.const_context, context)
                  val=res
            self.dict_attributs[clef]=val
diff --git a/generator/oldCodes/OpenturnsBase.py b/generator/oldCodes/OpenturnsBase.py
new file mode 100644 (file)
index 0000000..465c6f8
--- /dev/null
@@ -0,0 +1,145 @@
+# -*- 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
+#
+
+"""
+Ce module contient la partie commune 
+aux generateurs XML et Etude d Openturns
+"""
+
+__revision__ = "V1.0"
+
+import os
+import sys
+
+path=os.getcwd()
+pathDef=path+"DefautOpenturns"
+
+sys.path.append(pathDef)
+
+
+#=============================================
+# La classe generale
+#=============================================
+
+class Generateur :
+
+  '''
+  Classe generale du generateur
+  DictMCVal : dictionnaire des mots-cles
+  ListeVariables : chaque variable est decrite par un dictionnaire ; cette liste les regroupe
+  DictLois : dictionnaires des lois
+  '''
+  def __init__ (self, appli, DictMCVal = {}, ListeVariables = [], DictLois = {}, DictVariables = {} ) :
+  #---------------------------------------------------------#
+    self.ListeVariables = ListeVariables
+    self.ListeVariablesIn = []
+    self.ListeVariablesOut = []
+    self.DictLois = DictLois
+    self.DictVariables = DictVariables
+    self.DictMCVal = DictMCVal
+    self.DictTypeVar = {}
+    self.nbVarIn = 0
+    self.nbVarOut = 0
+    self.creeInfoVar()
+    self.appli = appli
+    #
+    # On charge eventuellement le Solver par defaut
+    # et les valeurs par defaut du Solver (dans l init)
+    #
+    try :
+    #if 1 :
+        Solver = self.DictMCVal["PhysicalSolver"]
+        import_name = "Defaut"+Solver
+       self.module = __import__( import_name, globals(), locals() )
+       monDefaut = self.module.Defaut( self )
+    #else :
+    except:
+        self.module = None
+
+
+  def getSTDGenerateur(self) :
+  #--------------------------#
+    try :
+       gener = self.module.__dict__["MonSTDGenerateur"]
+       monSTDGenerateur=gener( self.DictMCVal, self.ListeVariablesIn, self.ListeVariablesOut, self.DictLois )
+    except :
+        from OpenturnsSTD import STDGenerateur
+        monSTDGenerateur = STDGenerateur( self.appli, self.DictMCVal, self.ListeVariablesIn, self.ListeVariablesOut, self.DictLois )
+    return monSTDGenerateur
+      
+  def getXMLGenerateur(self) :
+  #--------------------------#
+    try :
+       gener = self.module.__dict__["MonXMLGenerateur"]
+       monXMLGenerateur=gener( self.DictMCVal, self.ListeVariables, self.DictLois )
+    except :
+        from OpenturnsXML import XMLGenerateur
+        monXMLGenerateur = XMLGenerateur( self.appli, self.DictMCVal, self.DictVariables )
+    return monXMLGenerateur
+      
+  def creeInfoVar (self) :
+  #----------------------#
+    """
+    On repere les variables in/out et on les numerote.
+    """
+    num = 0
+    liste = []
+    for DictVariable in self.ListeVariables :
+      if not DictVariable.has_key("Type") : DictVariable["Type"] = "in"
+      self.DictTypeVar[num] = DictVariable["Type"]
+      if DictVariable["Type"] == "in" : 
+         self.nbVarIn = self.nbVarIn + 1
+         self.ListeVariablesIn.append( DictVariable )
+         print "OpenturnsBase.py: new input variable = ", DictVariable
+      else:
+         self.nbVarOut = self.nbVarOut + 1
+         self.ListeVariablesOut.append( DictVariable )
+         print "OpenturnsBase.py: new output variable = ", DictVariable
+      liste.append( DictVariable )
+      num = num + 1
+    self.ListeVariables = liste
+
+
+  def ajouteDictMCVal(self, dicoPlus) :
+  #-----------------------------------#
+  # Appele par le classe Defaut du python specifique au code (exple DefautASTER.py)
+  # enrichit self.DictMCVal avec les valeurs donnees dans dicoPlus
+  # si elles ne sont pas deja dans le dictionnaire
+
+    for clef in dicoPlus.keys():
+        if not self.DictMCVal.has_key(clef) :
+          self.DictMCVal[clef] = dicoPlus[clef]
+
+  def ajouteInfoVariables (self, dicoVariablesIn, dicoVariablesOut) :
+  #-----------------------------------------------------------------#
+  # Appele par le classe Defaut du python specifique au code (exple DefautASTER.py)
+  # met a jour les dictionnaires qui decrivent les variables (regexp par exemple)
+    liste=[]
+    num = 0
+    for dictVariable in self.ListeVariables:
+         if self.DictTypeVar[num] == "in" :
+           dico = dicoVariablesIn
+        else :
+           dico = dicoVariablesOut
+        for nouvelleVariable in dico.keys() :
+           if not dictVariable.has_key(nouvelleVariable):
+              dictVariable[nouvelleVariable] = dico[nouvelleVariable]
+        liste.append( dictVariable )
+        num = num + 1
diff --git a/generator/oldCodes/OpenturnsSTD.py b/generator/oldCodes/OpenturnsSTD.py
new file mode 100644 (file)
index 0000000..f2659e1
--- /dev/null
@@ -0,0 +1,1397 @@
+# -*- 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 contient le generateur Etude pour Openturns
+"""
+
+from Extensions.i18n import tr
+
+__revision__ = "V1.0"
+
+defaultSTD = """#! /usr/bin/env python
+
+class StudyFileGenerationError:
+  def __init__ (self, st):
+    self.st = st
+  def __str__(self):
+    return "'%s'" % self.st
+
+raise StudyFileGenerationError, "The study file was not generated. Check analysis type."
+"""
+
+headerSTD = """#! /usr/bin/env python
+
+# Chargement du module systeme
+import sys
+sys.path[:0]=['%s']
+
+# Chargement du module math
+import math
+
+# Chargement du module Open TURNS
+from openturns import *
+
+# Fonction verifiant si un echantillon contient des valeurs non valides (NaN)
+def contain_nan_values(sample):
+  for point in sample:
+    for val in point:
+      if math.isnan(val):
+        return True
+  return False
+
+results = {}
+
+"""
+
+viewerSTD = """
+from openturns.viewer import View
+
+# Fonction de test du serveur X
+import subprocess
+xserver_available = None
+def is_xserver_available():
+  global xserver_available
+  if xserver_available is None:
+    xserver_available = True
+    try:
+      subprocess.check_call('python -c "from matplotlib import pyplot;pyplot.figure()" >/dev/null 2>&1', shell = True)
+    except:
+      xserver_available = False
+  return xserver_available
+
+"""
+
+footerSTD = """
+
+# Flush des messages en attente
+Log.Flush()
+
+# Terminaison du fichier
+#sys.exit( 0 )
+"""
+
+#=============================================
+#  La classe de creation du fichier STD
+#=============================================
+
+class STDGenerateur :
+
+  '''
+  Generation du fichier python
+  '''
+  def __init__ (self, appli, DictMCVal, ListeVariablesIn, ListeVariablesOut, DictLois ) :
+    self.DictMCVal = DictMCVal
+    self.ListeVariablesIn = ListeVariablesIn
+    self.ListeVariablesOut = ListeVariablesOut
+    self.DictLois = DictLois
+    #print "DictMCVal=", DictMCVal
+    print "ListeVariablesIn= %s", ListeVariablesIn
+
+# A REPRENDRE DEPUIS ICI !!
+    print "ListeVariablesOut= %s", ListeVariablesOut
+    #print "DictLois=", DictLois
+    self.texteSTD = defaultSTD
+    self.OpenTURNS_path = appli.CONFIGURATION.OpenTURNS_path
+
+    # Ce dictionnaire fait la correspondance entre le mot lu dans le dictionnaire des mots-clefs et la methode a appeler
+    self.traitement = {
+      "Min/Max" :
+      ( "MinMax",
+        { "Experiment Plane" : "ExperimentPlane",
+          "Random Sampling" : "MinMaxRandomSampling",
+          },
+        ),
+      "Central Uncertainty" :
+      ( "CentralUncertainty",
+        { "Taylor Variance Decomposition" : "TaylorVarianceDecomposition",
+          "Random Sampling" : "CentralUncertaintyRandomSampling",
+         },
+        ),
+      "Threshold Exceedence" :
+      ( "ThresholdExceedence",
+        { "Simulation" : "Simulation",
+          "FORM_SORM" : "Analytical",
+          "MonteCarlo" : "MonteCarlo",
+          "LHS" : "LHS",
+          "ImportanceSampling" : "ImportanceSampling",
+          "FirstOrder" : "FORM",
+          "SecondOrder" : "SORM",
+          "Cobyla" : "Cobyla",
+          "AbdoRackwitz" : "AbdoRackwitz",
+          },
+        ),
+      }
+
+    # Ce dictionnaire liste le nom des variables utilisees dans le script
+    # La clef est le nom attendu par les methodes, la valeur est le nom produit dans le fichier de sortie
+    # Le fait de passer par un dictionnaire permet de controler que les variables existent et sont correctement nommees
+    # meme si clef == valeur
+    self.variable = {
+      "n" : "n",
+      "p" : "p",
+      "wrapper" : "wrapper",
+      "wrapperdata" : "wrapperdata",
+      "frameworkdata" : "frameworkdata",
+      "framework" : "framework",
+      "studyid" : "studyid",
+      "studycase" : "studycase",
+      "componentname" : "componentname",
+      "model" : "model",
+      "scaledVector" : "scaledVector",
+      "translationVector" : "translationVector",
+      "levels" : "levels",
+      "myCenteredReductedGrid" : "myCenteredReductedGrid",
+      "myExperimentPlane" : "myExperimentPlane",
+      "inputSample" : "inputSample",
+      "outputSample" : "outputSample",
+      "minValue" : 'results["minValue"]',
+      "maxValue" : 'results["maxValue"]',
+      "flags" : "flags",
+      "inSize" : "inSize",
+      "distribution" : "distribution",
+      "marginal" : "marginal",
+      "collection" : "collection",
+      "copula" : "copula",
+      "correlation" : "correlation",
+      "R" : "R",
+      "vars" : "vars",
+      "description" : "description",
+      "inputRandomVector" : "inputRandomVector",
+      "outputRandomVector" : "outputRandomVector",
+      "myQuadraticCumul" : "myQuadraticCumul",
+      "meanFirstOrder" : 'results["meanFirstOrder"]',
+      "meanSecondOrder" : 'results["meanSecondOrder"]',
+      "standardDeviationFirstOrder" : 'results["standardDeviationFirstOrder"]',
+      "importanceFactors" : 'results["importanceFactors"]',
+      "importanceFactorsGraph" : "importanceFactorsGraph",
+      "importanceFactorsDrawing" : "importanceFactorsDrawing",
+      "empiricalMean" : 'results["empiricalMean"]',
+      "empiricalStandardDeviation" : 'results["empiricalStandardDeviation"]',
+      "empiricalQuantile" : 'results["empiricalQuantile"]',
+      "alpha" : "alpha",
+      "beta" : "beta",
+      "PCCcoefficient" : 'results["PCCcoefficient"]',
+      "PRCCcoefficient" : 'results["PRCCcoefficient"]',
+      "SRCcoefficient" : 'results["SRCcoefficient"]',
+      "SRRCcoefficient" : 'results["SRRCcoefficient"]',
+      "kernel" : "kernel",
+      "kernelSmoothedDist" : "kernelSmoothedDist",
+      "kernelSmoothedPDFDrawing" : "kernelSmoothedPDFDrawing",
+      "kernelSmoothedGraph" : "kernelSmoothedGraph",
+      "meanVector" : "meanVector",
+      "importanceDensity" : "importanceDensity",
+      "myEvent" : "myEvent",
+      "myAlgo" : "myAlgo",
+      "myResult" : "myResult",
+      "probability" : 'results["probability"]',
+      "standardDeviation" : 'results["standardDeviation"]',
+      "level" : "level",
+      "length" : "length",
+      "coefficientOfVariation" : 'results["coefficientOfVariation"]',
+      "convergenceGraph" : "convergenceGraph",
+      "convergenceDrawing" : "convergenceDrawing",
+      "simulationNumbers" : 'results["simulationNumbers"]',
+      "myOptimizer" : "myOptimizer",
+      "specificParameters" : "specificParameters",
+      "startingPoint" : "startingPoint",
+      "hasoferReliabilityIndex" : 'results["hasoferReliabilityIndex"]',
+      "standardSpaceDesignPoint" : 'results["standardSpaceDesignPoint"]',
+      "physicalSpaceDesignPoint" : 'results["physicalSpaceDesignPoint"]',
+      "eventProbabilitySensitivity" : 'results["eventProbabilitySensitivity"]',
+      "hasoferReliabilityIndexSensitivity" : 'results["hasoferReliabilityIndexSensitivity"]',
+      "eventProbabilitySensitivityGraph" : "eventProbabilitySensitivityGraph",
+      "eventProbabilitySensitivityDrawing" : "eventProbabilitySensitivityDrawing",
+      "hasoferReliabilityIndexSensitivityGraph" : "hasoferReliabilityIndexSensitivityGraph",
+      "hasoferReliabilityIndexSensitivityDrawing" : "hasoferReliabilityIndexSensitivityDrawing",
+      "modelEvaluationCalls" : 'results["modelEvaluationCalls"]',
+      "modelGradientCalls" : 'results["modelGradientCalls"]',
+      "modelHessianCalls" : 'results["modelHessianCalls"]',
+      "tvedtApproximation" : 'results["tvedtApproximation"]',
+      "hohenBichlerApproximation" : 'results["hohenBichlerApproximation"]',
+      "breitungApproximation" : 'results["breitungApproximation"]',
+      }
+
+    # Ce dictionnaire fait la correspondance entre le mot-clef du catalogue et le flag de la bibliotheque
+    self.logFlags = {
+      "DebugMessages"   : "Log.DBG",
+      "WrapperMessages" : "Log.WRAPPER",
+      "UserMessages"    : "Log.USER",
+      "InfoMessages"    : "Log.INFO",
+      "WarningMessages" : "Log.WARN",
+      "ErrorMessages"   : "Log.ERROR",
+      }
+    
+  def CreeSTD (self) :
+    '''
+    Pilotage de la creation du fichier python
+    '''
+    TypeAnalyse = None
+    if ( self.DictMCVal.has_key( 'Type' ) ):
+      TypeAnalyse =  self.DictMCVal[ 'Type' ]
+
+    Traitement = None
+    subDict = {}
+    if ( self.traitement.has_key( TypeAnalyse ) ):
+      (Traitement, subDict) =  self.traitement[ TypeAnalyse ]
+
+    if ( Traitement is not None ):
+      self.texteSTD = apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
+    
+    return self.texteSTD
+
+  def Header (self) :
+    '''
+    Imprime l entete commun a tous les fichiers
+    '''
+    txt  = headerSTD % self.OpenTURNS_path
+    txt += viewerSTD
+    txt += "# Definit le niveau d'affichage de la log\n"
+    txt += "%s = Log.NONE\n" % self.variable["flags"]
+    for flag in self.logFlags.keys():
+      if ( self.DictMCVal.has_key( flag ) ):
+        val =  self.DictMCVal[ flag ]
+        op = "-"
+        if val == 'yes' :
+          op = "+"
+        txt += "%s = %s %s %s\n" % (self.variable["flags"], self.variable["flags"], op, self.logFlags[ flag ])
+    txt += "Log.Show( %s )\n" % self.variable["flags"]
+    txt += "\n"
+    return txt
+
+  def Footer (self) :
+    '''
+    Imprime le pied de page commun a tous les fichiers
+    '''
+    return footerSTD
+
+  def MinMax (self, subDict):
+    '''
+    Produit le fichier study correspondant a une analyse Min/Max
+    '''
+    txt  = self.Header()
+    txt += self.Model()
+    
+    Methode = None
+    if ( self.DictMCVal.has_key( 'Method' ) ):
+      Methode =  self.DictMCVal[ 'Method' ]
+
+    Traitement = None
+    if ( subDict.has_key( Methode ) ):
+      Traitement =  subDict[ Methode ]
+
+    if ( Traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+    txt += self.MinMaxResult()
+    
+    txt += self.Footer()
+    return txt
+
+  def Model (self):
+    '''
+    Importe le modele physique
+    '''
+    if ( self.DictMCVal.has_key( 'FileName' ) ):
+      name =  self.DictMCVal[ 'FileName' ]
+      
+    txt  = "# Charge le modele physique\n"
+    txt += "%s = WrapperFile( '%s' )\n" % (self.variable["wrapper"], name)
+    txt += "%s = %s.getWrapperData()\n" % (self.variable["wrapperdata"], self.variable["wrapper"])
+
+    txt += "# Ces lignes sont utiles pour le fonctionnement du script sous Salome\n"
+    txt += "if globals().has_key('%s'):\n" % self.variable["framework"]
+    txt += "  %s = %s.getFrameworkData()\n" % (self.variable["frameworkdata"], self.variable["wrapperdata"])
+    txt += "  %s.studyid_ = %s['%s']\n"  % (self.variable["frameworkdata"], self.variable["framework"], self.variable["studyid"])
+    txt += "  %s.studycase_ = %s['%s']\n"  % (self.variable["frameworkdata"], self.variable["framework"], self.variable["studycase"])
+    txt += "  %s.componentname_ = %s['%s']\n"  % (self.variable["frameworkdata"], self.variable["framework"], self.variable["componentname"])
+    txt += "  %s.setFrameworkData( %s )\n" % (self.variable["wrapperdata"], self.variable["frameworkdata"])
+    txt += "  %s.setWrapperData( %s )\n" % (self.variable["wrapper"], self.variable["wrapperdata"])
+    txt += "# Fin des lignes pour Salome\n"
+    
+    txt += "%s = NumericalMathFunction( %s )\n" % (self.variable["model"], self.variable["wrapper"],)
+    txt += "%s = %s.getInputDimension()\n" % (self.variable["n"], self.variable["model"])
+    txt += "\n"
+    return txt
+
+  def ExperimentPlane (self):
+    '''
+    Etude par plan d experience
+    '''
+    txt  = "# Etude par plan d'experience\n"
+    txt += self.Levels()
+    txt += self.CenteredReductedGrid()
+    txt += self.ScaledVector()
+    txt += self.TranslationVector()
+    txt += "%s = %s\n" % (self.variable["inputSample"], self.variable["myExperimentPlane"])
+    txt += "\n"
+    txt += "# Etude 'Min/Max'\n"
+    txt += "# Calcul\n"
+    txt += "%s = %s( %s )\n" % (self.variable["outputSample"], self.variable["model"], self.variable["inputSample"])
+    txt += "if contain_nan_values( %s ):\n" % (self.variable["outputSample"])
+    txt += "  raise Exception('Some computations failed')\n"
+    txt += "\n"
+    return txt
+
+  def MinMaxRandomSampling (self):
+    '''
+    Etude par echantillonage aleatoire
+    '''
+    size = 0
+    if ( self.DictMCVal.has_key( 'SimulationsNumber' ) ):
+      size =  self.DictMCVal[ 'SimulationsNumber' ]
+
+    txt  = "# Etude par echantillonage aleatoire\n"
+    txt += self.InputDistribution()
+    txt += self.InputRandomVector()
+    txt += "\n"
+    txt += "# Etude 'Min/Max'\n"
+    txt += "# Calcul\n"
+    txt += "%s = %d\n" % (self.variable["inSize"], size)
+    txt += "%s = RandomVector( %s, %s )\n" % (self.variable["outputRandomVector"], self.variable["model"], self.variable["inputRandomVector"])
+    txt += "%s = %s.getSample( %s )\n" % (self.variable["outputSample"], self.variable["outputRandomVector"], self.variable["inSize"])
+    txt += "if contain_nan_values( %s ):\n" % (self.variable["outputSample"])
+    txt += "  raise Exception('Some computations failed')\n"
+    return txt
+
+  def InputDistribution (self):
+    '''
+    Cree la loi jointe des variables d entree
+    '''
+    txt  = "# Definit la loi jointe des variables d'entree\n"
+    txt += "%s = DistributionCollection( %s )\n" % (self.variable["collection"], self.variable["n"])
+    txt += "%s = Description( %s )\n" % (self.variable["description"], self.variable["n"])
+    txt += "\n"
+
+    dictVariables = {}
+    for variable in self.ListeVariablesIn:
+      nomVar = variable['ModelVariable'].get_name()
+      dictVariables[ nomVar ] = variable['Distribution']
+
+    i = 0
+    sortedVarNames = dictVariables.keys()
+    sortedVarNames.sort()
+    for variable in sortedVarNames:
+      conceptloi = dictVariables[ variable ]
+      loi = self.DictLois[ conceptloi ]
+      if loi.has_key( 'Kind' ):
+        marginale = "%s_%d" % (self.variable["marginal"], i)
+        txt += "# Definit la loi marginale de la composante %d\n" % i
+        txt += "%s = %s\n" % (marginale, apply( STDGenerateur.__dict__[ loi[ 'Kind' ] ], (self, loi) ))
+        txt += "%s.setName( '%s' )\n" % (marginale, conceptloi.get_name())
+        txt += "%s[ %d ] = '%s'\n" % (self.variable["description"], i, variable)
+        txt += "%s[ %d ] = Distribution( %s )\n" % (self.variable["collection"], i, marginale)
+        txt += "\n"
+        i += 1
+
+    txt += self.Copula()
+
+    txt += "# Definit la loi jointe\n"
+    txt += "%s = ComposedDistribution( %s, Copula( %s ) )\n" % (self.variable["distribution"], self.variable["collection"], self.variable["copula"])
+    txt += "%s.setDescription( %s )\n" % (self.variable["distribution"], self.variable["description"])
+    txt += "\n"
+    return txt
+
+  def Copula (self):
+    '''
+    Cree la copule de la loi jointe
+    '''
+    txt  = "# Definit la copule de la loi jointe\n"
+
+    if ( not self.DictMCVal.has_key( 'Copula' ) ):
+      self.DictMCVal[ 'Copula' ] = 'Independent'
+
+    if ( self.DictMCVal[ 'Copula' ] in ( 'Independent', ) ):
+      txt += "%s = IndependentCopula( %s )\n" % (self.variable["copula"], self.variable["n"])
+    elif ( self.DictMCVal[ 'Copula' ] in ( 'Normal', ) ):
+      varList   = self.DictMCVal[ 'CorrelationMatrix' ][0]
+      dimension = len(varList)
+      txt += "%s = {}\n" % self.variable["correlation"]
+      for i in range( dimension ):
+        txt += "%s['%s'] = {}\n" % (self.variable["correlation"], varList[i])
+        for j in range ( dimension ):
+          txt += "%s['%s']['%s'] = %g\n" % (self.variable["correlation"], varList[i], varList[j], self.DictMCVal[ 'CorrelationMatrix' ][i+1][j])
+      txt += "%s = getCorrelationMatrixFromMap( %s.getVariableList(), %s )\n" % (self.variable["R"], self.variable["wrapperdata"], self.variable["correlation"])
+      txt += "%s = NormalCopula( %s )\n" % (self.variable["copula"], self.variable["R"])
+
+    txt += "\n"
+    return txt
+
+  def InputRandomVector (self):
+    '''
+    Cree le vector aleatoire d entree
+    '''
+    txt  = "# Definit le vecteur aleatoire d'entree\n"
+    txt += "%s = RandomVector( %s )\n" % (self.variable["inputRandomVector"], self.variable["distribution"])
+    txt += "\n"
+    return txt
+
+  def OutputRandomVector (self):
+    '''
+    Cree le vector aleatoire de sortie
+    '''
+    nomVar = "output"
+    for variable in self.ListeVariablesOut:
+      nomVar = variable['ModelVariable'].get_name()
+
+    txt  = "# Definit le vecteur aleatoire de sortie\n"
+    txt += "%s = RandomVector( %s, %s )\n" % (self.variable["outputRandomVector"], self.variable["model"], self.variable["inputRandomVector"])
+    txt += "%s.setName( '%s' )\n" % (self.variable["outputRandomVector"], nomVar)
+    txt += "\n"
+    return txt
+
+  def ScaledVector (self):
+    '''
+    Definit les coefficients multiplicateurs par composante du vecteur
+    '''
+    dimension = 0
+    if ( self.DictMCVal.has_key( 'UnitsPerDimension' ) ):
+      unitsPerDimension =  self.DictMCVal[ 'UnitsPerDimension' ]
+      dimension = len( unitsPerDimension )
+    
+    txt  = "# Definit les facteurs d'echelle dans chaque direction\n"
+    txt += "%s = NumericalPoint( %s )\n" % (self.variable["scaledVector"], self.variable["n"])
+    for i in range(dimension):
+      txt += "%s[%d] = %g\n" % (self.variable["scaledVector"], i, unitsPerDimension[i])
+    txt += "%s.scale( %s )\n" % (self.variable["myExperimentPlane"], self.variable["scaledVector"])
+    txt += "\n"
+    return txt
+
+  def TranslationVector (self):
+    '''
+    Definit le vecteur de translation
+    '''
+    dimension = 0
+    if ( self.DictMCVal.has_key( 'Center' ) ):
+      center =  self.DictMCVal[ 'Center' ]
+      dimension = len( center )
+    
+    txt  = "# Definit le vecteur de translation\n"
+    txt += "%s = NumericalPoint( %s )\n" % (self.variable["translationVector"], self.variable["n"])
+    for i in range(dimension):
+      txt += "%s[%d] = %g\n" % (self.variable["translationVector"], i, center[i])
+    txt += "%s.translate( %s )\n" % (self.variable["myExperimentPlane"], self.variable["translationVector"])
+    txt += "\n"
+    return txt
+
+  def Levels (self):
+    '''
+    Definit les niveaux du plan d experience
+    '''
+    dimension = 0
+    if ( self.DictMCVal.has_key( 'Levels' ) ):
+      levels =  self.DictMCVal[ 'Levels' ]
+      dimension = len( levels )
+    
+    txt  = "# Definit les niveaux de la structure de grille\n"
+    txt += "%s = NumericalPoint( %d )\n" % (self.variable["levels"], dimension)
+    for i in range(dimension):
+      txt += "%s[%d] = %g\n" % (self.variable["levels"], i, levels[i])
+    txt += "\n"
+    return txt
+
+  def CenteredReductedGrid (self):
+    '''
+    Definit la grille reduite du plan d experience
+    '''
+    plane = None
+    if ( self.DictMCVal.has_key( 'ExperimentPlane' ) ):
+      plane =  self.DictMCVal[ 'ExperimentPlane' ]
+
+    txt  = "# Cree le plan d'experience centre reduit\n"
+    txt += "%s = %s(%s, %s)\n" % (self.variable["myCenteredReductedGrid"], plane, self.variable["n"], self.variable["levels"])
+    txt += "%s = %s.generate()\n" % (self.variable["myExperimentPlane"], self.variable["myCenteredReductedGrid"])
+    txt += "\n"
+    return txt
+
+  def MinMaxResult (self):
+    '''
+    Produit les resultats de l etude
+    '''
+    txt  = "# Resultats\n"
+    txt += "%s = %s.getMin()\n" % (self.variable["minValue"], self.variable["outputSample"])
+    txt += "print '%s = ', %s\n" % ("minValue", self.variable["minValue"])
+    txt += "\n"
+    txt += "%s = %s.getMax()\n" % (self.variable["maxValue"], self.variable["outputSample"])
+    txt += "print '%s = ', %s\n" % ("maxValue", self.variable["maxValue"])
+    txt += "\n"
+    return txt
+
+  def CentralUncertainty (self, subDict):
+    '''
+    Produit le fichier study correspondant a une analyse d incertitude en valeur centrale
+    '''
+    txt  = self.Header()
+    txt += self.Model()
+    txt += self.InputDistribution()
+    txt += self.InputRandomVector()
+    txt += self.OutputRandomVector()
+   
+    Methode = None
+    if ( self.DictMCVal.has_key( 'Method' ) ):
+      Methode =  self.DictMCVal[ 'Method' ]
+
+    Traitement = None
+    if ( subDict.has_key( Methode ) ):
+      Traitement =  subDict[ Methode ]
+
+    if ( Traitement is not None ):
+      txt += "# Etude 'Central Uncertainty'\n"
+      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+    txt += self.Footer()
+    return txt
+
+
+  def TaylorVarianceDecomposition (self):
+    '''
+    Etude par decomposition de Taylor
+    '''
+    txt  = "# Cumul quadratique (decomposition de Taylor)\n"
+    txt += "%s = QuadraticCumul( %s )\n" % (self.variable["myQuadraticCumul"], self.variable["outputRandomVector"])
+    txt += "\n"
+    txt += "# Resultats\n"
+    
+    if ( self.DictMCVal.has_key( 'MeanFirstOrder' ) ):
+      if ( self.DictMCVal[ 'MeanFirstOrder' ] == "yes" ):
+        txt += "%s = %s.getMeanFirstOrder()\n" % (self.variable["meanFirstOrder"], self.variable["myQuadraticCumul"])
+        txt += "print '%s = ', %s\n" % ("mean First Order", self.variable["meanFirstOrder"])
+        txt += "\n"
+       
+    if ( self.DictMCVal.has_key( 'MeanSecondOrder' ) ):
+      if ( self.DictMCVal[ 'MeanSecondOrder' ] == "yes" ):
+        txt += "%s = %s.getMeanSecondOrder()\n" % (self.variable["meanSecondOrder"], self.variable["myQuadraticCumul"])
+        txt += "print '%s = ', %s\n" % ("mean Second Order", self.variable["meanSecondOrder"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'StandardDeviationFirstOrder' ) ):
+      if ( self.DictMCVal[ 'StandardDeviationFirstOrder' ] == "yes" ):
+        txt += "%s = %s.getCovariance()\n" % (self.variable["standardDeviationFirstOrder"], self.variable["myQuadraticCumul"])
+        txt += "dim = %s.getDimension()\n" % self.variable["standardDeviationFirstOrder"]
+        txt += "for i in range( dim ):\n"
+        txt += "  %s[ i, i ] = math.sqrt( %s[ i, i ] )\n" % (self.variable["standardDeviationFirstOrder"], self.variable["standardDeviationFirstOrder"])
+        txt += "  print '%s = ', %s[ i, i ]\n" % ("standard Deviation First Order", self.variable["standardDeviationFirstOrder"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'ImportanceFactor' ) ):
+      if ( self.DictMCVal[ 'ImportanceFactor' ] == "yes" ):
+        txt += "%s = %s.getImportanceFactors()\n" % (self.variable["importanceFactors"], self.variable["myQuadraticCumul"])
+        txt += "for i in range(%s.getDimension()):\n" % self.variable["importanceFactors"]
+        txt += "  print %s.getDescription()[i], ':', %s[i]*100., '%%'\n" % (self.variable["distribution"], self.variable["importanceFactors"])
+        txt += "\n"
+        txt += "%s = %s.drawImportanceFactors()\n" % (self.variable["importanceFactorsGraph"], self.variable["myQuadraticCumul"])
+        txt += "%s = '%s'\n" % (self.variable["importanceFactorsDrawing"], self.DictMCVal[ 'ImportanceFactorDrawingFilename' ])
+        txt += "%s.draw( %s )\n" % (self.variable["importanceFactorsGraph"], self.variable["importanceFactorsDrawing"])
+        txt += "#if is_xserver_available():\n"
+        txt += "#  view = View(%s)\n" % self.variable["importanceFactorsGraph"]
+        txt += "#  view.show(block=True)\n"
+        txt += "#else:\n"
+        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["importanceFactorsGraph"]
+        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["importanceFactorsGraph"]
+        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["importanceFactorsGraph"]
+        txt += "\n"
+        
+    txt += "\n"
+    return txt
+
+  def CentralUncertaintyRandomSampling (self):
+    '''
+    Etude par echantillonage aleatoire
+    '''
+    size = 0
+    if ( self.DictMCVal.has_key( 'SimulationsNumber' ) ):
+      size =  self.DictMCVal[ 'SimulationsNumber' ]
+
+    txt  = "# Echantillonnage aleatoire de la variable de sortie\n"
+    txt += "%s = %d\n" % (self.variable["inSize"], size)
+    txt += "%s = %s.getSample( %s )\n" % (self.variable["inputSample"], self.variable["inputRandomVector"], self.variable["inSize"])
+    txt += "%s = %s( %s )\n" % (self.variable["outputSample"], self.variable["model"], self.variable["inputSample"])
+    txt += "if contain_nan_values( %s ):\n" % (self.variable["outputSample"])
+    txt += "  raise Exception('Some computations failed')\n"
+    txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'EmpiricalMean' ) ):
+      if ( self.DictMCVal[ 'EmpiricalMean' ] == "yes" ):
+        txt += "%s = %s.computeMean()\n" % (self.variable["empiricalMean"], self.variable["outputSample"])
+        txt += "print '%s =', %s[0]\n" % ("empirical Mean", self.variable["empiricalMean"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'EmpiricalStandardDeviation' ) ):
+      if ( self.DictMCVal[ 'EmpiricalStandardDeviation' ] == "yes" ):
+        txt += "%s = %s.computeCovariance()\n" % (self.variable["empiricalStandardDeviation"], self.variable["outputSample"])
+        txt += "dim = %s.getDimension()\n" % self.variable["empiricalStandardDeviation"]
+        txt += "for i in range( dim ):\n"
+        txt += "  %s[ i, i ] = math.sqrt( %s[ i, i ] )\n" % (self.variable["empiricalStandardDeviation"], self.variable["empiricalStandardDeviation"])
+        txt += "  print '%s = ', %s[ i, i ]\n" % ("empirical Standard Deviation", self.variable["empiricalStandardDeviation"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'EmpiricalQuantile_Order' ) ):
+      ordre = self.DictMCVal[ 'EmpiricalQuantile_Order' ]
+      txt += "%s = %s.computeQuantile( %s )\n" % (self.variable["empiricalQuantile"], self.variable["outputSample"], ordre)
+      txt += "print '%s ( %s ) =', %s\n" % ("empirical Quantile", ordre, self.variable["empiricalQuantile"])
+      txt += "\n"
+   
+    if ( self.DictMCVal.has_key( 'CorrelationAnalysis' ) ):
+      if ( self.DictMCVal[ 'CorrelationAnalysis' ] == "yes" ):
+        txt += "if ( %s.getDimension() == 1 ):\n" % self.variable["outputSample"]
+        txt += "  %s = CorrelationAnalysis.PCC( %s, %s )\n" % (self.variable["PCCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+        txt += "  print 'PCC Coefficients:'\n"
+        txt += "  for i in range( %s ):\n" % self.variable["n"]
+        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["PCCcoefficient"])
+        txt += "\n"
+        txt += "  %s = CorrelationAnalysis.PRCC( %s, %s )\n" % (self.variable["PRCCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+        txt += "  print 'PRCC Coefficients:'\n"
+        txt += "  for i in range( %s ):\n" % self.variable["n"]
+        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["PRCCcoefficient"])
+        txt += "\n"
+        txt += "  %s = CorrelationAnalysis.SRC( %s, %s )\n" % (self.variable["SRCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+        txt += "  print 'SRC Coefficients:'\n"
+        txt += "  for i in range( %s ):\n" % self.variable["n"]
+        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["SRCcoefficient"])
+        txt += "\n"
+        txt += "  %s = CorrelationAnalysis.SRRC( %s, %s )\n" % (self.variable["SRRCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+        txt += "  print 'SRRC Coefficients:'\n"
+        txt += "  for i in range( %s ):\n" % self.variable["n"]
+        txt += "    print %s.getDescription()[i], ':', %s[i]\n" % (self.variable["distribution"], self.variable["SRRCcoefficient"])
+        txt += "\n"
+   
+    if ( self.DictMCVal.has_key( 'KernelSmoothing' ) ):
+      if ( self.DictMCVal[ 'KernelSmoothing' ] == "yes" ):
+        txt += "# Kernel Smoohing\n"
+        txt += "%s = KernelSmoothing()\n" % self.variable["kernel"]
+        txt += "if ( %s.getDimension() == 1 ):\n" % self.variable["outputSample"]
+        txt += "  %s.setName( 'Output' )\n" % self.variable["outputSample"]
+        txt += "  %s = %s.build( %s, 'TRUE')\n" % (self.variable["kernelSmoothedDist"], self.variable["kernel"], self.variable["outputSample"])
+        txt += "  %s = %s.drawPDF()\n" % (self.variable["kernelSmoothedGraph"], self.variable["kernelSmoothedDist"])
+        txt += "  %s = '%s'\n" % (self.variable["kernelSmoothedPDFDrawing"], self.DictMCVal[ 'KernelSmoothingDrawingFilename' ])
+        txt += "  %s.draw( %s )\n" % (self.variable["kernelSmoothedGraph"], self.variable["kernelSmoothedPDFDrawing"])
+        txt += "  #if is_xserver_available():\n"
+        txt += "  #  view = View(%s)\n" % self.variable["kernelSmoothedGraph"]
+        txt += "  #  view.show(block=True)\n"
+        txt += "  #else:\n"
+        txt += "  #  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["kernelSmoothedGraph"]
+        txt += "  print 'bitmap =', %s.getBitmap()\n"  % self.variable["kernelSmoothedGraph"]
+        txt += "  print 'postscript =', %s.getPostscript()\n"  % self.variable["kernelSmoothedGraph"]
+        txt += "\n"
+   
+    return txt
+
+  def ThresholdExceedence (self, subDict):
+    '''
+    Produit le fichier study correspondant a une analyse de depassement de seuil
+    '''
+    txt  = self.Header()
+    txt += "# Etude 'Threshold Exceedence'\n"
+
+    txt += self.RandomGenerator()
+    txt += self.Model()
+    txt += self.InputDistribution()
+    txt += self.InputRandomVector()
+    txt += self.OutputRandomVector()
+    txt += self.Event()
+   
+    Methode = None
+    if ( self.DictMCVal.has_key( 'Method' ) ):
+      Methode =  self.DictMCVal[ 'Method' ]
+
+    Traitement = None
+    if ( subDict.has_key( Methode ) ):
+      Traitement =  subDict[ Methode ]
+
+    if ( Traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
+
+    txt += self.Footer()
+    return txt
+
+  def Simulation (self, subDict):
+    '''
+    Methodes de simulation
+    '''
+    Algorithme = None
+    if ( self.DictMCVal.has_key( 'Algorithm' ) ):
+      Algorithme =  self.DictMCVal[ 'Algorithm' ]
+
+    Traitement = None
+    if ( subDict.has_key( Algorithme ) ):
+      Traitement =  subDict[ Algorithme ]
+
+    if ( Traitement is not None ):
+      txt = apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+    maxOuterSampling = None
+    if ( self.DictMCVal.has_key( 'MaximumOuterSampling' ) ):
+      maxOuterSampling = self.DictMCVal[ 'MaximumOuterSampling' ]
+      txt += "%s.setMaximumOuterSampling( %s )\n" % (self.variable["myAlgo"], maxOuterSampling)
+
+    blockSize = None
+    if ( self.DictMCVal.has_key( 'BlockSize' ) ):
+      blockSize = self.DictMCVal[ 'BlockSize' ]
+      txt += "%s.setBlockSize( %s )\n" % (self.variable["myAlgo"], blockSize)
+
+    maxCoefficientOfVariation = None
+    if ( self.DictMCVal.has_key( 'MaximumCoefficientOfVariation' ) ):
+      maxCoefficientOfVariation = self.DictMCVal[ 'MaximumCoefficientOfVariation' ]
+      txt += "%s.setMaximumCoefficientOfVariation( %s )\n" % (self.variable["myAlgo"], maxCoefficientOfVariation)
+
+    txt += "%s.run()\n"  % self.variable["myAlgo"]
+    txt += "\n"
+    txt += "# Resultats de la simulation\n"
+    txt += "%s = %s.getResult()\n"  % (self.variable["myResult"], self.variable["myAlgo"])
+    txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'Probability' ) ):
+      if ( self.DictMCVal[ 'Probability' ] == "yes" ):
+        txt += "%s = %s.getProbabilityEstimate()\n" % (self.variable["probability"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("probability", self.variable["probability"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'StandardDeviation' ) ):
+      if ( self.DictMCVal[ 'StandardDeviation' ] == "yes" ):
+        txt += "%s = math.sqrt( %s.getProbabilityEstimate() )\n" % (self.variable["standardDeviation"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("standard Deviation", self.variable["standardDeviation"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'ConfidenceInterval' ) and self.DictMCVal.has_key( 'Probability' ) ):
+      if ( ( self.DictMCVal[ 'ConfidenceInterval' ] == "yes" ) and ( self.DictMCVal[ 'Probability' ] == "yes" ) ):
+        level = self.DictMCVal[ 'Level' ]
+        txt += "%s = %s.getConfidenceLength( %s )\n" % (self.variable["length"], self.variable["myResult"], level)
+        txt += "print 'confidence interval at %s = [', %s-0.5*%s, ',', %s+0.5*%s, ']'\n" % (level, self.variable["probability"], self.variable["length"], self.variable["probability"], self.variable["length"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'VariationCoefficient' ) ):
+      if ( self.DictMCVal[ 'VariationCoefficient' ] == "yes" ):
+        txt += "%s = %s.getCoefficientOfVariation()\n" % (self.variable["coefficientOfVariation"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("coefficient of Variation", self.variable["coefficientOfVariation"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'SimulationsNumber' ) ):
+      if ( self.DictMCVal[ 'SimulationsNumber' ] == "yes" ):
+        txt += "%s = %s.getOuterSampling()\n" % (self.variable["simulationNumbers"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("simulation Numbers", self.variable["simulationNumbers"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'ConvergenceGraph' ) and self.DictMCVal.has_key( 'ConfidenceInterval' ) ):
+      if ( ( self.DictMCVal[ 'ConvergenceGraph' ] == "yes" ) and ( self.DictMCVal[ 'ConfidenceInterval' ] == "yes" ) ):
+        txt += "%s = %s\n" % (self.variable["alpha"], self.DictMCVal[ 'Level' ])
+        txt += "%s = %s.drawProbabilityConvergence( %s )\n" % (self.variable["convergenceGraph"], self.variable["myAlgo"], self.variable["alpha"])
+        txt += "%s = '%s'\n" % (self.variable["convergenceDrawing"], self.DictMCVal[ 'ConvergenceDrawingFilename' ])
+        txt += "%s.draw( %s )\n" % (self.variable["convergenceGraph"], self.variable["convergenceDrawing"])
+        txt += "#if is_xserver_available():\n"
+        txt += "#  view = View(%s)\n" % self.variable["convergenceGraph"]
+        txt += "#  view.show(block=True)\n"
+        txt += "#else:\n"
+        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["convergenceGraph"]
+        txt += "\n"
+
+    return txt
+
+  def Analytical (self, subDict):
+    '''
+    Methodes analytiques
+    '''
+    txt = ""
+    
+    OptimizationAlgo = None
+    if ( self.DictMCVal.has_key( 'OptimizationAlgorithm' ) ):
+      OptimizationAlgo =  self.DictMCVal[ 'OptimizationAlgorithm' ]
+
+    Traitement = None
+    if ( subDict.has_key( OptimizationAlgo ) ):
+      Traitement =  subDict[ OptimizationAlgo ]
+
+    if ( Traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+    txt += self.OptimizerSettings()
+    txt += self.PhysicalStartingPoint()
+
+    Approximation = None
+    if ( self.DictMCVal.has_key( 'Approximation' ) ):
+      Approximation =  self.DictMCVal[ 'Approximation' ]
+
+    Traitement = None
+    if ( subDict.has_key( Approximation ) ):
+      Traitement =  subDict[ Approximation ]
+
+    if ( Traitement is not None ):
+      txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+    txt += self.RunAlgorithm()
+    txt += self.AnalyticalResult()
+
+    return txt
+
+  def OptimizerSettings (self):
+    '''
+    Parametrage de l optimiseur
+    '''
+    txt = ""
+    
+    simulationNumbers = None
+    if ( self.DictMCVal.has_key( 'MaximumIterationsNumber' ) ):
+      simulationNumbers = self.DictMCVal[ 'MaximumIterationsNumber' ]
+      txt += "%s.setMaximumIterationsNumber( %s )\n" % (self.variable["myOptimizer"], simulationNumbers)
+
+    absoluteError = None
+    if ( self.DictMCVal.has_key( 'MaximumAbsoluteError' ) ):
+      absoluteError = self.DictMCVal[ 'MaximumAbsoluteError' ]
+      txt += "%s.setMaximumAbsoluteError( %s )\n" % (self.variable["myOptimizer"], absoluteError)
+
+    relativeError = None
+    if ( self.DictMCVal.has_key( 'MaximumRelativeError' ) ):
+      relativeError = self.DictMCVal[ 'MaximumRelativeError' ]
+      txt += "%s.setMaximumRelativeError( %s )\n" % (self.variable["myOptimizer"], relativeError)
+
+    residualError = None
+    if ( self.DictMCVal.has_key( 'MaximumResidualError' ) ):
+      residualError = self.DictMCVal[ 'MaximumResidualError' ]
+      txt += "%s.setMaximumResidualError( %s )\n" % (self.variable["myOptimizer"], residualError)
+
+    constraintError = None
+    if ( self.DictMCVal.has_key( 'MaximumConstraintError' ) ):
+      constraintError = self.DictMCVal[ 'MaximumConstraintError' ]
+      txt += "%s.setMaximumConstraintError( %s )\n" % (self.variable["myOptimizer"], constraintError)
+
+    txt += "\n"
+
+    return txt
+
+  def PhysicalStartingPoint (self):
+    '''
+    Point physique de depart
+    '''
+    txt  = "# Point physique de depart\n"
+
+    if ( self.DictMCVal.has_key( 'PhysicalStartingPoint' ) ):
+      point = self.DictMCVal[ 'PhysicalStartingPoint' ]
+      dimension = len( point )
+      txt += "%s = NumericalPoint( %d )\n" % (self.variable["startingPoint"], dimension)
+      for i in range( dimension ):
+        txt += "%s[ %d ] = %g\n" % (self.variable["startingPoint"], i, point[i])
+    else:
+      txt += "%s = %s.getMean()\n" % (self.variable["startingPoint"], self.variable["inputRandomVector"])
+      
+    txt += "\n"
+
+    return txt
+
+  def AnalyticalResult (self):
+    '''
+    Resultat des methodes analytiques
+    '''
+    txt  = "# Resultat des methodes analytiques\n"
+    txt += "%s = %s.getResult()\n" % (self.variable["myResult"], self.variable["myAlgo"])
+    
+    if ( self.DictMCVal.has_key( 'Probability' ) ):
+      if ( self.DictMCVal[ 'Probability' ] == "yes" ):
+        txt += "%s = %s.getEventProbability()\n" % (self.variable["probability"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % (self.variable["probability"], self.variable["probability"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'HasoferReliabilityIndex' ) ):
+      if ( self.DictMCVal[ 'HasoferReliabilityIndex' ] == "yes" ):
+        txt += "%s = %s.getHasoferReliabilityIndex()\n" % (self.variable["hasoferReliabilityIndex"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("hasofer Reliability Index", self.variable["hasoferReliabilityIndex"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'DesignPoint' ) ):
+      if ( self.DictMCVal[ 'DesignPoint' ] == "yes" ):
+        txt += "%s = %s.getStandardSpaceDesignPoint()\n" % (self.variable["standardSpaceDesignPoint"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("standard Space Design Point", self.variable["standardSpaceDesignPoint"])
+        txt += "%s = %s.getPhysicalSpaceDesignPoint()\n" % (self.variable["physicalSpaceDesignPoint"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("physical Space Design Point", self.variable["physicalSpaceDesignPoint"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'ImportanceFactor' ) ):
+      if ( self.DictMCVal[ 'ImportanceFactor' ] == "yes" ):
+        txt += "print 'Importance Factors:'\n"
+        txt += "%s = %s.getImportanceFactors()\n" % (self.variable["importanceFactors"], self.variable["myResult"])
+        txt += "for i in range(%s.getDimension()):\n" % self.variable["importanceFactors"]
+        txt += "  print %s.getDescription()[i], ':', %s[i]*100., '%%'\n" % (self.variable["distribution"], self.variable["importanceFactors"])
+        txt += "\n"
+        txt += "%s = %s.drawImportanceFactors()\n" % (self.variable["importanceFactorsGraph"], self.variable["myResult"])
+        txt += "%s = '%s'\n" % (self.variable["importanceFactorsDrawing"], self.DictMCVal[ 'ImportanceFactorDrawingFilename' ])
+        txt += "%s.draw( %s )\n" % (self.variable["importanceFactorsGraph"], self.variable["importanceFactorsDrawing"])
+        txt += "#if is_xserver_available():\n"
+        txt += "#  view = View(%s)\n" % self.variable["importanceFactorsGraph"]
+        txt += "#  view.show(block=True)\n"
+        txt += "#else:\n"
+        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["importanceFactorsGraph"]
+        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["importanceFactorsGraph"]
+        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["importanceFactorsGraph"]
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'FORMEventProbabilitySensitivity' ) ):
+      if ( self.DictMCVal[ 'FORMEventProbabilitySensitivity' ] == "yes" ):
+        txt += "%s = %s.getEventProbabilitySensitivity()\n" % (self.variable["eventProbabilitySensitivity"], self.variable["myResult"])
+        txt += "print 'FORM Event Probability Sensitivity:'\n"
+        txt += "for i in range( %s ):\n" % self.variable["n"]
+        txt += "  print %s.getDescription()[i], ':'\n" % self.variable["distribution"]
+        txt += "  for j in range( %s[i].getDimension() ):\n" % self.variable["eventProbabilitySensitivity"]
+        txt += "    print '  ', %s[i].getDescription()[j], ':', %s[i][j]\n" % (self.variable["eventProbabilitySensitivity"], self.variable["eventProbabilitySensitivity"])
+        txt += "\n"
+        txt += "%s = %s.drawEventProbabilitySensitivity()[0]\n" % (self.variable["eventProbabilitySensitivityGraph"], self.variable["myResult"])
+        txt += "%s = '%s'\n" % (self.variable["eventProbabilitySensitivityDrawing"], self.DictMCVal[ 'FORMEventProbabilitySensitivityDrawingFilename' ])
+        txt += "%s.draw( %s )\n" % (self.variable["eventProbabilitySensitivityGraph"], self.variable["eventProbabilitySensitivityDrawing"])
+        txt += "#if is_xserver_available():\n"
+        txt += "#  view = View(%s)\n" % self.variable["eventProbabilitySensitivityGraph"]
+        txt += "#  view.show(block=True)\n"
+        txt += "#else:\n"
+        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["eventProbabilitySensitivityGraph"]
+        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["eventProbabilitySensitivityGraph"]
+        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["eventProbabilitySensitivityGraph"]
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'HasoferReliabilityIndexSensitivity' ) ):
+      if ( self.DictMCVal[ 'HasoferReliabilityIndexSensitivity' ] == "yes" ):
+        txt += "%s = %s.getHasoferReliabilityIndexSensitivity()\n" % (self.variable["hasoferReliabilityIndexSensitivity"], self.variable["myResult"])
+        txt += "print 'Hasofer Reliability Index Sensitivity:'\n"
+        txt += "for i in range( %s ):\n" % self.variable["n"]
+        txt += "  print %s.getDescription()[i], ':'\n" % self.variable["distribution"]
+        txt += "  for j in range( %s[i].getDimension() ):\n" % self.variable["hasoferReliabilityIndexSensitivity"]
+        txt += "    print '  ', %s[i].getDescription()[j], ':', %s[i][j]\n" % (self.variable["hasoferReliabilityIndexSensitivity"], self.variable["hasoferReliabilityIndexSensitivity"])
+        txt += "\n"
+        txt += "%s = %s.drawHasoferReliabilityIndexSensitivity()[0]\n" % (self.variable["hasoferReliabilityIndexSensitivityGraph"], self.variable["myResult"])
+        txt += "%s = '%s'\n" % (self.variable["hasoferReliabilityIndexSensitivityDrawing"], self.DictMCVal[ 'HasoferReliabilityIndexSensitivityDrawingFilename' ])
+        txt += "%s.draw( %s )\n" % (self.variable["hasoferReliabilityIndexSensitivityGraph"], self.variable["hasoferReliabilityIndexSensitivityDrawing"])
+        txt += "#if is_xserver_available():\n"
+        txt += "#  view = View(%s)\n" % self.variable["hasoferReliabilityIndexSensitivityGraph"]
+        txt += "#  view.show(block=True)\n"
+        txt += "#else:\n"
+        txt += "#  print 'Warning: cannot display image', %s.getBitmap(), '(probably because no X server was found)'\n" % self.variable["hasoferReliabilityIndexSensitivityGraph"]
+        txt += "print 'bitmap =', %s.getBitmap()\n"  % self.variable["hasoferReliabilityIndexSensitivityGraph"]
+        txt += "print 'postscript =', %s.getPostscript()\n"  % self.variable["hasoferReliabilityIndexSensitivityGraph"]
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'TvedtApproximation' ) ):
+      if ( self.DictMCVal[ 'TvedtApproximation' ] == "yes" ):
+        txt += "%s = %s.getEventProbabilityTvedt()\n" % (self.variable["tvedtApproximation"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("Tvedt Approximation", self.variable["tvedtApproximation"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'HohenBichlerApproximation' ) ):
+      if ( self.DictMCVal[ 'HohenBichlerApproximation' ] == "yes" ):
+        txt += "%s = %s.getEventProbabilityHohenBichler()\n" % (self.variable["hohenBichlerApproximation"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("HohenBichler Approximation", self.variable["tvedtApproximation"])
+        txt += "\n"
+
+    if ( self.DictMCVal.has_key( 'BreitungApproximation' ) ):
+      if ( self.DictMCVal[ 'BreitungApproximation' ] == "yes" ):
+        txt += "%s = %s.getEventProbabilityBreitung()\n" % (self.variable["breitungApproximation"], self.variable["myResult"])
+        txt += "print '%s =', %s\n" % ("Breitung Approximation", self.variable["breitungApproximation"])
+        txt += "\n"
+
+
+    return txt
+
+  def RandomGenerator (self):
+    '''
+    Generateur Aleatoire
+    '''
+    txt = ""
+    
+    seed = None
+    if ( self.DictMCVal.has_key( 'RandomGeneratorSeed' ) ):
+      seed = self.DictMCVal[ 'RandomGeneratorSeed' ]
+      txt += "# Initialise le generateur aleatoire\n"
+      txt += "RandomGenerator.SetSeed( %s )\n" % seed
+      txt += "\n"
+    
+    return txt
+
+  def Event (self):
+    '''
+    Definition de l evenement de defaillance
+    '''
+    operator = None
+    if ( self.DictMCVal.has_key( 'ComparisonOperator' ) ):
+      operator = self.DictMCVal[ 'ComparisonOperator' ]
+
+    threshold = None
+    if ( self.DictMCVal.has_key( 'Threshold' ) ):
+      threshold = self.DictMCVal[ 'Threshold' ]
+    
+    txt  = "# Evenement de defaillance\n"
+    txt += "%s = Event( %s, ComparisonOperator( %s() ), %s )\n" % (self.variable["myEvent"], self.variable["outputRandomVector"], operator, threshold)
+    txt += "%s.setName( '%s' )\n" % (self.variable["myEvent"], "myEvent")
+    txt += "\n"
+    return txt
+    
+  def MonteCarlo (self):
+    '''
+    Methode de MonteCarlo
+    '''
+    txt  = "# Simulation par MonteCarlo\n"
+    txt += "%s = MonteCarlo( %s )\n"  % (self.variable["myAlgo"], self.variable["myEvent"])
+    txt += "\n"
+   
+    return txt
+
+  def LHS (self):
+    '''
+    Methode LHS
+    '''
+    txt  = "# Simulation par LHS\n"
+    txt += "%s = LHS( %s )\n"  % (self.variable["myAlgo"], self.variable["myEvent"])
+    txt += "\n"
+   
+    return txt
+
+  def ImportanceSampling (self):
+    '''
+    Methode de tirage d importance
+    '''
+    dimension = 0
+    if ( self.DictMCVal.has_key( 'MeanVector' ) ):
+      meanVector =  self.DictMCVal[ 'MeanVector' ]
+      dimension = len( meanVector )
+        
+    txt  = "# Simulation par Tirage d'importance\n"
+    txt += "# Densite d'importance\n"
+    txt += "%s = NumericalPoint( %s )\n" % (self.variable["meanVector"], self.variable["n"])
+    for i in range(dimension):
+      txt += "%s[%d] = %g\n" % (self.variable["meanVector"], i, meanVector[i])
+      
+    txt += "%s = Normal( %s, CovarianceMatrix( IdentityMatrix( %s ) ) )\n" % (self.variable["importanceDensity"], self.variable["meanVector"], self.variable["n"])
+    txt += "%s = ImportanceSampling( %s, Distribution( %s ) )\n"  % (self.variable["myAlgo"], self.variable["myEvent"], self.variable["importanceDensity"])
+    txt += "\n"
+
+    return txt
+
+  def FORM (self):
+    '''
+    Methode FORM
+    '''
+    txt  = "# Algorithme FORM\n"
+    txt += "%s = FORM ( NearestPointAlgorithm( %s ), %s, %s )\n"  % (self.variable["myAlgo"], self.variable["myOptimizer"], self.variable["myEvent"], self.variable["startingPoint"])
+    txt += "\n"
+
+    return txt
+
+  def SORM (self):
+    '''
+    Methode SORM
+    '''
+    txt  = "# Algorithme SORM\n"
+    txt += "%s = SORM ( NearestPointAlgorithm( %s ), %s, %s )\n"  % (self.variable["myAlgo"], self.variable["myOptimizer"], self.variable["myEvent"], self.variable["startingPoint"])
+    txt += "\n"
+
+    return txt
+
+  def RunAlgorithm (self):
+    '''
+    Do the computation
+    '''
+    txt = ""
+    if ( self.DictMCVal.has_key( 'FunctionCallsNumber' ) ):
+      if ( self.DictMCVal[ 'FunctionCallsNumber' ] == "yes" ):
+        txt += "%s = %s.getEvaluationCallsNumber()\n" % (self.variable["modelEvaluationCalls"], self.variable["model"])
+        txt += "%s = %s.getGradientCallsNumber()\n" % (self.variable["modelGradientCalls"], self.variable["model"])
+        txt += "%s = %s.getHessianCallsNumber()\n" % (self.variable["modelHessianCalls"], self.variable["model"])
+        txt += "\n"
+
+    txt += "# Perform the computation\n"
+    txt += "%s.run()\n" % self.variable["myAlgo"]
+    txt += "\n"
+    
+
+    if ( self.DictMCVal.has_key( 'FunctionCallsNumber' ) ):
+      if ( self.DictMCVal[ 'FunctionCallsNumber' ] == "yes" ):
+        txt += "%s = %s.getEvaluationCallsNumber() - %s\n" % (self.variable["modelEvaluationCalls"], self.variable["model"], self.variable["modelEvaluationCalls"])
+        txt += "%s = %s.getGradientCallsNumber() - %s\n" % (self.variable["modelGradientCalls"], self.variable["model"], self.variable["modelGradientCalls"])
+        txt += "%s = %s.getHessianCallsNumber() - %s\n" % (self.variable["modelHessianCalls"], self.variable["model"], self.variable["modelHessianCalls"])
+        txt += "\n"
+        txt += "print '%s =', %s\n" % ("model Evaluation Calls", self.variable["modelEvaluationCalls"])
+        txt += "print '%s =', %s\n" % ("model Gradient Calls", self.variable["modelGradientCalls"])
+        txt += "print '%s =', %s\n" % ("model Hessian Calls", self.variable["modelHessianCalls"])
+        txt += "\n"
+
+    return txt
+
+  def Cobyla (self):
+    '''
+    Methode Cobyla
+    '''
+    txt  = "# Optimisation par Cobyla\n"
+    txt += "%s = Cobyla()\n" % self.variable["myOptimizer"]
+    txt += "#%s = CobylaSpecificParameters()\n" % self.variable["specificParameters"]
+    txt += "#%s.setSpecificParameters( %s )\n" % (self.variable["myOptimizer"], self.variable["specificParameters"])
+    txt += "\n"
+        
+    return txt
+
+  def AbdoRackwitz (self):
+    '''
+    Methode AbdoRackwitz
+    '''
+    txt  = "# Optimisation par AbdoRackwitz\n"
+    txt += "%s = AbdoRackwitz()\n" % self.variable["myOptimizer"]
+    txt += "#%s = AbdoRackwitzSpecificParameters()\n" % self.variable["specificParameters"]
+    txt += "#%s.setSpecificParameters( %s )\n" % (self.variable["myOptimizer"], self.variable["specificParameters"])
+    txt += "\n"
+    return txt
+
+  def Beta (self, loi):
+    '''
+    Definition de la loi Beta
+    '''
+    settings = {
+      "RT" : "Beta.RT",
+      "MuSigma" : "Beta.MUSIGMA",
+      }
+    if loi[ 'Settings' ] == 'RT' :
+      arg1 = loi[ 'R' ]
+      arg2 = loi[ 'T' ]
+    else :
+      arg1 = loi[ 'Mu'    ]
+      arg2 = loi[ 'Sigma' ]
+      
+    arg3 = loi[ 'A' ]
+    arg4 = loi[ 'B' ]
+    txt = "Beta( %g, %g, %g, %g, %s )" % (arg1, arg2, arg3, arg4, settings[ loi[ 'Settings' ] ])
+    return txt
+  
+  def Exponential (self, loi):
+    '''
+    Definition de la loi Exponential
+    '''
+    arg1 = loi[ 'Lambda' ]
+    arg2 = loi[ 'Gamma'  ]
+    txt = "Exponential( %g, %g )" % (arg1, arg2)
+    return txt
+  
+  def Gamma (self, loi):
+    '''
+    Definition de la loi Gamma
+    '''
+    settings = {
+      "KLambda" : "Gamma.KLAMBDA",
+      "MuSigma" : "Gamma.MUSIGMA",
+    }
+    if loi[ 'Settings' ] == 'KLambda' :
+      arg1 = loi[ 'K'      ]
+      arg2 = loi[ 'Lambda' ]
+    else :
+      arg1 = loi[ 'Mu'    ]
+      arg2 = loi[ 'Sigma' ]
+      
+    arg3 = loi[ 'Gamma' ]
+    txt = "Gamma( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
+    return txt
+
+  def Geometric (self, loi):
+    '''
+    Definition de la loi Geometric
+    '''
+    txt = "Geometric( %g )" % loi[ 'P' ]
+    return txt
+
+  def Gumbel (self, loi):
+    '''
+    Definition de la loi Gumbel
+    '''
+    settings = {
+      "AlphaBeta" : "Gumbel.ALPHABETA",
+      "MuSigma" : "Gumbel.MUSIGMA",
+    }
+    if loi[ 'Settings' ] == 'AlphaBeta' :
+      arg1 = loi[ 'Alpha' ]
+      arg2 = loi[ 'Beta'  ]
+    else :
+      arg1 = loi[ 'Mu'    ]
+      arg2 = loi[ 'Sigma' ]
+      
+    txt = "Gumbel( %g, %g, %s )" % (arg1, arg2, settings[ loi[ 'Settings' ] ])
+    return txt
+
+  def Histogram (self, loi):
+    '''
+    Definition de la loi Histogram
+    '''
+    arg1 = loi[ 'First' ]
+    arg2 = loi[ 'Values'  ]
+    txt = "Histogram( %g, %s )" % (arg1, arg2)
+    return txt
+
+  def Laplace (self, loi):
+    '''
+    Definition de la loi Laplace
+    '''
+    arg1 = loi[ 'Lambda' ]
+    arg2 = loi[ 'Mu'     ]
+    txt = "Laplace( %g, %g )" % (arg1, arg2)
+    return txt
+
+  def Logistic (self, loi):
+    '''
+    Definition de la loi Logistic
+    '''
+    arg1 = loi[ 'Alpha' ]
+    arg2 = loi[ 'Beta'  ]
+    txt = "Logistic( %g, %g )" % (arg1, arg2)
+    return txt
+
+  def LogNormal (self, loi):
+    '''
+    Definition de la loi LogNormal
+    '''
+    settings = {
+      "MuSigmaLog" : "LogNormal.MUSIGMA_LOG",
+      "MuSigma" : "LogNormal.MUSIGMA",
+      "MuSigmaOverMu" : "LogNormal.MU_SIGMAOVERMU",
+    }
+    if loi[ 'Settings' ] == 'MuSigmaLog' :
+      arg1 = loi[ 'MuLog' ]
+      arg2 = loi[ 'SigmaLog' ]
+    elif loi[ 'Settings' ] == 'MuSigmaOverMu' :
+      arg1 = loi[ 'Mu' ]
+      arg2 = loi[ 'SigmaOverMu' ]
+    else :
+      arg1 = loi[ 'Mu'    ]
+      arg2 = loi[ 'Sigma' ]
+      
+    arg3 = loi[ 'Gamma' ]
+    txt = "LogNormal( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
+    return txt
+
+  def MultiNomial (self, loi):
+    '''
+    Definition de la loi MultiNomial
+    '''
+    arg1 = loi[ 'Values' ]
+    arg2 = loi[ 'N' ]
+    txt = "MultiNomial( NumericalPoint( %s ) , %d)" % (arg1, arg2)
+    return txt
+
+  def NonCentralStudent (self, loi):
+    '''
+    Definition de la loi NonCentralStudent
+    '''
+    arg1 = loi[ 'Nu'    ]
+    arg2 = loi[ 'Delta' ]
+    arg3 = loi[ 'Gamma' ]
+    txt = "NonCentralStudent( %g, %g )" % (arg1, arg2, arg3)
+    return txt
+
+  def Normal (self, loi):
+    '''
+    Definition de la loi Normal
+    '''
+    arg1 = loi[ 'Mu'    ]
+    arg2 = loi[ 'Sigma' ]
+    txt = "Normal( %g, %g )" % (arg1, arg2)
+    return txt
+
+  def TruncatedNormal (self, loi):
+    '''
+    Definition de la loi TruncatedNormal
+    '''
+    arg1 = loi[ 'MuN' ]
+    arg2 = loi[ 'SigmaN' ]
+    arg3 = loi[ 'A' ]
+    arg4 = loi[ 'B' ]
+    txt = "TruncatedNormal( %g, %g, %g, %g )" % (arg1, arg2, arg3, arg4)
+    return txt
+
+  def Poisson (self, loi):
+    '''
+    Definition de la loi Poisson
+    '''
+    txt = "Poisson( %g )" % loi[ 'Lambda' ]
+    return txt
+
+  def Rayleigh (self, loi):
+    '''
+    Definition de la loi Rayleigh
+    '''
+    arg1 = loi[ 'Sigma' ]
+    arg2 = loi[ 'Gamma' ]
+    txt = "Rayleigh( %g, %g )" % (arg1, arg2)
+    return txt
+
+  def Student (self, loi):
+    '''
+    Definition de la loi Student
+    '''
+    arg1 = loi[ 'Mu' ]
+    arg2 = loi[ 'Nu' ]
+    arg3 = loi[ 'Sigma' ]
+    txt = "Student( %g, %g, %g )" % (arg1, arg2, arg3)
+    return txt
+
+  def Triangular (self, loi):
+    '''
+    Definition de la loi Triangular
+    '''
+    arg1 = loi[ 'A' ]
+    arg2 = loi[ 'M' ]
+    arg3 = loi[ 'B' ]
+    txt = "Triangular( %g, %g, %g )" % (arg1, arg2, arg3)
+    return txt
+
+  def Uniform (self, loi):
+    '''
+    Definition de la loi Uniform
+    '''
+    arg1 = loi[ 'A' ]
+    arg2 = loi[ 'B' ]
+    txt = "Uniform( %g, %g )" % (arg1, arg2)
+    return txt
+
+  def UserDefined (self, loi):
+    '''
+    Definition de la loi UserDefined
+    '''
+    txt = "** UserDefined not defined yet **"
+    return txt
+
+  def Weibull (self, loi):
+    '''
+    Definition de la loi Weibull
+    '''
+    settings = {
+      "AlphaBeta" : "Weibull.ALPHABETA",
+      "MuSigma" : "Weibull.MUSIGMA",
+    }
+    if loi[ 'Settings' ] == 'AlphaBeta' :
+      arg1 = loi[ 'Alpha' ]
+      arg2 = loi[ 'Beta'  ]
+    else :
+      arg1 = loi[ 'Mu'    ]
+      arg2 = loi[ 'Sigma' ]
+      
+    arg3 = loi[ 'Gamma' ]
+    txt = "Weibull( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
+    return txt
+
+
+
+  def GraphiquePDF (self, loi, chemin, fichier):
+    '''
+    Produit une image PNG representant la PDF de la loi
+    '''
+    txt  = headerSTD % self.OpenTURNS_path
+    txt += "dist = %s\n" % apply( STDGenerateur.__dict__[ loi[ 'Kind' ] ], (self, loi) )
+    txt += "graph = dist.drawPDF()\n"
+    txt += "graph.draw( '%s/%s' , 640, 480, GraphImplementation.PNG)\n" % (chemin, fichier)
+    txt += footerSTD
+    return txt
+  
diff --git a/generator/oldCodes/OpenturnsXML.py b/generator/oldCodes/OpenturnsXML.py
new file mode 100644 (file)
index 0000000..860508d
--- /dev/null
@@ -0,0 +1,243 @@
+# -*- 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 contient le generateur XML pour Openturns
+"""
+import sys
+print sys.path
+from Extensions.i18n import tr
+import openturns
+
+# Dictionnaires de conversion des valeurs lues dans EFICAS
+# en valeurs reconnues par Open TURNS
+# Les clefs 'None' sont les valeurs par defaut
+
+VariableTypeByName = {
+  "in"  : openturns.WrapperDataVariableType.IN,
+  "out" : openturns.WrapperDataVariableType.OUT,
+  None  :  openturns.WrapperDataVariableType.IN,
+  }
+
+FileTypeByName = {
+  "in"  : openturns.WrapperDataFileType.IN,
+  "out" : openturns.WrapperDataFileType.OUT,
+  None  : openturns.WrapperDataFileType.IN,
+  }
+
+SymbolProvidedByName = {
+  "no"  : openturns.WrapperSymbolProvided.NO,
+  "yes" : openturns.WrapperSymbolProvided.YES,
+  None  : openturns.WrapperSymbolProvided.NO,
+  }
+
+WrapperStateByName = {
+  "shared"   : openturns.WrapperState.SHARED,
+  "specific" : openturns.WrapperState.SPECIFIC,
+  None       : openturns.WrapperState.SPECIFIC,
+  }
+
+WrapperModeByName = {
+  "static-link"  : openturns.WrapperMode.STATICLINK,
+  "dynamic-link" : openturns.WrapperMode.DYNAMICLINK,
+  "fork"         : openturns.WrapperMode.FORK,
+  None           : openturns.WrapperMode.FORK,
+  }
+
+WrapperDataTransferByName = {
+  "files"     : openturns.WrapperDataTransfer.FILES,
+  "pipe"      : openturns.WrapperDataTransfer.PIPE,
+  "arguments" : openturns.WrapperDataTransfer.ARGUMENTS,
+  "socket"    : openturns.WrapperDataTransfer.SOCKET,
+  "corba"     : openturns.WrapperDataTransfer.CORBA,
+  None        : openturns.WrapperDataTransfer.FILES,
+  }
+
+#==========================
+# La classe de creation XML 
+#==========================
+
+class XMLGenerateur :
+
+  '''
+  Generation du fichier XML
+  '''
+  def __init__ (self, appli, DictMCVal, DictVariables ) :
+    self.DictMCVal = DictMCVal
+    self.DictVariables = DictVariables
+    self.appli = appli
+
+  def CreeXML (self) :
+    '''
+    Pilotage general de la creation du fichier XML
+    '''
+    data = openturns.WrapperData()
+    data.setLibraryPath( self.GetMCVal('WrapperPath','') )
+    data.setVariableList( self.VariableList() )
+    data.setFunctionDescription( self.FunctionDefinition() )
+    data.setGradientDescription( self.GradientDefinition() )
+    data.setHessianDescription(  self.HessianDefinition()  )
+    data.setFileList( self.FileList() )
+    data.setParameters( self.Parameters() )
+    #data.setFrameworkData( self.FrameworkData() )
+    
+    wrapper=openturns.WrapperFile()
+    wrapper.setWrapperData( data )
+    
+    return wrapper
+
+
+  class __variable_ordering:
+    def __init__ (self, dictVar) :
+      self.dictVar = dictVar
+      
+    def __call__(self, a, b):
+      return self.dictVar[a]['numOrdre'] - self.dictVar[b]['numOrdre']
+  
+  def VariableList (self) :
+    '''
+    Ecrit la liste des variables
+    '''
+    varList = openturns.WrapperDataVariableCollection()
+    for var in sorted( self.DictVariables.keys(), self.__variable_ordering( self.DictVariables ) ) :
+      varList.add( self.Variable( var, self.DictVariables[var] ) )
+    return varList
+
+  def Variable (self, var, dictVar) :
+    '''
+    Ecrit le parametrage d une variable
+    '''
+    variable = openturns.WrapperDataVariable()
+    variable.id_ = var
+    if dictVar[ 'Type' ] in VariableTypeByName.keys() :
+      variable.type_ = VariableTypeByName[ dictVar[ 'Type' ] ]
+    if dictVar.has_key('Comment')   : variable.comment_ = dictVar[ 'Comment' ]
+    if dictVar.has_key('Unit')      : variable.unit_    = dictVar[ 'Unit'    ]
+    if dictVar.has_key('Regexp')    : variable.regexp_  = dictVar[ 'Regexp'  ]
+    if dictVar.has_key('Format')    : variable.format_  = dictVar[ 'Format'  ]
+    return variable
+
+  def FunctionDefinition (self) :
+    '''
+    Ecrit la description de la Fonction
+    '''
+    func = openturns.WrapperFunctionDescription()
+    func.name_ = self.GetMCVal( 'FunctionName', '' )
+    if (len(func.name_) != 0) : func.provided_ = SymbolProvidedByName[ 'yes' ]
+    return func
+  
+  def GradientDefinition (self) :
+    '''
+    Ecrit la description du Gradient
+    '''
+    grad = openturns.WrapperFunctionDescription()
+    grad.name_ = self.GetMCVal( 'GradientName', '' )
+    if (len(grad.name_) != 0) : grad.provided_ = SymbolProvidedByName[ 'yes' ]
+    return grad
+  
+  def HessianDefinition (self) :
+    '''
+    Ecrit la description de la Hessienne
+    '''
+    hess = openturns.WrapperFunctionDescription()
+    hess.name_ = self.GetMCVal( 'HessianName', '' )
+    if (len(hess.name_) != 0) : hess.provided_ = SymbolProvidedByName[ 'yes' ]
+    return hess
+  
+
+
+  def FileList (self) :
+    '''
+    Ecrit la liste des fichiers
+    '''
+    fileList = openturns.WrapperDataFileCollection()
+    for dictFile in self.GetMCVal('Files', []) :
+      fileList.add( self.File( dictFile ) )
+    return fileList
+
+  def File (self, dictFile ) :
+    '''
+    Ecrit le parametrage d un fichier
+    '''
+    fich = openturns.WrapperDataFile()
+    fich.id_ = dictFile[ 'Id' ]
+    if dictFile[ 'Type' ] in FileTypeByName.keys() :
+      fich.type_ = FileTypeByName[ dictFile[ 'Type' ] ]
+    if dictFile.has_key('Name')   : fich.name_  = dictFile[ 'Name' ]
+    if dictFile.has_key('Path')   : fich.path_  = dictFile[ 'Path' ]
+    if dictFile.has_key('Subst')  :
+      import string
+      fich.subst_ = string.join( dictFile[ 'Subst' ], ',' )
+    return fich
+
+  def Parameters (self) :
+    '''
+    Ecrit les parametres de couplage au code externe
+    '''
+    parameters = openturns.WrapperParameter()
+    parameters.mode_  = WrapperModeByName[ self.GetMCVal('WrapCouplingMode') ]
+    if (parameters.mode_ == openturns.WrapperMode.FORK ):
+      parameters.command_ = self.GetMCVal('Command')
+      userPrefix = self.GetMCVal('UserPrefix', None)
+      if userPrefix != None : parameters.userPrefix_ = userPrefix
+    parameters.state_ = WrapperStateByName[ self.GetMCVal('State') ]
+    parameters.in_    = WrapperDataTransferByName[ self.GetMCVal('InDataTransfer') ]
+    parameters.out_   = WrapperDataTransferByName[ self.GetMCVal('OutDataTransfer') ]
+    return parameters
+  
+  def FrameworkData (self) :
+    '''
+    Ecrit les donnees liees a l utilisation d un framework englobant
+    '''
+    framework = openturns.WrapperFrameworkData()
+#   framework.studycase_ = "12:23:34"
+#   framework.componentname_ = self.GetMCVal('SolverComponentName', 'UNDEFINED')
+    CN = self.GetMCVal('SolverComponentName', 'UNDEFINED')
+    print 'CN = %s', CN
+    framework.componentname_ = CN
+    return framework
+
+
+  # ---------------------------------------------------------------------------------
+
+
+  def GetTag (self, tag) :
+    '''
+    Recupere la chaine associee au tag dans la table dictTagsXML.
+    Leve une exception si le tag n est pas trouve
+    '''
+    if ( dictTagsXML.has_key(tag) ) :
+      return dictTagsXML[tag]
+    else :
+      raise KeyError, tr("Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs.", tag)
+    pass
+  
+  def GetMCVal (self, MC, default = None, mandatory = False) :
+    '''
+    Recupere la chaine associee au MC dans la table DictMCVal.
+    Leve une exception si le MC n est pas trouve et mandatory vaut True
+    '''
+    if ( self.DictMCVal.has_key(MC) and self.DictMCVal[MC] != None ) :
+      return self.DictMCVal[MC]
+    else :
+      if ( mandatory ) :
+        raise KeyError, tr(" Le mot-cle %s est obligatoire.", MC)
+      else :
+        return default
+    pass
diff --git a/generator/oldCodes/generator_SEP.py b/generator/oldCodes/generator_SEP.py
new file mode 100644 (file)
index 0000000..241d0bd
--- /dev/null
@@ -0,0 +1,163 @@
+# -*- 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 contient le plugin generateur de fichier au format 
+   SEP pour EFICAS.
+
+"""
+import traceback
+import types,string,re,os
+
+from generator_python import PythonGenerator
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'SEP',
+        # La factory pour creer une instance du plugin
+          'factory' : SEPGenerator,
+          }
+
+
+class SEPGenerator(PythonGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et 
+      un texte au format py 
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+   def gener(self,obj,format='brut',config=None):
+      self.initDico()
+      # Cette instruction génère le contenu du fichier de commandes (persistance)
+      self.text=PythonGenerator.gener(self,obj,format)
+      # Cette instruction génère le contenu du fichier de paramètres python
+      self.genereSEP()
+      return self.text
+
+   def getTubePy(self) :
+      return self.texteTubePy
+
+   def genereSEP(self) :
+      '''
+      Prépare le contenu du fichier de paramètres python. Le contenu
+      peut ensuite être obtenu au moyen de la fonction getTubePy().
+      '''
+      #self.__genereSEP_withVariables()
+      self.__genereSEP_withDico()
+
+   def __genereSEP_withVariables(self) :
+      '''
+      Les paramètres sont transcrits sous forme de variables nom=valeur.
+      '''
+      self.texteTubePy="# Parametres generes par Eficas \n"
+      for MC in self.dictMCVal.keys():
+        ligne = MC +"="+ repr(self.dictMCVal[MC])+'\n'
+         self.texteTubePy=self.texteTubePy+ligne
+
+      print self.texteTubePy
+
+      # __GBO__: Tester self.tube pour aiguiller en fonction du cas (au besoin)
+      fichier=os.path.join(os.path.dirname(__file__),"tube.py")
+      f=open(fichier,'r')
+      for ligne in f.readlines():
+         self.texteTubePy=self.texteTubePy+ligne
+      f.close
+
+   def __genereSEP_withDico(self) :
+      """
+      Les paramètres sont transcrits sous la forme d'un dictionnaire nom=valeur.
+      """
+      from Sep import properties
+      self.texteTubePy="# -*- coding: utf-8 -*-\n"
+      self.texteTubePy+="# ======================================================================================\n"
+      self.texteTubePy+="# FICHIER GENERE PAR EFICAS - OUTIL MÉTIER SOUS-EPAISSEUR - "
+      self.texteTubePy+="VERSION "+str(properties.version)+" du "+str(properties.date)+"\n"
+      self.texteTubePy+="# ======================================================================================\n"
+      self.texteTubePy+="\n"
+      self.texteTubePy+="# Parametres Utilisateur Eficas \n"
+      self.texteTubePy+="parameters={}\n"
+      
+      for MC in self.dictMCVal.keys():
+        ligne = "parameters['"+MC+"']="+ repr(self.dictMCVal[MC])+'\n'
+         self.texteTubePy=self.texteTubePy+ligne
+
+      # On ajoute des paramètres de configuration pour contrôle de
+      # cohérence avec la procédure outil métier
+      self.texteTubePy+="# Parametres de Configuration Eficas \n"
+      ligne = "parameters['OMVERSION']="+str(properties.version)+"\n"
+      self.texteTubePy+=ligne
+
+      # __GBO__: Tester self.tube pour aiguiller en fonction du cas (au besoin)
+      self.texteTubePy+="\n"
+      self.texteTubePy+="# Exécution de la procédure outil métier \n"
+      self.texteTubePy+="import os,sys\n"
+      self.texteTubePy+="sys.path.insert(0,os.environ['OM_ROOT_DIR'])\n"
+      self.texteTubePy+="import om_data\n"
+      self.texteTubePy+="om_data.setParameters(parameters)\n"
+      self.texteTubePy+="def run():\n"
+      self.texteTubePy+="    import om_smeca\n"
+      self.texteTubePy+="\n"
+      self.texteTubePy+='if __name__ == "__main__":\n'
+      self.texteTubePy+="    run()\n"
+
+      # For debug only
+      print self.texteTubePy
+
+
+   def initDico(self) :
+      self.tube=0
+      self.coude=0
+      self.dictMCVal={}
+      self.texteTubePy=""
+
+   # __GBO__: surcharge de PythonGenerator:
+   # voir example generator_cuve2dg.py (genea)
+   def generMCSIMP(self,obj) :
+      """
+      Convertit un objet MCSIMP en texte python
+      Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
+      """
+      clef=""
+      for i in obj.get_genealogie() :
+         clef=clef+"__"+i
+      #self.dictMCVal[obj.nom]=obj.valeur
+      self.dictMCVal[clef]=obj.valeur
+
+      s=PythonGenerator.generMCSIMP(self,obj)
+      return s
+  
+   # __GBO__: surcharge de PythonGenerator
+   def generMACRO_ETAPE(self,obj):
+      print obj.nom
+      if obj.nom == "S_EP_INTERNE" :
+        self.tube=1
+      if obj.nom == "M_COUDE" :
+        self.coude=1
+      s=PythonGenerator.generMACRO_ETAPE(self,obj)
+      return s
+
diff --git a/generator/oldCodes/generator_cuve2dg.py b/generator/oldCodes/generator_cuve2dg.py
new file mode 100644 (file)
index 0000000..94f901d
--- /dev/null
@@ -0,0 +1,1723 @@
+# -*- 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 contient le plugin generateur de fichier au format 
+    DefaillCUVE pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+
+from Noyau import N_CR
+from Accas import MCSIMP
+from generator_python import PythonGenerator
+
+def entryPoint():
+   """
+       Retourne les informations nécessaires pour le chargeur de plugins
+
+       Ces informations sont retournées dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'cuve2dg',
+        # La factory pour créer une instance du plugin
+          'factory' : Cuve2dgGenerator,
+          }
+
+
+class Cuve2dgGenerator(PythonGenerator):
+   """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et 
+       un texte au format DefaillCUVE
+
+   """
+   # Les extensions de fichier préconisées
+   extensions=('.comm',)
+
+   def __init__(self,cr=None):
+      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+      if cr :
+         self.cr=cr
+      else:
+         self.cr=N_CR.CR(debut='CR generateur format DefaillCUVE pour DefaillCUVE',
+                         fin='fin CR format DefaillCUVE pour DefaillCUVE')
+      # Le texte au format DefaillCUVE est stocké dans l'attribut textCuve
+      self.textCuve=''
+
+      # Ce dictionnaire liste le nom des variables utilisees dans le script
+      self.variable = {
+         "NiveauImpression" : "MESSAGE_LEVEL",
+        "FichierDataIn"    : "DATARESUME_FILE",
+        "FichierTempSigma" : "TEMPSIG_FILE",
+        "FichierCSV"       : "CSV_FILE",
+        "FichierRESTART" : "RESTART_FILE",
+        "FichierEXTR" : "EXTR_FILE",
+        "ChoixPlugin" : "CHOIPLUG",
+        "GrandeurEvaluee" : "GRANDEUR",
+        "IncrementTemporel" : "INCRTPS",
+        "IncrementMaxTemperature" : "DTPREC",
+        "ChoixExtractionTransitoires" : "CHOIEXTR",
+        "IncrementMaxTempsAffichage" : "DTARCH",
+        "TraitementGeometrie" : "TYPEGEOM",
+        "RayonInterne" : "RINT",
+        "RayonInterne_mess" : "RINT_MESSAGE",
+        "RayonExterne" : "REXT",
+        "RayonExterne_mess" : "REXT_MESSAGE",
+        "EpaisseurRevetement" : "LREV",
+        "EpaisseurRevetement_mess" : "LREV_MESSAGE",
+        "LigamentExterneMin" : "LIGMIN",
+        "LigamentExterneMin_mess" : "LIGMIN_MESSAGE",
+        "NombreNoeudsMaillage" : "NBNO",
+        "TypeInitial" : "TYPEDEF",
+        "Orientation" : "ORIEDEF",
+        "Position" : "POSDEF",
+        "ProfondeurRadiale" : "PROFDEF",
+        "ProfondeurRadiale_mess" : "PROFDEF_MESSAGE",
+        "ModeCalculLongueur" : "OPTLONG",
+        "Longueur" : "LONGDEF",
+        "Longueur_mess" : "LONGDEF_MESSAGE",
+        "CoefDirecteur" : "PROFSURLONG",
+        "CoefDirecteur_mess" : "PROFSURLONG_MESSAGE",
+        "Constante" : "LONGCONST",
+        "ModeCalculDecalage" : "DECATYP",
+        "DecalageNormalise" : "DECANOR",
+        "DecalageNormalise_mess" : "DECANOR_MESSAGE",
+        "DecalageRadial" : "DECADEF",
+        "DecalageRadial_mess" : "DECADEF_MESSAGE",
+        "Azimut" : "ANGLDEF",
+        "Azimut_mess" : "ANGLDEF_MESSAGE",
+        "Altitude_mess" : "ANGLDEF_MESSAGE",
+        "Altitude" : "ALTIDEF",
+        "Altitude_mess" : "ALTIDEF_MESSAGE",
+        "Pointe" : "POINDEF",
+        "ModeleFluence" : "MODELFLUENCE",
+        "ZoneActiveCoeur_AltitudeSup" : "H1COEUR",
+        "ZoneActiveCoeur_AltitudeInf" : "H2COEUR",
+        "FluenceMax" : "fmax",
+        "KPFrance" : "KPFRANCE",
+        "KPUS" : "KPUS",
+        "Azimut_0deg" : "COEFFLUENCE1",
+        "Azimut_5deg" : "COEFFLUENCE2",
+        "Azimut_10deg" : "COEFFLUENCE3",
+        "Azimut_15deg" : "COEFFLUENCE4",
+        "Azimut_20deg" : "COEFFLUENCE5",
+        "Azimut_25deg" : "COEFFLUENCE6",
+        "Azimut_30deg" : "COEFFLUENCE7",
+        "Azimut_35deg" : "COEFFLUENCE8",
+        "Azimut_40deg" : "COEFFLUENCE9",
+        "Azimut_45deg" : "COEFFLUENCE10",
+        "TypeIrradiation" : "TYPEIRR",
+        "RTNDT" : "RTNDT",
+        "ModeleIrradiation" : "MODELIRR",
+        "TeneurCuivre" : "CU",
+        "TeneurCuivre_mess" : "CU_MESSAGE",
+        "TeneurNickel" : "NI",
+        "TeneurNickel_mess" : "NI_MESSAGE",
+        "TeneurPhosphore" : "P",
+        "TeneurPhosphore_mess" : "P_MESSAGE",
+        "MoyenneRTndt" : "RTimoy",
+        "MoyenneRTndt_mess" : "RTimoy_MESSAGE",
+        "CoefVariationRTndt" : "RTicov",
+        "CoefVariationRTndt_mess" : "RTicov_MESSAGE",
+        "EcartTypeRTndt" : "USectDRT",
+        "EcartTypeRTndt_mess" : "USectDRT_MESSAGE",
+        "NombreEcartTypeRTndt" : "nbectDRTNDT",
+        "NombreEcartTypeRTndt_mess" : "nbectDRTNDT_MESSAGE",
+        "ModeleTenacite" : "MODELKIC",
+        "NombreCaracteristique" : "NBCARAC",
+        "NbEcartType_MoyKIc" : "nbectKIc",
+        "NbEcartType_MoyKIc_mess" : "nbectKIc_MESSAGE",
+        "PalierDuctile_KIc" : "KICPAL",
+        "CoefficientVariation_KIc" : "KICCDV",
+        "Fractile_KIc" : "fractKIc",
+        "Fractile_KIc_mess" : "fractKIc_MESSAGE",
+        "Temperature_KIc100" : "T0WALLIN",
+        "A1" : "A1",
+        "A2" : "A2",
+        "A3" : "A3",
+        "B1" : "B1",
+        "B2" : "B2",
+        "B3" : "B3",
+        "C1" : "C1",
+        "C2" : "C2",
+        "C3" : "C3",
+        "ChoixCorrectionLongueur" : "CHOIXCL",
+        "AttnCorrBeta" : "ATTNCORRBETA",
+        "CorrIrwin" : "CORRIRWIN",
+        "ArretDeFissure" : "ARRETFISSURE",
+        "IncrementTailleFissure" : "INCRDEF",
+        "IncrementTailleFissure_mess" : "INCRDEF_MESSAGE",
+        "NbEcartType_MoyKIa" : "nbectKIa",
+        "PalierDuctile_KIa" : "KIAPAL",
+        "CoefficientVariation_KIa" : "KIACDV",
+        "ChoixCoefficientChargement" : "CHOIXSIGM",
+        "CoefficientDuctile" : "COEFSIGM1",
+        "CoefficientFragile" : "COEFSIGM2",
+        "InstantInitialisation" : "INSTINIT",
+        "ConditionLimiteThermiqueREV" : "KTHREV",
+        "TemperatureDeformationNulleREV" : "TREFREV",
+        "TemperaturePourCoefDilatThermREV" : "TDETREV",
+        "CoefficientPoissonREV" : "NUREV",
+        "ConditionLimiteThermiqueMDB" : "KTHMDB",
+        "TemperatureDeformationNulleMDB" : "TREFMDB",
+        "TemperaturePourCoefDilatThermMDB" : "TDETMDB",
+        "CoefficientPoissonMDB" : "NUMDB",
+        "TypeConditionLimiteThermique" : "TYPCLTH",
+        "Instant_1" : "INSTANT1",
+        "Instant_2" : "INSTANT2",
+        "Instant_3" : "INSTANT3",
+        "DebitAccumule" : "QACCU",
+        "DebitInjectionSecurite" : "QIS",
+        "TempInjectionSecurite" : "TIS",
+        "TempInjectionSecurite_mess" : "TIS_MESSAGE",
+        "DiametreHydraulique" : "DH",
+        "DiametreHydraulique_mess" : "DH_MESSAGE",
+        "SectionEspaceAnnulaire" : "SECTION",
+        "SectionEspaceAnnulaire_mess" : "SECTION_MESSAGE",
+        "HauteurCaracConvectionNaturelle" : "DELTA",
+        "HauteurCaracConvectionNaturelle_mess" : "DELTA_MESSAGE",
+        "CritereConvergenceRelative" : "EPS",
+        "CoefficientsVestale" : "COEFVESTALE",
+        "VolumeMelange_CREARE" : "VMTAB",
+        "TemperatureInitiale_CREARE" : "T0",
+        "TemperatureInitiale_CREARE_mess" : "T0_MESSAGE",
+        "SurfaceEchange_FluideStructure" : "SE",
+        "SurfaceEchange_FluideStructure_mess" : "SE_MESSAGE",
+        "InstantPerteCirculationNaturelle" : "INST_PCN",
+         }
+
+      # Ce dictionnaire liste le nom des valeurs proposées utilisees dans le script
+      self.valeurproposee = {
+         "Aucune impression" : "0",
+         "Temps total" : "1",
+         "Temps intermediaires" : "2",
+        "Facteur de marge KIc/KCP" : "FM_KICSURKCP",
+        "Marge KIc-KI" : "MARGE_KI",
+        "Marge KIc-KCP" : "MARGE_KCP",
+        "Topologie" : "GEOMETRIE",
+        "Maillage" : "MAILLAGE",
+        "Defaut Sous Revetement" : "DSR",
+        "Defaut Decale" : "DECALE",
+        "Defaut Debouchant" : "DEBOUCHANT",
+        "Longitudinale" : "LONGITUD",
+        "Circonferentielle" : "CIRCONF",
+        "Virole" : "VIROLE",
+        "Joint soude" : "JSOUDE",
+        "Valeur" : "VALEUR",
+        "Fonction affine de la profondeur" : "FCTAFFINE",
+        "Valeur normalisee" : "NORMALISE",
+        "A" : "A",
+        "B" : "B",
+        "A et B" : "BOTH",
+        "Exponentiel sans revetement k=9.7 (Reglementaire)" : "Reglementaire",
+        "Exponentiel sans revetement k=12.7 (France)" : "France",
+        "Exponentiel sans revetement k=0. (ValeurImposee)" : "ValeurImposee",
+        "Donnees francaises du palier CPY (SDM)" : "SDM",
+        "Regulatory Guide 1.99 rev 2 (USNRC)" : "USNRC",
+        "Dossier 900 MWe AP9701 rev 2 (REV_2)" : "REV_2",
+        "Lissage du modele ajuste (SDM_Lissage)" : "SDM_Lissage",
+        "Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)" : "GrandeDev",
+        "Grand developpement (GD_Cuve)" : "GD_Cuve",
+        "Exponentiel sans revetement k=9.7 (Reglementaire CUVE1D)" : "Cuve1D",
+        "RTndt de la cuve a l instant de l analyse" : "RTNDT",
+        "Modele d irradiation" : "FLUENCE",
+        "Formule de FIM/FIS Lefebvre modifiee" : "LEFEBnew",
+        "Metal de Base : formule de FIM/FIS Houssin" : "HOUSSIN",
+        "Metal de Base : formule de FIM/FIS Persoz" : "PERSOZ",
+        "Metal de Base : formule de FIM/FIS Lefebvre" : "LEFEBVRE",
+        "Metal de Base : Regulatory Guide 1.00 rev 2" : "USNRCmdb",
+        "Joint Soude : formulation de FIM/FIS Brillaud" : "BRILLAUD",
+        "Joint Soude : Regulatory Guide 1.00 rev 2" : "USNRCsoud",
+        "RCC-M/ASME coefficient=2" : "RCC-M",
+        "RCC-M/ASME coefficient=2 CUVE1D" : "RCC-M_simpl",
+        "RCC-M/ASME coefficient=2.33 (Houssin)" : "Houssin_RC",
+        "RCC-M/ASME avec KI=KIpalier" : "RCC-M_pal",
+        "RCC-M/ASME avec KI~exponentiel" : "RCC-M_exp",
+        "Weibull basee sur la master cuve" : "Wallin",
+        "Weibull basee sur la master cuve (REME)" : "REME",
+        "Weibull n\xb01 (etude ORNL)" : "ORNL",
+        "Weibull n\xb02" : "WEIB2",
+        "Weibull n\xb03" : "WEIB3",
+        "Weibull generalisee" : "WEIB-GEN",
+        "Exponentielle n\xb01 (Frama)" : "Frama",
+        "Exponentielle n\xb02 (LOGWOLF)" : "LOGWOLF",
+        "Quantile" : "QUANTILE",
+        "Ordre" : "ORDRE",
+        "Enthalpie" : "ENTHALPIE",
+        "Chaleur" : "CHALEUR",
+        "Temperature imposee en paroi" : "TEMP_IMPO",
+        "Flux de chaleur impose en paroi" : "FLUX_REP",
+        "Temperature imposee du fluide et coefficient echange" : "ECHANGE",
+        "Debit massique et temperature d injection de securite" : "DEBIT",
+        "Temperature imposee du fluide et debit d injection de securite" : "TEMP_FLU",
+        "Courbe APRP" : "APRP",
+        "Calcul TEMPFLU puis DEBIT" : "TFDEBIT",
+         }
+
+      # Ce dictionnaire liste le commentaire des variables utilisees dans le script
+      self.comment = {
+         "NiveauImpression" : "Niveau d impression des messages a l ecran (=0 : rien, =1 : temps calcul total, =2 : temps intermediaires)",
+        "FichierDataIn"    : "sortie du fichier recapitulatif des donnees d entree {OUI ; NON}",
+        "FichierTempSigma" : "sortie des fichiers temperature et contraintes {OUI ; NON}",
+        "FichierCSV" : "sortie du fichier resultat template_DEFAILLCUVE.CSV {OUI ; NON}",
+        "FichierRESTART" : "sortie du fichier de re-demarrage",
+        "FichierEXTR" : "sortie du fichier d extraction des transitoires",
+        "ChoixPlugin" : "choix d'un repertoire de plug-in",
+        "GrandeurEvaluee" : "choix de la grandeur sous critere evaluee {FM_KICSURKCP ; MARGE_KI ; MARGE_KCP}",
+        "IncrementTemporel" : "increment temporel pour l analyse PROBABILISTE (si DETERMINISTE, fixer a 1)",
+        "IncrementMaxTemperature" : "increment max de temp/noeud/instant (degC)",
+        "ChoixExtractionTransitoires" : "choix d'extraction de transitoires de temp et contraintes",
+        "IncrementMaxTempsAffichage" : "increment max de temps pour affichage (s)",
+        "TraitementGeometrie" : "traitement de la geometrie de la cuve : {GEOMETRIE, MAILLAGE}",
+        "RayonInterne" : "rayon interne (m)",
+        "RayonInterne_mess" : "affichage ecran du rayon interne (m)",
+        "RayonExterne" : "rayon externe (m)",
+        "RayonExterne_mess" : "affichage ecran du rayon externe (m)",
+        "EpaisseurRevetement" : "epaisseur revetement (m)",
+        "EpaisseurRevetement_mess" : "affichage ecran de l epaisseur revetement (m)",
+        "LigamentExterneMin" : "ligament externe minimal avant rupture (% de l'epaisseur de cuve)",
+        "LigamentExterneMin_mess" : "affichage ecran du ligament externe minimal avant rupture (% de l'epaisseur de cuve)",
+        "NombreNoeudsMaillage" : "nbre de noeuds dans l'epaisseur de la cuve",
+        "TypeInitial" : "type initial du defaut : DEBOUCHANT=Defaut Debouchant, DSR=Defaut Sous Revetement, DECALE=Defaut Decale",
+        "Orientation" : "orientation (LONGITUD / CIRCONF)",
+        "Position" : "Position du defaut (VIROLE / JSOUDE)",
+        "ProfondeurRadiale" : "profondeur radiale ou encore hauteur (m)",
+        "ProfondeurRadiale_mess" : "affichage ecran de la profondeur radiale ou encore hauteur (m)",
+        "ModeCalculLongueur" : "option pour definir la longueur du defaut (VALEUR pour une valeur fixe, FCTAFFINE pour une fct affine de la profondeur)",
+        "Longueur" : "longueur (m) pour defaut Sous Revetement",
+        "Longueur_mess" : "affichage ecran de la longueur (m) pour defaut Sous Revetement",
+        "CoefDirecteur" : "pente de la fonction affine l = h/profsurlong + a0",
+        "CoefDirecteur_mess" : "affichage ecran de la pente de la fonction affine l = h/profsurlong + a0",
+        "Constante" : "constante de la fonction affine a0",
+        "ModeCalculDecalage" : "type de decalage : normalise (NORMALISE) ou reel (VALEUR)",
+        "DecalageNormalise" : "decalage radial normalise (valeur comprise entre 0. et 1.) pour defaut Sous Revetement",
+        "DecalageNormalise_mess" : "affichage ecran du decalage radial normalise (valeur comprise entre 0. et 1.) pour defaut Sous Revetement",
+        "DecalageRadial" : "decalage radial reel (m) pour defaut decale",
+        "DecalageRadial_mess" : "affichage ecran du decalage radial reel (m) pour defaut decale",
+        "Azimut" : "coordonnee angulaire (degre)",
+        "Azimut_mess" : "affichage ecran de la coordonnee angulaire (degre)",
+        "Altitude" : "altitude (m) : valeur negative",
+        "Altitude_mess" : "affichage ecran de l altitude (m) : valeur negative",
+        "Pointe" : "choix du(des) point(s) du defaut considere {'A','B','BOTH'} pour DSR et DECALE (pour DEBOUCHANT : automatiquement 'B')",
+        "ModeleFluence" : "modele de fluence : {Reglementaire, France, ValeurImposee, SDM, USNRC, REV_2, SDM_Lissage, GrandeDev, GD_Cuve, Cuve1D}",
+        "ZoneActiveCoeur_AltitudeSup" : "cote superieure de la zone active de coeur (ici pour cuve palier 900Mw)",
+        "ZoneActiveCoeur_AltitudeInf" : "cote inferieure de la zone active de coeur (ici pour cuve palier 900Mw)",
+        "FluenceMax" : "fluence maximale assimilee par la cuve (n/cm2)",
+        "KPFrance" : "parametre exponentiel du modele France",
+        "KPUS" : "parametre exponentiel du modele US",
+        "Azimut_0deg" : "fluence a l'azimut 0 (10^19 n/cm)",
+        "Azimut_5deg" : "fluence a l'azimut 5 (10^19 n/cm)",
+        "Azimut_10deg" : "fluence a l'azimut 10 (10^19 n/cm)",
+        "Azimut_15deg" : "fluence a l'azimut 15 (10^19 n/cm)",
+        "Azimut_20deg" : "fluence a l'azimut 20 (10^19 n/cm)",
+        "Azimut_25deg" : "fluence a l'azimut 25 (10^19 n/cm)",
+        "Azimut_30deg" : "fluence a l'azimut 30 (10^19 n/cm)",
+        "Azimut_35deg" : "fluence a l'azimut 35 (10^19 n/cm)",
+        "Azimut_40deg" : "fluence a l'azimut 40 (10^19 n/cm)",
+        "Azimut_45deg" : "fluence a l'azimut 45 (10^19 n/cm)",
+        "TypeIrradiation" : "type irradiation : {RTNDT, FLUENCE}",
+        "RTNDT" : "RTNDT finale (degC)",
+        "ModeleIrradiation" : "modele d irradiation : LEFEBnew, ou {HOUSSIN, PERSOZ, LEFEBVRE, USNRCmdb} pour virole et {BRILLAUD,USNRCsoud} pour jointsoude",
+        "TeneurCuivre" : "teneur en cuivre (%)",
+        "TeneurCuivre_mess" : "affichage ecran de la teneur en cuivre (%)",
+        "TeneurNickel" : "teneur en nickel (%)",
+        "TeneurNickel_mess" : "affichage ecran de la teneur en nickel (%)",
+        "TeneurPhosphore" : "teneur en phosphore (%)",
+        "TeneurPhosphore_mess" : "affichage ecran de la teneur en phosphore (%)",
+        "MoyenneRTndt" : "moyenne de la RTNDT initiale : virole C1 de cuve Chinon : mdb=>-17.degC et js=>42.degC (HT-56/05/038 : p.52)",
+        "MoyenneRTndt_mess" : "affichage ecran de la moyenne de la RTNDT initiale",
+        "CoefVariationRTndt" : "coef de variation de la RTNDT initiale",
+        "CoefVariationRTndt_mess" : "affichage ecran du coef de variation de la RTNDT initiale",
+        "EcartTypeRTndt" : "pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)",
+        "EcartTypeRTndt_mess" : "affichage ecran, pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)",
+        "NombreEcartTypeRTndt" : "Nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE (en DETERMINISTE, fixer a 2.)",
+        "NombreEcartTypeRTndt_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE",
+        "ModeleTenacite" : "modele de tenacite : {RCC-M, RCC-M_pal, RCC-M_exp, RCC-M_simpl, Houssin_RC, Wallin, REME, ORNL, Frama, WEIB3, WEIB2, LOGWOLF, WEIB-GEN}",
+        "NombreCaracteristique" : "Nb caracteristique : ORDRE ou QUANTILE",
+        "NbEcartType_MoyKIc" : "Nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE (en DETERMINISTE, fixer a -2.)",
+        "NbEcartType_MoyKIc_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE",
+        "PalierDuctile_KIc" : "palier deterministe de K1c (MPa(m^0.5))",
+        "CoefficientVariation_KIc" : "coef de variation de la loi normale de K1c",
+        "Fractile_KIc" : "valeur caracteristique de KIc exprimee en ordre de fractile (%)",
+        "Fractile_KIc_mess" : "affichage ecran de la valeur caracteristique de KIc exprimee en ordre de fractile (%)",
+        "Temperature_KIc100" : "parametre T0 du modele Wallin (degC)",
+        "A1" : "coef des coefs d une WEIBULL generale",
+        "A2" : "",
+        "A3" : "",
+        "B1" : "",
+        "B2" : "",
+        "B3" : "",
+        "C1" : "",
+        "C2" : "",
+        "C3" : "",
+        "ChoixCorrectionLongueur" : "Activation ou non de la correction de longueur {OUI ; NON}",
+        "AttnCorrBeta" : "Attenuation de la correction plastique : {OUI, NON} ==> uniquement pour DSR ou DECALE",
+        "CorrIrwin" : "Correction plastique IRWIN : {OUI, NON} ==> uniquement pour DEBOUCHANT",
+        "ArretDeFissure" : "prise en compte de l arret de fissure {OUI, NON} (en PROBABILISTE, fixer a NON)",
+        "IncrementTailleFissure" : "increment de la taille de fissure (m)",
+        "IncrementTailleFissure_mess" : "affichage ecran de l increment de la taille de fissure (m)",
+        "NbEcartType_MoyKIa" : "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma)",
+        "PalierDuctile_KIa" : "palier deterministe de K1a quand modele RCC-M  (MPa(m^0.5))",
+        "CoefficientVariation_KIa" : "coef de variation de la loi normale de K1a",
+        "ChoixCoefficientChargement" : "prise en compte de coefficients sur le chargement (OUI/NON)",
+        "CoefficientDuctile" : "coefficient multiplicateur pour rupture ductile",
+        "CoefficientFragile" : "coefficient multiplicateur pour rupture fragile",
+        "InstantInitialisation" : "instant initial (s)",
+        "ConditionLimiteThermiqueREV" : "Option 'ENTHALPIE' ou 'CHALEUR'",
+        "TemperatureDeformationNulleREV" : "temperature de deformation nulle (degC)",
+        "TemperaturePourCoefDilatThermREV" : "temperature de definition du coefficient de dilatation thermique (degC)",
+        "CoefficientPoissonREV" : "coefficient de Poisson",
+        "ConditionLimiteThermiqueMDB" : "Option 'ENTHALPIE' ou 'CHALEUR'",
+        "TemperatureDeformationNulleMDB" : "temperature de deformation nulle (degC)",
+        "TemperaturePourCoefDilatThermMDB" : "temperature de definition du coefficient de dilatation thermique (degC)",
+        "CoefficientPoissonMDB" : "coefficient de Poisson",
+        "TypeConditionLimiteThermique" : "Type de condition thermique en paroi interne {TEMP_IMPO,FLUX_REP,ECHANGE,DEBIT,TEMP_FLU,APRP}",
+        "Instant_1" : "Borne superieure de l intervalle de temps du 1er palier TACCU",
+        "Instant_2" : "Borne superieure de l intervalle de temps du 2nd palier T1",
+        "Instant_3" : "Borne superieure de l intervalle de temps du 3eme palier TIS",
+        "DebitAccumule" : "Debit accumule (en m3/h)",
+        "DebitInjectionSecurite" : "Debit injection de securite (en m3/h)",
+        "TempInjectionSecurite" : "Temperature injection de securite (en degC)",
+        "TempInjectionSecurite_mess" : "affichage ecran de la temperature injection de securite",
+        "DiametreHydraulique" : "Diametre hydraulique (m)",
+        "DiametreHydraulique_mess" : "affichage ecran du diametre hydraulique (m)",
+        "SectionEspaceAnnulaire" : "Section espace annulaire (m2)",
+        "SectionEspaceAnnulaire_mess" : "affichage ecran de la section espace annulaire (m2)",
+        "HauteurCaracConvectionNaturelle" : "Hauteur caracteristique convection naturelle (m)",
+        "HauteurCaracConvectionNaturelle_mess" : "affichage ecran de la hauteur caracteristique convection naturelle (m)",
+        "CritereConvergenceRelative" : "Critere convergence relative (-)",
+        "CoefficientsVestale" : "Application des coefs de Vestale {OUI;NON}",
+        "VolumeMelange_CREARE" : "Transitoire de volume de melange CREARE (m3)",
+        "TemperatureInitiale_CREARE" : "Temperature initiale CREARE (degC)",
+        "TemperatureInitiale_CREARE_mess" : "affichage ecran de la temperature initiale CREARE (degC)",
+        "SurfaceEchange_FluideStructure" : "Surface d'echange fluide/structure (m2)",
+        "SurfaceEchange_FluideStructure_mess" : "affichage ecran de la surface d'echange fluide/structure (m2)",
+        "InstantPerteCirculationNaturelle" : "Instant de perte de circulation naturelle",
+         }
+
+      # Ce dictionnaire liste la valeur par defaut des variables utilisees dans le script
+      self.default = {
+         "NiveauImpression" : "1",
+        "FichierDataIn" : "NON",
+        "FichierTempSigma" : "NON",
+        "FichierCSV" : "NON",
+        "FichierRESTART" : "NON",
+        "FichierEXTR" : "NON",
+        "ChoixPlugin" : "NON",
+        "GrandeurEvaluee" : "FM_KICSURKCP",
+        "IncrementTemporel" : "1",
+        "IncrementMaxTemperature" : "0.1",
+        "ChoixExtractionTransitoires" : "NON",
+        "IncrementMaxTempsAffichage" : "1000.",
+        "TraitementGeometrie" : "GEOMETRIE",
+        "RayonInterne" : "1.994",
+        "RayonInterne_mess" : "NON",
+        "RayonExterne" : "2.2015",
+        "RayonExterne_mess" : "NON",
+        "EpaisseurRevetement" : "0.0075",
+        "EpaisseurRevetement_mess" : "NON",
+        "LigamentExterneMin" : "0.75",
+        "LigamentExterneMin_mess" : "NON",
+        "NombreNoeudsMaillage" : "300",
+        "TypeInitial" : "DSR",
+        "Position" : "VIROLE",
+        "ProfondeurRadiale" : "0.006",
+        "ProfondeurRadiale_mess" : "NON",
+        "ModeCalculLongueur" : "VALEUR",
+        "Longueur" : "0.060",
+        "Longueur_mess" : "NON",
+        "CoefDirecteur" : "10.",
+        "CoefDirecteur_mess" : "NON",
+        "Constante" : "0.",
+        "ModeCalculDecalage" : "VALEUR",
+        "DecalageNormalise" : "0.1",
+        "DecalageNormalise_mess" : "NON",
+        "DecalageRadial" : "0.",
+        "DecalageRadial_mess" : "NON",
+        "Azimut" : "0.",
+        "Azimut_mess" : "NON",
+        "Altitude" : "-4.",
+        "Altitude_mess" : "NON",
+        "Pointe" : "B",
+        "ModeleFluence" : "Reglementaire",
+        "ZoneActiveCoeur_AltitudeSup" : "-3.536",
+        "ZoneActiveCoeur_AltitudeInf" : "-7.194",
+        "FluenceMax" : "6.5",
+        "KPFrance" : "12.7",
+        "KPUS" : "9.4488",
+        "Azimut_0deg" : "5.8",
+        "Azimut_5deg" : "5.48",
+        "Azimut_10deg" : "4.46",
+        "Azimut_15deg" : "3.41",
+        "Azimut_20deg" : "3.37",
+        "Azimut_25deg" : "3.16",
+        "Azimut_30deg" : "2.74",
+        "Azimut_35deg" : "2.25",
+        "Azimut_40deg" : "1.89",
+        "Azimut_45deg" : "1.78",
+        "TypeIrradiation" : "RTNDT",
+        "RTNDT" : "64.",
+        "ModeleIrradiation" : "HOUSSIN",
+        "TeneurCuivre" : "0.0972",
+        "TeneurCuivre_mess" : "NON",
+        "TeneurNickel" : "0.72",
+        "TeneurNickel_mess" : "NON",
+        "TeneurPhosphore" : "0.00912",
+        "TeneurPhosphore_mess" : "NON",
+        "MoyenneRTndt" : "-12.0",
+        "MoyenneRTndt_mess" : "NON",
+        "CoefVariationRTndt" : "0.1",
+        "CoefVariationRTndt_mess" : "NON",
+        "EcartTypeRTndt" : "-2.",
+        "EcartTypeRTndt_mess" : "NON",
+        "NombreEcartTypeRTndt" : "2.",
+        "NombreEcartTypeRTndt_mess" : "NON",
+        "ModeleTenacite" : "RCC-M",
+        "NombreCaracteristique" : "Quantile",
+        "NbEcartType_MoyKIc" : "-2.",
+        "NbEcartType_MoyKIc_mess" : "NON",
+        "PalierDuctile_KIc" : "195.",
+        "CoefficientVariation_KIc" : "0.15",
+        "Fractile_KIc" : "5.",
+        "Fractile_KIc_mess" : "NON",
+        "Temperature_KIc100" : "-27.",
+        "A1" : "21.263",
+        "A2" : "9.159",
+        "A3" : "0.04057",
+        "B1" : "17.153",
+        "B2" : "55.089",
+        "B3" : "0.0144",
+        "C1" : "4.",
+        "C2" : "0.",
+        "C3" : "0.",
+        "ChoixCorrectionLongueur" : "OUI",
+        "AttnCorrBeta" : "NON",
+        "CorrIrwin" : "NON",
+        "ArretDeFissure" : "NON",
+        "IncrementTailleFissure" : "0.",
+        "IncrementTailleFissure_mess" : "NON",
+        "NbEcartType_MoyKIa" : "0.",
+        "PalierDuctile_KIa" : "0.",
+        "CoefficientVariation_KIa" : "0.",
+        "ChoixCoefficientChargement" : "NON",
+        "CoefficientDuctile" : "1.0",
+        "CoefficientFragile" : "1.0",
+        "InstantInitialisation" : "-1.",
+        "ConditionLimiteThermiqueREV" : "CHALEUR",
+        "TemperatureDeformationNulleREV" : "20.",
+        "TemperaturePourCoefDilatThermREV" : "287.",
+        "CoefficientPoissonREV" : "0.3",
+        "ConditionLimiteThermiqueMDB" : "CHALEUR",
+        "TemperatureDeformationNulleMDB" : "20.",
+        "TemperaturePourCoefDilatThermMDB" : "287.",
+        "CoefficientPoissonMDB" : "0.3",
+        "TypeConditionLimiteThermique" : "TEMP_IMPO",
+        "Instant_1" : "21.",
+        "Instant_2" : "45.",
+        "Instant_3" : "5870.",
+        "DebitAccumule" : "2.3",
+        "DebitInjectionSecurite" : "0.375",
+        "TempInjectionSecurite" : "9.",
+        "TempInjectionSecurite_mess" : "NON",
+        "DiametreHydraulique" : "0.3816",
+        "DiametreHydraulique_mess" : "NON",
+        "SectionEspaceAnnulaire" : "0.21712",
+        "SectionEspaceAnnulaire_mess" : "NON",
+        "HauteurCaracConvectionNaturelle" : "6.",
+        "HauteurCaracConvectionNaturelle_mess" : "NON",
+        "CritereConvergenceRelative" : "0.00001",
+        "CoefficientsVestale" : "NON",
+#       "VolumeMelange_CREARE" : "14.9",
+        "TemperatureInitiale_CREARE" : "250.",
+        "TemperatureInitiale_CREARE_mess" : "NON",
+        "SurfaceEchange_FluideStructure" : "0.",
+        "SurfaceEchange_FluideStructure_mess" : "NON",
+        "InstantPerteCirculationNaturelle" : "400.",
+         }
+
+      # Ce dictionnaire liste la rubrique d'appartenance des variables utilisees dans le script
+      self.bloc = {
+         "NiveauImpression" : "OPTIONS",
+        "FichierDataIn" : "OPTIONS",
+        "FichierTempSigma" : "OPTIONS",
+        "FichierCSV" : "OPTIONS",
+        "FichierRESTART" : "OPTIONS",
+        "FichierEXTR" : "OPTIONS",
+        "ChoixPlugin" : "OPTIONS",
+        "GrandeurEvaluee" : "OPTIONS",
+        "IncrementTemporel" : "OPTIONS",
+        "IncrementMaxTemperature" : "OPTIONS",
+        "ChoixExtractionTransitoires" : "OPTIONS",
+        "IncrementMaxTempsAffichage" : "OPTIONS",
+        "TraitementGeometrie" : "DONNEES DE LA CUVE",
+        "RayonInterne" : "DONNEES DE LA CUVE",
+        "RayonInterne_mess" : "DONNEES DE LA CUVE",
+        "RayonExterne" : "DONNEES DE LA CUVE",
+        "RayonExterne_mess" : "DONNEES DE LA CUVE",
+        "EpaisseurRevetement" : "DONNEES DE LA CUVE",
+        "EpaisseurRevetement_mess" : "DONNEES DE LA CUVE",
+        "LigamentExterneMin" : "DONNEES DE LA CUVE",
+        "LigamentExterneMin_mess" : "DONNEES DE LA CUVE",
+        "NombreNoeudsMaillage" : "DONNEES DE LA CUVE",
+        "TypeInitial" : "CARACTERISTIQUES DU DEFAUT",
+        "Orientation" : "CARACTERISTIQUES DU DEFAUT",
+        "Position" : "CARACTERISTIQUES DU DEFAUT",
+        "ProfondeurRadiale" : "CARACTERISTIQUES DU DEFAUT",
+        "ProfondeurRadiale_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "ModeCalculLongueur" : "CARACTERISTIQUES DU DEFAUT",
+        "Longueur" : "CARACTERISTIQUES DU DEFAUT",
+        "Longueur_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "CoefDirecteur" : "CARACTERISTIQUES DU DEFAUT",
+        "CoefDirecteur_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "Constante" : "CARACTERISTIQUES DU DEFAUT",
+        "ModeCalculDecalage" : "CARACTERISTIQUES DU DEFAUT",
+        "DecalageNormalise" : "CARACTERISTIQUES DU DEFAUT",
+        "DecalageNormalise_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "DecalageRadial" : "CARACTERISTIQUES DU DEFAUT",
+        "DecalageRadial_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "Azimut" : "CARACTERISTIQUES DU DEFAUT",
+        "Azimut_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "Altitude" : "CARACTERISTIQUES DU DEFAUT",
+        "Altitude_mess" : "CARACTERISTIQUES DU DEFAUT",
+        "Pointe" : "CARACTERISTIQUES DU DEFAUT",
+        "ModeleFluence" : "MODELES",
+        "ZoneActiveCoeur_AltitudeSup" : "MODELES",
+        "ZoneActiveCoeur_AltitudeInf" : "MODELES",
+        "FluenceMax" : "MODELES",
+        "KPFrance" : "MODELES",
+        "KPUS" : "MODELES",
+        "Azimut_0deg" : "MODELES",
+        "Azimut_5deg" : "MODELES",
+        "Azimut_10deg" : "MODELES",
+        "Azimut_15deg" : "MODELES",
+        "Azimut_20deg" : "MODELES",
+        "Azimut_25deg" : "MODELES",
+        "Azimut_30deg" : "MODELES",
+        "Azimut_35deg" : "MODELES",
+        "Azimut_40deg" : "MODELES",
+        "Azimut_45deg" : "MODELES",
+        "TypeIrradiation" : "MODELES",
+        "RTNDT" : "MODELES",
+        "ModeleIrradiation" : "MODELES",
+        "TeneurCuivre" : "MODELES",
+        "TeneurCuivre_mess" : "MODELES",
+        "TeneurNickel" : "MODELES",
+        "TeneurNickel_mess" : "MODELES",
+        "TeneurPhosphore" : "MODELES",
+        "TeneurPhosphore_mess" : "MODELES",
+        "MoyenneRTndt" : "MODELES",
+        "MoyenneRTndt_mess" : "MODELES",
+        "CoefVariationRTndt" : "MODELES",
+        "CoefVariationRTndt_mess" : "MODELES",
+        "EcartTypeRTndt" : "MODELES",
+        "EcartTypeRTndt_mess" : "MODELES",
+        "NombreEcartTypeRTndt" : "MODELES",
+        "NombreEcartTypeRTndt_mess" : "MODELES",
+        "ModeleTenacite" : "MODELES",
+        "NombreCaracteristique" : "MODELES",
+        "NbEcartType_MoyKIc" : "MODELES",
+        "NbEcartType_MoyKIc_mess" : "MODELES",
+        "PalierDuctile_KIc" : "MODELES",
+        "CoefficientVariation_KIc" : "MODELES",
+        "Fractile_KIc" : "MODELES",
+        "Fractile_KIc_mess" : "MODELES",
+        "Temperature_KIc100" : "MODELES",
+        "A1" : "MODELES",
+        "A2" : "MODELES",
+        "A3" : "MODELES",
+        "B1" : "MODELES",
+        "B2" : "MODELES",
+        "B3" : "MODELES",
+        "C1" : "MODELES",
+        "C2" : "MODELES",
+        "C3" : "MODELES",
+        "ChoixCorrectionLongueur" : "MODELES",
+        "AttnCorrBeta" : "MODELES",
+        "CorrIrwin" : "MODELES",
+        "ArretDeFissure" : "MODELES",
+        "IncrementTailleFissure" : "MODELES",
+        "IncrementTailleFissure_mess" : "MODELES",
+        "NbEcartType_MoyKIa" : "MODELES",
+        "PalierDuctile_KIa" : "MODELES",
+        "CoefficientVariation_KIa" : "MODELES",
+        "ChoixCoefficientChargement" : "ETAT INITIAL",
+        "CoefficientDuctile" : "ETAT INITIAL",
+        "CoefficientFragile" : "ETAT INITIAL",
+        "InstantInitialisation" : "ETAT INITIAL",
+        "ConditionLimiteThermiqueREV" : "CARACTERISTIQUES DU REVETEMENT",
+        "TemperatureDeformationNulleREV" : "CARACTERISTIQUES DU REVETEMENT",
+        "TemperaturePourCoefDilatThermREV" : "CARACTERISTIQUES DU REVETEMENT",
+        "CoefficientPoissonREV" : "CARACTERISTIQUES DU REVETEMENT",
+        "ConditionLimiteThermiqueMDB" : "CARACTERISTIQUES DU MDB",
+        "TemperatureDeformationNulleMDB" : "CARACTERISTIQUES DU MDB",
+        "TemperaturePourCoefDilatThermMDB" : "CARACTERISTIQUES DU MDB",
+        "CoefficientPoissonMDB" : "CARACTERISTIQUES DU MDB",
+        "TypeConditionLimiteThermique" : "TRANSITOIRE",
+        "Instant_1" : "TRANSITOIRE",
+        "Instant_2" : "TRANSITOIRE",
+        "Instant_3" : "TRANSITOIRE",
+        "DebitAccumule" : "TRANSITOIRE",
+        "DebitInjectionSecurite" : "TRANSITOIRE",
+        "TempInjectionSecurite" : "TRANSITOIRE",
+        "TempInjectionSecurite_mess" : "TRANSITOIRE",
+        "DiametreHydraulique" : "TRANSITOIRE",
+        "DiametreHydraulique_mess" : "TRANSITOIRE",
+        "SectionEspaceAnnulaire" : "TRANSITOIRE",
+        "SectionEspaceAnnulaire_mess" : "TRANSITOIRE",
+        "HauteurCaracConvectionNaturelle" : "TRANSITOIRE",
+        "HauteurCaracConvectionNaturelle_mess" : "TRANSITOIRE",
+        "CritereConvergenceRelative" : "TRANSITOIRE",
+        "CoefficientsVestale" : "TRANSITOIRE",
+        "VolumeMelange_CREARE" : "TRANSITOIRE",
+        "TemperatureInitiale_CREARE" : "TRANSITOIRE",
+        "TemperatureInitiale_CREARE_mess" : "TRANSITOIRE",
+        "SurfaceEchange_FluideStructure" : "TRANSITOIRE",
+        "SurfaceEchange_FluideStructure_mess" : "TRANSITOIRE",
+        "InstantPerteCirculationNaturelle" : "TRANSITOIRE",
+         }
+
+   def gener(self,obj,format='brut'):
+      self.text=''
+      self.textCuve=''
+      self.texteTFDEBIT=''
+      self.dico_mot={}
+      self.dico_genea={}
+      self.text=PythonGenerator.gener(self,obj,format)
+      return self.text
+
+   def generMCSIMP(self,obj) :
+       self.dico_mot[obj.nom]=obj.valeur
+       clef=""
+       for i in obj.get_genealogie() :
+           clef=clef+"_"+i
+       self.dico_genea[clef]=obj.valeur
+       s=PythonGenerator.generMCSIMP(self,obj)
+       return s
+
+   def writeCuve2DG(self, filename, file2):
+      print "je passe dans writeCuve2DG"
+      self.genereTexteCuve()
+      f = open( filename, 'wb')
+      print self.texteCuve
+      f.write( self.texteCuve )
+      f.close()
+      ftmp = open( "/tmp/data_template", 'wb')
+      ftmp.write( self.texteCuve )
+      ftmp.close()
+
+      self.genereTexteTFDEBIT()
+      f2 = open( file2, 'wb')
+      print self.texteTFDEBIT
+      f2.write( self.texteTFDEBIT )
+      f2.close()
+
+
+   def entete(self):
+      '''
+      Ecrit l'entete du fichier data_template
+      '''
+      texte  = "############################################################################################"+"\n"
+      texte += "#"+"\n"
+      texte += "#                OUTIL D'ANALYSE PROBABILISTE DE LA DUREE DE VIE DES CUVES REP"+"\n"
+      texte += "#                                     ---------------"+"\n"
+      texte += "#                               FICHIER DE MISE EN DONNEES"+"\n"
+      texte += "#"+"\n"
+      texte += "# SI CALCUL DETERMINISTE :"+"\n"
+      texte += "#       - fixer INCRTPS=1, nbectDRTNDT=2., nbectKIc=-2."+"\n"
+      texte += "#       - les calculs ne sont possibles qu'en une seule pointe du defaut (POINDEF<>BOTH)"+"\n"
+      texte += "# SI CALCUL PROBABILISTE :"+"\n"
+      texte += "#       - fixer ARRETFISSURE=NON"+"\n"
+      texte += "#"+"\n"
+      texte += "############################################################################################"+"\n"
+      texte += "#"+"\n"
+      return texte
+
+   def rubrique(self, titre):
+      '''
+      Rubrique 
+      '''
+      texte  = "#"+"\n"
+      texte += "############################################################################################"+"\n"
+      texte += "# " + titre + "\n"
+      texte += "############################################################################################"+"\n"
+      texte += "#"+"\n"
+      return texte
+
+   def sousRubrique(self, soustitre, numtitre):
+      '''
+      Sous-rubrique 
+      '''
+      texte  = "#"+"\n"
+      texte += "# " + numtitre + soustitre + "\n"
+      texte += "#==========================================================================================="+"\n"
+      texte += "#"+"\n"
+      return texte
+
+   def ecritLigne(self, variablelue):
+      '''
+      Ecrit l'affectation d'une valeur a sa variable, suivie d'un commentaire
+      '''
+      texte = "%s = %s   # %s\n" % (self.variable[variablelue], str(self.dico_mot[variablelue]), self.comment[variablelue])
+      return texte
+
+   def affecteValeurDefaut(self, variablelue):
+      '''
+      Affecte une valeur par defaut a une variable, suivie d'un commentaire
+      '''
+      print "Warning ==> Dans la rubrique",self.bloc[variablelue],", valeur par defaut pour ",variablelue," = ",self.default[variablelue]
+      texte = "%s = %s   # %s\n" % (self.variable[variablelue], self.default[variablelue], self.comment[variablelue])
+      return texte
+
+   def affecteValeur(self, variablelue, valeuraffectee):
+      '''
+      Affecte une valeur a une variable, suivie d'un commentaire
+      '''
+      texte = "%s = %s   # %s\n" % (self.variable[variablelue], valeuraffectee, self.comment[variablelue])
+      return texte
+
+   def ecritVariable(self, variablelue):
+      if self.dico_mot.has_key(variablelue):
+         texte = self.ecritLigne(variablelue)
+      else :
+         texte = self.affecteValeurDefaut(variablelue)
+      return texte
+
+   def amontAval(self, amont, aval):
+      if str(self.dico_mot[amont])=='Continu':
+         if str(self.dico_mot[aval])=='Continu':
+            texte = 'CC'+"\n"
+        if str(self.dico_mot[aval])=='Lineaire':
+            texte = 'CL'+"\n"
+        if str(self.dico_mot[aval])=='Exclu':
+            texte = 'CE'+"\n"
+      if str(self.dico_mot[amont])=='Lineaire':
+         if str(self.dico_mot[aval])=='Continu':
+            texte = 'LC'+"\n"
+        if str(self.dico_mot[aval])=='Lineaire':
+            texte = 'LL'+"\n"
+        if str(self.dico_mot[aval])=='Exclu':
+            texte = 'LE'+"\n"
+      if str(self.dico_mot[amont])=='Exclu':
+         if str(self.dico_mot[aval])=='Continu':
+            texte = 'EC'+"\n"
+        if str(self.dico_mot[aval])=='Lineaire':
+            texte = 'EL'+"\n"
+        if str(self.dico_mot[aval])=='Exclu':
+            texte = 'EE'+"\n"
+      return texte
+
+   def genereTexteCuve(self):
+      self.texteCuve  = ""
+      self.texteCuve += self.entete()
+
+      # Rubrique OPTIONS
+      self.texteCuve += self.rubrique('OPTIONS')
+
+      self.texteCuve += self.sousRubrique('Impression a l ecran', '')
+      if self.dico_mot.has_key('NiveauImpression'):
+         self.texteCuve += self.affecteValeur('NiveauImpression', self.valeurproposee[str(self.dico_mot["NiveauImpression"])])
+
+      self.texteCuve += self.sousRubrique('Generation de fichiers', '')
+      self.texteCuve += self.ecritVariable('FichierDataIn')
+      self.texteCuve += self.ecritVariable('FichierTempSigma')
+      self.texteCuve += self.ecritVariable('FichierCSV')
+      self.texteCuve += self.ecritVariable('FichierRESTART')
+      self.texteCuve += self.ecritVariable('FichierEXTR')
+      self.texteCuve += self.ecritVariable('ChoixPlugin')
+
+      self.texteCuve += self.sousRubrique('Grandeur evaluee', '')
+      if self.dico_mot.has_key('GrandeurEvaluee'):
+         self.texteCuve += self.affecteValeur('GrandeurEvaluee', self.valeurproposee[str(self.dico_mot["GrandeurEvaluee"])])
+
+      self.texteCuve += self.sousRubrique('Divers', '')
+      self.texteCuve += self.ecritVariable('IncrementTemporel')
+      self.texteCuve += self.ecritVariable('IncrementMaxTemperature')
+
+      #self.texteCuve += self.ecritVariable('ChoixExtractionTransitoires')
+      if self.dico_mot.has_key('ChoixExtractionTransitoires'):
+         self.texteCuve += self.ecritVariable('ChoixExtractionTransitoires')
+         if str(self.dico_mot["ChoixExtractionTransitoires"])=='OUI':
+            if self.dico_mot.has_key('ListeAbscisses'):
+               self.texteCuve += "# liste des abscisses pour ecriture des transitoires de T et SIG (5 ou moins)"+"\n"
+               self.imprime(1,(self.dico_mot["ListeAbscisses"]))
+               self.texteCuve+="#"+"\n"
+            else :
+               print "Warning ==> Dans la rubrique OPTIONS, fournir ListeAbscisses."
+               self.texteCuve += "# liste des abscisses pour ecriture des transitoires de T et SIG (5 ou moins)"+"\n"
+               self.texteCuve += "  1.994\n"
+               self.texteCuve += "  2.000\n"
+               self.texteCuve+="#"+"\n"
+         else :
+            self.texteCuve+="#"+"\n"
+
+      self.texteCuve += self.ecritVariable('IncrementMaxTempsAffichage')
+      if self.dico_mot.has_key('ListeInstants'):
+         self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+         self.imprime(1,(self.dico_mot["ListeInstants"]))
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+         self.texteCuve+="#"+"\n"
+      else :
+         print "Warning ==> Dans la rubrique OPTIONS, fournir ListeInstants."
+         self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
+         self.texteCuve += "  0.\n"
+         self.texteCuve += "  1.\n"
+         self.texteCuve+="#"+"\n"
+
+
+      # Rubrique DONNEES DE LA CUVE
+      self.texteCuve += self.rubrique('DONNEES DE LA CUVE')
+      if self.dico_mot.has_key('TraitementGeometrie'):
+         self.texteCuve += self.affecteValeur('TraitementGeometrie', self.valeurproposee[str(self.dico_mot["TraitementGeometrie"])])
+         if str(self.dico_mot["TraitementGeometrie"])=='Topologie':
+            self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
+            self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
+            self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
+            self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
+            self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
+            self.texteCuve+="#                         NBNO"+"\n"
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('RayonInterne')
+            self.texteCuve += self.ecritVariable('RayonInterne_mess')
+            self.texteCuve += self.ecritVariable('RayonExterne')
+            self.texteCuve += self.ecritVariable('RayonExterne_mess')
+            self.texteCuve += self.ecritVariable('EpaisseurRevetement')
+            self.texteCuve += self.ecritVariable('EpaisseurRevetement_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('LigamentExterneMin')
+            self.texteCuve += self.ecritVariable('LigamentExterneMin_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
+         if str(self.dico_mot["TraitementGeometrie"])=='Maillage':
+            self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
+            self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
+            self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
+            self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
+            self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
+            self.texteCuve+="#                         NBNO"+"\n"
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
+            self.imprime(1,(self.dico_mot["ListeAbscisses"]))
+      else :
+         self.texteCuve += self.affecteValeurDefaut('TraitementGeometrie')
+         self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
+         self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
+         self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
+         self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
+         self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
+         self.texteCuve+="#                         NBNO"+"\n"
+         self.texteCuve+="#"+"\n"
+         self.texteCuve += self.affecteValeurDefaut('RayonInterne')
+         self.texteCuve += self.affecteValeurDefaut('RayonInterne_mess')
+         self.texteCuve += self.affecteValeurDefaut('RayonExterne')
+         self.texteCuve += self.affecteValeurDefaut('RayonExterne_mess')
+         self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement')
+         self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement_mess')
+         self.texteCuve+="#"+"\n"
+         self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin')
+         self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin_mess')
+         self.texteCuve+="#"+"\n"
+         self.texteCuve += self.affecteValeurDefaut('NombreNoeudsMaillage')
+
+
+      # Rubrique CARACTERISTIQUES DU DEFAUT
+      self.texteCuve += self.rubrique('CARACTERISTIQUES DU DEFAUT')
+
+      if self.dico_mot.has_key('TypeInitial'):
+         self.texteCuve += self.affecteValeur('TypeInitial', self.valeurproposee[str(self.dico_mot["TypeInitial"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('TypeInitial')
+
+      self.texteCuve+="# Fournir ORIEDEF, (PROFDEF, PROFDEF_MESSAGE)"+"\n"
+      self.texteCuve+="# - Si DSR, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST)"+"\n"
+      self.texteCuve+="# - Si DECALE, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST), DECATYP, (DECANOR,DECANOR_MESSAGE) ou (DECADEF,DECADEF_MESSAGE)"+"\n"
+      self.texteCuve+="# - Si DEBOUCHANT, fournir IRWIN"+"\n"
+      self.texteCuve+="# Fournir (ANGLDEF, ANGLDEF_MESSAGE), (ALTIDEF, ALTIDEF_MESSAGE)"+"\n"
+      self.texteCuve+="# - Si DSR ou DECALE, fournir POINDEF"+"\n"
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Remarque :"+"\n"
+      self.texteCuve+="# - si DSR ou DECALE, dans la rubrique 'Modele de tenacite', fournir ATTNCORRBETA (ne pas fournir CORRIRWIN)"+"\n"
+      self.texteCuve+="# - si DEBOUCHANT,    dans la rubrique 'Modele de tenacite', fournir CORRIRWIN    (ne pas fournir ATTNCORRBETA)"+"\n"
+
+      self.texteCuve+="#"+"\n"
+
+      if self.dico_mot.has_key('Orientation'):
+         self.texteCuve += self.affecteValeur('Orientation', self.valeurproposee[str(self.dico_mot["Orientation"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('Orientation')
+        
+      if self.dico_mot.has_key('Position'):
+         self.texteCuve += self.affecteValeur('Position', self.valeurproposee[str(self.dico_mot["Position"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('Position')
+        
+      self.texteCuve+="#"+"\n"
+      self.texteCuve += self.ecritVariable('ProfondeurRadiale')
+      self.texteCuve += self.ecritVariable('ProfondeurRadiale_mess')
+
+      self.texteCuve+="#"+"\n"
+      if self.dico_mot.has_key('TypeInitial'):
+         if str(self.dico_mot["TypeInitial"])!='Defaut Debouchant':
+            if self.dico_mot.has_key('ModeCalculLongueur'):
+               self.texteCuve += self.affecteValeur('ModeCalculLongueur', self.valeurproposee[str(self.dico_mot["ModeCalculLongueur"])])
+               if str(self.dico_mot["ModeCalculLongueur"])=='Valeur':
+                  self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
+                  self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
+                  self.texteCuve += self.ecritVariable('Longueur')
+                  self.texteCuve += self.ecritVariable('Longueur_mess')
+               if str(self.dico_mot["ModeCalculLongueur"])=='Fonction affine de la profondeur':
+                  self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
+                  self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
+                  self.texteCuve += self.ecritVariable('CoefDirecteur')
+                  self.texteCuve += self.ecritVariable('CoefDirecteur_mess')
+                  self.texteCuve += self.ecritVariable('Constante')
+            else :
+               self.texteCuve += self.affecteValeurDefaut('ModeCalculLongueur')
+               self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
+               self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
+               self.texteCuve += self.affecteValeurDefaut('Longueur')
+               self.texteCuve += self.affecteValeurDefaut('Longueur_mess')
+
+      if self.dico_mot.has_key('TypeInitial'):
+         if str(self.dico_mot["TypeInitial"])=='Defaut Decale':
+            self.texteCuve+="#"+"\n"
+            if self.dico_mot.has_key('ModeCalculDecalage'):
+               self.texteCuve += self.affecteValeur('ModeCalculDecalage', self.valeurproposee[str(self.dico_mot["ModeCalculDecalage"])])
+               if str(self.dico_mot["ModeCalculDecalage"])=='Valeur normalisee':
+                  self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
+                  self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
+                  self.texteCuve += self.ecritVariable('DecalageNormalise')
+                  self.texteCuve += self.ecritVariable('DecalageNormalise_mess')
+               if str(self.dico_mot["ModeCalculDecalage"])=='Valeur':
+                  self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
+                  self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
+                  self.texteCuve += self.ecritVariable('DecalageRadial')
+                  self.texteCuve += self.ecritVariable('DecalageRadial_mess')
+            else :
+               self.texteCuve += self.affecteValeurDefaut('ModeCalculDecalage')
+               self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
+               self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
+               self.texteCuve += self.affecteValeurDefaut('DecalageRadial')
+               self.texteCuve += self.affecteValeurDefaut('DecalageRadial_mess')
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve += self.ecritVariable('Azimut')
+      self.texteCuve += self.ecritVariable('Azimut_mess')
+      self.texteCuve+="#"+"\n"
+      self.texteCuve += self.ecritVariable('Altitude')
+      self.texteCuve += self.ecritVariable('Altitude_mess')
+      self.texteCuve+="#"+"\n"
+      if self.dico_mot.has_key('Pointe'):
+         self.texteCuve += self.affecteValeur('Pointe', self.valeurproposee[str(self.dico_mot["Pointe"])])
+      #else :
+      #   self.texteCuve += self.affecteValeurDefaut('Pointe')
+
+      # Rubrique MODELES FLUENCE, IRRADIATION, TENACITE
+      self.texteCuve += self.rubrique('MODELES FLUENCE, IRRADIATION, TENACITE')
+      self.texteCuve += self.sousRubrique('Modele d attenuation de la fluence dans l epaisseur','A.')
+
+      if self.dico_mot.has_key('ModeleFluence'):
+         self.texteCuve += self.affecteValeur('ModeleFluence', self.valeurproposee[str(self.dico_mot["ModeleFluence"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('ModeleFluence')
+
+      self.texteCuve+="# - si France,          fournir KPFRANCE"+"\n"
+      self.texteCuve+="# - si USNRC,           fournir KPUS"+"\n"
+      self.texteCuve+="# - si modele GD_Cuve,  fournir COEFFLUENCE1, COEFFLUENCE2, ..., COEFFLUENCE9, COEFFLUENCE10"+"\n"
+      self.texteCuve+="#"+"\n"
+
+      self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeSup')
+      self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeInf')
+      self.texteCuve += self.ecritVariable('FluenceMax')
+      if self.dico_mot.has_key('ModeleFluence'):
+         if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)':
+            self.texteCuve += self.ecritVariable('KPFrance')
+         if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)':
+            self.texteCuve += self.ecritVariable('KPUS')
+         if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)':
+            self.texteCuve += self.ecritVariable('Azimut_0deg')
+            self.texteCuve += self.ecritVariable('Azimut_5deg')
+            self.texteCuve += self.ecritVariable('Azimut_10deg')
+            self.texteCuve += self.ecritVariable('Azimut_15deg')
+            self.texteCuve += self.ecritVariable('Azimut_20deg')
+            self.texteCuve += self.ecritVariable('Azimut_25deg')
+            self.texteCuve += self.ecritVariable('Azimut_30deg')
+            self.texteCuve += self.ecritVariable('Azimut_35deg')
+            self.texteCuve += self.ecritVariable('Azimut_40deg')
+            self.texteCuve += self.ecritVariable('Azimut_45deg')
+
+      self.texteCuve += self.sousRubrique('Irradiation','B.')
+
+      if self.dico_mot.has_key('TypeIrradiation'):
+         self.texteCuve += self.affecteValeur('TypeIrradiation', self.valeurproposee[str(self.dico_mot["TypeIrradiation"])])
+
+         if str(self.dico_mot["TypeIrradiation"])=='RTndt de la cuve a l instant de l analyse':
+            self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
+            self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('RTNDT')
+
+         if str(self.dico_mot["TypeIrradiation"])=='Modele d irradiation':
+            self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
+            self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
+            self.texteCuve+="#"+"\n"
+            if self.dico_mot.has_key('ModeleIrradiation'):
+               self.texteCuve += self.affecteValeur('ModeleIrradiation', self.valeurproposee[str(self.dico_mot["ModeleIrradiation"])])
+            else :
+              self.texteCuve += self.affecteValeurDefaut('ModeleIrradiation')
+            self.texteCuve+="# - pour tout modele,                                 fournir (CU, CU_MESSAGE),"+"\n"
+            self.texteCuve+="#                                                             (NI, NI_MESSAGE),"+"\n"
+            self.texteCuve+="# - si HOUSSIN, PERSOZ, LEFEBVRE, BRILLAUD, LEFEBnew, fournir (P, P_MESSAGE)"+"\n"
+            self.texteCuve+="# - pour tout modele,                                 fournir (RTimoy, RTimoy_MESSAGE),"+"\n"
+            self.texteCuve+="# - si USNRCsoud ou USNRCmdb,                         fournir (RTicov, RTicov_MESSAGE)"+"\n"
+            self.texteCuve+="#                                                             (USectDRT, USectDRT_MESSAGE)"+"\n"
+            self.texteCuve+="# - pour tout modele,                                 fournir (nbectDRTNDT, nbectDRTNDT_MESSAGE)"+"\n"
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('TeneurCuivre')
+            self.texteCuve += self.ecritVariable('TeneurCuivre_mess')
+            self.texteCuve += self.ecritVariable('TeneurNickel')
+            self.texteCuve += self.ecritVariable('TeneurNickel_mess')
+            if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Houssin' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Persoz' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Lefebvre' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : formulation de FIM/FIS Brillaud' or str(self.dico_mot["ModeleIrradiation"])=='Formule de FIM/FIS Lefebvre modifiee':
+               self.texteCuve += self.ecritVariable('TeneurPhosphore')
+               self.texteCuve += self.ecritVariable('TeneurPhosphore_mess')
+            self.texteCuve += self.ecritVariable('MoyenneRTndt')
+            self.texteCuve += self.ecritVariable('MoyenneRTndt_mess')
+            if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : Regulatory Guide 1.00 rev 2' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : Regulatory Guide 1.00 rev 2':
+               self.texteCuve += self.ecritVariable('CoefVariationRTndt')
+               self.texteCuve += self.ecritVariable('CoefVariationRTndt_mess')
+               self.texteCuve += self.ecritVariable('EcartTypeRTndt')
+               self.texteCuve += self.ecritVariable('EcartTypeRTndt_mess')
+            self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt')
+            self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt_mess')
+      else :
+         self.texteCuve += self.affecteValeurDefaut('TypeIrradiation')
+         self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
+         self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
+         self.texteCuve+="#"+"\n"
+         self.texteCuve += self.affecteValeurDefaut('RTNDT')
+
+      self.texteCuve += self.sousRubrique('Modele de tenacite','C.')
+      self.texteCuve+="# tenacite d amorcage"+"\n"
+
+      if self.dico_mot.has_key('ModeleTenacite'):
+         self.texteCuve += self.affecteValeur('ModeleTenacite', self.valeurproposee[str(self.dico_mot["ModeleTenacite"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('ModeleTenacite')
+      self.texteCuve+="# - si RCC-M, RCC-M_pal, Houssin_RC, fournir (nbectKIc, nbectKIc_MESSAGE), KICPAL, KICCDV"+"\n"
+      self.texteCuve+="# - si RCC-M_exp,                    fournir (nbectKIc, nbectKIc_MESSAGE), KICCDV"+"\n"
+      self.texteCuve+="# - si RCC-M_simpl,                  ne rien fournir"+"\n"
+      self.texteCuve+="# - si Frama, LOGWOLF,               fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
+      self.texteCuve+="# - si REME, ORNL, WEIB3, WEIB2,     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC"+"\n"
+      self.texteCuve+="# - si Wallin,                       fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
+      self.texteCuve+="#                                                     puis T0WALLIN"+"\n"
+      self.texteCuve+="# - si WEIB-GEN,                     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
+      self.texteCuve+="#                                                     puis A1, A2, A3, B1, B2, B3, C1, C2, C3"+"\n"
+      self.texteCuve+="#   loi de Weibull P(K<x) = 1 - exp{-[ (x-a(T)) / b(T) ]^c(T) }"+"\n"
+      self.texteCuve+="#   avec        a(T) = A1 + A2*exp[A3*(T-RTNDT)]"+"\n"
+      self.texteCuve+="#               b(T) = B1 + B2*exp[B3*(T-RTNDT)]"+"\n"
+      self.texteCuve+="#               c(T) = C1 + C2*exp[C3*(T-RTNDT)]"+"\n"
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Correction de la longueur"+"\n"
+      self.texteCuve += self.ecritVariable('ChoixCorrectionLongueur')
+      self.texteCuve+="#"+"\n"
+      if self.dico_mot.has_key('ModeleTenacite'):
+         if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' or str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02' or str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
+            if self.dico_mot.has_key('NombreCaracteristique'):
+               self.texteCuve += self.affecteValeur('NombreCaracteristique', self.valeurproposee[str(self.dico_mot["NombreCaracteristique"])])
+            else :
+               self.texteCuve += self.affecteValeurDefaut('NombreCaracteristique')
+            self.texteCuve+="# - Si NBCARAC = QUANTILE, fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
+            self.texteCuve+="# - Si NBCARAC = ORDRE,    fournir (fractKIc, fractKIc_MESSAGE)"+"\n"
+
+         if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2' or str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI=KIpalier' or str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2.33 (Houssin)' :
+            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
+            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
+            self.texteCuve += self.ecritVariable('PalierDuctile_KIc')
+            self.texteCuve += self.ecritVariable('CoefficientVariation_KIc')
+
+         if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb01 (Frama)' or str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb02 (LOGWOLF)' :
+            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
+            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
+
+         if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02' or str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' or str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee':
+            if str(self.dico_mot["NombreCaracteristique"])=='Quantile' :
+               self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
+               self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
+            if str(self.dico_mot["NombreCaracteristique"])=='Ordre' :
+               self.texteCuve += self.ecritVariable('Fractile_KIc')
+               self.texteCuve += self.ecritVariable('Fractile_KIc_mess')
+
+            if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' :
+               self.texteCuve += self.ecritVariable('Temperature_KIc100')
+
+            if str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
+               self.texteCuve += self.ecritVariable('A1')
+               self.texteCuve += self.ecritVariable('A2')
+               self.texteCuve += self.ecritVariable('A3')
+               self.texteCuve += self.ecritVariable('B1')
+               self.texteCuve += self.ecritVariable('B2')
+               self.texteCuve += self.ecritVariable('B3')
+               self.texteCuve += self.ecritVariable('C1')
+               self.texteCuve += self.ecritVariable('C2')
+               self.texteCuve += self.ecritVariable('C3')
+      else :
+         self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc')
+         self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc_mess')
+         self.texteCuve += self.affecteValeurDefaut('PalierDuctile_KIc')
+         self.texteCuve += self.affecteValeurDefaut('CoefficientVariation_KIc')
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Correction plastique"+"\n"
+
+      #DTV if self.dico_mot.has_key('TypeInitial'):
+      #DTV    if str(self.dico_mot["TypeInitial"])!='Defaut Debouchant':
+      if self.dico_mot.has_key('CorrectionPlastique'):
+         if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA (pour DSR et defaut decale)':
+            self.texteCuve += self.affecteValeur('AttnCorrBeta','NON')
+         if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA attenuee (pour DSR et defaut decale)':
+            self.texteCuve += self.affecteValeur('AttnCorrBeta','OUI')
+         if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique IRWIN (pour defaut debouchant)':
+            self.texteCuve += self.affecteValeur('CorrIrwin','OUI')
+      else :
+         self.texteCuve += self.affecteValeurDefaut('AttnCorrBeta')
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Prise en compte de l'arret de fissure si DETERMINISTE"+"\n"
+
+      self.texteCuve += self.ecritVariable('ArretDeFissure')
+      self.texteCuve+="# - si ARRETFISSURE=OUI, fournir (INCRDEF, INCRDEF_MESSAGE), nbectKIa, KIAPAL, KIACDV"+"\n"
+      if self.dico_mot.has_key('ArretDeFissure'):
+         if str(self.dico_mot["ArretDeFissure"])=='OUI':
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('IncrementTailleFissure')
+            self.texteCuve += self.ecritVariable('IncrementTailleFissure_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# Parametres pour le calcul de la tenacite a l arret"+"\n"
+            self.texteCuve += self.ecritVariable('NbEcartType_MoyKIa')
+            self.texteCuve += self.ecritVariable('PalierDuctile_KIa')
+            self.texteCuve += self.ecritVariable('CoefficientVariation_KIa')
+
+      # Rubrique Etat initial
+      self.texteCuve += self.rubrique('ETAT INITIAL')
+
+      self.texteCuve+="# Profil radial de la temperature initiale dans la cuve"+"\n"
+      self.texteCuve+="# abscisse (m) / temp initiale dans la cuve"+"\n"
+      self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
+      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+      if self.dico_mot.has_key('ProfilRadial_TemperatureInitiale'):
+         self.imprime(2,(self.dico_mot["ProfilRadial_TemperatureInitiale"]))
+         self.texteCuve += self.amontAval('Amont_TemperatureInitiale','Aval_TemperatureInitiale')
+      else :
+         self.texteCuve+="    1.9940    287."+"\n"
+         self.texteCuve+="CC"+"\n"
+      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Profils radiaux des contraintes residuelles dans la cuve"+"\n"
+      self.texteCuve+="# abscisse (m) / sigma rr / sigma tt / sigma zz"+"\n"
+      self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
+      if self.dico_mot.has_key('ProfilRadial_ContraintesInitiales'):
+         self.imprime(4,(self.dico_mot["ProfilRadial_ContraintesInitiales"]))
+         self.texteCuve += self.amontAval('Amont_ContraintesInitiales','Aval_ContraintesInitiales')
+      else :
+         self.texteCuve+="1.994     0. 0.  0."+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Prise en compte de coefficients sur les contraintes"+"\n"
+      self.texteCuve += self.ecritVariable('ChoixCoefficientChargement')
+      if str(self.dico_mot["ChoixCoefficientChargement"])=='OUI':
+         self.texteCuve += self.ecritVariable('CoefficientDuctile')
+         self.texteCuve += self.ecritVariable('CoefficientFragile')
+      else :
+         self.texteCuve+="#"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Instant initial"+"\n"
+      self.texteCuve += self.ecritVariable('InstantInitialisation')
+
+      # Rubrique CARACTERISTIQUES DU REVETEMENT
+      self.texteCuve += self.rubrique('CARACTERISTIQUES DU REVETEMENT')
+
+      if self.dico_mot.has_key('ConditionLimiteThermiqueREV'):
+         self.texteCuve += self.affecteValeur('ConditionLimiteThermiqueREV', self.valeurproposee[str(self.dico_mot["ConditionLimiteThermiqueREV"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('ConditionLimiteThermiqueREV')
+      self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
+      self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
+      self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
+      self.texteCuve+="#"+"\n"
+      if self.dico_mot.has_key('ChaleurREV_Fct_Temperature'):
+         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
+         self.imprime(2,(self.dico_mot["ChaleurREV_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_ChaleurREV','Aval_ChaleurREV')
+      elif self.dico_mot.has_key('EnthalpieREV_Fct_Temperature'):
+         self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
+         self.imprime(2,(self.dico_mot["EnthalpieREV_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_EnthalpieREV','Aval_EnthalpieREV')
+      else :
+         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
+         self.texteCuve+="0.    36.03E5 "+"\n"
+         self.texteCuve+="20.   36.03E5 "+"\n"
+         self.texteCuve+="200.  41.65E5 "+"\n"
+         self.texteCuve+="350.  43.47E5 "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
+      if self.dico_mot.has_key('ConductiviteREV_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["ConductiviteREV_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_ConductiviteREV','Aval_ConductiviteREV')
+      else :
+         self.texteCuve+="0.    14.7 "+"\n"
+         self.texteCuve+="20.   14.7 "+"\n"
+         self.texteCuve+="200.  17.2 "+"\n"
+         self.texteCuve+="350.  19.3 "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
+      if self.dico_mot.has_key('ModuleYoungREV_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["ModuleYoungREV_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_ModuleYoungREV','Aval_ModuleYoungREV')
+      else :
+         self.texteCuve+="0.    198500. "+"\n"
+         self.texteCuve+="20.   197000. "+"\n"
+         self.texteCuve+="200.  184000. "+"\n"
+         self.texteCuve+="350.  172000. "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
+      if self.dico_mot.has_key('CoeffDilatThermREV_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["CoeffDilatThermREV_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_CoeffDilatThermREV','Aval_CoeffDilatThermREV')
+      else :
+         self.texteCuve+="0.    16.40E-6 "+"\n"
+         self.texteCuve+="20.   16.40E-6 "+"\n"
+         self.texteCuve+="200.  17.20E-6 "+"\n"
+         self.texteCuve+="350.  17.77E-6 "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / limite d'elasticite (MPa)"+"\n"
+      if self.dico_mot.has_key('LimiteElasticiteREV_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["LimiteElasticiteREV_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_LimiteElasticiteREV','Aval_LimiteElasticiteREV')
+      else :
+         self.texteCuve+="0.    380. "+"\n"
+         self.texteCuve+="20.   370. "+"\n"
+         self.texteCuve+="100.  330. "+"\n"
+         self.texteCuve+="300.  270. "+"\n"
+         self.texteCuve+="LL"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve += self.ecritVariable('TemperatureDeformationNulleREV')
+      self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermREV')
+      self.texteCuve += self.ecritVariable('CoefficientPoissonREV')
+
+      # Rubrique CARACTERISTIQUES DU METAL DE BASE
+      self.texteCuve += self.rubrique('CARACTERISTIQUES DU METAL DE BASE')
+
+      if self.dico_mot.has_key('ConditionLimiteThermiqueMDB'):
+         self.texteCuve += self.affecteValeur('ConditionLimiteThermiqueMDB', self.valeurproposee[str(self.dico_mot["ConditionLimiteThermiqueMDB"])])
+      else :
+         self.texteCuve += self.affecteValeurDefaut('ConditionLimiteThermiqueMDB')
+
+      self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
+      self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
+      self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
+      self.texteCuve+="#"+"\n"
+
+      if self.dico_mot.has_key('ChaleurMDB_Fct_Temperature'):
+         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
+         self.imprime(2,(self.dico_mot["ChaleurMDB_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_ChaleurMDB','Aval_ChaleurMDB')
+      elif self.dico_mot.has_key('EnthalpieMDB_Fct_Temperature'):
+         self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
+         self.imprime(2,(self.dico_mot["EnthalpieMDB_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_EnthalpieMDB','Aval_EnthalpieMDB')
+      else :
+         self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
+         self.texteCuve+="0.    34.88E+05 "+"\n"
+         self.texteCuve+="20.   34.88E+05 "+"\n"
+         self.texteCuve+="200.  40.87E+05 "+"\n"
+         self.texteCuve+="350.  46.02E+05 "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
+      if self.dico_mot.has_key('ConductiviteMDB_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["ConductiviteMDB_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_ConductiviteMDB','Aval_ConductiviteMDB')
+      else :
+         self.texteCuve+="0.    37.7 "+"\n"
+         self.texteCuve+="20.   37.7 "+"\n"
+         self.texteCuve+="200.  40.5 "+"\n"
+         self.texteCuve+="350.  38.7 "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
+      if self.dico_mot.has_key('ModuleYoungMDB_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["ModuleYoungMDB_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Aval_ModuleYoungMDB','Aval_ModuleYoungMDB')
+      else :
+         self.texteCuve+="0.    205000. "+"\n"
+         self.texteCuve+="20.   204000. "+"\n"
+         self.texteCuve+="200.  193000. "+"\n"
+         self.texteCuve+="350.  180000. "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
+      if self.dico_mot.has_key('CoeffDilatThermMDB_Fct_Temperature'):
+         self.imprime(2,(self.dico_mot["CoeffDilatThermMDB_Fct_Temperature"]))
+         self.texteCuve += self.amontAval('Amont_CoeffDilatThermMDB','Aval_CoeffDilatThermMDB')
+      else :
+         self.texteCuve+="0.    11.22E-6 "+"\n"
+         self.texteCuve+="20.   11.22E-6 "+"\n"
+         self.texteCuve+="200.  12.47E-6 "+"\n"
+         self.texteCuve+="350.  13.08E-6 "+"\n"
+         self.texteCuve+="CC"+"\n"
+
+      self.texteCuve+="#"+"\n"
+      self.texteCuve += self.ecritVariable('TemperatureDeformationNulleMDB')
+      self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermMDB')
+      self.texteCuve += self.ecritVariable('CoefficientPoissonMDB')
+
+      # Rubrique CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE
+      self.texteCuve += self.rubrique('CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE')
+      self.texteCuve += self.sousRubrique('Chargement mecanique : transitoire de pression','')
+
+      self.texteCuve+="# instant (s) / pression (MPa)"+"\n"
+      self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
+      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+      if self.dico_mot.has_key('ProfilTemporel_Pression'):
+         self.imprime(2,(self.dico_mot["ProfilTemporel_Pression"]))
+         self.texteCuve += self.amontAval('Amont_Pression','Aval_Pression')
+      else :
+         self.texteCuve+="0.    15.5 "+"\n"
+         self.texteCuve+="20.   0.1 "+"\n"
+         self.texteCuve+="200.  0.1 "+"\n"
+         self.texteCuve+="1000. 0.1 "+"\n"
+         self.texteCuve+="CC"+"\n"
+      if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+         self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+
+      self.texteCuve += self.sousRubrique('Chargement thermo-hydraulique','')
+      if self.dico_mot.has_key('TypeConditionLimiteThermique'):
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+         self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', self.valeurproposee[str(self.dico_mot["TypeConditionLimiteThermique"])])
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+      else :
+         self.texteCuve += self.affecteValeurDefaut('TypeConditionLimiteThermique')
+
+      self.texteCuve+="# - si TEMP_IMPO, fournir Instant (s) / Temperature imposee (degC)"+"\n"
+      self.texteCuve+="# - si FLUX_REP,  fournir Instant (s) / Flux de chaleur impose (W/m2)"+"\n"
+      self.texteCuve+="# - si ECHANGE,   fournir Instant (s) / Temperature impose (degC)"+"\n"
+      self.texteCuve+="#                    puis Instant (s) / Coefficient d echange (W/m2/K)"+"\n"
+      self.texteCuve+="# - si DEBIT,     fournir Instant (s) / Debit massique (kg/s)"+"\n"
+      self.texteCuve+="#                    puis Instant (s) / Temperature d injection de securite  (degC)"+"\n"
+      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
+      self.texteCuve+="#                    puis Modele CREARE  : "+"\n"
+      self.texteCuve+="#                        Instants(s) / Volume de melange CREARE (m3)"+"\n"
+      self.texteCuve+="#                        puis (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
+      self.texteCuve+="# - si TEMP_FLU,  fournir Instant (s) / Temperature du fluide (degC)"+"\n"
+      self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
+      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
+      self.texteCuve+="# - si TFDEBIT,   fournir INST_PCN et TIS"+"\n"
+      self.texteCuve+="#                 fournir Instant (s) / Temperature du fluide (degC)"+"\n"
+      self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
+      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
+      self.texteCuve+="#                    puis Modele CREARE  : "+"\n"
+      self.texteCuve+="#                        Instants(s) / Volume de melange CREARE (m3)"+"\n"
+      self.texteCuve+="#                        puis (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
+      self.texteCuve+="# - si APRP,      fournir INSTANT1, INSTANT2, INSTANT3, QACCU, QIS, (TIS, TIS_MESSAGE)"+"\n"
+      self.texteCuve+="#                    puis Instant (s) / Temperature du fluide (degC) tel que dans l'exemple ci-dessous"+"\n"
+      self.texteCuve+="#                         0.    286."+"\n"
+      self.texteCuve+="#                         12.   20.             # 1er palier à T=TACCU"+"\n"
+      self.texteCuve+="#                         20.   20.             # idem que ci-dessus : T=TACCU"+"\n"
+      self.texteCuve+="#                         21.   999999.         # 2nd palier à T=T1 : sera remplace par nouvelle valeur calculee par fonction idoine"+"\n"
+      self.texteCuve+="#                         45.   999999.         # idem que ci-dessus : T=T1"+"\n"
+      self.texteCuve+="#                         46.   9.              # 3eme palier à T=TIS, temperature d injection de securite : sa valeur est reactualisee avec la donnee de TIS ci-dessous"+"\n"
+      self.texteCuve+="#                         1870. 9.              # idem que ci-dessus : T=TIS"+"\n"
+      self.texteCuve+="#                         1871. 80."+"\n"
+      self.texteCuve+="#                         3871. 80."+"\n"
+      self.texteCuve+="#                         CC                    # C pour Constant, E pour Exclu, L pour Lineaire"+"\n"
+      self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
+      self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
+      self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
+      self.texteCuve+="#"+"\n"
+
+      if self.dico_mot.has_key('TypeConditionLimiteThermique'):
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            self.texteCuve += self.ecritVariable('InstantPerteCirculationNaturelle')
+            self.texteCuve += self.ecritVariable('TempInjectionSecurite')
+            self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# Definition de parametres pour le cas d un transitoire APRP"+"\n"
+            self.texteCuve += self.ecritVariable('Instant_1')
+            self.texteCuve += self.ecritVariable('Instant_2')
+            self.texteCuve += self.ecritVariable('Instant_3')
+            self.texteCuve += self.ecritVariable('DebitAccumule')
+            self.texteCuve += self.ecritVariable('DebitInjectionSecurite')
+            self.texteCuve += self.ecritVariable('TempInjectionSecurite')
+            self.texteCuve += self.ecritVariable('TempInjectionSecurite_mess')
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee en paroi' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP' :
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_TemperatureImposeeFluide'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
+               self.texteCuve += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
+           else :
+               self.texteCuve+="0.    286. "+"\n"
+               self.texteCuve+="20.   20. "+"\n"
+               self.texteCuve+="200.  7. "+"\n"
+               self.texteCuve+="1000. 80. "+"\n"
+               self.texteCuve+="CC"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Flux de chaleur impose en paroi':
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# instant (s) / flux de chaleur impose (W/m2)"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_FluxChaleur'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_FluxChaleur"]))
+               self.texteCuve += self.amontAval('Amont_FluxChaleur','Aval_FluxChaleur')
+               self.texteCuve+="#"+"\n"
+           else :
+               self.texteCuve+="0.    -0. "+"\n"
+               self.texteCuve+="20.   -366290. "+"\n"
+               self.texteCuve+="200.  -121076. "+"\n"
+               self.texteCuve+="1000.  -56372."+"\n"
+               self.texteCuve+="CC"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# instant (s) / Debit d injection de securite  (kg/s)"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_DebitInjection'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
+               self.texteCuve += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
+           else :
+               self.texteCuve+="0.    4590. "+"\n"
+               self.texteCuve+="20.   4590. "+"\n"
+               self.texteCuve+="200.  340. "+"\n"
+               self.texteCuve+="1000. 31.1 "+"\n"
+               self.texteCuve+="CC"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' :
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# instant (s) / Coefficient d echange (W/m2/K)"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_CoefficientEchange'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_CoefficientEchange"]))
+               self.texteCuve += self.amontAval('Amont_CoefficientEchange','Aval_CoefficientEchange')
+           else :
+               self.texteCuve+="0.    138454. "+"\n"
+               self.texteCuve+="20.   19972. "+"\n"
+               self.texteCuve+="200.  2668. "+"\n"
+               self.texteCuve+="1000. 2668. "+"\n"
+               self.texteCuve+="CC"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' :
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# instant (s) / Debit massique (kg/s)"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_DebitMassique'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_DebitMassique"]))
+               self.texteCuve += self.amontAval('Amont_DebitMassique','Aval_DebitMassique')
+           else :
+               self.texteCuve+="0.    18.4 "+"\n"
+               self.texteCuve+="20.   18.4 "+"\n"
+               self.texteCuve+="200.  31.1 "+"\n"
+               self.texteCuve+="1000. 31.1 "+"\n"
+               self.texteCuve+="CC"+"\n"
+
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# instant (s) / Temperature d injection de securite  (degC)"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_TemperatureInjection'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureInjection"]))
+               self.texteCuve += self.amontAval('Amont_TemperatureInjection','Aval_TemperatureInjection')
+           else :
+               self.texteCuve+="0.    7.0 "+"\n"
+               self.texteCuve+="20.   7.0 "+"\n"
+               self.texteCuve+="200.  7.0 "+"\n"
+               self.texteCuve+="1000. 7.0 "+"\n"
+               self.texteCuve+="CC"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP' :
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# Transitoire des coefficients d echange : modele VESTALE"+"\n"
+            self.texteCuve+="#"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            self.texteCuve += self.ecritVariable('DiametreHydraulique')
+            self.texteCuve += self.ecritVariable('DiametreHydraulique_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire')
+            self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle')
+            self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('CritereConvergenceRelative')
+            self.texteCuve += self.ecritVariable('CoefficientsVestale')
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' :
+            self.texteCuve+="#"+"\n"
+            self.texteCuve+="# Transitoire de temperature fluide locale : modele CREARE"+"\n"
+            self.texteCuve+="#"+"\n"
+            #self.texteCuve += self.ecritVariable('VolumeMelange_CREARE')
+            self.texteCuve+="# instant (s) / Volume de melange CREARE  (m3)"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            if self.dico_mot.has_key('ProfilTemporel_VolumeMelange_CREARE'):
+               self.imprime(2,(self.dico_mot["ProfilTemporel_VolumeMelange_CREARE"]))
+               self.texteCuve += self.amontAval('Amont_VolumeMelange_CREARE','Aval_VolumeMelange_CREARE')
+           else :
+               self.texteCuve+="0.    14.3 "+"\n"
+               self.texteCuve+="20.   14.2 "+"\n"
+               self.texteCuve+="CC"+"\n"
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            else :
+               self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE')
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+            self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE_mess')
+            self.texteCuve+="#"+"\n"
+            self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure')
+            self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
+            if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
+               self.texteCuve+="#BLOC_TFDEBIT"+"\n"
+      else :
+         self.texteCuve+="#"+"\n"
+         self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
+         self.texteCuve+="0.    286. "+"\n"
+         self.texteCuve+="20.   20. "+"\n"
+         self.texteCuve+="200.  7. "+"\n"
+         self.texteCuve+="1000. 80. "+"\n"
+         self.texteCuve+="CC"+"\n"
+      self.texteCuve+="#"+"\n"
+      self.texteCuve+="############################################################################################"+"\n"
+
+
+   def genereTexteTFDEBIT(self):
+
+      self.texteTFDEBIT = ""
+
+      if self.dico_mot.has_key('TypeConditionLimiteThermique'):
+         if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' :
+            self.texteTFDEBIT+="# instant (s) / pression (MPa)"+"\n"
+            self.texteTFDEBIT+=" "+"\n"
+            self.imprime2(2,(self.dico_mot["ProfilTemporel_Pression"]))
+            self.texteTFDEBIT += self.amontAval('Amont_Pression','Aval_Pression')
+
+       #     self.texteTFDEBIT+=" "+"\n"
+       #     self.texteTFDEBIT += self.affecteValeur('TypeConditionLimiteThermique', self.valeurproposee[str(self.dico_mot["TypeConditionLimiteThermique"])])
+
+            self.texteTFDEBIT+=" "+"\n"
+            self.imprime2(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
+            self.texteTFDEBIT += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
+
+            self.texteTFDEBIT+=" "+"\n"
+            self.imprime2(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
+            self.texteTFDEBIT += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
+
+            self.texteTFDEBIT+=" "+"\n"
+            self.texteTFDEBIT += self.ecritVariable('DiametreHydraulique')
+            self.texteTFDEBIT += self.ecritVariable('DiametreHydraulique_mess')
+            self.texteTFDEBIT+="#"+"\n"
+            self.texteTFDEBIT += self.ecritVariable('SectionEspaceAnnulaire')
+            self.texteTFDEBIT += self.ecritVariable('SectionEspaceAnnulaire_mess')
+            self.texteTFDEBIT+="#"+"\n"
+            self.texteTFDEBIT += self.ecritVariable('HauteurCaracConvectionNaturelle')
+            self.texteTFDEBIT += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
+            self.texteTFDEBIT+="#"+"\n"
+            self.texteTFDEBIT += self.ecritVariable('CritereConvergenceRelative')
+            self.texteTFDEBIT += self.ecritVariable('CoefficientsVestale')
+
+            self.texteTFDEBIT+=" "+"\n"
+            self.imprime2(2,(self.dico_mot["ProfilTemporel_VolumeMelange_CREARE"]))
+            self.texteTFDEBIT += self.amontAval('Amont_VolumeMelange_CREARE','Aval_VolumeMelange_CREARE')
+
+            self.texteTFDEBIT+=" "+"\n"
+            self.texteTFDEBIT += self.ecritVariable('SurfaceEchange_FluideStructure')
+            self.texteTFDEBIT += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
+            self.texteTFDEBIT += self.ecritVariable('InstantPerteCirculationNaturelle')
+            self.texteTFDEBIT += self.ecritVariable('TempInjectionSecurite')
+         else :
+            self.texteTFDEBIT+="Fichier inutile"+"\n"
+
+
+   def imprime(self,nbdeColonnes,valeur):
+      self.liste=[]
+      self.transforme(valeur)
+      i=0
+      while i < len(self.liste):
+          for k in range(nbdeColonnes) :
+              self.texteCuve+=str(self.liste[i+k]) +"  "
+          self.texteCuve+="\n"
+          i=i+k+1
+               
+   def imprime2(self,nbdeColonnes,valeur):
+      self.liste=[]
+      self.transforme(valeur)
+      i=0
+      while i < len(self.liste):
+          for k in range(nbdeColonnes) :
+              self.texteTFDEBIT+=str(self.liste[i+k]) +"  "
+          self.texteTFDEBIT+="\n"
+          i=i+k+1
+               
+
+   def transforme(self,valeur):
+      for i in valeur :
+          if type(i) == tuple :
+             self.transforme(i)
+          else :
+             self.liste.append(i)
+          
+
+
+
diff --git a/generator/oldCodes/generator_homard.py b/generator/oldCodes/generator_homard.py
new file mode 100644 (file)
index 0000000..0f1958c
--- /dev/null
@@ -0,0 +1,252 @@
+# -*- 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 contient le plugin generateur de fichier au format 
+    homard pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+
+from Noyau import N_CR
+from Noyau.N_utils import repr_float
+from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
+from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
+from Accas import GEOM,ASSD,MCNUPLET
+from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
+from Formatage import Formatage
+from generator_python import PythonGenerator
+
+def entryPoint():
+   """
+       Retourne les informations necessaires pour le chargeur de plugins
+
+       Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'homard',
+        # La factory pour creer une instance du plugin
+          'factory' : HomardGenerator,
+          }
+
+
+class HomardGenerator(PythonGenerator):
+   """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et 
+       un texte au format homard 
+
+   """
+   # Les extensions de fichier preconis�es
+   extensions=('.comm',)
+
+   def __init__(self,cr=None):
+      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+      if cr :
+         self.cr=cr
+      else:
+         self.cr=N_CR.CR(debut='CR generateur format homard pour homard',
+                         fin='fin CR format homard pour homard')
+      # Le texte au format homard est stock� dans l'attribut text
+      self.dico_mot_clef={}
+      self.assoc={}
+      self.init_assoc()
+      self.text=''
+      self.textehomard=[]
+
+   def init_assoc(self):
+      self.lmots_clef_calcules = ('SuivFron','TypeBila','ModeHOMA','CCAssoci', 'CCNoChaI','HOMaiN__','HOMaiNP1','CCNumOrI', 'CCNumPTI')
+      self.lmot_clef  = ('CCMaiN__', 'CCNoMN__', 'CCIndica', 'CCSolN__', 'CCFronti', 'CCNoMFro', 'CCMaiNP1', 
+                         'CCNoMNP1', 'CCSolNP1', 'TypeRaff', 'TypeDera', 'NiveauMa', 'SeuilHau', 'SeuilHRe', 
+                         'SeuilHPE', 'NiveauMi', 'SeuilBas', 'SeuilBRe', 'SeuilBPE', 'ListeStd', 'NumeIter', 
+                         'Langue  ', 'CCGroFro', 'CCNoChaI', 'CCNumOrI', 'CCNumPTI', 'SuivFron', 'TypeBila', 
+                         'ModeHOMA', 'HOMaiN__', 'HOMaiNP1','CCCoChaI')
+
+# Bizarre demander a Gerald : 
+#                CVSolNP1
+      self.assoc['CCMaiN__']='FICHIER_MED_MAILLAGE_N'
+      self.assoc['CCNoMN__']='NOM_MED_MAILLAGE_N'
+      self.assoc['CCIndica']='FICHIER_MED_MAILLAGE_N'
+      self.assoc['CCSolN__']='FICHIER_MED_MAILLAGE_N'
+      self.assoc['CCFronti']='FIC_FRON'
+      self.assoc['CCNoMFro']='NOM_MED_MAILLAGE_FRONTIERE'
+      self.assoc['CCMaiNP1']='FICHIER_MED_MAILLAGE_NP1'
+      self.assoc['CCNoMNP1']='NOM_MED_MAILLAGE_NP1'
+      self.assoc['CCSolNP1']='FICHIER_MED_MAILLAGE_NP1'
+      self.assoc['TypeRaff']='RAFFINEMENT'
+      self.assoc['TypeDera']='DERAFFINEMENT'
+      self.assoc['NiveauMa']='NIVE_MAX'
+      self.assoc['SeuilHau']='CRIT_RAFF_ABS'
+      self.assoc['SeuilHRe']='CRIT_RAFF_REL'
+      self.assoc['SeuilHPE']='CRIT_RAFF_PE'
+      self.assoc['NiveauMi']='NIVE_MIN'
+      self.assoc['SeuilBas']='CRIT_DERA_ABS'
+      self.assoc['SeuilBRe']='CRIT_DERA_REL'
+      self.assoc['SeuilBPE']='CRIT_DERA_PE'
+      self.assoc['ListeStd']='MESSAGES'
+      self.assoc['NumeIter']='NITER'
+      self.assoc['Langue  ']='LANGUE'
+      self.assoc['CCGroFro']='GROUP_MA'
+#     self.assoc['CCNoChaI']='NOM_MED' (on doit aussi ajouter 'COMPOSANTE')
+      self.assoc['CCNumOrI']='NUME_ORDRE'
+      self.assoc['CCNumPTI']='NUME_PAS_TEMPS'
+      self.assoc['CCCoChaI']='COMPOSANTE'
+     
+      self.dico_mot_depend={}
+     
+      # Attention a la synthaxe
+      self.dico_mot_depend['CCIndica'] ='self.dico_mot_clef["RAFFINEMENT"] == "LIBRE" or self.dico_mot_clef["DERAFFINEMENT"] == "LIBRE"'
+      self.dico_mot_depend['CCSolN__'] ='self.dico_mot_clef.has_key("NITER")'
+      self.dico_mot_depend['CCSolNP1'] ='self.dico_mot_clef.has_key("NITER")'
+
+   def gener(self,obj,format='brut',config=None):
+      self.text=PythonGenerator.gener(self,obj,format)
+      self.genereConfiguration()
+      return self.text
+
+   def generMCSIMP(self,obj) :
+      """
+          Convertit un objet MCSIMP en une liste de chaines de caract�res � la
+          syntaxe homard
+      """
+      s=PythonGenerator.generMCSIMP(self,obj)
+      clef=obj.nom
+      self.dico_mot_clef[clef]=obj.val
+      return s
+
+   def cherche_dependance(self,mot):
+       b_eval = 0
+       a_eval=self.dico_mot_depend[mot]
+       try :
+          b_eval=eval(self.dico_mot_depend[mot])
+       except :
+          for l in a_eval.split(" or "):
+              try:
+                 b_eval=eval(l)
+                 if not (b_eval == 0 ):
+                     break
+              except :
+                 pass
+       return b_eval
+
+
+   def genereConfiguration(self):
+      ligbla=31*' '
+      self.textehomard=[]
+      for mot in self.lmot_clef:
+
+#          on verifie d'abord que le mot clef doit bien etre calcule
+          if self.dico_mot_depend.has_key(mot) :
+             if self.cherche_dependance(mot) == 0 :
+                      continue
+
+          if mot not in self.lmots_clef_calcules :
+             clef_eficas=self.assoc[mot]
+             if self.dico_mot_clef.has_key(clef_eficas):
+                val=self.dico_mot_clef[clef_eficas]
+                if val != None:
+                   try :
+                    ligne=mot+' '+val
+                   except:
+                    ligne=mot+' '+repr(val)
+                   ligne.rjust(32)
+                   self.textehomard.append(ligne)
+          else:
+             val=apply(HomardGenerator.__dict__[mot],(self,))
+             if val != None:
+                mot.rjust(8)
+                ligne=mot+' '+val
+                ligne.rjust(32)
+                self.textehomard.append(ligne)
+
+   def get_homard(self):
+       return self.textehomard
+
+   def SuivFron(self):
+        val="non"
+        if self.dico_mot_clef.has_key('NOM_MED_MAILLAGE_FRONTIERE'):
+           if self.dico_mot_clef['NOM_MED_MAILLAGE_FRONTIERE'] != None:
+                val="oui"
+        return val
+
+   def TypeBila(self):
+        inttypeBilan = 1
+        retour=None
+        dict_val={'NOMBRE':7,'INTERPENETRATION':3,'QUALITE':5,'CONNEXITE':11,'TAILLE':13}
+        for mot in ('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'):
+            if self.dico_mot_clef.has_key(mot):
+               if (self.dico_mot_clef[mot] == "OUI"):
+                  inttypeBilan=inttypeBilan*dict_val[mot]
+                  retour = repr(inttypeBilan)
+        return retour
+
+
+   def ModeHOMA(self):
+        intModeHOMA=1
+        if self.dico_mot_clef.has_key('INFORMATION'):
+           if self.dico_mot_clef['INFORMATION'] == "OUI":
+              intModeHOMA=2
+        return repr(intModeHOMA)
+           
+   def CCAssoci(self):
+        return 'MED' 
+
+   def CCNoChaI(self):
+        if not (self.dico_mot_clef.has_key('NOM_MED')):
+           return None
+        if (self.dico_mot_clef['NOM_MED']== None):
+           return None
+        if not (self.dico_mot_clef.has_key('COMPOSANTE')):
+           return None
+        if (self.dico_mot_clef['COMPOSANTE']== None):
+           return None
+        chaine=self.dico_mot_clef['COMPOSANTE']+' '+self.dico_mot_clef['NOM_MED']
+        return chaine
+
+   def HOMaiN__(self):
+       chaine=None
+       if self.dico_mot_clef.has_key('NITER'):
+          if self.dico_mot_clef['NITER'] != None :
+             num="M"+repr(self.dico_mot_clef['NITER'])
+             chaine=num+" "+num+".hom"
+       return chaine
+
+   def HOMaiNP1(self):
+       chaine=None
+       if self.dico_mot_clef.has_key('NITER'):
+          if self.dico_mot_clef['NITER'] != None :
+             num="M"+repr(self.dico_mot_clef['NITER']+1)
+             chaine=num+" "+num+".hom"
+       return chaine
+
+   def CCNumOrI(self):
+       chaine=repr(1)
+       if self.dico_mot_clef.has_key('NUME_ORDRE'):
+          if self.dico_mot_clef['NUME_ORDRE'] != None :
+             chaine=repr(self.dico_mot_clef['NUME_ORDRE'])
+       return chaine
+
+   def CCNumPTI(self):
+       chaine=repr(1)
+       if self.dico_mot_clef.has_key('NUME_PAS_TEMPS'):
+          if self.dico_mot_clef['NUME_PAS_TEMPS'] != None :
+             chaine=repr(self.dico_mot_clef['NUME_PAS_TEMPS'])
+       return chaine
diff --git a/generator/oldCodes/generator_openturns.py b/generator/oldCodes/generator_openturns.py
new file mode 100644 (file)
index 0000000..2f4b371
--- /dev/null
@@ -0,0 +1,140 @@
+# -*- 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 contient le plugin generateur de fichier au format 
+    openturns pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+from Extensions.i18n import tr
+
+
+from generator_python import PythonGenerator
+from OpenturnsBase import Generateur 
+#from OpenturnsXML import XMLGenerateur 
+#from OpenturnsSTD import STDGenerateur 
+
+def entryPoint():
+   """
+       Retourne les informations necessaires pour le chargeur de plugins
+
+       Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'openturns',
+        # La factory pour creer une instance du plugin
+          'factory' : OpenturnsGenerator,
+          }
+
+
+class OpenturnsGenerator(PythonGenerator):
+   """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et 
+       un texte au format xml 
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+   def initDico(self):
+       self.dictMCVal={}
+       self.listeVariables=[]
+       self.listeFichiers=[]
+       self.dictMCLois={}
+       self.dictTempo={}
+       self.TraiteMCSIMP=1
+
+   def gener(self,obj,format='brut',config=None):
+       #print "IDM: gener dans generator_openturns.py"
+       self.initDico()
+       self.text=PythonGenerator.gener(self,obj,format)
+       self.genereXML()
+       self.genereSTD()
+       return self.text
+
+   def generMCSIMP(self,obj) :
+       """
+       Convertit un objet MCSIMP en texte python
+       Remplit le dictionnaire des MCSIMP si nous ne sommes pas ni dans une loi, ni dans une variable
+       """
+       s=PythonGenerator.generMCSIMP(self,obj)
+       if self.TraiteMCSIMP == 1 : 
+          self.dictMCVal[obj.nom]=obj.valeur
+       else :
+          self.dictTempo[obj.nom]=obj.valeur
+       return s
+
+   def generMCFACT(self,obj):
+       # Il n est pas possible d utiliser obj.valeur qui n est pas 
+       # a jour pour les nouvelles variables ou les modifications 
+       if obj.nom == "Variables" or "Files":
+          self.TraiteMCSIMP=0
+         self.dictTempo={}
+       s=PythonGenerator.generMCFACT(self,obj)
+       if obj.nom == "Variables" :
+         self.listeVariables.append(self.dictTempo)
+         self.dictTempo={}
+       else :
+          self.listeFichiers.append(self.dictTempo)
+       self.TraiteMCSIMP=1
+       return s
+
+   def generETAPE(self,obj):
+       if obj.nom == "DISTRIBUTION" :
+          self.TraiteMCSIMP=0
+         self.dictTempo={}
+       s=PythonGenerator.generETAPE(self,obj)
+       if obj.nom == "DISTRIBUTION" :
+          self.dictMCLois[obj.sd]=self.dictTempo
+         self.dictTempo={}
+       self.TraiteMCSIMP=1
+       return s
+
+   def genereXML(self):
+       #print "IDM: genereXML dans generator_openturns.py"
+       if self.listeFichiers != [] :
+          self.dictMCVal["exchange_file"]=self.listeFichiers
+       MonBaseGenerateur=Generateur(self.dictMCVal, self.listeVariables, self.dictMCLois)
+       MonGenerateur=MonBaseGenerateur.getXMLGenerateur()
+       #try :
+       if 1== 1 :
+          self.texteXML=MonGenerateur.CreeXML()
+       #except :
+       else :
+         self.texteXML=tr("Il y a un pb a la Creation du XML")
+
+   def genereSTD(self):
+       MonBaseGenerateur=Generateur(self.dictMCVal, self.listeVariables, self.dictMCLois)
+       MonGenerateur=MonBaseGenerateur.getSTDGenerateur()
+       #try :
+       if 1== 1 :
+          self.texteSTD=MonGenerateur.CreeSTD()
+       #except :
+       else :
+                 self.texteSTD=tr("Il y a un pb a la Creation du STD")
+
+   def getOpenturnsXML(self):
+       return self.texteXML
+
+   def getOpenturnsSTD(self):
+       return self.texteSTD
diff --git a/generator/oldCodes/generator_openturns_study.py b/generator/oldCodes/generator_openturns_study.py
new file mode 100644 (file)
index 0000000..e603d90
--- /dev/null
@@ -0,0 +1,141 @@
+# -*- 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 contient le plugin generateur de fichier au format 
+   openturns pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+from Extensions.i18n import tr
+
+
+from generator_python import PythonGenerator
+from OpenturnsBase import Generateur 
+#from OpenturnsXML import XMLGenerateur 
+#from OpenturnsSTD import STDGenerateur 
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'openturns_study',
+        # La factory pour creer une instance du plugin
+          'factory' : OpenturnsGenerator,
+          }
+
+
+class OpenturnsGenerator(PythonGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et 
+      un texte au format xml 
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+   def initDico(self):
+      self.dictMCVal={}
+      self.listeVariables=[]
+      self.listeFichiers=[]
+      self.dictMCLois={}
+      self.dictTempo={}
+      self.TraiteMCSIMP=1
+      self.texteSTD="""#!/usr/bin/env python
+      import sys
+      print "Invalid file. Check build process."
+      sys.exit(1)
+      """
+
+   def gener(self,obj,format='brut',config=None):
+      print "IDM: gener dans generator_openturns_study.py"
+      self.initDico()
+      self.text=PythonGenerator.gener(self,obj,format)
+      self.genereSTD()
+      return self.text
+
+   def generMCSIMP(self,obj) :
+      """
+      Convertit un objet MCSIMP en texte python
+      Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
+      """
+      s=PythonGenerator.generMCSIMP(self,obj)
+      if self.TraiteMCSIMP == 1 : 
+         self.dictMCVal[obj.nom]=obj.valeur
+      else :
+         self.dictTempo[obj.nom]=obj.valeur
+      return s
+
+
+   def generETAPE(self,obj):
+      print "IDM: generETAPE dans generator_openturns_study.py"
+      print "IDM: obj.nom=", obj.nom
+      if obj.nom in ( "DISTRIBUTION", ) :
+         self.TraiteMCSIMP=0
+         self.dictTempo={}
+      s=PythonGenerator.generETAPE(self,obj)
+      if obj.nom in ( "DISTRIBUTION", ) :
+         self.dictMCLois[obj.sd]=self.dictTempo
+         self.dictTempo={}
+      self.TraiteMCSIMP=1
+      return s
+
+   def generPROC_ETAPE(self,obj):
+      print "IDM: generPROC_ETAPE dans generator_openturns_study.py"
+      print "IDM: obj.nom=", obj.nom
+      if obj.nom in ( "VARIABLE",  ) :
+         self.TraiteMCSIMP=0
+         self.dictTempo={}
+      s=PythonGenerator.generPROC_ETAPE(self,obj)
+      if obj.nom in ( "VARIABLE", ) :
+         self.listeVariables.append(self.dictTempo)
+         self.dictTempo={}
+      self.TraiteMCSIMP=1
+      return s
+
+   def genereSTD(self):
+      print "IDM: genereSTD dans generator_openturns_study.py"
+      print "IDM: self.listeVariables=", self.listeVariables
+      MonGenerateur=self.getGenerateur()
+      #try :
+      if 1== 1 :
+         self.texteSTD=MonGenerateur.CreeSTD()
+      #except :
+      else :
+         self.texteSTD=tr("Il y a un pb a la Creation du STD")
+
+   def writeDefault(self, fn):
+      fileSTD = fn[:fn.rfind(".")] + '.py'
+      with open(fileSTD, 'w') as f:
+        f.write(self.texteSTD)
+
+   def getGenerateur (self):
+      print "IDM: getGenerateur dans generator_openturns_study.py"
+      print "IDM: self.dictMCVal=", self.dictMCVal
+      print "IDM: self.listeVariables=", self.listeVariables
+      print "IDM: self.dictMCLois=", self.dictMCLois
+      MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, self.listeVariables, self.dictMCLois)
+      MonGenerateur=MonBaseGenerateur.getSTDGenerateur()
+      return MonGenerateur
diff --git a/generator/oldCodes/generator_openturns_wrapper.py b/generator/oldCodes/generator_openturns_wrapper.py
new file mode 100644 (file)
index 0000000..bf0d063
--- /dev/null
@@ -0,0 +1,142 @@
+# -*- 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 contient le plugin generateur de fichier au format 
+    openturns pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+from Extensions.i18n import tr
+
+
+from generator_python import PythonGenerator
+from OpenturnsBase import Generateur 
+#from OpenturnsXML import XMLGenerateur 
+#from OpenturnsSTD import STDGenerateur 
+
+def entryPoint():
+   """
+       Retourne les informations necessaires pour le chargeur de plugins
+
+       Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'openturns_wrapper',
+        # La factory pour creer une instance du plugin
+          'factory' : OpenturnsGenerator,
+          }
+
+
+class OpenturnsGenerator(PythonGenerator):
+   """
+       Ce generateur parcourt un objet de type JDC et produit
+       un texte au format eficas et 
+       un texte au format xml 
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+   def initDico(self):
+       self.dictMCVal={}
+       self.dictVariables={}
+       self.listeFichiers=[]
+       self.dictTempo={}
+       self.traiteMCSIMP=1
+       self.numOrdre=0
+       self.texteSTD="""#!/usr/bin/env python
+       import sys
+       print "Invalid file. Check build process."
+       sys.exit(1)
+       """
+       self.wrapperXML=None
+
+   def gener(self,obj,format='brut',config=None):
+       #print "IDM: gener dans generator_openturns_wrapper.py"
+       self.initDico()
+       self.text=PythonGenerator.gener(self,obj,format)
+       self.genereXML()
+       #self.genereSTD()
+       return self.text
+
+   def generMCSIMP(self,obj) :
+       """
+       Convertit un objet MCSIMP en texte python
+       Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
+       """
+       s=PythonGenerator.generMCSIMP(self,obj)
+       if not( type(obj.valeur) in (list, tuple)) and (obj.get_min_max()[1] != 1):
+          valeur=(obj.valeur,)
+       else :
+          valeur=obj.valeur
+       if self.traiteMCSIMP == 1 : 
+          self.dictMCVal[obj.nom]=valeur
+       else :
+          self.dictTempo[obj.nom]=valeur
+       return s
+
+   def generETAPE(self,obj):
+       #print "generETAPE" , obj.nom
+       if obj.nom == "VARIABLE" :
+          self.traiteMCSIMP=0
+          self.dictTempo={}
+       s=PythonGenerator.generETAPE(self,obj)
+       if obj.nom == "VARIABLE" :
+          self.dictTempo["numOrdre"]=self.numOrdre
+          self.numOrdre = self.numOrdre +1
+          if obj.sd == None :
+             self.dictVariables["SansNom"]=self.dictTempo
+          else :
+             self.dictVariables[obj.sd.nom]=self.dictTempo
+          self.dictTempo={}
+       self.traiteMCSIMP=1
+       return s
+
+   def generMCFACT(self,obj):
+       # Il n est pas possible d utiliser obj.valeur qui n est pas 
+       # a jour pour les nouvelles variables ou les modifications 
+       if obj.nom in ( "Files", ) :
+          self.traiteMCSIMP=0
+         self.dictTempo={}
+       s=PythonGenerator.generMCFACT(self,obj)
+       self.listeFichiers.append(self.dictTempo)
+       self.traiteMCSIMP=1
+       return s
+
+   def genereXML(self):
+       print "IDM: genereXML dans generator_openturns_wrapper.py"
+       #print "appli.CONFIGURATION=",self.appli.CONFIGURATION.__dict__
+       if self.listeFichiers != [] :
+          self.dictMCVal["Files"]=self.listeFichiers
+       print "dictMCVal", self.dictMCVal, "dictVariables", self.dictVariables
+       MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, [], {} ,self.dictVariables)
+       MonGenerateur=MonBaseGenerateur.getXMLGenerateur()
+       try :
+       #if 1== 1 :
+          self.wrapperXML=MonGenerateur.CreeXML()
+       except :
+       #else :
+         self.wrapperXML=None
+
+   def writeDefault(self, filename):
+      fileXML = filename[:filename.rfind(".")] + '.xml'
+      self.wrapperXML.writeFile( str(fileXML) )