2 # -*- coding: utf-8 -*-
5 usage="""usage: %prog [options]
7 python traduitV7V8.py --infile=xxxx --outfile=yyyy
14 from load import getJDC
15 from mocles import parseKeywords
16 from removemocle import *
17 from renamemocle import *
18 from renamemocle import *
19 from inseremocle import *
20 from changeValeur import *
21 from movemocle import *
22 from dictErreurs import GenereErreurPourCommande,GenereErreurMotCleInFact
27 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_NON_LINE_MO","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","MODI_MAILLAGE","DEFI_FISS_XFEM","AFFE_MODELE","POST_MAIL_XFEM","CALC_NO","LIRE_CHAMP","AFFE_MATERIAU","MACR_ASCOUF_CALC","MACR_ASPIC_CALC","CALC_PRECONT","LIRE_INTE_SPEC","MACR_CARA_POUTRE","MACR_LIGN_COUPE")
31 "POST_RCCM_SITUATION_NUME_PASSAGE":"Utilisation de NUME_PASSAGE pour le type TUYAUTERIE impossible en 9.2. On ne traite pour le moment que les chemins de passage simples.",
32 "POST_RCCM_SITUATION_NB_CYCL_SEISME":"POST_RCCM : maintenant les SITUATIONS sismiques ont leur propre mot clef facteur SEISME, attention, traduction incomplete",
33 "DEFI_MATERIAU_BAZANT_FD" : "le materiau BAZANT_FD a ete supprime",
34 "DEFI_MATERIAU_APPUI_ELAS" : "le materiau APPUI_ELAS a ete supprime",
35 "DEFI_MATERIAU_PORO_JOINT" : "le materiau PORO_JOINT a ete supprime",
36 "DEFI_MATERIAU_ZIRC_CYRA2" : "le materiau ZIRC_CYRA2 a ete supprime",
37 "DEFI_MATERIAU_ZIRC_EPRI" : "le materiau ZIRC_EPRI a ete supprime",
38 "IMPR_MATRICE_MATR_ELEM_FORMAT=RESULTAT" : "IMPR_MATRICE au format RESULTAT a ete supprime",
39 "IMPR_MATRICE_MATR_ASSE_FORMAT=RESULTAT" : "IMPR_MATRICE au format RESULTAT a ete supprime",
40 "CALC_G_OPTION=G_LAGR" : "l'OPTION G_LAGR de CALC_G a ete supprimee",
41 "CALC_G_OPTION=G_LAGR_GLOB" : "l'OPTION G_LAGR_GLOB de CALC_G a ete supprimee",
42 "CALC_MATR_ELEM_THETA" : "l'OPTION RIGI_MECA_LAGR de CALC_MATR_ELEM a ete supprimee",
43 "TEST_FICHIER_NB_CHIFFRE" : "le fonctionnement de TEST_FICHIER a change entre la V8 et la V9, consultez la doc, en particulier pour entrer la bonne valeur de NB_VALE",
44 "DYNA_NON_LINE_PILOTAGE" : "le PILOTAGE n'est pas actif dans DYNA_NON_LINE ",
45 "DYNA_NON_LINE_RECH_LINEAIRE" : "la RECH_LINEAIRE n'est pas active dans DYNA_NON_LINE ",
46 "DEFI_FISS_XFEM_CONTACT" : "en v9, le contact pour XFEM est defini dans un AFFE_CHAR_MECA(CONTACT=_F) en propre",
47 "POST_MAIL_XFEM" : "dans POST_MAIL_XFEM il faut entrer le MODELE et le MAILLAGE_SAIN",
48 "AFFE_MATERIAU_AFFE_TEMP_REF" : "Passage aux variables de commande : definir un materiau dependant de la temperature 'AFFE_MATERIAU(AFFE_VARC=_F(...))' et supprimer TEMP_CALCULEE dans les chargements",
49 "STAT_NON_LINE_LAGR_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
50 "STAT_NON_LINE_SOLV_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
51 "STAT_NON_LINE_ETAT_INIT_VARI_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
52 "DYNA_NON_LINE_LAGR_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
53 "DYNA_NON_LINE_SOLV_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
54 "DYNA_NON_LINE_ETAT_INIT_VARI_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
55 "CALC_PRECONT_LAGR_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
56 "CALC_PRECONT_SOLV_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
57 "CALC_PRECONT_ETAT_INIT_VARI_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
60 sys.dict_erreurs=dict_erreurs
62 def traduc(infile,outfile,flog=None):
64 hdlr=log.initialise(flog)
65 jdc=getJDC(infile,atraiter)
68 #Parse les mocles des commandes
71 ####################### traitement erreurs ########################
72 GenereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE","DEFI_FISS_XFEM","POST_MAIL_XFEM"))
74 ####################### traitement Sous-Structuration #######################
75 renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_SUPER_MAILLE","MACR_ELEM_STAT","MACR_ELEM")
76 renameMotCleInFact(jdc,"DYNA_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
77 renameMotCleInFact(jdc,"STAT_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
78 renameMotCleInFact(jdc,"CALC_VECT_ELEM","SOUS_STRUC","MAILLE","SUPER_MAILLE")
79 #########################################################################
81 ####################### traitement MACR_ELEM_DYNA #######################
82 removeMotCle(jdc,"MACR_ELEM_DYNA","OPTION")
83 #########################################################################
85 ####################### traitement MODI_MAILLAGE #######################
86 renameMotCle(jdc,"MODI_MAILLAGE","ORIE_SHB8","ORIE_SHB")
87 #########################################################################
89 ####################### traitement XFEM #######################
90 dXFEM={"3D_XFEM":"3D", "C_PLAN_X":"C_PLAN", "D_PLAN_X":"D_PLAN"}
91 ChangementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dXFEM)
92 renameMotCleInFact(jdc,"DEFI_FISS_XFEM","ORIE_FOND","PT_ORIGIN","POINT_ORIG")
93 removeMotCleAvecErreur(jdc,"DEFI_FISS_XFEM","CONTACT")
94 #########################################################################
96 ####################### traitement Resolution lineaire #####################
97 renameMotCle(jdc,"RESO_LDLT","MATR_FACT","MATR")
98 renameMotCle(jdc,"RESO_GRAD","MATR_ASSE","MATR")
99 renameMotCle(jdc,"RESO_GRAD","MATR_FACT","MATR_PREC")
100 renameOper(jdc,"RESO_LDLT","RESOUDRE")
101 renameOper(jdc,"RESO_GRAD","RESOUDRE")
102 renameOper(jdc,"FACT_LDLT","FACTORISER")
103 renameOper(jdc,"FACT_GRAD","FACTORISER")
104 #########################################################################
106 ####################### traitement DYNA_TRAN_MODAL ######################
107 removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
108 #########################################################################
110 ############# traitement MASS_INER dans NORM_MODE/MACRO_MODE_MECA ##########
111 removeMotCle(jdc,"NORM_MODE","MASS_INER")
112 removeMotCleInFact(jdc,"MACRO_MODE_MECA","NORM_MODE","MASS_INER")
113 #########################################################################
115 ####################### traitement POST_RCCM ############################
116 removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NUME_PASSAGE",((("TYPE_RESU_MECA","TUYAUTERIE",jdc),"MCaPourValeur"),))
117 chercheOperInsereFacteurSiRegle(jdc,"POST_RCCM","SEISME", ((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
118 moveMotCleFromFactToFact(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME","SEISME")
119 # 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"),))
120 AjouteMotClefDansFacteurSiRegle(jdc,"POST_RCCM","SITUATION","supprimez_a_la_main_ce_bloc",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
121 # removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
122 removeMotCleInFactSiRegle(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
123 removeMotCleInFact(jdc,"POST_RCCM","CHAR_MECA","TYPE_CHAR",)
124 removeMotCleInFact(jdc,"POST_RCCM","RESU_MECA","TYPE_CHAR",)
125 #########################################################################
127 ####################### traitement THER_NON_LINE ############################
128 renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
129 renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
130 renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_INIT","NUME_INST_INIT")
131 renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_FIN","NUME_INST_FIN")
133 renameMotCleInFact(jdc,"THER_NON_LINE_MO","TEMP_INIT","NUME_INIT","NUME_ORDRE")
134 renameMotCle(jdc,"THER_NON_LINE_MO","TEMP_INIT","ETAT_INIT",)
135 #########################################################################
137 ####################### traitement THER_LINEAIRE ############################
138 renameMotCleInFact(jdc,"THER_LINEAIRE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
139 renameMotCle(jdc,"THER_LINEAIRE","TEMP_INIT","ETAT_INIT",)
140 renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_INIT","NUME_INST_INIT")
141 renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_FIN","NUME_INST_FIN")
142 renameMotCleInFact(jdc,"THER_LINEAIRE","ARCHIVAGE","LIST_ARCH","LIST_INST")
143 #########################################################################
145 ####################### traitement THER_NON_LINE ############################
146 renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
147 renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
148 #########################################################################
150 ####################### traitement DEFI_CABLE_BP ######################
151 removeMotCle(jdc,"DEFI_CABLE_BP","MAILLAGE")
152 #########################################################################
154 ####################### traitement GENE_VARI_ALEA ######################
155 removeMotCleSiRegle(jdc,"GENE_VARI_ALEA","COEF_VAR",((("TYPE","EXPONENTIELLE",jdc),"MCaPourValeur"),))
156 #########################################################################
158 ####################### traitement DEFI_MATERIAU ######################
159 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","BAZANT_FD")
160 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","PORO_JOINT")
161 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","APPUI_ELAS")
162 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_EPRI")
163 removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_CYRA2")
165 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","MU","BARCELONE")
166 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PORO","BARCELONE")
167 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","LAMBDA","BARCELONE")
168 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","KAPPA","BARCELONE")
169 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","M","BARCELONE")
170 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PRES_CRIT","BARCELONE")
171 moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","BARCELONE")
172 renameMotCleInFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","KCAM")
174 # AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
175 # AjouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","CAM_CLAY","PTRAC=XXX",((("CAM_CLAY","KCAM"),"existeMCsousMCF"),))
177 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","S_VP","S")
178 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","N_VP","N")
179 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","M_VP","UN_SUR_M", erreur=1)
180 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","K_VP","UN_SUR_K")
181 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP1","ALPHA_D")
182 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP2","BETA_D")
183 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","S_VP","S")
184 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","N_VP","N")
185 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","M_VP","UN_SUR_M", erreur=1)
186 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","K_VP","UN_SUR_K")
187 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP1","ALPHA_D")
188 renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP2","BETA_D")
190 renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
191 #########################################################################
193 ####################### traitement IMPR_MATRICE ######################
194 removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ELEM","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
195 removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ASSE","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
196 #########################################################################
198 ####################### traitement MACR_ADAP/INFO_MAIL ######################
199 dadap_mail={ "V8_5":"V9_5", "V8_N":"V9_N", "V8_N_PERSO":"V9_N_PERSO"}
200 ChangementValeur(jdc,"MACR_ADAP_MAIL","VERSION_HOMARD",dadap_mail)
201 ChangementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",dadap_mail)
202 #########################################################################
204 ####################### traitement REST_BASE_PHYS ######################
205 renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_SOUS_STRUC", ((("RESULTAT","SQUELETTE","SOUS_STRUC","BASE_MODALE","CYCLIQUE","SECTEUR"),"existeMCFParmi"),))
206 renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_COND_TRAN", ((("MACR_ELEM_DYNA","RESU_PHYS"),"existeMCFParmi"),))
207 renameCommande(jdc,"REST_BASE_PHYS","REST_GENE_PHYS", )
208 #########################################################################
210 ####################### traitement CALC_G ######################
211 removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR",jdc),"MCaPourValeur"),))
212 removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR_GLOB",jdc),"MCaPourValeur"),))
213 removeMotCle(jdc,"CALC_G","PROPAGATION")
214 removeMotCle(jdc,"CALC_G","THETA_LAGR")
215 removeMotCle(jdc,"CALC_G","DIRE_THETA_LAGR")
216 #########################################################################
218 ####################### traitement COMB_SISM_MODAL ######################
219 AjouteMotClefDansFacteurSiRegle(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI='DECORRELE'", ((("EXCIT","MONO_APPUI"),"nexistepasMCsousMCF"),))
220 #########################################################################
222 ####################### traitement TEST_FICHIER ######################
223 renameMotCleAvecErreur(jdc,"TEST_FICHIER","NB_CHIFFRE","NB_VALE")
224 removeMotCle(jdc,"TEST_FICHIER","EPSILON")
225 #########################################################################
227 ####################### traitement CALC_MATR_ELEM ######################
228 removeMotCleSiRegle(jdc,"CALC_MATR_ELEM","OPTION",((("OPTION","RIGI_MECA_LAGR",jdc),"MCaPourValeur"),))
229 removeMotCleAvecErreur(jdc,"CALC_MATR_ELEM","PROPAGATION")
230 removeMotCle(jdc,"CALC_MATR_ELEM","THETA")
231 #########################################################################
233 ####################### traitement ITER_INTE_PAS ######################
234 removeMotCleInFactSiRegle(jdc,"STAT_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
235 removeMotCleInFactSiRegle(jdc,"DYNA_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
236 #########################################################################
238 ################## traitement RECH_LINEAIRE et PILOTAGE dans DYNA_NON_LINE #################
239 removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","RECH_LINEAIRE")
240 removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","PILOTAGE")
241 #########################################################################
243 ####################### traitement DYNA_TRAN_EXPLI ######################
244 renameOper(jdc,"DYNA_TRAN_EXPLI","DYNA_NON_LINE")
245 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TCHAMWA","FORMULATION='ACCELERATION'")
246 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","DIFF_CENT","FORMULATION='ACCELERATION'")
247 #########################################################################
249 ####################### traitement SCHEMA_TEMPS dans DYNA_NON_LINE ######################
250 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","NEWMARK","FORMULATION='DEPLACEMENT'")
251 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","HHT","FORMULATION='DEPLACEMENT'")
252 AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TETA_METHODE","FORMULATION='DEPLACEMENT'")
253 renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","ALPHA","BETA",)
254 renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","DELTA","GAMMA",)
255 renameMotCleInFact(jdc,"DYNA_NON_LINE","TETA_METHODE","TETA","THETA",)
256 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA='NEWMARK'",((("NEWMARK",),"existeMCFParmi"),))
257 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA='THETA_METHODE'",((("TETA_METHODE",),"existeMCFParmi"),))
258 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","HHT","SCHEMA='HHT'",((("HHT",),"existeMCFParmi"),))
259 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA='TCHAMWA'",((("TCHAMWA",),"existeMCFParmi"),))
260 AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA='DIFF_CENT'",((("DIFF_CENT",),"existeMCFParmi"),))
261 renameMotCle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA_TEMPS")
262 renameMotCle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA_TEMPS")
263 renameMotCle(jdc,"DYNA_NON_LINE","HHT","SCHEMA_TEMPS")
264 renameMotCle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA_TEMPS")
265 renameMotCle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA_TEMPS")
266 removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT","EVOLUTION")
267 moveMotClefInOperToFact(jdc,"DYNA_NON_LINE","STOP_CFL","SCHEMA_TEMPS")
268 #########################################################################
270 ####################### traitement CONTACT ######################
271 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","KT_ULTM")
272 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","EFFO_N_INIT")
273 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_IRRA")
274 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_FO")
275 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_MZ")
276 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_1")
277 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_2")
278 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_3")
279 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_4")
280 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_1")
281 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_2")
282 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_3")
283 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_4")
284 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","C_PRAGER_MZ")
285 dDis_Choc={"DIS_CONTACT":"DIS_CHOC"}
286 ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
287 ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
288 renameMotCleInFact(jdc,"STAT_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
289 renameMotCleInFact(jdc,"DYNA_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
290 dGrilles={"GRILLE_CRAYONS":"DIS_GRICRA"}
291 ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dGrilles)
292 ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dGrilles)
294 renameCommandeSiRegle(jdc,"AFFE_CHAR_MECA_F","AFFE_CHAR_MECA",((("CONTACT",),"existeMCFParmi"),))
295 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","RECHERCHE")
296 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","PROJECTION")
297 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_Y")
298 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_ORIE_POU")
299 removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","MODL_AXIS")
300 dAppariement={"MAIT_ESCL_SYME":"MAIT_ESCL"}
301 ChangementValeurDsMCF(jdc,"AFFE_CHAR_MECA","CONTACT","APPARIEMENT",dAppariement)
303 AjouteMotClefDansFacteurSiRegle(jdc,"AFFE_CHAR_MECA","CONTACT","TYPE_APPA='FIXE'",((("CONTACT","DIRE_APPA",),"existeMCsousMCF"),))
304 #########################################################################
306 ####################### traitement CREA_CHAMP ######################
307 chercheOperInsereFacteurSiRegle(jdc,"CREA_CHAMP","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
308 dTypeChamp={"ELEM_ERREUR":"ELEM_ERRE_R"}
309 ChangementValeur(jdc,"CREA_CHAMP","TYPE_CHAM",dTypeChamp)
310 #########################################################################
312 ####################### traitement CALC_NO ######################
313 chercheOperInsereFacteurSiRegle(jdc,"CALC_NO","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
314 #########################################################################
316 ######### traitement variables de commandes TEMP_CALCULEE/TEMP_REF ##############
317 GenereErreurMotCleInFact(jdc,"AFFE_MATERIAU","AFFE","TEMP_REF")
318 ################################################################################
320 ################# traitement LIRE_CHAMP #######################################
321 # dTypeChamp={"ELEM_ERREUR":"ELEM_ERRE_R"}
322 ChangementValeur(jdc,"LIRE_CHAMP","TYPE_CHAM",dTypeChamp)
323 ################################################################################
326 ######### traitement SUIVI_DDL #################################################
327 # en pre-traitement il faudrait une methode qui separe tous les mots clefs facteurs en les dupliquant
328 # par exemple ici mettre autant de mots clefs facteurs SUIVI_DDL qu'il a de _F
329 AjouteMotClefDansFacteur(jdc,"STAT_NON_LINE","SUIVI_DDL","SUIVI_DDL='OUI'")
330 renameMotCle(jdc,"STAT_NON_LINE","SUIVI_DDL","OBSERVATION")
331 # en post-traitement il faudrait une methode qui fusionne tous les mots clefs facteurs en double
332 # par exemple ici les OBSERVATION
333 ################################################################################
336 ######### traitement EVOLUTION in STAT/DYNA_NON_LINE ###########################
337 removeMotCleInFact(jdc,"STAT_NON_LINE","INCREMENT","EVOLUTION")
338 removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT","EVOLUTION")
339 ################################################################################
341 ######### traitement du MODELE GRILLE ##############################################
342 dGrille={"GRILLE":"GRILLE_EXCENTRE"}
343 ChangementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dGrille)
344 ################################################################################
346 ######### traitement de MACR_ASPIC/ASCOUF_CALC GRILLE ##########################
347 removeMotCle(jdc,"MACR_ASCOUF_CALC","CHARGE")
348 removeMotCle(jdc,"MACR_ASPIC_CALC","CHARGE")
349 ################################################################################
352 ############ suppression de NON_LOCAL ##########################################
353 removeMotCleAvecErreur(jdc,"STAT_NON_LINE","LAGR_NON_LOCAL")
354 removeMotCleAvecErreur(jdc,"STAT_NON_LINE","SOLV_NON_LOCAL")
355 removeMotCleInFact(jdc,"STAT_NON_LINE","ETAT_INIT","VARI_NON_LOCAL",erreur=1)
357 removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","LAGR_NON_LOCAL")
358 removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","SOLV_NON_LOCAL")
359 removeMotCleInFact(jdc,"DYNA_NON_LINE","ETAT_INIT","VARI_NON_LOCAL",erreur=1)
361 removeMotCleAvecErreur(jdc,"CALC_PRECONT","LAGR_NON_LOCAL")
362 removeMotCleAvecErreur(jdc,"CALC_PRECONT","SOLV_NON_LOCAL")
363 removeMotCleInFact(jdc,"CALC_PRECONT","ETAT_INIT","VARI_NON_LOCAL",erreur=1)
364 ################################################################################
366 ######### traitement de LIRE_INTE_SPEC #########################################
367 renameMotCle(jdc,"LIRE_INTE_SPEC","FORMAT","FORMAT_C")
368 ################################################################################
370 ######### traitement de MACR_CARA_POUTRE ######################################
371 chercheOperInsereFacteurSiRegle(jdc,"MACR_CARA_POUTRE","FORMAT='ASTER'", ((("UNITE_MAILLAGE",),"existe"),),0)
372 renameMotCle(jdc,"MACR_CARA_POUTRE","UNITE_MAILLAGE","UNITE")
373 ################################################################################
375 ######### traitement de MACR_LIGN_COUPE ######################################
376 # il y a un probleme s'il y a plusieurs mots clefs facteurs LIGN_COUPE : la regle ne marche qu'une fois par commande
377 AjouteMotClefDansFacteurSiRegle(jdc,"MACR_LIGN_COUPE","LIGN_COUPE","REPERE='LOCAL'", ((("LIGN_COUPE","VECT_Y",),"existeMCsousMCF"),),0)
378 # autre probleme : s'il y a plusieurs mots clefs facteurs le traducteur peut, dans l'insertion, se tromper de mot clef facteur
379 AjouteMotClefDansFacteurSiRegle(jdc,"MACR_LIGN_COUPE","LIGN_COUPE","TYPE='GROUP_NO'", ((("LIGN_COUPE","GROUP_NO",),"existeMCsousMCF"),),0)
380 AjouteMotClefDansFacteurSiRegle(jdc,"MACR_LIGN_COUPE","LIGN_COUPE","TYPE='GROUP_MA'", ((("LIGN_COUPE","GROUP_MA",),"existeMCsousMCF"),),0)
381 ################################################################################
383 ####################### traitement DRUCKER_PRAGER #######################
384 dPRAGER={"DRUCKER_PRAGER":"DRUCK_PRAGER",}
385 ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dPRAGER)
386 ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dPRAGER)
387 ChangementValeurDsMCF(jdc,"SIMU_POINT_MAT","COMP_INCR","RELATION",dPRAGER)
388 ChangementValeurDsMCF(jdc,"CALC_PRECONT","COMP_INCR","RELATION",dPRAGER)
389 #########################################################################
391 ####################### traitement RELATION_KIT #######################
392 dKIT={"ELAS_THER":"ELAS",}
393 ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION_KIT",dKIT)
394 ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION_KIT",dKIT)
395 ChangementValeurDsMCF(jdc,"SIMU_POINT_MAT","COMP_INCR","RELATION_KIT",dKIT)
396 ChangementValeurDsMCF(jdc,"CALC_PRECONT","COMP_INCR","RELATION_KIT",dKIT)
397 #########################################################################
401 f.write(jdc.getSource())
407 parser = optparse.OptionParser(usage=usage)
409 parser.add_option('-i','--infile', dest="infile", default='toto.comm',
410 help="Le fichier à traduire")
411 parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
412 help="Le fichier traduit")
414 options, args = parser.parse_args()
415 traduc(options.infile,options.outfile)
417 if __name__ == '__main__':