]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
affichage des MC probabilistes en fonction du scenario et ajout de la fenetre pour...
authorPASCALE NOYRET <pascale.noyret@edf.fr>
Fri, 7 Oct 2022 14:33:01 +0000 (16:33 +0200)
committerPASCALE NOYRET <pascale.noyret@edf.fr>
Fri, 7 Oct 2022 14:33:01 +0000 (16:33 +0200)
Ihm/I_MCSIMP.py
Ihm/I_PROC_ETAPE.py
InterfaceQT4/browser.py
InterfaceQT4/editor.py
InterfaceQT4/editorSsIhm.py
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/qtEficas.py
InterfaceQT4/readercata.py
ReacteurNumerique/cata_RN_UQ.py

index e8128092d9d6b51184735d85bfc18f31d816c71b..de3e0fa6713bd63049f73b24af2701a3acf7a88a 100644 (file)
@@ -892,9 +892,15 @@ class MCSIMP(I_OBJECT.OBJECT):
 
     def UQPossible(self):
     # Plus facile de mettre cette methode dans le SIMP, car on connait son nom
+    # reflechir au TUI
         if not hasattr(self.cata,'dictUQ') : return False
-        if self.nom in self.cata.dictUQ.keys() : return True
-        return False
+        if not (self.nom in self.cata.dictUQ.keys()) : return False
+        if not hasattr(self.cata,'dictUQConditions') : return True
+        if not (self.nom in self.cata.dictUQConditions.keys()) : return True
+        maFonction = self.cata.dictUQConditions[self.nom][0]
+        argsLoi    = self.cata.dictUQConditions[self.nom][1]
+        argsLoi['obj'] = self
+        return  maFonction(**argsLoi)
 
     def isUQActivate(self):
         # valide uniquement pour les MCSIMP
@@ -948,6 +954,7 @@ class MCSIMP(I_OBJECT.OBJECT):
 
 
     def delieVariableUQ(self):
+        print ('uuuuuuuuuuuuuuuu', self.nom)
         self.associeVariableUQ=False
         # Attention, on n a pas le MCLIST mais le MCLIST(0) dans la variableProbabiliste
         # si self est le seul alors on enleve la MCLIST du MCCOMPO
index e4354b0f56766791e88755fa363c6d5aa675e43e..a64b09381651f47ee1a3a2c92d60325bd210f489 100644 (file)
@@ -84,6 +84,7 @@ class PROC_ETAPE(I_ETAPE.ETAPE):
         for vp in mcVP :
             vp.variableDeterministe.variableProbabilite=None
             vp.variableDeterministe.associeVariableUQ=False
+            vp.variableDeterministe.definition.siValide=None
 
 #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau
     def buildSd(self):
