]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Mise au point génération script
authorEric Fayolle <eric.fayolle@edf.fr>
Tue, 21 Jun 2022 17:49:39 +0000 (19:49 +0200)
committerEric Fayolle <eric.fayolle@edf.fr>
Tue, 21 Jun 2022 17:49:39 +0000 (19:49 +0200)
generator/generator_UQ.py
generator/textePersalys.py

index 85be0289c7def4033ae0d14390fd4dc28b04ae1f..7764079e1ce9aa1dbd63e25c020fb62755c32d21 100644 (file)
@@ -144,11 +144,12 @@ class UQGenerator(PythonGenerator):
         self.nomsDesVariablesInput = []
         self.chaineDesVariablesInput=''
         for mc in self.lesVariablesInput :
-            self.nomsDesVariablesInput.append(mc.variableDeterministe.nom)
             if mc.variableDeterministe.etape.nature == 'OPERATEUR' :
-                self.chaineDesVariablesInput+=mc.variableDeterministe.etape.sd.nom +'__' + mc.variableDeterministe.nom
+                self.chaineDesVariablesInput+=mc.variableDeterministe.etape.sd.nom +'__' + mc.variableDeterministe.nom + ', '
+                self.nomsDesVariablesInput.append(mc.variableDeterministe.etape.sd.nom +'__' + mc.variableDeterministe.nom)
             else :
                 self.chaineDesVariablesInput+=mc.variableDeterministe.nom + ', '
+                self.nomsDesVariablesInput.append(mc.variableDeterministe.nom)
             self.mcIncertains.append(mc.variableDeterministe)
         sectionOutput = etapeIncertitude.getChildOrChildInBloc('Output')[0]
         self.chaineDesVariablesInput=self.chaineDesVariablesInput[0:-2]
@@ -203,12 +204,15 @@ class UQGenerator(PythonGenerator):
     def creeTexteInputVariables(self,indent):
         texte=''
         for v in self.lesVariablesInput :
-           nomVariableInput = v.variableDeterministe.nom
+           if v.variableDeterministe.etape.nature == 'OPERATEUR' :
+               nomVariableInput=v.variableDeterministe.etape.sd.nom +'__' + v.variableDeterministe.nom
+           else :
+               nomVariableInput=v.variableDeterministe.nom
            loiDistribution =  v.getChildOrChildInBloc('Distribution').valeur
            # on cherche le bloc qui contient ce qui est necessaire a la loi
            # on est confiant !!!! sur l adequation du catalogue et des attributs des lois persalys
            # reflechir a cela
-           texte="{}{} = persalys.Input('{}', ot.{}(".format(indent,nomVariableInput,nomVariableInput,loiDistribution)
+           texte+="{}{} = persalys.Input('{}', ot.{}(".format(indent,nomVariableInput,nomVariableInput,loiDistribution)
            chaineArgs=''
            leBlocDesArgs=None
            for mc in v.mcListe :
@@ -229,14 +233,14 @@ class UQGenerator(PythonGenerator):
         from  functools import reduce as reduce
 
         # chaineDesVariablesInput=reduce(lambda x,y:x+','+y,l)
-        def  getStrVarList(l):
-            return reduce(lambda x,y:x+', '+y, l)
+        def  getStrVarList(l,sep):
+            return reduce(lambda x,y:x+sep+y, l)
         def getStrInitClass(l):
-            return getStrVarList( map(lambda x:'self.{} = {};'.format(x,x),l) )
+            return getStrVarList( map(lambda x:'self.{} = {}'.format(x,x),l), '\n'+2*self.indent1 )
         def getStrReplaceVar(l):
-            return getStrVarList( map(lambda x:"'@{}@': repr(self.{})".format(x,x), l) )
+            return getStrVarList( map(lambda x:"'@{}@': repr(self.{})".format(x,x), l), ',' )
         def getStrSelfVar(l):
-            return getStrVarList( map(lambda x:'self.{}'.format(x),l) )
+            return getStrVarList( map(lambda x:'self.{}'.format(x),l), ',' )
         
         wrapperDir  = os.path.abspath(os.path.dirname(__file__))
         wrapperName = "eficas_wrapper"
@@ -247,6 +251,7 @@ class UQGenerator(PythonGenerator):
             wrapperDir=wrapperDir,
             wrapperName=wrapperName
         )
+        print('self.nomsDesVariablesInput :',self.nomsDesVariablesInput)
         self.txtScriptPersalys += etudeScript.format(
             chaineDesVariablesInput = self.chaineDesVariablesInput,
             chaineSelfDesVariablesInput = getStrSelfVar(self.nomsDesVariablesInput),
index 5f4f85b018b18b51da24b2dc84f001bef054836b..fe7f7c216f119ef10b736366ba592bf5251f259f 100644 (file)
@@ -100,9 +100,10 @@ class Study:
         pass
 
     def get_results(self):
+        import random
         print('--------------------------------------- 4 ---------------------------------------')
     #   return self.extract_probe(2,2), self.extract_balance(2, 2)
-        return 1.0
+        return 1.0 +random.random()
 
     def run_case(self):
         print('--------------------------------------- 5 ---------------------------------------')