2 # -*- coding: utf-8 -*-
5 usage="""usage: %prog [options]
7 python traduitV7V8.py --infile=xxxx --outfile=yyyy
13 from load import getJDC
14 from mocles import parseKeywords
15 from removemocle import *
16 from renamemocle import *
17 from renamemocle import *
18 from inseremocle import *
19 from changeValeur import *
20 from movemocle import *
21 from dictErreurs import GenereErreurPourCommande
26 atraiter=( "DEFI_MAILLAGE","CALC_VECT_ELEM","DYNA_TRAN_EXPLI","DYNA_NON_LINE","STAT_NON_LINE","FACT_LDLT","FACT_GRAD","RESO_LDLT","RESO_GRAD","DYNA_TRAN_MODAL","NORM_MODE","MACRO_MODE_MECA","POST_RCCM","THER_NON_LINE","THER_LINEAIRE","THER_NON_LINE_MO","DEFI_CABLE_BP","GENE_VARI_ALEA","DEFI_MATERIAU","IMPR_MATRICE","CALC_G","CALC_MATR_ELEM","MACR_ADAP_MAIL","MACR_INFO_MAIL","REST_BASE_PHYS","COMB_SISM_MODAL","TEST_FICHIER","MACR_ELEM_DYNA","CREA_CHAMP","AFFE_CHAR_MECA","AFE_CHAR_MECA_F")
28 def traduc(infile,outfile,flog=None):
30 hdlr=log.initialise(flog)
31 jdc=getJDC(infile,atraiter)
34 #Parse les mocles des commandes
37 ####################### traitement erreurs ########################
38 GenereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE"))
40 ####################### traitement Sous-Structuration #######################
41 renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_SUPER_MAILLE","MACR_ELEM_STAT","MACR_ELEM")
42 renameMotCleInFact(jdc,"DYNA_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
43 renameMotCleInFact(jdc,"STAT_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
44 renameMotCleInFact(jdc,"CALC_VECT_ELEM","SOUS_STRUC","MAILLE","SUPER_MAILLE")
45 #########################################################################
47 ####################### traitement MACR_ELEM_DYNA #######################
48 removeMotCle(jdc,"MACR_ELEM_DYNA","OPTION")
49 #########################################################################
51 ####################### traitement Resolution lineaire ######################
52 renameMotCle(jdc,"RESO_LDLT","MATR_FACT","MATR")
53 renameMotCle(jdc,"RESO_GRAD","MATR_ASSE","MATR")
54 renameMotCle(jdc,"RESO_GRAD","MATR_FACT","MATR_FACT")
55 renameOper(jdc,"RESO_LDLT","RESOUDRE")
56 renameOper(jdc,"RESO_GRAD","RESOUDRE")
57 renameOper(jdc,"FACT_LDLT","FACTORISER")
58 renameOper(jdc,"FACT_GRAD","FACTORISER")
59 #########################################################################
61 ####################### traitement DYNA_TRAN_MODAL ######################
62 removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
63 #########################################################################
65 ############# traitement MASS_INER dans NORM_MODE/MACRO_MODE_MECA ##########
66 removeMotCle(jdc,"NORM_MODE","MASS_INER")
67 removeMotCleInFact(jdc,"MACRO_MODE_MECA","NORM_MODE","MASS_INER")
68 #########################################################################
70 ####################### traitement POST_RCCM ############################
71 removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NUME_PASSAGE",((("TYPE_RESU_MECA","TUYAUTERIE",jdc),"MCaPourValeur"),))
72 chercheOperInsereFacteurSiRegle(jdc,"POST_RCCM","SEISME", ((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
73 moveMotCleFromFactToFact(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME","SEISME")
74 # AjouteMotClefDansFacteurSiRegle(jdc,"POST_RCCM","SITUATION", "transferez_au_bloc_SEISME_CHAR_ETAT_NB_OCCUR,NUME_SITU,NUME_GROUP_et_eventuellement_NOM_SITU_et_NUME_RESU_THER",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
75 AjouteMotClefDansFacteurSiRegle(jdc,"POST_RCCM","SITUATION","supprimez_a_la_main_ce_bloc",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
76 # removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
77 removeMotCleInFactSiRegle(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
78 removeMotCleInFact(jdc,"POST_RCCM","CHAR_MECA","TYPE_CHAR",)
79 removeMotCleInFact(jdc,"POST_RCCM","RESU_MECA","TYPE_CHAR",)
80 #########################################################################
82 ####################### traitement THER_NON_LINE ############################
83 renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
84 renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
85 renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_INIT","NUME_INST_INIT")
86 renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_FIN","NUME_INST_FIN")
87 #########################################################################
89 ####################### traitement THER_LINEAIRE ############################
90 renameMotCleInFact(jdc,"THER_LINEAIRE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
91 renameMotCle(jdc,"THER_LINEAIRE","TEMP_INIT","ETAT_INIT",)
92 renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_INIT","NUME_INST_INIT")
93 renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_FIN","NUME_INST_FIN")
94 #########################################################################
96 ####################### traitement THER_NON_LINE ############################
97 renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
98 renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
99 #########################################################################
101 ####################### traitement DEFI_CABLE_BP ######################
102 removeMotCle(jdc,"DEFI_CABLE_BP","MAILLAGE")
103 #########################################################################
105 ####################### traitement GENE_VARI_ALEA ######################
106 removeMotCleSiRegle(jdc,"GENE_VARI_ALEA","COEF_VAR",((("TYPE","EXPONENTIELLE",jdc),"MCaPourValeur"),))
107 #########################################################################
109 ####################### traitement DEFI_MATERIAU ######################
110 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","BAZANT_FD")
111 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","PORO_JOINT")
112 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","APPUI_ELAS")
113 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_EPRI")
114 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_CYRA2")
116 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","MU","BARCELONE")
117 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PORO","BARCELONE")
118 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","LAMBDA","BARCELONE")
119 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","KAPPA","BARCELONE")
120 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","M","BARCELONE")
121 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PRES_CRIT","BARCELONE")
122 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","BARCELONE")
123 renameMotCleInFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","KCAM")
125 AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
126 AjouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","CAM_CLAY","PTRAC=XXX",((("CAM_CLAY","KCAM"),"existeMCsousMCF"),))
128 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","S_VP","S")
129 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","N_VP","N")
130 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","M_VP","UN_SUR_M", erreur=1)
131 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","K_VP","UN_SUR_K")
132 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP1","ALPHA_D")
133 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP2","BETA_D")
134 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","S_VP","S")
135 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","N_VP","N")
136 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","M_VP","UN_SUR_M", erreur=1)
137 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","K_VP","UN_SUR_K")
138 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP1","ALPHA_D")
139 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP2","BETA_D")
141 renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
142 #########################################################################
144 ####################### traitement IMPR_MATRICE ######################
145 removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ELEM","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
146 removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ASSE","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
147 #########################################################################
149 ####################### traitement MACR_ADAP/INFO_MAIL ######################
150 dadap_mail={"V8_11":"V9_5", "V8_N":"V9_N", "V8_N_PERSO":"V9_N_PERSO"}
151 ChangementValeur(jdc,"MACR_ADAP_MAIL","VERSION_HOMARD",dadap_mail)
152 ChangementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",dadap_mail)
153 #########################################################################
155 ####################### traitement REST_BASE_PHYS ######################
156 renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_SOUS_STRUC", ((("RESULTAT","SQUELETTE","SOUS_STRUC","BASE_MODALE","CYCLIQUE","SECTEUR"),"existeMCFParmi"),))
157 renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_COND_TRAN", ((("MACR_ELEM_DYNA","RESU_PHYS"),"existeMCFParmi"),))
158 renameCommande(jdc,"REST_BASE_PHYS","REST_GENE_PHYS", )
159 #########################################################################
161 ####################### traitement CALC_G ######################
162 removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR",jdc),"MCaPourValeur"),))
163 removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR_GLOB",jdc),"MCaPourValeur"),))
164 removeMotCle(jdc,"CALC_G","PROPAGATION")
165 removeMotCle(jdc,"CALC_G","THETA_LAGR")
166 removeMotCle(jdc,"CALC_G","DIRE_THETA_LAGR")
167 #########################################################################
169 ####################### traitement COMB_SISM_MODAL ######################
170 AjouteMotClefDansFacteurSiRegle(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI='DECORRELE'", ((("EXCIT","MONO_APPUI"),"nexistepasMCsousMCF"),))
171 #########################################################################
173 ####################### traitement TEST_FICHIER ######################
174 renameMotCleAvecErreur(jdc,"TEST_FICHIER","NB_CHIFFRE","NB_VALE")
175 removeMotCle(jdc,"TEST_FICHIER","EPSILON")
176 #########################################################################
178 ####################### traitement CALC_MATR_ELEM ######################
179 removeMotCleSiRegle(jdc,"CALC_MATR_ELEM","OPTION",((("OPTION","RIGI_MECA_LAGR",jdc),"MCaPourValeur"),))
180 removeMotCleAvecErreur(jdc,"CALC_MATR_ELEM","PROPAGATION")
181 removeMotCle(jdc,"CALC_MATR_ELEM","THETA")
182 #########################################################################
184 ####################### traitement ITER_INTE_PAS ######################
185 removeMotCleInFactSiRegle(jdc,"STAT_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
186 removeMotCleInFactSiRegle(jdc,"DYNA_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
187 #########################################################################
189 ################## traitement RECH_LINEAIRE et PILOTAGE dans DYNA_NON_LINE #################
190 removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","RECH_LINEAIRE")
191 removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","PILOTAGE")
192 #########################################################################
194 ####################### traitement DYNA_TRAN_EXPLI ######################
195 renameOper(jdc,"DYNA_TRAN_EXPLI","DYNA_NON_LINE")
196 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TCHAMWA","FORMULATION='ACCELERATION'")
197 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","DIFF_CENT","FORMULATION='ACCELERATION'")
198 #########################################################################
200 ####################### traitement SCHEMA_TEMPS dans DYNA_NON_LINE ######################
201 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","NEWMARK","FORMULATION='DEPLACEMENT'")
202 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","HHT","FORMULATION='DEPLACEMENT'")
203 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TETA_METHODE","FORMULATION='DEPLACEMENT'")
204 renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","ALPHA","BETA",)
205 renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","DELTA","GAMMA",)
206 renameMotCleInFact(jdc,"DYNA_NON_LINE","TETA_METHODE","TETA","THETA",)
207 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA='NEWMARK'",((("NEWMARK",),"existeMCFParmi"),))
208 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA='THETA_METHODE'",((("TETA_METHODE",),"existeMCFParmi"),))
209 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","HHT","SCHEMA='HHT'",((("HHT",),"existeMCFParmi"),))
210 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA='TCHAMWA'",((("TCHAMWA",),"existeMCFParmi"),))
211 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA='DIFF_CENT'",((("DIFF_CENT",),"existeMCFParmi"),))
212 renameMotCle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA_TEMPS")
213 renameMotCle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA_TEMPS")
214 renameMotCle(jdc,"DYNA_NON_LINE","HHT","SCHEMA_TEMPS")
215 renameMotCle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA_TEMPS")
216 renameMotCle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA_TEMPS")
217 removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT","EVOLUTION")
218 moveMotClefInOperToFact(jdc,"DYNA_NON_LINE","STOP_CFL","SCHEMA_TEMPS")
219 #########################################################################
221 ####################### traitement CONTACT ######################
222 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","KT_ULTM")
223 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","EFFO_N_INIT")
224 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_IRRA")
225 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_FO")
226 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_MZ")
227 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_1")
228 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_2")
229 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_3")
230 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_4")
231 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_1")
232 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_2")
233 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_3")
234 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_4")
235 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","C_PRAGER_MZ")
236 dDis_Choc={"DIS_CONTACT":"DIS_CHOC"}
237 ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
238 ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
239 renameMotCleInFact(jdc,"STAT_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
240 renameMotCleInFact(jdc,"DYNA_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
241 dGrilles={"DIS_GRICRA":"GRILLE_CRAYONS"}
242 ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dGrilles)
243 ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dGrilles)
245 renameCommandeSiRegle(jdc,"AFFE_CHAR_MECA_F","AFFE_CHAR_MECA",((("CONTACT",),"existeMCFParmi"),))
246 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","RECHERCHE")
247 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","PROJECTION")
248 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_Y")
249 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_ORIE_POU")
250 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","MODL_AXIS")
251 dAppariement={"MAIT_ESCL_SYME":"MAIT_ESCL"}
252 ChangementValeurDsMCF(jdc,"AFFE_CHAR_MECA","CONTACT","APPARIEMENT",dAppariement)
254 #########################################################################
256 ####################### traitement CREA_CHAMP ######################
257 chercheOperInsereFacteurSiRegle(jdc,"CREA_CHAMP","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
258 #########################################################################
261 f.write(jdc.getSource())
267 parser = optparse.OptionParser(usage=usage)
269 parser.add_option('-i','--infile', dest="infile", default='toto.comm',
270 help="Le fichier à traduire")
271 parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
272 help="Le fichier traduit")
274 options, args = parser.parse_args()
275 traduc(options.infile,options.outfile)
277 if __name__ == '__main__':