index fcf62bbac13ff168ca9d2ce8a07f75d62e5cce43..a9e833684a0fa61b46a4ff323728bd8c3ab8dbdf 100644 (file)
@@ -98,7 +98,7 @@ class JDCTree( QTreeWidget,GereRegles ):
         @param coord the position of the mouse pointer (QPoint)
         Attention : existeMenu permet de savoir si un menu est associe a cet item
         """
-        print ("handleContextMenu")
+        #print ("handleContextMenu")
         if item == None : return
         self.itemCourant = item
         if item.existeMenu == 0 : return
@@ -217,7 +217,6 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #if item.nom == 'ExpressionIncertitude':
         #   print ("creation d'un noeud : ", item, " ",item.nom,"", treeParent, self)
 
-
         self.item        = item
         self.vraiParent  = treeParent
         self.treeParent  = treeParent
@@ -312,6 +311,18 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         """ Construit la liste des enfants de self """
         """ Se charge de remettre les noeuds Expanded dans le meme etat """
         #print ("*********** buildChildren ",self,self.item, self.item.nom)
+        #if self.item.nom == 'Scenario_data' : print ("*********** buildChildren ",self.item.nom)
+        #if self.item.nom == 'test.comm' : 
+        #   print ("1111 *********** buildChildren ",self.item.nom,)
+        #   for c in self.children:
+        #      if (c.item.nom == 'Scenario_data') :
+        #       print (c)
+        #       print (c.item)
+        #       print (c.item.nom)
+        
+        #if self.item.nom == 'Scenario_data' : 
+        #   import traceback
+        #   traceback.print_stack()
         #print (poum)
 
         self.listeItemExpanded=[]
@@ -339,8 +350,17 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             if item in self.listeItemPlie     : itemExpand=False; ancien=True
             nouvelItem=item.itemNode(self,item,itemExpand,ancien)
             self.children.append(nouvelItem)
+            
 
-        #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children)
+        #if self.item.nom == 'test.comm' : 
+        #   print ("fin *********** buildChildren ",self.item.nom,)
+        #   for c in self.children:
+        #      if (c.item.nom == 'Scenario_data') :
+        #       print (c)
+        #       print (c.item)
+        #       print (c.item.nom)
+        #if self.item.nom == 'Scenario_data' : print ("*********** buildChildren ",sublist)
+        #if self.item.nom == 'Scenario_data' : print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children)
 
 
     def chercheNoeudCorrespondant(self,objSimp):
@@ -411,18 +431,21 @@ class JDCNode(QTreeWidgetItem,GereRegles):
             self.editor.widgetCentraleLayout.removeItem(widget)
 
         # ceinture et bretelle
-        #print 'old fenetre = ',self.editor.fenetreCentraleAffichee
+        #print ('old fenetre = ',self.editor.fenetreCentraleAffichee)
+        #try :
+           #print ('old fenetre nom = ',self.editor.fenetreCentraleAffichee.item.nom)
+        #except : pass
         if self.editor.fenetreCentraleAffichee != None :
             try :
                 self.editor.widgetCentraleLayout.removeWidget(self.editor.fenetreCentraleAffichee)
                 self.editor.fenetreCentraleAffichee.setParent(None)
                 self.editor.fenetreCentraleAffichee.close()
                 self.editor.fenetreCentraleAffichee.deleteLater()
+                #print ('en sortie du try sur la vieille fenetre')
             except :
                 pass
 
         self.editor.widgetCentraleLayout.addWidget(self.fenetre)
-        #print ("j ajoute ", self.fenetre, self.fenetre.node.item.nom)
         self.editor.fenetreCentraleAffichee=self.fenetre
         self.tree.node_selected= self
 
@@ -720,22 +743,21 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         #print ("onAdd pour ", self.item.nom, object)
         if self.JESUISOFF == 1 : return
         self.editor.initModif()
-        self.updateNodes()
+        self.buildChildren()
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
 
     def onSupp(self,object):
     #-----------------------
-        #print ("onSup pour ", self.item.nom, object)
-        #import traceback
-        #traceback.print_stack()
+        import traceback
+        #if self.item.nom == 'Scenario_data' : traceback.print_stack()
         if self.JESUISOFF==1 : return
+        #print ("onSup  2 pour ", self.item.nom, self.item.node)
         self.editor.initModif()
-        self.updateNodes()
+        self.buildChildren()
         if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
 
     def onRedessine(self):
     #---------------------
-        #print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!je passe dans onRedessine pour', self.item.nom)
         self.affichePanneau()
 
     def updateNodeValid(self):
@@ -810,6 +832,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
     def updateNodes(self):
     #--------------------------------
+        print (' appeler buildChildren dircetement serait mieux')
         #print 'NODE updateNodes', self.item.getLabelText()
         self.buildChildren()
 
index db87df376b4b55e8aaf57b103ab70e24bafa07bb..354ddc61e3596565341a1552bfc5557ba2b65bd3 100755 (executable)
@@ -25,7 +25,7 @@ try :
 except : pass
 
 import types,sys,os, re
-import  subprocess
+import subprocess
 import traceback
 
 
@@ -157,7 +157,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 # ---------------------------------------------
 #   _newJDC
 #   _newJDCInclude
-#   __generateTempFilename
+#   generateTempFilename
 #   getSource
 #   generDico
 #   viewJdcSource
@@ -206,38 +206,43 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         noeudAvantCommentaire.addComment(True)
 
 
-    #---------------------------------------------------------------#
-    def _viewTextExecute(self, txt, prefix, suffix, fichierExe=None):
-    #---------------------------------------------------------------#
+    #----------------------------------------------------------------------------#
+    def _viewTextExecute(self, txt, prefix, suffix, fichierExe=None, shell='sh'):
+    #---------------------------------------------------------------------------#
         self.w = ViewText( self.QWParent )
         self.w.setWindowTitle( "execution" )
         self.monExe=QProcess(self.w)
         pid=self.monExe.pid()
         if not fichierExe :
-            fichierExe = self.__generateTempFilename(prefix, suffix = ".sh")
-            f=open(fichierTemp,'w')
+            fichierExe = self.generateTempFilename(prefix, suffix = ".sh")
+            f=open(fichierExe,'w')
             f.write(txt)
             f.close()
         self.monExe.readyReadStandardOutput.connect( self.readFromStdOut)
         self.monExe.readyReadStandardError.connect( self.readFromStdErr)
-        exe='sh ' + fichierExe
+        exe=shell + ' ' + fichierExe
         self.monExe.start(exe)
         self.monExe.closeWriteChannel()
         self.w.exec_()
-        try:
+        if self.monExe!=None:
+            self.monExe.readyReadStandardOutput.disconnect()
+            self.monExe.readyReadStandardError.disconnect()
+        if txt:
             commande="rm  "+ fichierExe
             os.system(commande)
-        except :
-            pass
         return 1
 
     def readFromStdErr(self):
         a=self.monExe.readAllStandardError()
-        self.w.view.append(str(a.data()))
+        chaine = str(a.data(), encoding="utf-8").rstrip()
+        self.w.view.append(chaine)
+        #self.w.view.append(str(a.data()))
 
     def readFromStdOut(self) :
         a=self.monExe.readAllStandardOutput()
-        self.w.view.append(str(a.data()))
+        chaine = str(a.data(), encoding="utf-8").rstrip()
+        self.w.view.append(chaine)
+       # self.w.view.append(str(a.data()))
 
 
     #-----------------------#
@@ -580,7 +585,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant"))
             return
         if self.modified or self.fichier==None  :
-            self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
+            self.fichierMapInput = self.generateTempFilename(prefix = "map_run", suffix = ".map")
             texte=self.getTextJDC("MAP")
             self.writeFile( self.fichierMapInput, txt = texte)
         else :
@@ -617,7 +622,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             return
         if self.modified or self.fichier==None  :
         #if 1:
-            self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
+            self.fichierZcracksInput = self.generateTempFilename(prefix = "zcracks_run", suffix = ".z7p")
             texte=self.getTextJDC("ZCRACKS",pourRun=1)
             self.writeFile( self.fichierZcracksInput, txt = texte)
         else :
@@ -645,7 +650,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         repMed=os.path.dirname(self.fichier)
         repExeCarmel=self.generator.get_repExeCarmel()
         textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique)
-        nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh")
+        nomFichier = self.generateTempFilename("carmel_run", suffix = ".sh")
         f=open(nomFichier,'w')
         f.write(textePython)
         f.close()
@@ -744,7 +749,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
         self.monNomFichierInput=fn
 
         if not hasattr(self, 'fichierMapInput') or not self.fichierMapInput or not os.path.exists(self.fichierMapInput):
-            self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map")
+            self.fichierMapInput = self.generateTempFilename(prefix = "map_run", suffix = ".map")
             texte=self.getTextJDC("MAP")
             self.writeFile( self.fichierMapInput, txt = texte)
 
@@ -919,25 +924,26 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             if self.appliEficas.salome : self.appliEficas.close()
             else : sys.exit(1)
 
-        if not JDCEditorSsIhm.saveUQFile (self,fn): 
-            msgBox = QMessageBox(None)
-            titre = 'Probleme de sauvegarde fichier UQ'
-            texte  = 'Impossible de sauvegarder {}'.format(fn)
-            QMessageBox.information( self, titre,texte)
+        ret,comm = JDCEditorSsIhm.saveUQFile (self,fn) 
+        if not ret :
+            if comm : 
+               msgBox = QMessageBox(None)
+               titre = 'Probleme de sauvegarde fichier UQ'
+               texte = 'Impossible de sauvegarder {}'.format(fn)
+               QMessageBox.information( self, titre,texte)
+            return (0,self.fichier)
         return (1, self.fichier)
 
     #-----------------------------------------------#
     def exeUQ(self, fichier = None, path =None):
     #------------------------------------------------#
-        if self.modified or not self.fichier :
-           sauvegarde, fichier= self.saveUQFile()
-           if not sauvegarde : return 0
-        print ('je suis la')
-        print ('je suis la')
-        print ('je suis la')
-        directoryExe='/tmp'
-        self._viewTextExecute(None,None,None, fichierExe='/home/A96028/QT5Dev/eficasRN/ReacteurNumerique/test.sh')
-        return (1, directoryExe)
+        #if self.modified or not self.fichier :
+        sauvegarde, fichier= self.saveUQFile()
+        if not sauvegarde : return 0
+        #self._viewTextExecute(None,None,None, fichierExe=self.generator.fichierUQExe, shell='python3')
+        #self._viewTextExecute('ls -l /tmp','essaiLs','.sh',)
+        self._viewTextExecute(None,None,None, fichierExe='/home/A96028/QT5Dev/eficasRN/ReacteurNumerique/a.py',shell='python3',)
+        return True
 
     #----------------------------------------------#
     def sauveLigneFile(self):
index b7e1f3ea484dc30120020bbeff35e7652489b926..0d4b0b733e22bc5b6692f0854dbb45b904c0137f 100755 (executable)
@@ -336,7 +336,7 @@ class JDCEditorSsIhm :
             return None
 
     #----------------------------------------------#
-    def __generateTempFilename(self, prefix, suffix):
+    def generateTempFilename(self, prefix, suffix):
     #----------------------------------------------#
         import tempfile
         (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix)
@@ -572,7 +572,7 @@ class JDCEditorSsIhm :
            return 0, None
         self.fichier=fichier
         self.generator=generator.plugins['UQ']()
-        ret = self.generator.creeNomsFichiers(fichier)
+        ret,comm = self.generator.creeNomsFichiers(fichier)
         if not ret : 
            self.informe('Sauvegarde UQ', self.generator.commentaire)
            return ret, None
index 3ad181e4e2930e68666dba34ab4bb3952533c590..c4366961df2e9f229819b8ed24fe75542bed4429 100644 (file)
@@ -238,7 +238,10 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
         self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition()
         self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition()
         self.inhibeExpand=True
-        self.node.affichePanneau()
+        # Attention : lorsqu'on reconstruit l arbre au milieu par une fonction siValide (exemple dans UQ)
+        # alors self.node.item.node est different de self.node
+        # il faut regarder si la Widget utililse self.node a d autres endroits
+        self.node.item.node.affichePanneau()
         #QTimer.singleShot(1, self.recentre)
         if nodeAVoir != None and nodeAVoir!=0:
             self.f=nodeAVoir.fenetre
index f1565d20937aa1f36a16792a1a4a4e663307cf92..a249c91bb93c86a3d2f616bbd34f5a227f48903d 100755 (executable)
@@ -253,15 +253,15 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
         AppliSsIhm.ajoutUQ(self)
         self.menuUQ = self.menubar.addMenu(tr("Incertitude"))
         self.actionSaveUQ = QAction(self)
-        self.actionSaveUQ.setText(tr("Sauvegarde des fichiers pour l etude incertaine"))
+        self.actionSaveUQ.setText(tr("Sauvegarde des fichiers pour ltude incertaine"))
         self.menuUQ.addAction(self.actionSaveUQ)
         self.actionSaveUQ.triggered.connect(self.handleSortieUQ)
         self.actionExeUQ = QAction(self)
-        #self.actionExeUQ.setText(tr("Lancement de l etude"))
-        #self.menuUQ.addAction(self.actionExeUQ)
-        #self.actionExeUQ.triggered.connect(self.handleExeUQ)
-        #self.actionEnregistrer.setDisabled(True)
-        #self.actionEnregistrer_sous.setDisabled(True)
+        self.actionExeUQ.setText(tr("Sauvegarde et Lancement de l'étude"))
+        self.menuUQ.addAction(self.actionExeUQ)
+        self.actionExeUQ.triggered.connect(self.handleExeUQ)
+        self.actionEnregistrer.setDisabled(True)
+        self.actionEnregistrer_sous.setDisabled(True)
 
     def ajoutN1(self):
         return
index 3bad4257da0aa3dab4f6f99ca98e93866731c260..f22975d60ed2c3d490e0fb1bdaa4481ac8123363 100644 (file)
@@ -348,6 +348,7 @@ class ReaderCata (ReaderCataCommun):
 
         # incertitude --> change le convert 
         if hasattr(self.cata, 'avecIncertitude') : self.appliEficas.ajoutUQ()
+        if hasattr(self.cata, 'modifieCatalogueDeterministe') : self.cata.modifieCatalogueDeterministe(self.cata) 
 
     def importCata(self,cata):
         """
