Salome HOME
modif pour MT
[tools/eficas.git] / Traducteur / traduitV8V9.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Copyright (C) 2007-2017   EDF R&D
4 #
5 # This library is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU Lesser General Public
7 # License as published by the Free Software Foundation; either
8 # version 2.1 of the License.
9 #
10 # This library is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # Lesser General Public License for more details.
14 #
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
18 #
19 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #
21 """
22 """
23 usage="""usage: %prog [options]
24 Typical use is:
25   python traduitV7V8.py --infile=xxxx --outfile=yyyy
26 """
27
28 import log
29 import optparse
30 import sys
31
32 from load   import getJDC
33 from mocles import parseKeywords
34 from removemocle  import *
35 from renamemocle  import *
36 from renamemocle  import *
37 from inseremocle  import *
38 from changeValeur import *
39 from movemocle    import *
40 from dictErreurs  import genereErreurPourCommande,genereErreurMotCleInFact
41
42 import calcG
43
44
45 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")
46
47 dict_erreurs={
48 # STA9
49               "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.",
50               "POST_RCCM_SITUATION_NB_CYCL_SEISME":"POST_RCCM : maintenant les SITUATIONS sismiques ont leur propre mot clef facteur SEISME, attention, traduction incomplete",
51               "DEFI_MATERIAU_BAZANT_FD" : "le materiau BAZANT_FD a ete supprime",
52               "DEFI_MATERIAU_APPUI_ELAS" : "le materiau APPUI_ELAS a ete supprime",
53               "DEFI_MATERIAU_PORO_JOINT" : "le materiau PORO_JOINT a ete supprime",
54               "DEFI_MATERIAU_ZIRC_CYRA2" : "le materiau ZIRC_CYRA2 a ete supprime",
55               "DEFI_MATERIAU_ZIRC_EPRI" : "le materiau ZIRC_EPRI a ete supprime",
56               "IMPR_MATRICE_MATR_ELEM_FORMAT=RESULTAT" : "IMPR_MATRICE au format RESULTAT a ete supprime",
57               "IMPR_MATRICE_MATR_ASSE_FORMAT=RESULTAT" : "IMPR_MATRICE au format RESULTAT a ete supprime",
58               "CALC_G_OPTION=G_LAGR" : "l'OPTION G_LAGR de CALC_G a ete supprimee",
59               "CALC_G_OPTION=G_LAGR_GLOB" : "l'OPTION G_LAGR_GLOB de CALC_G a ete supprimee",
60               "CALC_MATR_ELEM_THETA" : "l'OPTION RIGI_MECA_LAGR de CALC_MATR_ELEM a ete supprimee",
61               "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",
62               "DYNA_NON_LINE_PILOTAGE" : "le PILOTAGE n'est pas actif dans DYNA_NON_LINE ",
63               "DYNA_NON_LINE_RECH_LINEAIRE" : "la RECH_LINEAIRE n'est pas active dans DYNA_NON_LINE ",
64               "DEFI_FISS_XFEM_CONTACT" : "en v9, le contact pour XFEM est defini dans un AFFE_CHAR_MECA(CONTACT=_F) en propre",
65               "POST_MAIL_XFEM" : "dans POST_MAIL_XFEM il faut entrer le MODELE et le MAILLAGE_SAIN",
66               "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",
67               "STAT_NON_LINE_LAGR_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
68               "STAT_NON_LINE_SOLV_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
69               "STAT_NON_LINE_ETAT_INIT_VARI_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
70               "DYNA_NON_LINE_LAGR_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
71               "DYNA_NON_LINE_SOLV_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
72               "DYNA_NON_LINE_ETAT_INIT_VARI_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
73               "CALC_PRECONT_LAGR_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
74               "CALC_PRECONT_SOLV_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
75               "CALC_PRECONT_ETAT_INIT_VARI_NON_LOCAL" : "Le solveur NON_LOCAL a ete supprime",
76              }
77
78 sys.dict_erreurs=dict_erreurs
79
80 def traduc(infile,outfile,flog=None):
81
82     hdlr=log.initialise(flog)
83     jdc=getJDC(infile,atraiter)
84     root=jdc.root
85
86     #Parse les mocles des commandes
87     parseKeywords(root)
88     
89     ####################### traitement erreurs ########################
90     genereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE","DEFI_FISS_XFEM","POST_MAIL_XFEM"))
91
92     ####################### traitement Sous-Structuration  #######################
93     renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_SUPER_MAILLE","MACR_ELEM_STAT","MACR_ELEM")
94     renameMotCleInFact(jdc,"DYNA_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
95     renameMotCleInFact(jdc,"STAT_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
96     renameMotCleInFact(jdc,"CALC_VECT_ELEM","SOUS_STRUC","MAILLE","SUPER_MAILLE")
97     #########################################################################
98
99     ####################### traitement MACR_ELEM_DYNA #######################
100     removeMotCle(jdc,"MACR_ELEM_DYNA","OPTION")
101     #########################################################################
102
103     ####################### traitement MODI_MAILLAGE #######################
104     renameMotCle(jdc,"MODI_MAILLAGE","ORIE_SHB8","ORIE_SHB")
105     #########################################################################
106
107     ####################### traitement XFEM #######################
108     dXFEM={"3D_XFEM":"3D", "C_PLAN_X":"C_PLAN", "D_PLAN_X":"D_PLAN"}
109     changementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dXFEM)
110     renameMotCleInFact(jdc,"DEFI_FISS_XFEM","ORIE_FOND","PT_ORIGIN","POINT_ORIG")
111     removeMotCleAvecErreur(jdc,"DEFI_FISS_XFEM","CONTACT")
112     #########################################################################
113
114     ####################### traitement Resolution lineaire #####################
115     renameMotCle(jdc,"RESO_LDLT","MATR_FACT","MATR")
116     renameMotCle(jdc,"RESO_GRAD","MATR_ASSE","MATR")
117     renameMotCle(jdc,"RESO_GRAD","MATR_FACT","MATR_PREC")
118     renameOper(jdc,"RESO_LDLT","RESOUDRE")
119     renameOper(jdc,"RESO_GRAD","RESOUDRE")
120     renameOper(jdc,"FACT_LDLT","FACTORISER")
121     renameOper(jdc,"FACT_GRAD","FACTORISER")
122     #########################################################################
123
124     ####################### traitement DYNA_TRAN_MODAL ######################
125     removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
126     #########################################################################
127
128     ############# traitement MASS_INER dans NORM_MODE/MACRO_MODE_MECA ##########
129     removeMotCle(jdc,"NORM_MODE","MASS_INER")
130     removeMotCleInFact(jdc,"MACRO_MODE_MECA","NORM_MODE","MASS_INER")
131     #########################################################################
132
133     ####################### traitement POST_RCCM ############################
134     removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NUME_PASSAGE",((("TYPE_RESU_MECA","TUYAUTERIE",jdc),"MCaPourValeur"),))
135     chercheOperInsereFacteurSiRegle(jdc,"POST_RCCM","SEISME", ((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
136     moveMotCleFromFactToFact(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME","SEISME")
137 #    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"),))
138     ajouteMotClefDansFacteurSiRegle(jdc,"POST_RCCM","SITUATION","supprimez_a_la_main_ce_bloc",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
139 #    removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
140     removeMotCleInFactSiRegle(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
141     removeMotCleInFact(jdc,"POST_RCCM","CHAR_MECA","TYPE_CHAR",)
142     removeMotCleInFact(jdc,"POST_RCCM","RESU_MECA","TYPE_CHAR",)
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     renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_INIT","NUME_INST_INIT")
149     renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_FIN","NUME_INST_FIN")
150
151     renameMotCleInFact(jdc,"THER_NON_LINE_MO","TEMP_INIT","NUME_INIT","NUME_ORDRE")
152     renameMotCle(jdc,"THER_NON_LINE_MO","TEMP_INIT","ETAT_INIT",)
153     #########################################################################
154
155     ####################### traitement THER_LINEAIRE ############################
156     renameMotCleInFact(jdc,"THER_LINEAIRE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
157     renameMotCle(jdc,"THER_LINEAIRE","TEMP_INIT","ETAT_INIT",)
158     renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_INIT","NUME_INST_INIT")
159     renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_FIN","NUME_INST_FIN")
160     renameMotCleInFact(jdc,"THER_LINEAIRE","ARCHIVAGE","LIST_ARCH","LIST_INST")
161     #########################################################################
162
163     ####################### traitement THER_NON_LINE ############################
164     renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
165     renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
166     #########################################################################
167
168     ####################### traitement DEFI_CABLE_BP ######################
169     removeMotCle(jdc,"DEFI_CABLE_BP","MAILLAGE")
170     #########################################################################
171
172     ####################### traitement GENE_VARI_ALEA ######################
173     removeMotCleSiRegle(jdc,"GENE_VARI_ALEA","COEF_VAR",((("TYPE","EXPONENTIELLE",jdc),"MCaPourValeur"),))
174     #########################################################################
175
176     ####################### traitement DEFI_MATERIAU ######################
177     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","BAZANT_FD")
178     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","PORO_JOINT")
179     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","APPUI_ELAS")
180     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_EPRI")
181     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_CYRA2")
182     # BARCELONE
183     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","MU","BARCELONE")
184     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PORO","BARCELONE")
185     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","LAMBDA","BARCELONE")
186     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","KAPPA","BARCELONE")
187     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","M","BARCELONE")
188     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PRES_CRIT","BARCELONE")
189     moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","BARCELONE")
190     renameMotCleInFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","KCAM")
191     # CAM_CLAY
192 #    ajouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
193 #    ajouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","CAM_CLAY","PTRAC=XXX",((("CAM_CLAY","KCAM"),"existeMCsousMCF"),))
194     # VENDOCHAB
195     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","S_VP","S")
196     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","N_VP","N")
197     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","M_VP","UN_SUR_M", erreur=1)
198     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","K_VP","UN_SUR_K")
199     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP1","ALPHA_D")
200     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP2","BETA_D")
201     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","S_VP","S")
202     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","N_VP","N")
203     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","M_VP","UN_SUR_M", erreur=1)
204     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","K_VP","UN_SUR_K")
205     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP1","ALPHA_D")
206     renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP2","BETA_D")
207     # GLRC 
208     renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
209     #########################################################################
210
211     ####################### traitement IMPR_MATRICE ######################
212     removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ELEM","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
213     removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ASSE","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
214     #########################################################################
215
216     ####################### traitement MACR_ADAP/INFO_MAIL ######################
217     dadap_mail={ "V8_5":"V9_5", "V8_N":"V9_N", "V8_N_PERSO":"V9_N_PERSO"}
218     changementValeur(jdc,"MACR_ADAP_MAIL","VERSION_HOMARD",dadap_mail)
219     changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",dadap_mail)
220     #########################################################################
221
222     ####################### traitement REST_BASE_PHYS ######################
223     renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_SOUS_STRUC", ((("RESULTAT","SQUELETTE","SOUS_STRUC","BASE_MODALE","CYCLIQUE","SECTEUR"),"existeMCFParmi"),))
224     renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_COND_TRAN", ((("MACR_ELEM_DYNA","RESU_PHYS"),"existeMCFParmi"),))
225     renameCommande(jdc,"REST_BASE_PHYS","REST_GENE_PHYS", )
226     #########################################################################
227
228     ####################### traitement CALC_G ######################
229     removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR",jdc),"MCaPourValeur"),))
230     removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR_GLOB",jdc),"MCaPourValeur"),))
231     removeMotCle(jdc,"CALC_G","PROPAGATION")
232     removeMotCle(jdc,"CALC_G","THETA_LAGR")
233     removeMotCle(jdc,"CALC_G","DIRE_THETA_LAGR")
234     #########################################################################
235
236     ####################### traitement COMB_SISM_MODAL ######################
237     ajouteMotClefDansFacteurSiRegle(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI='DECORRELE'", ((("EXCIT","MONO_APPUI"),"nexistepasMCsousMCF"),))
238     #########################################################################
239
240     ####################### traitement TEST_FICHIER ######################
241     renameMotCleAvecErreur(jdc,"TEST_FICHIER","NB_CHIFFRE","NB_VALE")
242     removeMotCle(jdc,"TEST_FICHIER","EPSILON")
243     #########################################################################
244
245     ####################### traitement CALC_MATR_ELEM ######################
246     removeMotCleSiRegle(jdc,"CALC_MATR_ELEM","OPTION",((("OPTION","RIGI_MECA_LAGR",jdc),"MCaPourValeur"),))
247     removeMotCleAvecErreur(jdc,"CALC_MATR_ELEM","PROPAGATION")
248     removeMotCle(jdc,"CALC_MATR_ELEM","THETA")
249     #########################################################################
250
251     ####################### traitement ITER_INTE_PAS ######################
252     removeMotCleInFactSiRegle(jdc,"STAT_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
253     removeMotCleInFactSiRegle(jdc,"DYNA_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
254     #########################################################################
255
256     ################## traitement RECH_LINEAIRE et PILOTAGE dans DYNA_NON_LINE #################
257     removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","RECH_LINEAIRE")
258     removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","PILOTAGE")
259     #########################################################################
260
261     ####################### traitement DYNA_TRAN_EXPLI ######################
262     renameOper(jdc,"DYNA_TRAN_EXPLI","DYNA_NON_LINE")
263     ajouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TCHAMWA","FORMULATION='ACCELERATION'")
264     ajouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","DIFF_CENT","FORMULATION='ACCELERATION'")
265     #########################################################################
266
267     ####################### traitement SCHEMA_TEMPS dans DYNA_NON_LINE ######################
268     ajouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","NEWMARK","FORMULATION='DEPLACEMENT'")
269     ajouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","HHT","FORMULATION='DEPLACEMENT'")
270     ajouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TETA_METHODE","FORMULATION='DEPLACEMENT'")
271     renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","ALPHA","BETA",)
272     renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","DELTA","GAMMA",)
273     renameMotCleInFact(jdc,"DYNA_NON_LINE","TETA_METHODE","TETA","THETA",)
274     ajouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA='NEWMARK'",((("NEWMARK",),"existeMCFParmi"),))
275     ajouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA='THETA_METHODE'",((("TETA_METHODE",),"existeMCFParmi"),))
276     ajouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","HHT","SCHEMA='HHT'",((("HHT",),"existeMCFParmi"),))
277     ajouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA='TCHAMWA'",((("TCHAMWA",),"existeMCFParmi"),))
278     ajouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA='DIFF_CENT'",((("DIFF_CENT",),"existeMCFParmi"),))
279     renameMotCle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA_TEMPS")
280     renameMotCle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA_TEMPS")
281     renameMotCle(jdc,"DYNA_NON_LINE","HHT","SCHEMA_TEMPS")
282     renameMotCle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA_TEMPS")
283     renameMotCle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA_TEMPS")
284     removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT","EVOLUTION")
285     moveMotClefInOperToFact(jdc,"DYNA_NON_LINE","STOP_CFL","SCHEMA_TEMPS")
286     #########################################################################
287
288     ####################### traitement CONTACT ######################
289     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","KT_ULTM")
290     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","EFFO_N_INIT")
291     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_IRRA")
292     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_FO")
293     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_MZ")
294     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_1")
295     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_2")
296     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_3")
297     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_4")
298     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_1")
299     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_2")
300     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_3")
301     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_4")
302     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","C_PRAGER_MZ")
303     dDis_Choc={"DIS_CONTACT":"DIS_CHOC"}
304     changementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
305     changementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
306     renameMotCleInFact(jdc,"STAT_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
307     renameMotCleInFact(jdc,"DYNA_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
308     dGrilles={"GRILLE_CRAYONS":"DIS_GRICRA"}
309     changementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dGrilles)
310     changementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dGrilles)
311
312     renameCommandeSiRegle(jdc,"AFFE_CHAR_MECA_F","AFFE_CHAR_MECA",((("CONTACT",),"existeMCFParmi"),))
313     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","RECHERCHE")
314     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","PROJECTION")
315     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_Y")
316     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_ORIE_POU")
317     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","MODL_AXIS")
318     dAppariement={"MAIT_ESCL_SYME":"MAIT_ESCL"}
319     changementValeurDsMCF(jdc,"AFFE_CHAR_MECA","CONTACT","APPARIEMENT",dAppariement)
320
321     ajouteMotClefDansFacteurSiRegle(jdc,"AFFE_CHAR_MECA","CONTACT","TYPE_APPA='FIXE'",((("CONTACT","DIRE_APPA",),"existeMCsousMCF"),))
322     #########################################################################
323
324     ####################### traitement CREA_CHAMP ######################
325     chercheOperInsereFacteurSiRegle(jdc,"CREA_CHAMP","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
326     dTypeChamp={"ELEM_ERREUR":"ELEM_ERRE_R"}
327     changementValeur(jdc,"CREA_CHAMP","TYPE_CHAM",dTypeChamp)
328     #########################################################################
329
330     ####################### traitement CALC_NO ######################
331     chercheOperInsereFacteurSiRegle(jdc,"CALC_NO","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
332     #########################################################################
333
334     ######### traitement variables de commandes TEMP_CALCULEE/TEMP_REF ##############
335     genereErreurMotCleInFact(jdc,"AFFE_MATERIAU","AFFE","TEMP_REF")
336     ################################################################################
337
338     ################# traitement LIRE_CHAMP  #######################################
339 #    dTypeChamp={"ELEM_ERREUR":"ELEM_ERRE_R"}
340     changementValeur(jdc,"LIRE_CHAMP","TYPE_CHAM",dTypeChamp)
341     ################################################################################
342
343
344     ######### traitement SUIVI_DDL #################################################
345 # en pre-traitement il faudrait une methode qui separe tous les mots clefs facteurs en les dupliquant
346 # par exemple ici mettre autant de mots clefs facteurs SUIVI_DDL qu'il a de _F
347     ajouteMotClefDansFacteur(jdc,"STAT_NON_LINE","SUIVI_DDL","SUIVI_DDL='OUI'")
348     renameMotCle(jdc,"STAT_NON_LINE","SUIVI_DDL","OBSERVATION")
349 # en post-traitement il faudrait une methode qui fusionne tous les mots clefs facteurs en double
350 # par exemple ici les OBSERVATION
351     ################################################################################
352
353
354     ######### traitement EVOLUTION in STAT/DYNA_NON_LINE ###########################
355     removeMotCleInFact(jdc,"STAT_NON_LINE","INCREMENT","EVOLUTION")
356     removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT","EVOLUTION")
357     ################################################################################
358
359     ######### traitement du MODELE GRILLE ##############################################
360     dGrille={"GRILLE":"GRILLE_EXCENTRE"}
361     changementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dGrille)
362     ################################################################################
363
364     ######### traitement de MACR_ASPIC/ASCOUF_CALC GRILLE ##########################
365     removeMotCle(jdc,"MACR_ASCOUF_CALC","CHARGE")
366     removeMotCle(jdc,"MACR_ASPIC_CALC","CHARGE")
367     ################################################################################
368
369
370     ############ suppression de NON_LOCAL ##########################################
371     removeMotCleAvecErreur(jdc,"STAT_NON_LINE","LAGR_NON_LOCAL")
372     removeMotCleAvecErreur(jdc,"STAT_NON_LINE","SOLV_NON_LOCAL")
373     removeMotCleInFact(jdc,"STAT_NON_LINE","ETAT_INIT","VARI_NON_LOCAL",erreur=1)
374
375     removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","LAGR_NON_LOCAL")
376     removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","SOLV_NON_LOCAL")
377     removeMotCleInFact(jdc,"DYNA_NON_LINE","ETAT_INIT","VARI_NON_LOCAL",erreur=1)
378
379     removeMotCleAvecErreur(jdc,"CALC_PRECONT","LAGR_NON_LOCAL")
380     removeMotCleAvecErreur(jdc,"CALC_PRECONT","SOLV_NON_LOCAL")
381     removeMotCleInFact(jdc,"CALC_PRECONT","ETAT_INIT","VARI_NON_LOCAL",erreur=1)
382     ################################################################################
383
384     ######### traitement de LIRE_INTE_SPEC #########################################
385     renameMotCle(jdc,"LIRE_INTE_SPEC","FORMAT","FORMAT_C")
386     ################################################################################
387
388     ######### traitement de MACR_CARA_POUTRE  ######################################
389     chercheOperInsereFacteurSiRegle(jdc,"MACR_CARA_POUTRE","FORMAT='ASTER'", ((("UNITE_MAILLAGE",),"existe"),),0)
390     renameMotCle(jdc,"MACR_CARA_POUTRE","UNITE_MAILLAGE","UNITE")
391     ################################################################################
392
393     ######### traitement de MACR_LIGN_COUPE  ######################################
394 # il y a un probleme s'il y a plusieurs mots clefs facteurs LIGN_COUPE : la regle ne marche qu'une fois par commande
395     ajouteMotClefDansFacteurSiRegle(jdc,"MACR_LIGN_COUPE","LIGN_COUPE","REPERE='LOCAL'", ((("LIGN_COUPE","VECT_Y",),"existeMCsousMCF"),),0)
396 # autre probleme : s'il y a plusieurs mots clefs facteurs le traducteur peut, dans l'insertion, se tromper de mot clef facteur
397     ajouteMotClefDansFacteurSiRegle(jdc,"MACR_LIGN_COUPE","LIGN_COUPE","TYPE='GROUP_NO'", ((("LIGN_COUPE","GROUP_NO",),"existeMCsousMCF"),),0)
398     ajouteMotClefDansFacteurSiRegle(jdc,"MACR_LIGN_COUPE","LIGN_COUPE","TYPE='GROUP_MA'", ((("LIGN_COUPE","GROUP_MA",),"existeMCsousMCF"),),0)
399     ################################################################################
400
401     ####################### traitement DRUCKER_PRAGER #######################
402     dPRAGER={"DRUCKER_PRAGER":"DRUCK_PRAGER",}
403     changementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dPRAGER)
404     changementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dPRAGER)
405     changementValeurDsMCF(jdc,"SIMU_POINT_MAT","COMP_INCR","RELATION",dPRAGER)
406     changementValeurDsMCF(jdc,"CALC_PRECONT","COMP_INCR","RELATION",dPRAGER)
407     #########################################################################
408
409     ####################### traitement RELATION_KIT #######################
410     dKIT={"ELAS_THER":"ELAS",}
411     changementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION_KIT",dKIT)
412     changementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION_KIT",dKIT)
413     changementValeurDsMCF(jdc,"SIMU_POINT_MAT","COMP_INCR","RELATION_KIT",dKIT)
414     changementValeurDsMCF(jdc,"CALC_PRECONT","COMP_INCR","RELATION_KIT",dKIT)
415     #########################################################################
416
417
418     f=open(outfile,'w')
419     f.write(jdc.getSource())
420     f.close()
421
422     log.ferme(hdlr)
423
424 def main():
425     parser = optparse.Optionparser(usage=usage)
426
427     parser.add_option('-i','--infile', dest="infile", default='toto.comm',
428         help="Le fichier à traduire")
429     parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
430         help="Le fichier traduit")
431
432     options, args = parser.parse_args()
433     traduc(options.infile,options.outfile)
434
435 if __name__ == '__main__':
436     main()
437