Salome HOME
CCAR: rabattre la version V1_15a4 dans la branche principale
[tools/eficas.git] / Traducteur / traduitV8V9.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 """
4 """
5 usage="""usage: %prog [options]
6 Typical use is:
7   python traduitV7V8.py --infile=xxxx --outfile=yyyy
8 """
9
10 import log
11 import optparse
12
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
22
23 import calcG
24
25
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")
27
28 def traduc(infile,outfile,flog=None):
29
30     hdlr=log.initialise(flog)
31     jdc=getJDC(infile,atraiter)
32     root=jdc.root
33
34     #Parse les mocles des commandes
35     parseKeywords(root)
36     
37     ####################### traitement erreurs ########################
38     GenereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE"))
39
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     #########################################################################
46
47     ####################### traitement MACR_ELEM_DYNA #######################
48     removeMotCle(jdc,"MACR_ELEM_DYNA","OPTION")
49     #########################################################################
50
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     #########################################################################
60
61     ####################### traitement DYNA_TRAN_MODAL ######################
62     removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
63     #########################################################################
64
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     #########################################################################
69
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     #########################################################################
81
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     #########################################################################
88
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     #########################################################################
95
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     #########################################################################
100
101     ####################### traitement DEFI_CABLE_BP ######################
102     removeMotCle(jdc,"DEFI_CABLE_BP","MAILLAGE")
103     #########################################################################
104
105     ####################### traitement GENE_VARI_ALEA ######################
106     removeMotCleSiRegle(jdc,"GENE_VARI_ALEA","COEF_VAR",((("TYPE","EXPONENTIELLE",jdc),"MCaPourValeur"),))
107     #########################################################################
108
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")
115     # BARCELONE
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")
124     # CAM_CLAY
125     AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
126     AjouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","CAM_CLAY","PTRAC=XXX",((("CAM_CLAY","KCAM"),"existeMCsousMCF"),))
127     # VENDOCHAB
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")
140     # GLRC 
141     renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
142     #########################################################################
143
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     #########################################################################
148
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     #########################################################################
154
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     #########################################################################
160
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     #########################################################################
168
169     ####################### traitement COMB_SISM_MODAL ######################
170     AjouteMotClefDansFacteurSiRegle(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI='DECORRELE'", ((("EXCIT","MONO_APPUI"),"nexistepasMCsousMCF"),))
171     #########################################################################
172
173     ####################### traitement TEST_FICHIER ######################
174     renameMotCleAvecErreur(jdc,"TEST_FICHIER","NB_CHIFFRE","NB_VALE")
175     removeMotCle(jdc,"TEST_FICHIER","EPSILON")
176     #########################################################################
177
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     #########################################################################
183
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     #########################################################################
188
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     #########################################################################
193
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     #########################################################################
199
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     #########################################################################
220
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)
244
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)
253
254     #########################################################################
255
256     ####################### traitement CREA_CHAMP ######################
257     chercheOperInsereFacteurSiRegle(jdc,"CREA_CHAMP","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
258     #########################################################################
259
260     f=open(outfile,'w')
261     f.write(jdc.getSource())
262     f.close()
263
264     log.ferme(hdlr)
265
266 def main():
267     parser = optparse.OptionParser(usage=usage)
268
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")
273
274     options, args = parser.parse_args()
275     traduc(options.infile,options.outfile)
276
277 if __name__ == '__main__':
278     main()
279