index 473a5d5cbdcc7fd288f39e8fdb19ca829479df14..69325830596c5d014ead3f0267ac608c72743463 100644 (file)
@@ -1,46 +1,76 @@
 import os, sys
 repInitial = os.path.dirname(os.path.abspath(__file__))
-repEficas = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-if os.path.dirname(repInitial) not in sys.path :
-   sys.path.insert(0,repInitial)
-if os.path.dirname(repEficas) not in sys.path :
-   sys.path.insert(0,repEficas)
+repEficas  = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+if os.path.dirname(repInitial) not in sys.path : sys.path.insert(0,repInitial)
+if os.path.dirname(repEficas) not in sys.path  : sys.path.insert(0,repEficas)
 import types
 
-#from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA,  Matrice, Tuple, AU_MOINS_UN, A_VALIDATOR, PROC
 from Noyau.N_VALIDATOR import Valid
-
-# #autonome=1
-# autonome=0
-# if autonome : 
-#     from Accas import *
-#     #from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA,  Matrice, Tuple, AU_MOINS_UN, A_VALIDATOR, PROC
-#     JdC = JDC_CATA(code="UQ");
-#     ExpressionIncertitude = creeOperExpressionIncertitude(dictUQ, dicoDesSortiesPossibles);
-# else:
 from cata_RN import *
 
 # sert a activer les options d incertitude dans eficas
 # et a changer le convert en convertUQ
