2 # -*- coding: utf-8 -*-
3 # Copyright (C) 2007-2021 EDF R&D
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.
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.
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
19 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 usage="""usage: %prog [options]
25 python traduitV11V12.py --infile=xxxx --outfile=yyyy
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
93 "MACRO_BASCULE_SCHEMA",
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"+
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"+
148 "MACRO_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
150 "RECU_FONCTION_TABLE":"Si la valeur de TABLE est obtenu par GENE_FONC_ALEA remplacer par le mot-clé "
152 "TEST_COMPOR":"La commande TEST_COMPOR produit une table de sortie dans tous les cas.",
155 sys.dict_erreurs=dict_erreurs
157 def traduc(infile,outfile,flog=None):
159 hdlr=log.initialise(flog)
160 jdc=getJDC(infile,atraiter)
163 #Parse les mocles des commandes
166 #### traitement de DEFI_PART_PA_OPS ##############################
167 genereErreurPourCommande(jdc,"DEFI_PART_PA_OPS")
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"),
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)
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)
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)
199 genereErreurMotCleInFact(jdc,"AFFE_CHAR_MECA_F","ONDE_PLANE","DIRECTION")
201 #### traitement de AFFE_CHAR_THER ##############################
202 # Suppression du mot-clé METHODE
203 removeMotCle(jdc,"AFFE_CHAR_THER","METHODE",pasDeRegle(),0)
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)
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",}
220 dINCO.update(d3DINCO)
223 changementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dINCO)
225 #### traitement de ASSEMBLAGE ##############################
226 genereErreurValeurDsMCF(jdc,"ASSEMBLAGE","MATR_ASSE","OPTION",("'MASS_THER'",))
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)
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")
237 #### traitement de CALC_FERRAILLAGE ##############################
238 genereErreurPourCommande(jdc,"CALC_FERRAILLAGE")
240 #### traitement de CALC_FONCTION ##############################
241 ajouteMotClefDansFacteur(jdc,"CALC_FONCTION","CORR_ACCE","METHODE='POLYNOME'",pasDeRegle(),0)
242 genereErreurMotCleInFact(jdc,"CALC_FONCTION","DSP","FREQ")
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)
248 #### traitement de CALC_FATIGUE ##############################
249 changementValeur(jdc,"CALC_FATIGUE","COURBE_GRD_VIE",{"MANSON_C":"MANSON_COFFIN",})
251 #### traitement de CALC_IFS_DNL ##############################
252 removeMotCle(jdc,"CALC_IFS_DNL","ENERGIE",pasDeRegle(),0)
254 #### traitement de CALC_MAC3COEUR ##############################
255 ajouteMotClefDansFacteur(jdc,"CALC_MAC3COEUR","DEFORMATION","ARCHIMEDE = 'OUI'",pasDeRegle())
257 #### traitement de CALC_MATR_ELEM ##############################
258 genereErreurValeur(jdc,"CALC_MATR_ELEM","OPTION",("'MASS_THER'",))
260 #### traitement de CALC_MISS ##############################
261 genereErreurValeurDsMCF(jdc,"CALC_MISS","PARAMETRE","ISSF",("'OUI'",))
263 #### traitement de CALC_MODAL ##############################
264 # renameCommande(jdc,"CALC_MODAL","CALC_MODES", )
265 genereErreurPourCommande(jdc,"CALC_MODAL")
267 #### traitement de CALC_VECT_ELEM ##############################
268 genereErreurValeur(jdc,"CALC_VECT_ELEM","OPTION",("'FORC_NODA'",))
270 #### traitement de CREA_MAILLAGE ##############################
271 renameMotCle(jdc,"CREA_MAILLAGE","CREA_GROUP_MA","CREA_MAILLE")
272 genereErreurMCF(jdc,"CREA_MAILLAGE","ECLA_PG")
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"),))
282 #### traitement de DEBUT ##############################
283 # genereErreurPourCommande(jdc,("DEBUT",))
284 removeMotCleInFact(jdc,"DEBUT","CODE","NOM",pasDeRegle(),0)
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")
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)
297 #### traitement de DEFI_LIST_INST ##############################
298 changementValeurDsMCF(jdc,"DEFI_LIST_INST","ECHEC","ACTION",{"REAC_PRECOND":"DECOUPE"})
300 #### traitement de DEFI_MATER_GC ##############################
301 ajouteMotClefDansFacteur(jdc,"DEFI_MATER_GC","MAZARS","CODIFICATION='ESSAI'",pasDeRegle(),0)
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"})
309 genereErreurMCF(jdc,"DEFI_MATER_GC","MAZARS")
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",]
316 removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI",param,pasDeRegle(),0)
317 removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI_FO",param,pasDeRegle(),0)
319 lMDC=["BETA","DELTA1", "DELTA2", "DEPDT",]
321 removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC",mcle,pasDeRegle(),0)
322 removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC_IRRA",mcle,pasDeRegle(),0)
324 removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT","NB_VALE",pasDeRegle(),0)
325 removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO","NB_VALE",pasDeRegle(),0)
326 listeMc=["C"+str(i) for i in range(1,198)]
327 fusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT",listeMc,"LISTE_COEF")
328 fusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO",listeMc,"LISTE_COEF")
330 removeMotCle(jdc,"DEFI_MATERIAU","LABORD_1D",pasDeRegle(),0)
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"]
336 removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_VISC",param,pasDeRegle(),0)
338 lTHMD=["PERMIN_X", "PERMIN_Y", "PERMIN_Z", "PERMINXY", "PERMINYZ", "PERMINZX",]
340 removeMotCleInFact(jdc,"DEFI_MATERIAU","THM_DIFFU",param,pasDeRegle(),0)
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)
347 removeMotCleInFact(jdc,"DEFI_MATERIAU","GLRC_DM","EF",pasDeRegle(),0)
348 removeMotCleInFact(jdc,"DEFI_MATERIAU","GLRC_DM","NUF",pasDeRegle(),0)
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")
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)
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)
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)
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"})
387 #### traitement de FACTORISER ##############################
388 renameMotCle(jdc,"FACTORISER","ELIM_LAGR2","ELIM_LAGR")
389 changementValeur(jdc,"FACTORISER","ELIM_LAGR",{"OUI":"LAGR2",})
391 #### traitement de GENE_ACCE_SEISME ##############################
392 genereErreurMCF(jdc,"GENE_ACCE_SEISME","MODULATION")
393 moveMotCleFromFactToFather(jdc,"GENE_ACCE_SEISME","MODULATION","DUREE_PHASE_FORTE")
396 removeMotCleInFact(jdc,"GENE_ACCE_SEISME","MODULATION","PARA")
397 removeMotCleInFactSiRegle(jdc,"GENE_ACCE_SEISME","MODULATION","INST_INI",((("MODULATION","TYPE",["GAMMA"],jdc),"MCsousMCFnaPasPourValeurDansListe"),))
399 removeMotCleInFact(jdc,"GENE_ACCE_SEISME","DSP","FREQ_PENTE")
401 #### traitement de IMPR_MISS_3D ##############################
402 genereErreurPourCommande(jdc,"IMPR_MISS_3D")
403 # removeCommande(jdc,"IMPR_MISS_3D")
405 #### traitement de IMPR_RESU ##############################
406 removeMotCle(jdc,"IMPR_RESU","RESTREINT",pasDeRegle(),0)
408 #### traitement de INFO_FONCTION ##############################
409 genereErreurMCF(jdc,"INFO_FONCTION","NOCI_SEISME")
411 #### traitement de LIRE_MAILLAGE ##############################
412 removeMotCle(jdc,"LIRE_MAILLAGE","ABSC_CURV",pasDeRegle(),0)
414 #### traitement de LIRE_MISS_3D ##############################
415 genereErreurPourCommande(jdc,"LIRE_MISS_3D")
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")
421 #### traitement de MACR_ASCOUF_MAIL ##############################
422 genereErreurValeurDsMCF(jdc,"MACR_ASCOUF_MAIL","COUDE","BOL_P2",("'GV'",))
424 #### traitement de MACR_ASPIC_CALC ##############################
425 # genereErreurMCF(jdc,"MACR_ASPIC_CALC","COMP_ELAS")
427 #### traitement de MACR_ECREVISSE ##############################
428 genereErreurMCF(jdc,"MACR_ECREVISSE","COMP_INCR")
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"})
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())
439 #### traitement de MACRO_MISS_3D ##############################
440 genereErreurPourCommande(jdc,"MACRO_MISS_3D")
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)
448 lMCLE=["PREC_SOREN", "NMAX_ITER_SOREN", "PARA_ORTHO_SOREN"]
450 moveMotClefInOperToFact(jdc,"MACRO_MODE_MECA",mcle,"SOLVEUR_MODAL")
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", )
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")
461 lINV=["OPTION", "PREC", "NMAX_ITER",]
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")
466 lMCLE=["NMAX_ITER_AJUSTE","PREC_AJUSTE",]
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")
472 removeMotCle(jdc,"MODE_ITER_INV","CALC_MODE",pasDeRegle(),0)
474 chercheOperInsereMotCleSiRegle(jdc,"MODE_ITER_INV","OPTION='AJUSTE'",((("OPTION",),"nexistepas"),),0)
476 renameCommande(jdc,"MODE_ITER_INV","CALC_MODES", )
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")
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")
497 removeMotCleInFactSiRegle(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE",
498 ((("SOLVEUR_MODAL","METHODE",["QZ"],jdc),"MCsousMCFnaPasPourValeurDansListe")or
499 (("SOLVEUR_MODAL","METHODE",),"nexistepasMCsousMCF"),
503 moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE","SOLVEUR_MODAL")
504 moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","APPROCHE","SOLVEUR_MODAL")
506 lMCLE=["PREC_SOREN", "NMAX_ITER_SOREN", "PARA_ORTHO_SOREN"]
508 moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT",mcle,"SOLVEUR_MODAL")
510 lMCLE=["NMAX_ITER_QR", "PREC_ORTHO", "NMAX_ITER_ORTHO", "PREC_LANCZOS"]
512 moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT",mcle,"SOLVEUR_MODAL")
515 renameCommande(jdc,"MODE_ITER_SIMULT","CALC_MODES", )
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)
522 #### traitement de MODI_MODELE_XFEM ##############################
523 changementValeur(jdc,"MODI_MODELE_XFEM","CONTACT",{"P1P1":"STANDARD",})
524 changementValeur(jdc,"MODI_MODELE_XFEM","CONTACT",{"P2P1":"STANDARD",})
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"]
532 moveMotClefInOperToFact(jdc,"POST_DYNA_ALEA",mcle,"INTERSPECTRE")
533 removeMotCle(jdc,"POST_DYNA_ALEA","TOUT_ORDRE",pasDeRegle(),0)
535 ajouteMotClefDansFacteur(jdc,"POST_DYNA_ALEA","FRAGILITE","METHODE = 'EMV'",pasDeRegle())
537 #### traitement de POST_ELEM ##############################
538 ajouteMotClefDansFacteurSiRegle(jdc,"POST_ELEM","VOLUMOGRAMME","NB_INTERV=5",
539 ((("VOLUMOGRAMME","NB_INTERV",),"nexistepasMCsousMCF"),),)
541 #### traitement de POST_FATIGUE ##############################
542 changementValeur(jdc,"POST_FATIGUE","DOMMAGE",{"MANSON_C":"MANSON_COFFIN",})
544 #### traitement de POURSUITE ##############################
545 removeMotCle(jdc,"POURSUITE","CODE",)#"NOM",pasDeRegle(),0)
547 #### traitement de RECU_FONCTION ##############################
548 genereErreurMCF(jdc,"RECU_FONCTION","TABLE")
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",]
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)
564 changementValeur(jdc,com,"OPTION",{"FORC_INT_ELEM":"FORC_INTE_ELEM"})
566 removeMotCleInFactSiRegle(jdc,com,"COMPORTEMENT","NB_VARI",((("COMPORTEMENT","RELATION","'MFRONT'",jdc),"MCsousMCFaPourValeur"),))
569 #### traitement de TEST_COMPOR ##############################
570 genereErreurPourCommande(jdc,"TEST_COMPOR")
572 #### traitement de THER_NON_LINE ##############################
573 renameMotCle(jdc,"THER_NON_LINE","COMP_THER_NL","COMPORTEMENT")
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',]
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")
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"]
591 genereErreurMotCleInFact(jdc,com,"SOLVEUR",mocle)
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", )
600 #################################################################
602 f.write(jdc.getSource())
608 parser = optparse.Optionparser(usage=usage)
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")
615 options, args = parser.parse_args()
616 traduc(options.infile,options.outfile)
618 if __name__ == '__main__':