]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
modification des chemins2. ib_test n a toujours pas le bon chemin
authorPASCALE NOYRET <pascale.noyret@edf.fr>
Mon, 29 Aug 2022 12:12:21 +0000 (14:12 +0200)
committerPASCALE NOYRET <pascale.noyret@edf.fr>
Mon, 29 Aug 2022 12:12:21 +0000 (14:12 +0200)
generator/generator_UQ.py

index 27499aae1660dc18d13af33bc03fadd9db2b9e8d..e709a3d68d3452bebafcc9ba90a20cfade646e3f 100644 (file)
@@ -71,8 +71,8 @@ class UQGenerator(PythonGenerator):
         self.indent1 = '    '
         self.nomsDesVariablesInput2 = [] 
        
-        print (jdc.code)
-        if jdc.nature !=  'JDC' : 
+        #print (jdc.code)
+        if jdc.nature !=  'JDC'  or not jdc.isValid()
            self.commentaire= 'il faut un JDC Valide'
            return 0
         self.jdc=jdc
@@ -87,6 +87,8 @@ class UQGenerator(PythonGenerator):
         return self.text 
 
     def creeNomsFichiers(self,fichier):
+        print ('creeNomsFichiers', fichier)
+        self.cheminFichierComm=os.path.dirname(fichier)
         if fichier.endswith('.comm'):
             self.fichierSansSuffixe=os.path.basename(fichier[:-5])
             if self.fichierSansSuffixe.endswith('_UQ'):
@@ -101,16 +103,20 @@ class UQGenerator(PythonGenerator):
     def writeUQ(self,fichier):
         # il manque le checksum
 
-        if not self.writeFile(self.fichierUQComm) : return (0, 'impossible de sauvegarder le .comm')
+        fichierUQComm   = os.path.join(self.cheminFichierComm,self.fichierUQComm)
+        fichierUQBalise = os.path.join(self.cheminFichierComm,self.fichierUQBalise)
+        fichierUQExe = os.path.join(self.cheminFichierComm,self.fichierUQExe)
+        if not self.writeFile(fichierUQComm) : return (0, 'impossible de sauvegarder le .comm')
         try :
-            with open(self.fichierUQBalise, "w") as fp:
+            with open(fichierUQBalise, "w") as fp:
                 fp.write(self.textUQ)
         except : return (0,'impossible de sauvegarder le _UQ.py')
-        #try :
-        if 1 :
-            with open(self.fichierUQExe, "w") as fp:
+        try :
+        #if 1 :
+            with open(fichierUQExe, "w") as fp:
                 fp.write(self.txtScriptPersalys)
-        #except : return (0,'impossible de sauvegarder le _UQ.py')
+        except : 
+            if self.txtScriptPersalys != '' : return (0,'impossible de sauvegarder le _UQ.py')
         return (1, None)
 
     def generPROC_ETAPE(self,obj):
@@ -129,9 +135,9 @@ class UQGenerator(PythonGenerator):
           # a refaire si on decide que les incertains sont sous des fact multiples
           # ce qui ne me parait pas possible mais ?
           if obj.etape.nature == 'OPERATEUR' :
-              return '@'+obj.etape.sd.nom +'__' + obj.nom+'@'
+              return '@ '+obj.etape.sd.nom +'__' + obj.nom+' @'
           else :  
-              return '@'+obj.nom+'@'
+              return '@ '+obj.nom+' @'
 
     def analyseIncertitude(self) :
 
@@ -159,7 +165,8 @@ class UQGenerator(PythonGenerator):
 
         sectionPropagation = etapeIncertitude.getChildOrChildInBloc('Propagation')[0]
         self.Methode = sectionPropagation.getChildOrChildInBloc('Methode').valeur
-        self.Result = sectionPropagation.getChildOrChildInBloc('Result')[0]
+        if not sectionPropagation.getChildOrChildInBloc('Result') : self.Result=None
+        else : self.Result = sectionPropagation.getChildOrChildInBloc('Result')[0]
         if (self.Methode == 'MonteCarlo'):
             self.critereArret = sectionPropagation.getChildOrChildInBloc('CritereArret')[0]
             # self.SimulationsNumber  = self.critereArret.getChildOrChildInBloc('SimulationsNumber')[0]
@@ -221,19 +228,21 @@ class UQGenerator(PythonGenerator):
 
         
         sectionExecution = etapeIncertitude.getChildOrChildInBloc('Execution')[0]
-        self.ExecutionMode = sectionExecution.getChildOrChildInBloc('ExecutionMode').valeur
-        self.NbOfProcs = sectionExecution.getChildOrChildInBloc('NbOfProcs').valeur
         self.NbDeBranches = sectionExecution.getChildOrChildInBloc('NbDeBranches').valeur