+
+def supprimeExpressionIncertitude(obj):
+    if not (hasattr(obj, 'oldValue')) : 
+       obj.oldValue=obj.valeur
+       return
+    if obj.oldValue==obj.valeur : return
+    obj.oldValue=obj.valeur
+    jdc=obj.getJdcRoot()
+    etapesUQ=obj.jdc.getEtapesByName('ExpressionIncertitude')
+    for e in etapesUQ : # a priori une seule
+        jdc.suppEntite(e)
+
+def maFonctionDeModif(cata) :
+    scenario_type=cata.Scenario_data.entites['scenario_type']
+    scenario_type.changeSiValide(supprimeExpressionIncertitude)
+
 avecIncertitude=True
-#
-dictUQ = {'initial_power' : ({'Uniform' : {}}, {'TruncatedNormal' : {}}, {'UserDefined' :{}}),
-          'initial_core_inlet_temperature'   : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
-          'initial_boron_concentration'   : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
-          'initial_inlet_pressure'   : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
-          'initial_outlet_pressure'   : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
-          'assembly_width'   : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
+modifieCatalogueDeterministe=maFonctionDeModif
+
+def scenarioEgal(valeursPossibles, obj ):
+    listeEtapeScenario=obj.jdc.getEtapesByName('Scenario_data')
+    if len(listeEtapeScenario) !=1 : return False
+    else : etapeScenario=listeEtapeScenario[0]
+    scenario_type=etapeScenario.getChildOrChildInBloc('scenario_type')
+    if scenario_type.valeur == None : return False
+    if scenario_type.valeur in valeursPossibles : return True
+    return False
+
+dictUQConditions = {'initial_power'  : (scenarioEgal, {'valeursPossibles':('HLO', 'RIA')}),
+                    'initial_core_inlet_temperature' : (scenarioEgal, {'valeursPossibles':('RIA')}),
+                    'initial_boron_concentration'    : (scenarioEgal, {'valeursPossibles':('RIA')}),
+                    'initial_inlet_pressure'         : (scenarioEgal, {'valeursPossibles':('RIA')}),
+                    'initial_outlet_pressure'        : (scenarioEgal, {'valeursPossibles':('RIA')}),
+                    'assembly_width'                 : (scenarioEgal, {'valeursPossibles':('RIA')}),
+                   }
+
+#  Creation des lois :
+#  clef : variable deterministe 
+#  valeur : dico des lois possibles ou le dictionnaire contient les parametres de creation de la loi
+#  il faudra eventuellement revoir ce mecanisme si on decide d affiner par scenario ces parametres
+#  cela pourrait se faire soit avec des blocs lors de la creation des lois
+#  ou par activation de fonctions de changement dynamique des SIMP ( comme changeIntoSelonValeurs)
+dictUQ = {'initial_power'                  : ({'Uniform' : {}}, {'TruncatedNormal' : {}}, {'UserDefined' :{}}),
+          'initial_core_inlet_temperature' : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
+          'initial_boron_concentration'    : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
+          'initial_inlet_pressure'         : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
+          'initial_outlet_pressure'        : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
+          'assembly_width'                 : ({'Uniform' : {}}, {'TruncatedNormal' : {}}),
           # modifier la partie Accas pour garder une reference a l objet nomme
          }
 
-listeDesSortiesNeutro = ( "Boron concentration",   "Kinetic reactivity",   "Neutronic power",  )
-listeDesSortiesThermo = ("Average mass flux", "Boiling power fraction",  "Enthalpy",  "Fuel temperature", "Liquid power", "Mass flux", "Mass fraction", "Mass title", "Mixture density", "Mixture specific enthalpy", "Mixture temperature", "Outlet pressure", "Pollutant concentration", "Pressure ", "Rowlands fuel effective temp", "Thermal power", "Water density", "Water temperature", )
+listeDesSortiesNeutro = ("Boron concentration", "Kinetic reactivity", "Neutronic power",)
+listeDesSortiesThermo = ("Average mass flux", "Boiling power fraction",  "Enthalpy",  "Fuel temperature",\
+                         "Liquid power", "Mass flux", "Mass fraction", "Mass title", "Mixture density", \
+                         "Mixture specific enthalpy", "Mixture temperature", "Outlet pressure", "Pollutant concentration", \
+                         "Pressure ", "Rowlands fuel effective temp", "Thermal power", "Water density", "Water temperature", )
 
 scriptPosttraitement = os.path.join(repEficas,"generator","post_csv_rn.py")
-scriptDeLancement = os.path.join(repInitial,"ib_test.sh")
-dicoDesSortiesPossibles={'Neutronics':listeDesSortiesNeutro,'Thermalhydraulics':listeDesSortiesThermo}
-#dicoDesSortiesPossibles={'Thermalhydraulics':listeDesSortiesThermo}
-from cata_UQ import creeOperExpressionIncertitude
-ExpressionIncertitude=creeOperExpressionIncertitude(dictUQ, dicoDesSortiesPossibles, scriptPosttraitement, scriptDeLancement)
+scriptDeLancement    = os.path.join(repInitial,"ib_test.sh")
+dicoDesSortiesPossibles  = {'Neutronics':listeDesSortiesNeutro,'Thermalhydraulics':listeDesSortiesThermo}
 
+from cata_UQ import creeOperExpressionIncertitude
+ExpressionIncertitude = creeOperExpressionIncertitude(dictUQ, dicoDesSortiesPossibles, scriptPosttraitement, scriptDeLancement)