1 #@ AJOUT OpenturnsSolver Macro
2 # -*- coding: iso-8859-1 -*-
6 Ce module contient la partie commune
7 aux generateurs XML et Etude d Openturns
16 pathDef=path+"DefautOpenturns"
18 sys.path.append(pathDef)
21 #=============================================
23 #=============================================
28 Classe generale du generateur
29 DictMCVal : dictionnaire des mots-cles
30 ListeVariables : chaque variable est decrite par un dictionnaire ; cette liste les regroupe
31 DictLois : dictionnaires des lois
33 def __init__ (self, appli, DictMCVal = {}, ListeVariables = [], DictLois = {}, DictVariables = {} ) :
34 #---------------------------------------------------------#
35 self.ListeVariables = ListeVariables
36 self.ListeVariablesIn = []
37 self.ListeVariablesOut = []
38 self.DictLois = DictLois
39 self.DictVariables = DictVariables
40 self.DictMCVal = DictMCVal
47 # On charge eventuellement le Solver par defaut
48 # et les valeurs par defaut du Solver (dans l init)
52 Solver = self.DictMCVal["PhysicalSolver"]
53 import_name = "Defaut"+Solver
54 self.module = __import__( import_name, globals(), locals() )
55 monDefaut = self.module.Defaut( self )
61 def getSTDGenerateur(self) :
62 #--------------------------#
64 gener = self.module.__dict__["MonSTDGenerateur"]
65 monSTDGenerateur=gener( self.DictMCVal, self.ListeVariablesIn, self.ListeVariablesOut, self.DictLois )
67 from OpenturnsSTD import STDGenerateur
68 monSTDGenerateur = STDGenerateur( self.appli, self.DictMCVal, self.ListeVariablesIn, self.ListeVariablesOut, self.DictLois )
69 return monSTDGenerateur
71 def getXMLGenerateur(self) :
72 #--------------------------#
74 gener = self.module.__dict__["MonXMLGenerateur"]
75 monXMLGenerateur=gener( self.DictMCVal, self.ListeVariables, self.DictLois )
77 from OpenturnsXML import XMLGenerateur
78 monXMLGenerateur = XMLGenerateur( self.appli, self.DictMCVal, self.DictVariables )
79 return monXMLGenerateur
81 def creeInfoVar (self) :
82 #----------------------#
84 On repere les variables in/out et on les numerote.
88 for DictVariable in self.ListeVariables :
89 if not DictVariable.has_key("Type") : DictVariable["Type"] = "in"
90 self.DictTypeVar[num] = DictVariable["Type"]
91 if DictVariable["Type"] == "in" :
92 self.nbVarIn = self.nbVarIn + 1
93 self.ListeVariablesIn.append( DictVariable )
94 print "OpenturnsBase.py: new input variable = ", DictVariable
96 self.nbVarOut = self.nbVarOut + 1
97 self.ListeVariablesOut.append( DictVariable )
98 print "OpenturnsBase.py: new output variable = ", DictVariable
99 liste.append( DictVariable )
101 self.ListeVariables = liste
104 def ajouteDictMCVal(self, dicoPlus) :
105 #-----------------------------------#
106 # Appele par le classe Defaut du python specifique au code (exple DefautASTER.py)
107 # enrichit self.DictMCVal avec les valeurs donnees dans dicoPlus
108 # si elles ne sont pas deja dans le dictionnaire
110 for clef in dicoPlus.keys():
111 if not self.DictMCVal.has_key(clef) :
112 self.DictMCVal[clef] = dicoPlus[clef]
114 def ajouteInfoVariables (self, dicoVariablesIn, dicoVariablesOut) :
115 #-----------------------------------------------------------------#
116 # Appele par le classe Defaut du python specifique au code (exple DefautASTER.py)
117 # met a jour les dictionnaires qui decrivent les variables (regexp par exemple)
120 for dictVariable in self.ListeVariables:
121 if self.DictTypeVar[num] == "in" :
122 dico = dicoVariablesIn
124 dico = dicoVariablesOut
125 for nouvelleVariable in dico.keys() :
126 if not dictVariable.has_key(nouvelleVariable):
127 dictVariable[nouvelleVariable] = dico[nouvelleVariable]
128 liste.append( dictVariable )