Salome HOME
legere difference ds VARIABLES_TO_BE...
[tools/eficas.git] / Traducteur / traduitV11V12.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Copyright (C) 2007-2012   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 traduitV11V12.py --infile=xxxx --outfile=yyyy
26 """
27
28 import log
29 import optparse
30 import sys
31
32 from Traducteur.load   import getJDC
33 from Traducteur.mocles import parseKeywords
34 from Traducteur.removemocle  import *
35 from Traducteur.renamemocle  import *
36 from Traducteur.renamemocle  import *
37 from Traducteur.inseremocle  import *
38 from Traducteur.changeValeur import *
39 from Traducteur.movemocle    import *
40 from Traducteur.dictErreurs  import *
41 from Traducteur.regles import pasDeRegle
42
43 atraiter=(
44           "AFFE_CARA_ELEM",
45           "AFFE_CHAR_MECA",
46           "AFFE_CHAR_MECA_C",
47           "AFFE_CHAR_MECA_F",
48           "AFFE_CHAR_THER",
49           "AFFE_MODELE",
50           "ASSEMBLAGE",
51           "CALC_ESSAI_GEOMECA",
52           "CALC_EUROPLEXUS",
53           "CALC_FATIGUE",
54           "CALC_FERRAILLAGE",
55           "CALC_FONCTION",
56           "CALC_FORC_NONL",
57           "CALC_G",
58           "CALC_IFS_DNL",
59           "CALC_MAC3COEUR",
60           "CALC_MATR_ELEM",
61           "CALC_META",
62           "CALC_MISS",
63           "CALC_MODAL",
64           "CALC_PRECONT",
65           "CALCUL",
66           "CALC_VECT_ELEM",
67           "CREA_MAILLAGE",
68           "DEBUT",
69           "DEFI_COMPOR",
70           "DEFI_FISS_XFEM",
71           "DEFI_LIST_INST",
72           "DEFI_MATER_GC",
73           "DEFI_MATERIAU",
74           "DEFI_OBSTACLE",
75           "DEFI_PART_PA_OPS",
76           "DYNA_NON_LINE",
77           "DYNA_TRAN_MODAL",
78           "DYNA_VIBRA",
79           "EXTR_TABLE",
80           "FACTORISER",
81           "GENE_ACCE_SEISME",
82           "IMPR_MISS_3D",
83           "IMPR_RESU",
84           "INFO_FONCTION",
85           "LIRE_MAILLAGE",
86           "LIRE_MISS_3D",
87           "LIRE_RESU",
88           "MACR_ASCOUF_CALC",
89           "MACR_ASCOUF_MAIL",
90           "MACR_ASPIC_CALC",
91           "MACR_ECREVISSE",
92           "MACR_INFO_MAIL",
93           "MACRO_BASCULE_SCHEMA",
94           "MACRO_MISS_3D",
95           "MACRO_MODE_MECA",
96           "MECA_STATIQUE",
97           "MODE_ITER_INV",
98           "MODE_ITER_SIMULT",
99           "MODI_MAILLAGE",
100           "MODI_MODELE_XFEM",
101           "POST_DYNA_ALEA",
102           "POST_ELEM",
103           "POST_FATIGUE",
104           "POURSUITE",
105           "RECU_FONCTION",
106           "STAT_NON_LINE",
107           "SIMU_POINT_MAT",
108           "TEST_COMPOR",
109           "THER_NON_LINE",
110           "DEFI_PART_FETI"       
111           )
112
113 dict_erreurs={
114               "AFFE_CHAR_MECA_F_ONDE_PLANE_DIRECTION":"Trois valeurs sont nécessaire pour définir la DIRECTION",
115               "CREA_MAILLAGE_ECLA_PG":"Le mot-clé NOM_CHAM est obligatoire",
116               "CALC_EUROPLEXUS_FONC_PARASOL":"Le mot-clé GROUP_MA est obligatoire dans le mot-clé facteur FONC_PARASOL "+
117                                                 "pour l'opérateur CALC_EUROPLEXUS",
118               "CALC_FERRAILLAGE":"Certains mots clés de CALC_FERRAILLAGE / AFFE sont obligatoires. "+
119                                     "Pour TYPE_COMB='ELU' : PIVA et PIVB et ES, ES doit être supérieur à 0. "+
120                                     "Pour TYPE_COMB='ELS' : CEQUI.",
121               "CALC_FONCTION_DSP_FREQ":"Le mot-clé FREQ n'est plus disponible remplacer par LIST_FREQ. La liste de réel \
122                                             doit être obtenu avec DEFI_LIST_REEL",
123               "CALC_MODAL":"La commande CALC_MODAL a été supprimé et remplacer par CALC_MODES",
124               "CREA_MAILLAGE_DETR_GROUP_MA":"Le mot-clé DETR_GROUP_MA n'est plus disponible dans CREA_MAILLAGE. Utiliser la commande "+
125                                                 "DEFI_GROUP a la place, attention celle-ci est réentrante.",
126               "DEFI_COMPOR_POLYCRISTAL":"Le mot-clé MU_LOCA est obligatoire.",
127               "DEFI_FISS_XFEM":"Le mot-clé MAILLAGE est obligatoire",
128               "DEFI_MATER_GC_MAZARS":"Les mot-clés EIJ, EPSI_C, FTJ du mot-clé facteur MAZARS sont obligatoire",
129               "DEFI_MATERIAU_THER_FO":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
130                                 "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
131               "DEFI_MATERIAU_THER_ORTH":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
132                                 "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
133               "DEFI_MATERIAU_THER_NL":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
134                                 "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
135               "DEFI_MATERIAU_THER_HYDR":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
136                                 "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
137               "DEFI_MATERIAU_THER_COQUE":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
138                                 "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
139               "DEFI_MATERIAU_THER_COQUE_FO":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
140                                 "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
141               "DEFI_MATERIAU_DIS_VISC":"Les mot-clés C et PUIS_ALPHA du mot-clé facteur DIS_VISC sont obligatoire.",
142               "GENE_ACCE_SEISME_MODULATION":"Le mot-clé DUREE_PHASE_FORTE est obligatoire.",
143               "IMPR_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
144                                 " CALC_MISS",
145               "INFO_FONCTION_NOCI_SEISME":"Le mot-clé FREQ_FOND est obligatoire.",
146               "LIRE_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
147                                 " CALC_MISS",
148               "MACRO_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
149                                 " CALC_MISS",
150               "RECU_FONCTION_TABLE":"Si la valeur de TABLE est obtenu par GENE_FONC_ALEA remplacer par le mot-clé "
151                                         "INTE_SPEC",
152               "TEST_COMPOR":"La commande TEST_COMPOR produit une table de sortie dans tous les cas.",
153               }
154
155 sys.dict_erreurs=dict_erreurs
156
157 def traduc(infile,outfile,flog=None):
158
159     hdlr=log.initialise(flog)
160     jdc=getJDC(infile,atraiter)
161     root=jdc.root
162
163     #Parse les mocles des commandes
164     parseKeywords(root)
165     
166     ####   Traitement de DEFI_PART_PA_OPS   ##############################
167     GenereErreurPourCommande(jdc,"DEFI_PART_PA_OPS")
168
169     ####   Traitement de AFFE_CARA_ELEM   ##############################
170     ChangementValeurDsMCFSiRegle(jdc,"AFFE_CARA_ELEM","POUTRE","CARA",{"R1":"R_DEBUT","R2":"R_FIN",
171                                         "EP1":"EP_DEBUT","EP2":"EP_FIN"},
172                                     ((("POUTRE","MAILLE",),"nexistepasMCsousMCF"),
173                                     (("POUTRE","SECTION","CERCLE",jdc),"MCsousMCFaPourValeur"),
174                                     (("POUTRE","VARI_SECT","HOMOTHETIQUE",jdc),"MCsousMCFaPourValeur"),
175                                     ),
176                         )
177
178     ####   Traitement de AFFE_CHAR_MECA   ##############################
179     # Suppression du mot-clé METHODE
180     removeMotCle(jdc,"AFFE_CHAR_MECA","METHODE",pasDeRegle(),0)    
181     # Suppression des mot-clés LIAISON_XFEM
182     removeMotCle(jdc,"AFFE_CHAR_MECA","LIAISON_XFEM",pasDeRegle(),0)
183     removeMotCle(jdc,"AFFE_CHAR_MECA","CONTACT_XFEM",pasDeRegle(),0)
184     # Modification des parametres du mot-clé DDL_POUTRE
185     renameMotCleInFact(jdc,"AFFE_CHAR_MECA","DDL_POUTRE","GROUP_MA","GROUP_MA_REPE",pasDeRegle(),0)
186     renameMotCleInFact(jdc,"AFFE_CHAR_MECA","DDL_POUTRE","MAILLE","MAILLE_REPE",pasDeRegle(),0)
187
188     # Résorption des mot-clés ANGLE_NAUT et CENTRE
189     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","LIAISON_SOLIDE","ANGL_NAUT",pasDeRegle(),0)
190     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","LIAISON_SOLIDE","CENTRE",pasDeRegle(),0)
191
192     ####   Traitement de AFFE_CHAR_MECA_F   ##############################
193     # Suppression du mot-clé METHODE
194     removeMotCle(jdc,"AFFE_CHAR_MECA_F","METHODE",pasDeRegle(),0)
195     # Résorption des mot-clés ANGLE_NAUT et CENTRE
196     removeMotCleInFact(jdc,"AFFE_CHAR_MECA_F","LIAISON_SOLIDE","ANGL_NAUT",pasDeRegle(),0)
197     removeMotCleInFact(jdc,"AFFE_CHAR_MECA_F","LIAISON_SOLIDE","CENTRE",pasDeRegle(),0)
198
199     GenereErreurMotCleInFact(jdc,"AFFE_CHAR_MECA_F","ONDE_PLANE","DIRECTION")
200
201     ####   Traitement de AFFE_CHAR_THER   ##############################
202     # Suppression du mot-clé METHODE
203     removeMotCle(jdc,"AFFE_CHAR_THER","METHODE",pasDeRegle(),0)
204
205     ####   Traitement de AFFE_MODELE   ##############################
206     # Suppression des mot-clés GRILLE et VERIF
207     removeMotCle(jdc,"AFFE_MODELE","GRILLE",pasDeRegle(),0)
208     removeMotCle(jdc,"AFFE_MODELE","VERIF",pasDeRegle(),0)
209
210     d3DINCO={"3D_INCO":"3D_INCO_UP","3D_INCO_OSGS":"3D_INCO_UPO",
211             "3D_INCO_GD":"3D_INCO_UPG","3D_INCO_LOG":"3D_INCO_UPG",
212             "3D_INCO_LUP":"3D_INCO_UP",}
213     dAXIS={"AXIS_INCO":"AXIS_INCO_UP","AXIS_INCO_OSGS":"AXIS_INCO_UPO",
214            "AXIS_INCO_GD":"AXIS_INCO_UPG","AXIS_INCO_LOG":"AXIS_INCO_UPG",
215            "AXIS_INCO_LUP":"AXIS_INCO_UP",}
216     dDPLAN={"D_PLAN_INCO":"D_PLAN_INCO_UP","D_PLAN_INCO_OSGS":"D_PLAN_INCO_UPO",
217             "D_PLAN_INCO_GD":"D_PLAN_INCO_UPG","D_PLAN_INCO_LOG":"D_PLAN_INCO_UPG",
218             "D_PLAN_INCO_LUP":"D_PLAN_INCO_UP",}
219     dINCO={}
220     dINCO.update(d3DINCO)
221     dINCO.update(dAXIS)
222     dINCO.update(dDPLAN)
223     ChangementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dINCO)
224
225     ####   Traitement de ASSEMBLAGE   ##############################
226     GenereErreurValeurDsMCF(jdc,"ASSEMBLAGE","MATR_ASSE","OPTION",("'MASS_THER'",))
227
228     ####   Traitement de CALC_ESSAI_GEOMECA   ##############################
229     renameMotCleInFact(jdc,"CALC_ESSAI_GEOMECA","ESSAI_CISA_C","EPSI_IMPOSE","GAMMA_IMPOSE",pasDeRegle(),0)
230     renameMotCleInFact(jdc,"CALC_ESSAI_GEOMECA","ESSAI_CISA_C","EPSI_ELAS","GAMMA_ELAS",pasDeRegle(),0)
231
232     ####   Traitement de CALC_EUROPLEXUS   ##############################
233     removeMotCle(jdc,"CALC_EUROPLEXUS","DIME",pasDeRegle(),0)
234     GenereErreurMCF(jdc,"CALC_EUROPLEXUS","FONC_PARASOL")
235     removeMotCleInFact(jdc,"CALC_EUROPLEXUS","ARCHIVAGE","CONT_GENER")
236
237     ####   Traitement de CALC_FERRAILLAGE   ##############################
238     GenereErreurPourCommande(jdc,"CALC_FERRAILLAGE")
239
240     ####   Traitement de CALC_FONCTION   ##############################
241     AjouteMotClefDansFacteur(jdc,"CALC_FONCTION","CORR_ACCE","METHODE='POLYNOME'",pasDeRegle(),0)
242     GenereErreurMotCleInFact(jdc,"CALC_FONCTION","DSP","FREQ")
243
244     ####   Traitement de CALC_G   ##############################
245     removeMotCleInFact(jdc,"CALC_G","COMP_ELAS","RESI_INTE_RELA",pasDeRegle(),0)
246     removeMotCleInFact(jdc,"CALC_G","COMP_ELAS","ITER_INTE_MAXI",pasDeRegle(),0)
247
248     ####   Traitement de CALC_FATIGUE   ##############################
249     ChangementValeur(jdc,"CALC_FATIGUE","COURBE_GRD_VIE",{"MANSON_C":"MANSON_COFFIN",})
250
251     ####   Traitement de CALC_IFS_DNL   ##############################
252     removeMotCle(jdc,"CALC_IFS_DNL","ENERGIE",pasDeRegle(),0)
253
254     ####   Traitement de CALC_MAC3COEUR   ##############################
255     AjouteMotClefDansFacteur(jdc,"CALC_MAC3COEUR","DEFORMATION","ARCHIMEDE = 'OUI'",pasDeRegle())
256
257     ####   Traitement de CALC_MATR_ELEM   ##############################
258     GenereErreurValeur(jdc,"CALC_MATR_ELEM","OPTION",("'MASS_THER'",))
259
260     ####   Traitement de CALC_MISS   ##############################
261     GenereErreurValeurDsMCF(jdc,"CALC_MISS","PARAMETRE","ISSF",("'OUI'",))
262
263     ####   Traitement de CALC_MODAL   ##############################
264     # renameCommande(jdc,"CALC_MODAL","CALC_MODES", )
265     GenereErreurPourCommande(jdc,"CALC_MODAL")
266
267     ####   Traitement de CALC_VECT_ELEM   ##############################
268     GenereErreurValeur(jdc,"CALC_VECT_ELEM","OPTION",("'FORC_NODA'",))
269
270     ####   Traitement de CREA_MAILLAGE   ##############################
271     renameMotCle(jdc,"CREA_MAILLAGE","CREA_GROUP_MA","CREA_MAILLE")
272     GenereErreurMCF(jdc,"CREA_MAILLAGE","ECLA_PG")
273     
274     lMCLEF=['COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
275     'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE','QUAD_LINE', 
276     'REPERE','RESTREINT','PENTA15_18']
277     GenereErreurMCF(jdc,"CREA_MAILLAGE","DETR_GROUP_MA")
278     removeMotCleInFactSiRegle(jdc,"CREA_MAILLAGE","DETR_GROUP_MA","NB_MAILLE",((lMCLEF,"nexistepasMCFParmi"),))
279     renameMotCleInFactSiRegle(jdc,"CREA_MAILLAGE","DETR_GROUP_MA","GROUP_MA","NOM",((lMCLEF,"nexistepasMCFParmi"),))
280     renameCommandeSiRegle(jdc,"CREA_MAILLAGE","DEFI_GROUP",((lMCLEF,"nexistepasMCFParmi"),))
281
282     ####   Traitement de DEBUT   ##############################
283     # GenereErreurPourCommande(jdc,("DEBUT",))
284     removeMotCleInFact(jdc,"DEBUT","CODE","NOM",pasDeRegle(),0)
285
286     ####   Traitement de DEFI_COMPOR   ##############################
287     GenereErreurValeur(jdc,"DEFI_COMPOR","LOCALISATION",["'RL'",]) 
288     GenereErreurValeur(jdc,"DEFI_COMPOR","RELATION_KIT",["'RVMIS_ISOT_CINE'",])
289     GenereErreurValeurDsMCF(jdc,"DEFI_COMPOR","MULTIFIBRE","RELATION",["'LABORD_1D'"])
290     GenereErreurMCF(jdc,"DEFI_COMPOR","POLYCRISTAL")
291
292     ####   Traitement de DEFI_FISS_XFEM   ##############################
293     GenereErreurPourCommande(jdc,("DEFI_FISS_XFEM",))
294     removeMotCle(jdc,"DEFI_FISS_XFEM","MODELE",pasDeRegle(),0)
295     removeMotCle(jdc,"DEFI_FISS_XFEM","MODELE_GRILLE",pasDeRegle(),0)
296
297     ####   Traitement de DEFI_LIST_INST   ##############################
298     ChangementValeurDsMCF(jdc,"DEFI_LIST_INST","ECHEC","ACTION",{"REAC_PRECOND":"DECOUPE"})
299
300     ####   Traitement de DEFI_MATER_GC   ##############################
301     AjouteMotClefDansFacteur(jdc,"DEFI_MATER_GC","MAZARS","CODIFICATION='ESSAI'",pasDeRegle(),0)
302
303     removeMotCleInFactSiRegle(jdc,"DEFI_MATER_GC","MAZARS","UNITE_LONGUEUR",
304                                     ((("MAZARS","CODIFICATION",["ESSAI"],jdc),"MCsousMCFaPourValeurDansListe"),),)
305     renameMotCleInFact(jdc,"DEFI_MATER_GC","MAZARS","UNITE_LONGUEUR","UNITE_CONTRAINTE")
306     ChangementValeurDsMCF(jdc,"DEFI_MATER_GC","MAZARS","UNITE_CONTRAINTE",{"MM":"MPa"})
307     ChangementValeurDsMCF(jdc,"DEFI_MATER_GC","MAZARS","UNITE_CONTRAINTE",{"M":"Pa"})
308
309     GenereErreurMCF(jdc,"DEFI_MATER_GC","MAZARS")
310
311     ####   Traitement de DEFI_MATERIAU   ##############################
312     lMLA=["F_MRR_RR", "C_MRR_RR", "F_MTT_TT", "C_MTT_TT", "F_MZZ_ZZ", 
313            "C_MZZ_ZZ", "F_MRT_RT", "C_MRT_RT", "F_MRZ_RZ", "C_MRZ_RZ", 
314            "F_MTZ_TZ", "C_MTZ_TZ",]
315     for param in lMLA:
316         removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI",param,pasDeRegle(),0)
317         removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI_FO",param,pasDeRegle(),0)
318
319     lMDC=["BETA","DELTA1", "DELTA2", "DEPDT",]
320     for mcle in lMDC:
321         removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC",mcle,pasDeRegle(),0)
322         removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC_IRRA",mcle,pasDeRegle(),0)
323     
324     removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT","NB_VALE",pasDeRegle(),0)
325     removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO","NB_VALE",pasDeRegle(),0)
326     liste_mc=["C"+str(i) for i in range(1,198)]
327     FusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT",liste_mc,"LISTE_COEF")
328     FusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO",liste_mc,"LISTE_COEF")
329     
330     removeMotCle(jdc,"DEFI_MATERIAU","LABORD_1D",pasDeRegle(),0) 
331     
332     GenereErreurMCF(jdc,"DEFI_MATERIAU","DIS_VISC")
333     lDISC=["PUIS_DX", "PUIS_DY", "PUIS_DZ", "PUIS_RX", "PUIS_RY", "PUIS_RZ",
334      "COEF_DX", "COEF_DY", "COEF_DZ", "COEF_RX", "COEF_RY", "COEF_RZ"]
335     for param in lDISC:
336         removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_VISC",param,pasDeRegle(),0)
337
338     lTHMD=["PERMIN_X", "PERMIN_Y", "PERMIN_Z", "PERMINXY", "PERMINYZ", "PERMINZX",]
339     for param in lTHMD:
340         removeMotCleInFact(jdc,"DEFI_MATERIAU","THM_DIFFU",param,pasDeRegle(),0)
341
342     # lMONODD=["DELTA1", "DELTA2"]
343     # for param in lMONODD:
344         # removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC",param,pasDeRegle(),0)
345         # removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC_IRRA",param,pasDeRegle(),0)
346
347     removeMotCleInFact(jdc,"DEFI_MATERIAU","GLRC_DM","EF",pasDeRegle(),0)
348     removeMotCleInFact(jdc,"DEFI_MATERIAU","GLRC_DM","NUF",pasDeRegle(),0)
349
350     GenereErreurMCF(jdc,"DEFI_MATERIAU","THER_FO")
351     GenereErreurMCF(jdc,"DEFI_MATERIAU","THER_NL")
352     GenereErreurMCF(jdc,"DEFI_MATERIAU","THER_HYDR")
353     GenereErreurMCF(jdc,"DEFI_MATERIAU","THER_COQUE")
354     GenereErreurMCF(jdc,"DEFI_MATERIAU","THER_COQUE_FO")
355
356
357     ####   Traitement de DEFI_OBSTACLE   ##############################
358     lMCLE=("CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
359     "GUID_B_CARTE_900","GUID_C_CARTE_900","GUID_D_CARTE_900","GUID_E_CARTE_900",
360     "GUID_F_CARTE_900","GUID_A_CARTE_1300","GUID_B_CARTE_1300","GUID_C_CARTE_1300",
361     "GUID_D_CARTE_1300","GUID_E_CARTE_1300","GUID_F_CARTE_1300","GUID_A_CARSP_900",
362     "GUID_B_CARSP_900","GUID_C_CARSP_900","GUID_D_CARSP_900","GUID_E_CARSP_900",
363     "GUID_F_CARSP_900","GUID_A_CARSP_1300","GUID_B_CARSP_1300","GUID_C_CARSP_1300",
364     "GUID_D_CARSP_1300","GUID_E_CARSP_1300","GUID_F_CARSP_1300","GUID_A_GCONT_900",
365     "GUID_B_GCONT_900","GUID_C_GCONT_900","GUID_D_GCONT_900","GUID_E_GCONT_900",
366     "GUID_F_GCONT_900","GUID_A_GCONT_1300","GUID_B_GCONT_1300","GUID_C_GCONT_1300",
367     "GUID_D_GCONT_1300","GUID_E_GCONT_1300","GUID_F_GCONT_1300","GUID_A_GCOMB_900",
368     "GUID_B_GCOMB_900","GUID_C_GCOMB_900","GUID_D_GCOMB_900","GUID_E_GCOMB_900",
369     "GUID_F_GCOMB_900","GUID_A_GCOMB_1300","GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
370     "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300","GUID_F_GCOMB_1300",)
371     GenereErreurValeur(jdc,"DEFI_OBSTACLE","TYPE",lMCLE)
372
373     ####   Traitement de DYNA_TRAN_MODAL   ##############################
374     removeMotCle(jdc,"DYNA_TRAN_MODAL","LAME_FLUIDE",pasDeRegle(),0)
375     removeMotCle(jdc,"DYNA_TRAN_MODAL","PARA_LAME_FLUI",pasDeRegle(),0)
376     removeMotCle(jdc,"DYNA_TRAN_MODAL","RELA_TRANSIS",pasDeRegle(),0)
377
378     ####   Traitement de DYNA_VIBRA   ##############################
379     removeMotCle(jdc,"DYNA_VIBRA","LAME_FLUIDE",pasDeRegle(),0)
380     removeMotCle(jdc,"DYNA_VIBRA","PARA_LAME_FLUI",pasDeRegle(),0)
381     removeMotCle(jdc,"DYNA_VIBRA","RELA_TRANSIS",pasDeRegle(),0)
382
383     ####   Traitement de EXTR_TABLE   ##############################
384     ChangementValeurDsMCF(jdc,"EXTR_TABLE","FILTRE","VALE_K",{"MATR_ELEM":"MATR_TANG_ELEM"})
385     ChangementValeurDsMCF(jdc,"EXTR_TABLE","FILTRE","VALE_K",{"CODE_RETOUR":"CODE_RETOUR_INTE"})
386     
387     ####   Traitement de FACTORISER   ##############################
388     renameMotCle(jdc,"FACTORISER","ELIM_LAGR2","ELIM_LAGR")
389     ChangementValeur(jdc,"FACTORISER","ELIM_LAGR",{"OUI":"LAGR2",})
390
391     ####   Traitement de GENE_ACCE_SEISME   ##############################
392     GenereErreurMCF(jdc,"GENE_ACCE_SEISME","MODULATION")
393     moveMotCleFromFactToFather(jdc,"GENE_ACCE_SEISME","MODULATION","DUREE_PHASE_FORTE")
394
395
396     removeMotCleInFact(jdc,"GENE_ACCE_SEISME","MODULATION","PARA")
397     removeMotCleInFactSiRegle(jdc,"GENE_ACCE_SEISME","MODULATION","INST_INI",((("MODULATION","TYPE",["GAMMA"],jdc),"MCsousMCFnaPasPourValeurDansListe"),))
398
399     removeMotCleInFact(jdc,"GENE_ACCE_SEISME","DSP","FREQ_PENTE")
400
401     ####   Traitement de IMPR_MISS_3D   ##############################
402     GenereErreurPourCommande(jdc,"IMPR_MISS_3D")
403     # removeCommande(jdc,"IMPR_MISS_3D")
404
405     ####   Traitement de IMPR_RESU   ##############################
406     removeMotCle(jdc,"IMPR_RESU","RESTREINT",pasDeRegle(),0)
407
408     ####   Traitement de INFO_FONCTION   ##############################
409     GenereErreurMCF(jdc,"INFO_FONCTION","NOCI_SEISME")
410
411     ####   Traitement de LIRE_MAILLAGE   ##############################
412     removeMotCle(jdc,"LIRE_MAILLAGE","ABSC_CURV",pasDeRegle(),0)
413
414     ####   Traitement de LIRE_MISS_3D   ##############################
415     GenereErreurPourCommande(jdc,"LIRE_MISS_3D")
416
417     ####   Traitement de MACR_ASCOUF_CALC   ##############################
418     removeMotCle(jdc,"MACR_ASCOUF_CALC","CL_BOL_P2_GV",pasDeRegle(),0)
419     # GenereErreurMCF(jdc,"MACR_ASCOUF_CALC","COMP_ELAS")
420
421     ####   Traitement de MACR_ASCOUF_MAIL   ##############################
422     GenereErreurValeurDsMCF(jdc,"MACR_ASCOUF_MAIL","COUDE","BOL_P2",("'GV'",))
423
424     ####   Traitement de MACR_ASPIC_CALC   ##############################
425     # GenereErreurMCF(jdc,"MACR_ASPIC_CALC","COMP_ELAS")
426
427     ####   Traitement de MACR_ECREVISSE   ##############################
428     GenereErreurMCF(jdc,"MACR_ECREVISSE","COMP_INCR")
429
430     ####   Traitement de MACR_INFO_MAIL   ##############################    
431     ChangementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_6":"V11_2"})
432     ChangementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_N":"V11_N"})
433     ChangementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_N_PERSO":"V11_N_PERSO"})
434
435     ####   Traitement de MACRO_BASCULE_SCHEMA   ##############################
436     renameMotCle(jdc,"MACRO_BASCULE_SCHEMA","COMP_INCR_IMPL","COMPORTEMENT_IMPL",pasDeRegle())
437     renameMotCle(jdc,"MACRO_BASCULE_SCHEMA","COMP_INCR_EXPL","COMPORTEMENT_EXPL",pasDeRegle())
438
439     ####   Traitement de MACRO_MISS_3D   ##############################
440     GenereErreurPourCommande(jdc,"MACRO_MISS_3D")
441
442     ####   Traitement de MACRO_MODE_MECA   ##############################
443     # insereMotCleDansCommande(jdc,"MACRO_MODE_MECA","TYPE_RESU='DYNAMIQUE'")
444     chercheOperInsereFacteur(jdc,"MACRO_MODE_MECA","SOLVEUR_MODAL",)
445     chercheOperInsereFacteur(jdc,"MACRO_MODE_MECA","OPTION='BANDE'",pasDeRegle(),0)
446     chercheOperInsereFacteurSiRegle(jdc,"MACRO_MODE_MECA","NORM_MODE",((("NORM_MODE",),"nexistepas"),),1)
447
448     lMCLE=["PREC_SOREN", "NMAX_ITER_SOREN", "PARA_ORTHO_SOREN"]
449     for mcle in lMCLE:
450         moveMotClefInOperToFact(jdc,"MACRO_MODE_MECA",mcle,"SOLVEUR_MODAL")
451
452     moveMotCleFromFactToFact(jdc,"MACRO_MODE_MECA","CALC_FREQ","COEF_DIM_ESPACE","SOLVEUR_MODAL")
453     moveMotCleFromFactToFact(jdc,"MACRO_MODE_MECA","CALC_FREQ","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
454     renameCommande(jdc,"MACRO_MODE_MECA","CALC_MODES", )
455
456     ####   Traitement de MODE_ITER_INV   ##############################
457     chercheOperInsereFacteur(jdc,"MODE_ITER_INV","SOLVEUR_MODAL",)
458     moveMotCleFromFactToFather(jdc,"MODE_ITER_INV","CALC_FREQ","OPTION")
459     moveMotCleFromFactToFather(jdc,"MODE_ITER_INV","CALC_CHAR_CRIT","OPTION")
460
461     lINV=["OPTION", "PREC", "NMAX_ITER",]
462     for mcle in lINV:
463         renameMotCleInFact(jdc,"MODE_ITER_INV","CALC_MODE",mcle,mcle+"_INV",pasDeRegle(),0)
464         moveMotCleFromFactToFact(jdc,"MODE_ITER_INV","CALC_MODE",mcle+"_INV","SOLVEUR_MODAL")
465
466     lMCLE=["NMAX_ITER_AJUSTE","PREC_AJUSTE",]
467     for mcle in lMCLE:
468         moveMotCleFromFactToFact(jdc,"MODE_ITER_INV","CALC_FREQ",mcle,"SOLVEUR_MODAL")
469     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","PREC_JACOBI","SOLVEUR_MODAL")
470     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","PREC_BATHE","SOLVEUR_MODAL")
471     
472     removeMotCle(jdc,"MODE_ITER_INV","CALC_MODE",pasDeRegle(),0)
473
474     chercheOperInsereMotCleSiRegle(jdc,"MODE_ITER_INV","OPTION='AJUSTE'",((("OPTION",),"nexistepas"),),0)
475
476     renameCommande(jdc,"MODE_ITER_INV","CALC_MODES", )
477
478     ####   Traitement de MODE_ITER_SIMULT   ##############################
479     chercheOperInsereFacteur(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL",)
480     removeMotCleSiRegle(jdc,"MODE_ITER_SIMULT","OPTION",((("METHODE","TRI_DIAG",jdc),"MCnaPasPourValeur"),),)
481     removeMotCleSiRegle(jdc,"MODE_ITER_SIMULT","OPTION",((("OPTION","SANS",jdc),"MCaPourValeur"),),)
482     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","OPTION","SOLVEUR_MODAL")
483     ChangementValeurDsMCF(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL","OPTION",{"MODE_RIGIDE":"OUI"})
484     renameMotCleInFact(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL","OPTION","MODE_RIGIDE")
485     moveMotCleFromFactToFather(jdc,"MODE_ITER_SIMULT","CALC_FREQ","OPTION")
486     moveMotCleFromFactToFather(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","OPTION")
487
488     # chercheOperInsereFacteurSiRegle(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL",((("METHODE",),"existe"),),1)
489     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","METHODE","SOLVEUR_MODAL")
490     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","TYPE_QZ","SOLVEUR_MODAL")
491     moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","NMAX_ITER_BATHE","SOLVEUR_MODAL")
492     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","COEF_DIM_ESPACE","SOLVEUR_MODAL")
493     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
494     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","COEF_DIM_ESPACE","SOLVEUR_MODAL")
495     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
496     
497     removeMotCleInFactSiRegle(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE",
498                                     ((("SOLVEUR_MODAL","METHODE",["QZ"],jdc),"MCsousMCFnaPasPourValeurDansListe")or
499                                      (("SOLVEUR_MODAL","METHODE",),"nexistepasMCsousMCF"),
500                                     )
501                             )
502
503     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE","SOLVEUR_MODAL")
504     moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","APPROCHE","SOLVEUR_MODAL")
505
506     lMCLE=["PREC_SOREN", "NMAX_ITER_SOREN", "PARA_ORTHO_SOREN"]
507     for mcle in lMCLE:
508         moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT",mcle,"SOLVEUR_MODAL")
509
510     lMCLE=["NMAX_ITER_QR", "PREC_ORTHO", "NMAX_ITER_ORTHO", "PREC_LANCZOS"]
511     for mcle in lMCLE:
512         moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT",mcle,"SOLVEUR_MODAL")
513
514
515     renameCommande(jdc,"MODE_ITER_SIMULT","CALC_MODES", )
516
517     ####   Traitement de MODI_MAILLAGE   ##############################
518     GenereErreurValeurDsMCF(jdc,"MODI_MAILLAGE","DEFORME","OPTION",("'TRAN_APPUI'",))
519     removeMotCleInFact(jdc,"MODI_MAILLAGE","DEFORME",["GROUP_NO_APPUI"],pasDeRegle(),0)
520     removeMotCleInFact(jdc,"MODI_MAILLAGE","DEFORME",["GROUP_NO_STRU"],pasDeRegle(),0)
521
522     ####   Traitement de MODI_MODELE_XFEM   ##############################
523     ChangementValeur(jdc,"MODI_MODELE_XFEM","CONTACT",{"P1P1":"STANDARD",})
524     ChangementValeur(jdc,"MODI_MODELE_XFEM","CONTACT",{"P2P1":"STANDARD",})
525
526
527     ####   Traitement de POST_DYNA_ALEA   ##############################
528     chercheOperInsereFacteurSiRegle(jdc,"POST_DYNA_ALEA","INTERSPECTRE",((("INTE_SPEC",),"existe"),),1)
529     lPDA=["INTE_SPEC", "NUME_ORDRE_I", "NOEUD_I", "OPTION", "NUME_ORDRE_J",
530           "NOEUD_J", "NOM_CMP_I", "NOM_CMP_J", "MOMENT", "DUREE"]
531     for mcle in lPDA:
532         moveMotClefInOperToFact(jdc,"POST_DYNA_ALEA",mcle,"INTERSPECTRE")
533     removeMotCle(jdc,"POST_DYNA_ALEA","TOUT_ORDRE",pasDeRegle(),0)
534
535     AjouteMotClefDansFacteur(jdc,"POST_DYNA_ALEA","FRAGILITE","METHODE = 'EMV'",pasDeRegle())
536
537     ####   Traitement de POST_ELEM   ##############################
538     AjouteMotClefDansFacteurSiRegle(jdc,"POST_ELEM","VOLUMOGRAMME","NB_INTERV=5",
539                                 ((("VOLUMOGRAMME","NB_INTERV",),"nexistepasMCsousMCF"),),)
540
541     ####   Traitement de POST_FATIGUE   ##############################
542     ChangementValeur(jdc,"POST_FATIGUE","DOMMAGE",{"MANSON_C":"MANSON_COFFIN",})
543
544     ####   Traitement de POURSUITE   ##############################
545     removeMotCle(jdc,"POURSUITE","CODE",)#"NOM",pasDeRegle(),0)
546
547     ####   Traitement de RECU_FONCTION   ##############################
548     GenereErreurMCF(jdc,"RECU_FONCTION","TABLE")
549
550     ####   Traitement de C_COMP_INCR et C_COMP_ELAS   ##############################
551     lCOM=["CALCUL","STAT_NON_LINE","CALC_G", "CALC_PRECONT","DYNA_NON_LINE","CALC_META",
552           "TEST_COMPOR","SIMU_POINT_MAT","CALC_ESSAI_GEOMECA","CALC_FORC_NONL","LIRE_RESU",
553           "MACR_ASCOUF_CALC","MACR_ASPIC_CALC","CALC_EUROPLEXUS","MACR_ECREVISSE",]
554     for com in lCOM:
555         # chercheOperInsereFacteurSiRegle(jdc,com,"COMPORTEMENT",(((["COMPORTEMENT"],),"nexistepasMCFParmi"),),1)
556         FusionMCFToMCF(jdc,com,["COMP_ELAS","COMP_INCR"],"COMPORTEMENT")
557         # renameMotCle(jdc,com,"COMP_ELAS","COMPORTEMENT")
558         # renameMotCle(jdc,com,"COMP_INCR","COMPORTEMENT")
559         chercheOperInsereFacteurSiRegle(jdc,com,"ETAT_INIT",((("COMPORTEMENT","SIGM_INIT",),"existeMCsousMCF"),),1)
560         moveMotCleFromFactToFact(jdc,com,"COMPORTEMENT","SIGM_INIT","ETAT_INIT")
561         renameMotCleInFact(jdc,com,"ETAT_INIT","SIGM_INIT","SIGM",pasDeRegle(),0)
562         removeMotCleInFact(jdc,com,"COMPORTEMENT","SIGM_INIT",pasDeRegle(),0)
563
564         ChangementValeur(jdc,com,"OPTION",{"FORC_INT_ELEM":"FORC_INTE_ELEM"})
565
566         removeMotCleInFactSiRegle(jdc,com,"COMPORTEMENT","NB_VARI",((("COMPORTEMENT","RELATION","'MFRONT'",jdc),"MCsousMCFaPourValeur"),))
567         
568
569     ####   Traitement de TEST_COMPOR   ##############################
570     GenereErreurPourCommande(jdc,"TEST_COMPOR")
571
572     ####   Traitement de THER_NON_LINE   ##############################
573     renameMotCle(jdc,"THER_NON_LINE","COMP_THER_NL","COMPORTEMENT")
574
575     ####   Traitement de C_SOLVEUR   ##############################
576     lCOM=['CALC_ERREUR', 'CALC_FORC_AJOU', 'CALC_IFS_DNL', 'CALC_MATR_AJOU', 'CALC_PRECONT',
577         'CREA_ELEM_SSD', 'DEFI_BASE_MODALE', 'DYNA_LINE_HARM', 'DYNA_LINE_TRAN', 'DYNA_NON_LINE', 
578         'DYNA_TRAN_MODAL', 'INFO_MODE', 'MACR_ASCOUF_CALC', 'MACR_ASPIC_CALC', 'MACRO_BASCULE_SCHEMA', 
579         'MACRO_MATR_AJOU', 'MECA_STATIQUE', 'MODE_ITER_SIMULT', 'MODE_ITER_INV', 'MODE_STATIQUE', 
580         'STAT_NON_LINE', 'THER_LINEAIRE', 'THER_NON_LINE', 'THER_NON_LINE_MO', 'CALC_ERC_DYN','CALC_MODES',]
581     for com in lCOM:
582         # Suppression de ELIM_LAGR2
583         ChangementValeurDsMCF(jdc,com,"SOLVEUR","ELIM_LAGR2",{"OUI":"LAGR2"})
584         removeMotCleInFactSiRegle(jdc,com,"SOLVEUR","ELIM_LAGR2",((("SOLVEUR","ELIM_LAGR2","NON",jdc),"MCsousMCFaPourValeur"),))
585         renameMotCleInFact(jdc,com,"SOLVEUR","ELIM_LAGR2","ELIM_LAGR")
586
587         # Suppression de la méthode FETI
588         GenereErreurValeurDsMCF(jdc,com,"SOLVEUR","METHODE",["FETI"])
589         lMCLE=["NB_REORTHO_DD","NMAX_ITER","INFO_FETI","RESI_RELA","PARTITION"]
590         for mocle in lMCLE:
591             GenereErreurMotCleInFact(jdc,com,"SOLVEUR",mocle)
592     
593     ####   Traitement de DEFI_PART_FETI   ##############################
594     GenereErreurMCF(jdc,"DEFI_PART_FETI","EXCIT")
595     removeMotCle(jdc,"DEFI_PART_FETI","EXCIT",pasDeRegle(),0)
596     removeMotCle(jdc,"DEFI_PART_FETI","CORRECTION_CONNEX",pasDeRegle(),0)    
597     GenereErreurPourCommande(jdc,"DEFI_PART_FETI")
598     renameCommande(jdc,"DEFI_PART_FETI","DEFI_PARTITION", )
599
600     #################################################################
601     f=open(outfile,'w')
602     f.write(jdc.getSource())
603     f.close()
604
605     log.ferme(hdlr)
606
607 def main():
608     parser = optparse.OptionParser(usage=usage)
609
610     parser.add_option('-i','--infile', dest="infile", default='toto.comm',
611         help="Le fichier à traduire")
612     parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
613         help="Le fichier traduit")
614
615     options, args = parser.parse_args()
616     traduc(options.infile,options.outfile)
617
618 if __name__ == '__main__':
619     main()