]> SALOME platform Git repositories - tools/eficas.git/blob - Traducteur/traduitV8V9.py
Salome HOME
*** empty log message ***
[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 import sys
13
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
23
24 import calcG
25
26
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")
28
29 dict_erreurs={
30 # STA9
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",
58              }
59
60 sys.dict_erreurs=dict_erreurs
61
62 def traduc(infile,outfile,flog=None):
63
64     hdlr=log.initialise(flog)
65     jdc=getJDC(infile,atraiter)
66     root=jdc.root
67
68     #Parse les mocles des commandes
69     parseKeywords(root)
70     
71     ####################### traitement erreurs ########################
72     GenereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE","DEFI_FISS_XFEM","POST_MAIL_XFEM"))
73
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     #########################################################################
80
81     ####################### traitement MACR_ELEM_DYNA #######################
82     removeMotCle(jdc,"MACR_ELEM_DYNA","OPTION")
83     #########################################################################
84
85     ####################### traitement MODI_MAILLAGE #######################
86     renameMotCle(jdc,"MODI_MAILLAGE","ORIE_SHB8","ORIE_SHB")
87     #########################################################################
88
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     #########################################################################
95
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     #########################################################################
105
106     ####################### traitement DYNA_TRAN_MODAL ######################
107     removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
108     #########################################################################
109
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     #########################################################################
114
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     #########################################################################
126
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")
132
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     #########################################################################
136
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     #########################################################################
144
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     #########################################################################
149
150     ####################### traitement DEFI_CABLE_BP ######################
151     removeMotCle(jdc,"DEFI_CABLE_BP","MAILLAGE")
152     #########################################################################
153
154     ####################### traitement GENE_VARI_ALEA ######################
155     removeMotCleSiRegle(jdc,"GENE_VARI_ALEA","COEF_VAR",((("TYPE","EXPONENTIELLE",jdc),"MCaPourValeur"),))
156     #########################################################################
157
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")
164     # BARCELONE
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")
173     # CAM_CLAY
174 #    AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
175 #    AjouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","CAM_CLAY","PTRAC=XXX",((("CAM_CLAY","KCAM"),"existeMCsousMCF"),))
176     # VENDOCHAB
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")
189     # GLRC 
190     renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
191     #########################################################################
192
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     #########################################################################
197
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     #########################################################################
203
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     #########################################################################
209
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     #########################################################################
217
218     ####################### traitement COMB_SISM_MODAL ######################
219     AjouteMotClefDansFacteurSiRegle(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI='DECORRELE'", ((("EXCIT","MONO_APPUI"),"nexistepasMCsousMCF"),))
220     #########################################################################
221
222     ####################### traitement TEST_FICHIER ######################
223     renameMotCleAvecErreur(jdc,"TEST_FICHIER","NB_CHIFFRE","NB_VALE")
224     removeMotCle(jdc,"TEST_FICHIER","EPSILON")
225     #########################################################################
226
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     #########################################################################
232
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     #########################################################################
237
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     #########################################################################
242
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     #########################################################################
248
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     #########################################################################
269
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)
293
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)
302
303     AjouteMotClefDansFacteurSiRegle(jdc,"AFFE_CHAR_MECA","CONTACT","TYPE_APPA='FIXE'",((("CONTACT","DIRE_APPA",),"existeMCsousMCF"),))
304     #########################################################################
305
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     #########################################################################
311
312     ####################### traitement CALC_NO ######################
313     chercheOperInsereFacteurSiRegle(jdc,"CALC_NO","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
314     #########################################################################
315
316     ######### traitement variables de commandes TEMP_CALCULEE/TEMP_REF ##############
317     GenereErreurMotCleInFact(jdc,"AFFE_MATERIAU","AFFE","TEMP_REF")
318     ################################################################################
319
320     ################# traitement LIRE_CHAMP  #######################################
321 #    dTypeChamp={"ELEM_ERREUR":"ELEM_ERRE_R"}
322     ChangementValeur(jdc,"LIRE_CHAMP","TYPE_CHAM",dTypeChamp)
323     ################################################################################
324
325
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     ################################################################################
334
335
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     ################################################################################
340
341     ######### traitement du MODELE GRILLE ##############################################
342     dGrille={"GRILLE":"GRILLE_EXCENTRE"}
343     ChangementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dGrille)
344     ################################################################################
345
346     ######### traitement de MACR_ASPIC/ASCOUF_CALC GRILLE ##########################
347     removeMotCle(jdc,"MACR_ASCOUF_CALC","CHARGE")
348     removeMotCle(jdc,"MACR_ASPIC_CALC","CHARGE")
349     ################################################################################
350
351
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)
356
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)
360
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     ################################################################################
365
366     ######### traitement de LIRE_INTE_SPEC #########################################
367     renameMotCle(jdc,"LIRE_INTE_SPEC","FORMAT","FORMAT_C")
368     ################################################################################
369
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     ################################################################################
374
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     ################################################################################
382
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     #########################################################################
390
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     #########################################################################
398
399
400     f=open(outfile,'w')
401     f.write(jdc.getSource())
402     f.close()
403
404     log.ferme(hdlr)
405
406 def main():
407     parser = optparse.OptionParser(usage=usage)
408
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")
413
414     options, args = parser.parse_args()
415     traduc(options.infile,options.outfile)
416
417 if __name__ == '__main__':
418     main()
419