-        self.JobName = sectionExecution.getChildOrChildInBloc('JobName').valeur
-        self.ResourceName = sectionExecution.getChildOrChildInBloc('ResourceName').valeur
-        self.Login = sectionExecution.getChildOrChildInBloc('Login').valeur
-        self.WorkDirectory = sectionExecution.getChildOrChildInBloc('WorkDirectory').valeur
-        self.ResultDirectory = sectionExecution.getChildOrChildInBloc('ResultDirectory').valeur
-        MultiJobStudy=sectionExecution.getChildOrChildInBloc('MultiJobStudy')
-        if (MultiJobStudy != None):
-            self.MultiJobStudy = MultiJobStudy.valeur
-
-        self.creeScriptPersalys()
+        if sectionExecution.getChildOrChildInBloc('ExecutionMode') != None :
+            self.ExecutionMode = sectionExecution.getChildOrChildInBloc('ExecutionMode').valeur
+            self.NbOfProcs = sectionExecution.getChildOrChildInBloc('NbOfProcs').valeur
+            self.JobName = sectionExecution.getChildOrChildInBloc('JobName').valeur
+            self.ResourceName = sectionExecution.getChildOrChildInBloc('ResourceName').valeur
+            self.Login = sectionExecution.getChildOrChildInBloc('Login').valeur
+            self.WorkDirectory = sectionExecution.getChildOrChildInBloc('WorkDirectory').valeur
+            self.ResultDirectory = sectionExecution.getChildOrChildInBloc('ResultDirectory').valeur
+            MultiJobStudy=sectionExecution.getChildOrChildInBloc('MultiJobStudy')
+            if (MultiJobStudy != None):
+                self.MultiJobStudy = MultiJobStudy.valeur
+            self.creeScriptPersalys()
+          #else : 
+          # TODO : creer ici le script URANIE
         return (1, '')
         # listeDesVariables, nomDesVariables, dicoDesVariables)
 
@@ -335,20 +344,21 @@ class UQGenerator(PythonGenerator):
             return(0, "Impossible de gérer la méthode :",self.Methode)
         
         result=""
-        for mc in self.Result.mcListe:
+        if self.Result :
+            for mc in self.Result.mcListe:
             # print('mc : ',mc)
             # print('mc.nature : ',mc.nature)
             # print('mc.valeur : ',mc.valeur)
-            if   mc.nom == 'EmpiricalQuantile' and mc.valeur == 'yes' :
-                empiricalQuantile_Order = self.Result.getChildOrChildInBloc("EmpiricalQuantile_Order")
-                result+= self.indent1+optionalResult[mc.nom].format(
-                    **{empiricalQuantile_Order.nom : empiricalQuantile_Order.valeur}
-                )  + '\n'
-                result+= self.indent1+optionalPrintResult["EmpiricalQuantile_Order"] + '\n'
-                result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
-            elif  mc.nature == 'MCSIMP' and mc.valeur == 'yes' :
-                result+= self.indent1+optionalResult[mc.nom] + '\n'
-                result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
+                if mc.nom == 'EmpiricalQuantile' and mc.valeur == 'yes' :
+                    empiricalQuantile_Order = self.Result.getChildOrChildInBloc("EmpiricalQuantile_Order")
+                    result+= self.indent1+optionalResult[mc.nom].format(
+                        **{empiricalQuantile_Order.nom : empiricalQuantile_Order.valeur}
+                    )  + '\n'
+                    result+= self.indent1+optionalPrintResult["EmpiricalQuantile_Order"] + '\n'
+                    result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
+                elif  mc.nature == 'MCSIMP' and mc.valeur == 'yes' :
+                    result+= self.indent1+optionalResult[mc.nom] + '\n'
+                    result+= self.indent1+optionalPrintResult[mc.nom] + '\n'
   
 
         # print('result:',result)
@@ -365,11 +375,11 @@ class UQGenerator(PythonGenerator):
         inFiles =[]
         inFiles.append(os.path.join(generatorDir,'incertainty_tools.py'))
         pyFile = self.fichierUQExe
-        inFiles.append(os.path.join(os.getcwd(),pyFile))
+        inFiles.append(os.path.join(self.cheminFichierComm,pyFile))
         pyFile = self.fichierUQBalise
-        inFiles.append(os.path.join(os.getcwd(),pyFile))
+        inFiles.append(os.path.join(self.cheminFichierComm,pyFile))
         scriptFile = "ib_test.sh"
-        inFiles.append(os.path.join(os.getcwd(),scriptFile))
+        inFiles.append(os.path.join(self.cheminFichierComm,scriptFile))
         postFile = "post_csv.py"
         inFiles.append(os.path.join(os.getcwd(),postFile))
         txtYacsJobParameters=yacsJobParameters.format(