from generator_python import PythonGenerator
-#____________________________________________________________________________________
-# PYGMEEDict contient une equivalence entre le catalogue Map et les lignes generees
-# comme entete (commentaire ?) dans le fichier d'input de pygmee
-#
-
-CONFIGliste=('NAME_SCHEME', 'PATH_ASTER', 'PATH_BENHUR', 'PATH_MODULE', 'PATH_PYGMEE', 'PATH_STUDY', 'repIni')
-PYGMEEDict={
- "_PYGMEE_FUSEAU1_b_forme_FICHIER" : "#fuseau 1 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant ",
- "FUSEAU2" : "#fuseau 2 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant",
- "_PYGMEE_TAILLE" : "# taille du VER en microns ",
- "_PYGMEE_DISTANCE" : "# distance de repulsion :",
- }
-
-#_______________________________________________________________________________________________________
-# listeOrdonneeMCPygmee contient une liste (donc ordonnee) des mots clefs pour
-# imposer l'ordre des lignes generees
-listeOrdonneeMCPygmee =('_PYGMEE_FUSEAU1_b_forme_FICHIER', 'FUSEAU2', '_PYGMEE_TAILLE','_PYGMEE_DISTANCE')
-
-
-BENHURDict={
- "_BENHUR_FINESSE" : "discretisation des arretes du VER ",
- }
-
-
-ASTERDict={
- "_ASTER_LANCEMENT" : "execution de Code_Aster",
- "_ASTER_CONDUCTIVITE_I" : "conductivite des inclusions",
- "_ASTER_CONDUCTIVITE_M" : "conductivite de la matrice",
- }
-
-GMSHDict={
- "_GMSH_LANCEMENT" : "execution de GMSH",
- }
def entryPoint():
"""
"""
# Les extensions de fichier permis?
- extensions=('.comm',)
+ extensions=('.map',)
def gener(self,obj,format='brut',config=None):
+ print 'generation dans generator_map'
self.config=config
self.dictMCVal={}
self.listeTemp=[]
self.generePythonMap()
return self.text
- def generRUN(self,obj,format='brut',config=None):
+ def generRUN(self,obj,format='brut',config=None,):
+ print 'generRUN dans generator_map'
self.config=config
self.dictMCVal={}
self.listeTemp=[]
self.text=PythonGenerator.gener(self,obj,format)
- #self.generePythonMap()
dicoRun={}
for code in self.dictMCVal.keys():
- listeTexte=apply(MapGenerator.__dict__[code],(self,))
- dicoRun[code]=listeTexte
+ if code in self.__class__.__dict__.keys():
+ listeTexte=apply(self.__class__.__dict__[code],(self,))
+ dicoRun[code]=listeTexte
+ else :
+ dicoRun[code]=""
return dicoRun
'''
for code in self.dictMCVal.keys():
- self.texte=apply(MapGenerator.__dict__[code],(self,))
+ if code in self.__class__.__dict__.keys():
+ self.texte=apply(self.__class__.__dict__[code],(self,))
def generPROC_ETAPE(self,obj):
#print "PN: generPROC_ETAPE dans generatorMap"
self.DictTemp[clef]=obj.valeur
return s
- def PYGMEE(self) :
- print "Generation de PYGMEE"
- dicoPygmee=self.dictMCVal["PYGMEE"]
-
- monFichier=self.config.PATH_PYGMEE+"/pygmee_input.txt"
-
- #Lecture du fichier a trous
- f = file(self.config.repIni+"/pygmee_input.txt","r")
- chaine = f.read()
- f.close()
- chaine2=self.remplaceCONFIG(chaine)
- chaine=self.remplaceDICO(chaine2,dicoPygmee)
-\r
- if os.path.isfile(monFichier) :\r
- #print "je detruis pygmee_input.txt"\r
- commande="rm -rf " + monFichier\r
- os.system (commande)\r
- f=open(monFichier,'wb')\r
- f.write(chaine)\r
- f.close()\r
- if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui':\r
- commande="cd "+self.config.PATH_PYGMEE+";"\r
- commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py"\r
- #print commande\r
- os.system(commande)\r
- else:\r
- return ""
- def BENHUR(self) :
- print "Generation de BENHUR"
- dicoBenhur=self.dictMCVal["BENHUR"]
- if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']:
- dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
- else :
- dicoBenhur["_PYGMEE_TAILLE"]=0
- print "Attention la variable Taille_VER non definie"
-
- finesse=str(dicoBenhur["_BENHUR_FINESSE"])
- nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr"\r
- nom_BHR_Files=self.config.PATH_BENHUR+"/BHR_files.txt"
-
- #Lecture du fichier a trous
- f = file(self.config.repIni+"/benhur_pygmee.txt","r")
- chaine = f.read()
- f.close()
- chaine2=self.remplaceCONFIG(chaine)
- print "chaine2 =", chaine2
- chaine=self.remplaceDICO(chaine2,dicoBenhur)
- print "chaine =", chaine
-
- f=open(nom_fichier_BHR,'wb')
- f.write(chaine)
- f.close()
-
- f=open(nom_BHR_Files,'wb')
- f.write(nom_fichier_BHR)
- f.write("\n\n\n")
- f.close()
-
- if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and dicoBenhur['_BENHUR_LANCEMENT'] == 'oui':
- commande="cd "+self.config.PATH_BENHUR+";"
- commande=commande + "./benhur"
- print commande
- os.system(commande)
- else:
- return ""
-
- def remplaceCONFIG(self,chaine) :
- for mot in CONFIGliste :
+ def remplaceCONFIG(self,chaine,liste) :
+ for mot in liste :
rplact="%_"+mot+"%"
result=chaine.replace(rplact,self.config.__dict__[mot])
chaine=result
for mot in dico.keys() :
rplact="%"+mot+"%"
result=chaine.replace(rplact,str(dico[mot]))
- print rplact
- print str(dico[mot])
chaine=result
return chaine
-
-
- def ASTER(self) :
- print "Generation de ASTER"
- dicoAster=self.dictMCVal["ASTER"]
- dicoPygmee=self.dictMCVal["PYGMEE"]
- nom_racine=self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME
- nom_fichier_ASTER=nom_racine+"_aster.comm"
-# nom_mat=nom_racine+"_aster.mat"
-# lambda_matrice=self.dictMCVal["ASTER"]['_ASTER_CONDUCTIVITE_M']
-# lambda_inclusions=self.dictMCVal["ASTER"]['_ASTER_CONDUCTIVITE_I']
-# contraste=lambda_inclusions/lambda_matrice
-# f=open(nom_mat,'wb')
-# for i in range(11):
-# fraction=(1.0*i/10)
-# lambda_local=1.0+fraction
-# f.write(str(lambda_local))
-# f.write("\n")
-# f.close()
-
- #Lecture du fichier a trous
- f = file(self.config.repIni+"/s_poly_st_1_aster_template.comm","r")
- chaine = f.read()
- f.close()
- chaine2=self.remplaceDICO(chaine,dicoPygmee)
- print "chaine2 =", chaine2
- chaine=self.remplaceDICO(chaine2,dicoAster)
- print "chaine =", chaine
-\r
- f=open(nom_fichier_ASTER,'wb')\r
- f.write(chaine)\r
- f.close()
-
- if ('_ASTER_LANCEMENT' in dicoAster.keys()) and dicoAster['_ASTER_LANCEMENT'] == 'oui':
- commande="cd "+self.config.PATH_MODULE+";"
- commande=commande + self.config.PATH_ASTER + "/as_run "+self.config.PATH_MODULE
- commande=commande + "/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.export"
- print commande
- os.system(commande)
- else:
- return ""
-
- def GMSH(self) :
- print "Generation de GMSH"
- dicoGmsh=self.dictMCVal["GMSH"]
- if ('_GMSH_LANCEMENT' in dicoGmsh.keys()) and dicoGmsh['_GMSH_LANCEMENT'] == 'oui':
- commande="cd "+self.config.PATH_MODULE+";"
- commande=commande + "gmsh "+self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.resu.msh"
- print commande
- os.system(commande)
- else:
- return ""
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module contient le plugin generateur de fichier au format
+ SEP pour EFICAS.
+
+"""
+import traceback
+import types,string,re,os
+
+from generator_map import MapGenerator
+
+#____________________________________________________________________________________
+# PYGMEEDict contient une equivalence entre le catalogue Map et les lignes generees
+# comme entete (commentaire ?) dans le fichier d'input de pygmee
+#
+
+CONFIGliste=('NAME_SCHEME', 'PATH_ASTER', 'PATH_BENHUR', 'PATH_MODULE', 'PATH_PYGMEE', 'PATH_STUDY', 'repIni')
+PYGMEEDict={
+ "_PYGMEE_FUSEAU1_b_forme_FICHIER" : "#fuseau 1 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant ",
+ "FUSEAU2" : "#fuseau 2 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant",
+ "_PYGMEE_TAILLE" : "# taille du VER en microns ",
+ "_PYGMEE_DISTANCE" : "# distance de repulsion :",
+ }
+
+#_______________________________________________________________________________________________________
+# listeOrdonneeMCPygmee contient une liste (donc ordonnee) des mots clefs pour
+# imposer l'ordre des lignes generees
+listeOrdonneeMCPygmee =('_PYGMEE_FUSEAU1_b_forme_FICHIER', 'FUSEAU2', '_PYGMEE_TAILLE','_PYGMEE_DISTANCE')
+
+
+BENHURDict={
+ "_BENHUR_FINESSE" : "discretisation des arretes du VER ",
+ }
+
+ASTERDict={
+ "_ASTER_LANCEMENT" : "execution de Code_Aster",
+ "_ASTER_CONDUCTIVITE_I" : "conductivite des inclusions",
+ "_ASTER_CONDUCTIVITE_M" : "conductivite de la matrice",
+ }
+
+GMSHDict={
+ "_GMSH_LANCEMENT" : "execution de GMSH",
+ }
+
+def entryPoint():
+ """
+ Retourne les informations necessaires pour le chargeur de plugins
+
+ Ces informations sont retournees dans un dictionnaire
+ """
+ return {
+ # Le nom du plugin
+ 'name' : 's_poly_st_1',
+ # La factory pour creer une instance du plugin
+ 'factory' : s_poly_st_1Generator,
+ }
+
+
+class s_poly_st_1Generator(MapGenerator):
+ """
+ Ce generateur parcourt un objet de type JDC et produit
+ un texte au format eficas et
+ un texte au format py
+
+ """
+
+
+ def PYGMEE(self) :
+ print "Generation de PYGMEE"
+ dicoPygmee=self.dictMCVal["PYGMEE"]
+ monFichier=self.config.PATH_PYGMEE+"/pygmee_input.txt"
+
+ #Lecture du fichier a trous
+ f = file(self.config.repIni+"/pygmee_input.txt","r")
+ chaine = f.read()
+ f.close()
+ chaine2=self.remplaceCONFIG(chaine,CONFIGliste)
+ chaine=self.remplaceDICO(chaine2,dicoPygmee)
+
+ if os.path.isfile(monFichier) :
+ #print "je detruis pygmee_input.txt"
+ commande="rm -rf " + monFichier
+ os.system (commande)
+ f=open(monFichier,'wb')
+ f.write(chaine)
+ f.close()
+ if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui':
+ commande="cd "+self.config.PATH_PYGMEE+";"
+ commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py"
+ #print commande
+ os.system(commande)
+ else:
+ return ""
+
+ def BENHUR(self) :
+ print "Generation de BENHUR"
+ dicoBenhur=self.dictMCVal["BENHUR"]
+ if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']:
+ dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
+ else :
+ dicoBenhur["_PYGMEE_TAILLE"]=0
+ print "Attention la variable Taille_VER non definie"
+
+ finesse=str(dicoBenhur["_BENHUR_FINESSE"])
+ nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr"\r
+ nom_BHR_Files=self.config.PATH_BENHUR+"/BHR_files.txt"
+
+ #Lecture du fichier a trous
+ f = file(self.config.repIni+"/benhur_pygmee.txt","r")
+ chaine = f.read()
+ f.close()
+ chaine2=self.remplaceCONFIG(chaine,CONFIGliste)
+ print "chaine2 =", chaine2
+ chaine=self.remplaceDICO(chaine2,dicoBenhur)
+ print "chaine =", chaine
+
+ f=open(nom_fichier_BHR,'wb')
+ f.write(chaine)
+ f.close()
+
+ f=open(nom_BHR_Files,'wb')
+ f.write(nom_fichier_BHR)
+ f.write("\n\n\n")
+ f.close()
+
+ if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and dicoBenhur['_BENHUR_LANCEMENT'] == 'oui':
+ commande="cd "+self.config.PATH_BENHUR+";"
+ commande=commande + "./benhur"
+ print commande
+ os.system(commande)
+ else:
+ return ""
+
+
+
+ def ASTER(self) :
+ print "Generation de ASTER"
+ dicoAster=self.dictMCVal["ASTER"]
+ dicoPygmee=self.dictMCVal["PYGMEE"]
+ nom_racine=self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME
+ nom_fichier_ASTER=nom_racine+"_aster.comm"
+
+ #Lecture du fichier a trous
+ f = file(self.config.repIni+"/s_poly_st_1_aster_template.comm","r")
+ chaine = f.read()
+ f.close()
+ chaine2=self.remplaceDICO(chaine,dicoPygmee)
+ chaine=self.remplaceDICO(chaine2,dicoAster)
+
+ f=open(nom_fichier_ASTER,'wb')
+ f.write(chaine)
+ f.close()
+
+ if ('_ASTER_LANCEMENT' in dicoAster.keys()) and dicoAster['_ASTER_LANCEMENT'] == 'oui':
+ commande="cd "+self.config.PATH_MODULE+";"
+ commande=commande + self.config.PATH_ASTER + "/as_run "+self.config.PATH_MODULE
+ commande=commande + "/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.export"
+ print commande
+ os.system(commande)
+ else:
+ return ""
+
+ def GMSH(self) :
+ dicoGmsh=self.dictMCVal["GMSH"]
+ if ('_GMSH_LANCEMENT' in dicoGmsh.keys()) and dicoGmsh['_GMSH_LANCEMENT'] == 'oui':
+ commande="cd "+self.config.PATH_MODULE+";"
+ commande=commande + "gmsh "+self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.resu.msh"
+ print commande
+ os.system(commande)
+ else:
+ return ""