Salome HOME
Traducteur devient Traducteur2 ( python 2)
[tools/eficas.git] / Traducteur / traduitV11V12.py
diff --git a/Traducteur/traduitV11V12.py b/Traducteur/traduitV11V12.py
deleted file mode 100755 (executable)
index e64fad7..0000000
+++ /dev/null
@@ -1,619 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2017   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-"""
-usage="""usage: %prog [options]
-Typical use is:
-  python traduitV11V12.py --infile=xxxx --outfile=yyyy
-"""
-
-import log
-import optparse
-import sys
-
-from Traducteur.load   import getJDC
-from Traducteur.mocles import parseKeywords
-from Traducteur.removemocle  import *
-from Traducteur.renamemocle  import *
-from Traducteur.renamemocle  import *
-from Traducteur.inseremocle  import *
-from Traducteur.changeValeur import *
-from Traducteur.movemocle    import *
-from Traducteur.dictErreurs  import *
-from Traducteur.regles import pasDeRegle
-
-atraiter=(
-          "AFFE_CARA_ELEM",
-          "AFFE_CHAR_MECA",
-          "AFFE_CHAR_MECA_C",
-          "AFFE_CHAR_MECA_F",
-          "AFFE_CHAR_THER",
-          "AFFE_MODELE",
-          "ASSEMBLAGE",
-          "CALC_ESSAI_GEOMECA",
-          "CALC_EUROPLEXUS",
-          "CALC_FATIGUE",
-          "CALC_FERRAILLAGE",
-          "CALC_FONCTION",
-          "CALC_FORC_NONL",
-          "CALC_G",
-          "CALC_IFS_DNL",
-          "CALC_MAC3COEUR",
-          "CALC_MATR_ELEM",
-          "CALC_META",
-          "CALC_MISS",
-          "CALC_MODAL",
-          "CALC_PRECONT",
-          "CALCUL",
-          "CALC_VECT_ELEM",
-          "CREA_MAILLAGE",
-          "DEBUT",
-          "DEFI_COMPOR",
-          "DEFI_FISS_XFEM",
-          "DEFI_LIST_INST",
-          "DEFI_MATER_GC",
-          "DEFI_MATERIAU",
-          "DEFI_OBSTACLE",
-          "DEFI_PART_PA_OPS",
-          "DYNA_NON_LINE",
-          "DYNA_TRAN_MODAL",
-          "DYNA_VIBRA",
-          "EXTR_TABLE",
-          "FACTORISER",
-          "GENE_ACCE_SEISME",
-          "IMPR_MISS_3D",
-          "IMPR_RESU",
-          "INFO_FONCTION",
-          "LIRE_MAILLAGE",
-          "LIRE_MISS_3D",
-          "LIRE_RESU",
-          "MACR_ASCOUF_CALC",
-          "MACR_ASCOUF_MAIL",
-          "MACR_ASPIC_CALC",
-          "MACR_ECREVISSE",
-          "MACR_INFO_MAIL",
-          "MACRO_BASCULE_SCHEMA",
-          "MACRO_MISS_3D",
-          "MACRO_MODE_MECA",
-          "MECA_STATIQUE",
-          "MODE_ITER_INV",
-          "MODE_ITER_SIMULT",
-          "MODI_MAILLAGE",
-          "MODI_MODELE_XFEM",
-          "POST_DYNA_ALEA",
-          "POST_ELEM",
-          "POST_FATIGUE",
-          "POURSUITE",
-          "RECU_FONCTION",
-          "STAT_NON_LINE",
-          "SIMU_POINT_MAT",
-          "TEST_COMPOR",
-          "THER_NON_LINE",
-          "DEFI_PART_FETI"
-          )
-
-dict_erreurs={
-              "AFFE_CHAR_MECA_F_ONDE_PLANE_DIRECTION":"Trois valeurs sont nécessaire pour définir la DIRECTION",
-              "CREA_MAILLAGE_ECLA_PG":"Le mot-clé NOM_CHAM est obligatoire",
-              "CALC_EUROPLEXUS_FONC_PARASOL":"Le mot-clé GROUP_MA est obligatoire dans le mot-clé facteur FONC_PARASOL "+
-                                                "pour l'opérateur CALC_EUROPLEXUS",
-              "CALC_FERRAILLAGE":"Certains mots clés de CALC_FERRAILLAGE / AFFE sont obligatoires. "+
-                                    "Pour TYPE_COMB='ELU' : PIVA et PIVB et ES, ES doit être supérieur à 0. "+
-                                    "Pour TYPE_COMB='ELS' : CEQUI.",
-              "CALC_FONCTION_DSP_FREQ":"Le mot-clé FREQ n'est plus disponible remplacer par LIST_FREQ. La liste de réel \
-                                            doit être obtenu avec DEFI_LIST_REEL",
-              "CALC_MODAL":"La commande CALC_MODAL a été supprimé et remplacer par CALC_MODES",
-              "CREA_MAILLAGE_DETR_GROUP_MA":"Le mot-clé DETR_GROUP_MA n'est plus disponible dans CREA_MAILLAGE. Utiliser la commande "+
-                                                "DEFI_GROUP a la place, attention celle-ci est réentrante.",
-              "DEFI_COMPOR_POLYCRISTAL":"Le mot-clé MU_LOCA est obligatoire.",
-              "DEFI_FISS_XFEM":"Le mot-clé MAILLAGE est obligatoire",
-              "DEFI_MATER_GC_MAZARS":"Les mot-clés EIJ, EPSI_C, FTJ du mot-clé facteur MAZARS sont obligatoire",
-              "DEFI_MATERIAU_THER_FO":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
-                                "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
-              "DEFI_MATERIAU_THER_ORTH":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
-                                "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
-              "DEFI_MATERIAU_THER_NL":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
-                                "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
-              "DEFI_MATERIAU_THER_HYDR":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
-                                "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
-              "DEFI_MATERIAU_THER_COQUE":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
-                                "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
-              "DEFI_MATERIAU_THER_COQUE_FO":"Attention les mot-clés suivants ('THER','THER_FO','THER_ORTH','THER_NL','THER_HYDR', "+
-                                "'THER_COQUE','THER_COQUE_FO') ne peuvent être utilisé en même temps.",
-              "DEFI_MATERIAU_DIS_VISC":"Les mot-clés C et PUIS_ALPHA du mot-clé facteur DIS_VISC sont obligatoire.",
-              "GENE_ACCE_SEISME_MODULATION":"Le mot-clé DUREE_PHASE_FORTE est obligatoire.",
-              "IMPR_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
-                                " CALC_MISS",
-              "INFO_FONCTION_NOCI_SEISME":"Le mot-clé FREQ_FOND est obligatoire.",
-              "LIRE_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
-                                " CALC_MISS",
-              "MACRO_MISS_3D":"Les commandes IMPR_MISS_3D, MACRO_MISS_3D et LIRE_MISS_3D ont été réunies dans la commande"+
-                                " CALC_MISS",
-              "RECU_FONCTION_TABLE":"Si la valeur de TABLE est obtenu par GENE_FONC_ALEA remplacer par le mot-clé "
-                                        "INTE_SPEC",
-              "TEST_COMPOR":"La commande TEST_COMPOR produit une table de sortie dans tous les cas.",
-              }
-
-sys.dict_erreurs=dict_erreurs
-
-def traduc(infile,outfile,flog=None):
-
-    hdlr=log.initialise(flog)
-    jdc=getJDC(infile,atraiter)
-    root=jdc.root
-
-    #Parse les mocles des commandes
-    parseKeywords(root)
-
-    ####   traitement de DEFI_PART_PA_OPS   ##############################
-    genereErreurPourCommande(jdc,"DEFI_PART_PA_OPS")
-
-    ####   traitement de AFFE_CARA_ELEM   ##############################
-    changementValeurDsMCFSiRegle(jdc,"AFFE_CARA_ELEM","POUTRE","CARA",{"R1":"R_DEBUT","R2":"R_FIN",
-                                        "EP1":"EP_DEBUT","EP2":"EP_FIN"},
-                                    ((("POUTRE","MAILLE",),"nexistepasMCsousMCF"),
-                                    (("POUTRE","SECTION","CERCLE",jdc),"MCsousMCFaPourValeur"),
-                                    (("POUTRE","VARI_SECT","HOMOTHETIQUE",jdc),"MCsousMCFaPourValeur"),
-                                    ),
-                        )
-
-    ####   traitement de AFFE_CHAR_MECA   ##############################
-    # Suppression du mot-clé METHODE
-    removeMotCle(jdc,"AFFE_CHAR_MECA","METHODE",pasDeRegle(),0)
-    # Suppression des mot-clés LIAISON_XFEM
-    removeMotCle(jdc,"AFFE_CHAR_MECA","LIAISON_XFEM",pasDeRegle(),0)
-    removeMotCle(jdc,"AFFE_CHAR_MECA","CONTACT_XFEM",pasDeRegle(),0)
-    # Modification des parametres du mot-clé DDL_POUTRE
-    renameMotCleInFact(jdc,"AFFE_CHAR_MECA","DDL_POUTRE","GROUP_MA","GROUP_MA_REPE",pasDeRegle(),0)
-    renameMotCleInFact(jdc,"AFFE_CHAR_MECA","DDL_POUTRE","MAILLE","MAILLE_REPE",pasDeRegle(),0)
-
-    # Résorption des mot-clés ANGLE_NAUT et CENTRE
-    removeMotCleInFact(jdc,"AFFE_CHAR_MECA","LIAISON_SOLIDE","ANGL_NAUT",pasDeRegle(),0)
-    removeMotCleInFact(jdc,"AFFE_CHAR_MECA","LIAISON_SOLIDE","CENTRE",pasDeRegle(),0)
-
-    ####   traitement de AFFE_CHAR_MECA_F   ##############################
-    # Suppression du mot-clé METHODE
-    removeMotCle(jdc,"AFFE_CHAR_MECA_F","METHODE",pasDeRegle(),0)
-    # Résorption des mot-clés ANGLE_NAUT et CENTRE
-    removeMotCleInFact(jdc,"AFFE_CHAR_MECA_F","LIAISON_SOLIDE","ANGL_NAUT",pasDeRegle(),0)
-    removeMotCleInFact(jdc,"AFFE_CHAR_MECA_F","LIAISON_SOLIDE","CENTRE",pasDeRegle(),0)
-
-    genereErreurMotCleInFact(jdc,"AFFE_CHAR_MECA_F","ONDE_PLANE","DIRECTION")
-
-    ####   traitement de AFFE_CHAR_THER   ##############################
-    # Suppression du mot-clé METHODE
-    removeMotCle(jdc,"AFFE_CHAR_THER","METHODE",pasDeRegle(),0)
-
-    ####   traitement de AFFE_MODELE   ##############################
-    # Suppression des mot-clés GRILLE et VERIF
-    removeMotCle(jdc,"AFFE_MODELE","GRILLE",pasDeRegle(),0)
-    removeMotCle(jdc,"AFFE_MODELE","VERIF",pasDeRegle(),0)
-
-    d3DINCO={"3D_INCO":"3D_INCO_UP","3D_INCO_OSGS":"3D_INCO_UPO",
-            "3D_INCO_GD":"3D_INCO_UPG","3D_INCO_LOG":"3D_INCO_UPG",
-            "3D_INCO_LUP":"3D_INCO_UP",}
-    dAXIS={"AXIS_INCO":"AXIS_INCO_UP","AXIS_INCO_OSGS":"AXIS_INCO_UPO",
-           "AXIS_INCO_GD":"AXIS_INCO_UPG","AXIS_INCO_LOG":"AXIS_INCO_UPG",
-           "AXIS_INCO_LUP":"AXIS_INCO_UP",}
-    dDPLAN={"D_PLAN_INCO":"D_PLAN_INCO_UP","D_PLAN_INCO_OSGS":"D_PLAN_INCO_UPO",
-            "D_PLAN_INCO_GD":"D_PLAN_INCO_UPG","D_PLAN_INCO_LOG":"D_PLAN_INCO_UPG",
-            "D_PLAN_INCO_LUP":"D_PLAN_INCO_UP",}
-    dINCO={}
-    dINCO.update(d3DINCO)
-    dINCO.update(dAXIS)
-    dINCO.update(dDPLAN)
-    changementValeurDsMCF(jdc,"AFFE_MODELE","AFFE","MODELISATION",dINCO)
-
-    ####   traitement de ASSEMBLAGE   ##############################
-    genereErreurValeurDsMCF(jdc,"ASSEMBLAGE","MATR_ASSE","OPTION",("'MASS_THER'",))
-
-    ####   traitement de CALC_ESSAI_GEOMECA   ##############################
-    renameMotCleInFact(jdc,"CALC_ESSAI_GEOMECA","ESSAI_CISA_C","EPSI_IMPOSE","GAMMA_IMPOSE",pasDeRegle(),0)
-    renameMotCleInFact(jdc,"CALC_ESSAI_GEOMECA","ESSAI_CISA_C","EPSI_ELAS","GAMMA_ELAS",pasDeRegle(),0)
-
-    ####   traitement de CALC_EUROPLEXUS   ##############################
-    removeMotCle(jdc,"CALC_EUROPLEXUS","DIME",pasDeRegle(),0)
-    genereErreurMCF(jdc,"CALC_EUROPLEXUS","FONC_PARASOL")
-    removeMotCleInFact(jdc,"CALC_EUROPLEXUS","ARCHIVAGE","CONT_GENER")
-
-    ####   traitement de CALC_FERRAILLAGE   ##############################
-    genereErreurPourCommande(jdc,"CALC_FERRAILLAGE")
-
-    ####   traitement de CALC_FONCTION   ##############################
-    ajouteMotClefDansFacteur(jdc,"CALC_FONCTION","CORR_ACCE","METHODE='POLYNOME'",pasDeRegle(),0)
-    genereErreurMotCleInFact(jdc,"CALC_FONCTION","DSP","FREQ")
-
-    ####   traitement de CALC_G   ##############################
-    removeMotCleInFact(jdc,"CALC_G","COMP_ELAS","RESI_INTE_RELA",pasDeRegle(),0)
-    removeMotCleInFact(jdc,"CALC_G","COMP_ELAS","ITER_INTE_MAXI",pasDeRegle(),0)
-
-    ####   traitement de CALC_FATIGUE   ##############################
-    changementValeur(jdc,"CALC_FATIGUE","COURBE_GRD_VIE",{"MANSON_C":"MANSON_COFFIN",})
-
-    ####   traitement de CALC_IFS_DNL   ##############################
-    removeMotCle(jdc,"CALC_IFS_DNL","ENERGIE",pasDeRegle(),0)
-
-    ####   traitement de CALC_MAC3COEUR   ##############################
-    ajouteMotClefDansFacteur(jdc,"CALC_MAC3COEUR","DEFORMATION","ARCHIMEDE = 'OUI'",pasDeRegle())
-
-    ####   traitement de CALC_MATR_ELEM   ##############################
-    genereErreurValeur(jdc,"CALC_MATR_ELEM","OPTION",("'MASS_THER'",))
-
-    ####   traitement de CALC_MISS   ##############################
-    genereErreurValeurDsMCF(jdc,"CALC_MISS","PARAMETRE","ISSF",("'OUI'",))
-
-    ####   traitement de CALC_MODAL   ##############################
-    # renameCommande(jdc,"CALC_MODAL","CALC_MODES", )
-    genereErreurPourCommande(jdc,"CALC_MODAL")
-
-    ####   traitement de CALC_VECT_ELEM   ##############################
-    genereErreurValeur(jdc,"CALC_VECT_ELEM","OPTION",("'FORC_NODA'",))
-
-    ####   traitement de CREA_MAILLAGE   ##############################
-    renameMotCle(jdc,"CREA_MAILLAGE","CREA_GROUP_MA","CREA_MAILLE")
-    genereErreurMCF(jdc,"CREA_MAILLAGE","ECLA_PG")
-
-    lMCLEF=['COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
-    'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE','QUAD_LINE',
-    'REPERE','RESTREINT','PENTA15_18']
-    genereErreurMCF(jdc,"CREA_MAILLAGE","DETR_GROUP_MA")
-    removeMotCleInFactSiRegle(jdc,"CREA_MAILLAGE","DETR_GROUP_MA","NB_MAILLE",((lMCLEF,"nexistepasMCFParmi"),))
-    renameMotCleInFactSiRegle(jdc,"CREA_MAILLAGE","DETR_GROUP_MA","GROUP_MA","NOM",((lMCLEF,"nexistepasMCFParmi"),))
-    renameCommandeSiRegle(jdc,"CREA_MAILLAGE","DEFI_GROUP",((lMCLEF,"nexistepasMCFParmi"),))
-
-    ####   traitement de DEBUT   ##############################
-    # genereErreurPourCommande(jdc,("DEBUT",))
-    removeMotCleInFact(jdc,"DEBUT","CODE","NOM",pasDeRegle(),0)
-
-    ####   traitement de DEFI_COMPOR   ##############################
-    genereErreurValeur(jdc,"DEFI_COMPOR","LOCALISATION",["'RL'",])
-    genereErreurValeur(jdc,"DEFI_COMPOR","RELATION_KIT",["'RVMIS_ISOT_CINE'",])
-    genereErreurValeurDsMCF(jdc,"DEFI_COMPOR","MULTIFIBRE","RELATION",["'LABORD_1D'"])
-    genereErreurMCF(jdc,"DEFI_COMPOR","POLYCRISTAL")
-
-    ####   traitement de DEFI_FISS_XFEM   ##############################
-    genereErreurPourCommande(jdc,("DEFI_FISS_XFEM",))
-    removeMotCle(jdc,"DEFI_FISS_XFEM","MODELE",pasDeRegle(),0)
-    removeMotCle(jdc,"DEFI_FISS_XFEM","MODELE_GRILLE",pasDeRegle(),0)
-
-    ####   traitement de DEFI_LIST_INST   ##############################
-    changementValeurDsMCF(jdc,"DEFI_LIST_INST","ECHEC","ACTION",{"REAC_PRECOND":"DECOUPE"})
-
-    ####   traitement de DEFI_MATER_GC   ##############################
-    ajouteMotClefDansFacteur(jdc,"DEFI_MATER_GC","MAZARS","CODIFICATION='ESSAI'",pasDeRegle(),0)
-
-    removeMotCleInFactSiRegle(jdc,"DEFI_MATER_GC","MAZARS","UNITE_LONGUEUR",
-                                    ((("MAZARS","CODIFICATION",["ESSAI"],jdc),"MCsousMCFaPourValeurDansListe"),),)
-    renameMotCleInFact(jdc,"DEFI_MATER_GC","MAZARS","UNITE_LONGUEUR","UNITE_CONTRAINTE")
-    changementValeurDsMCF(jdc,"DEFI_MATER_GC","MAZARS","UNITE_CONTRAINTE",{"MM":"MPa"})
-    changementValeurDsMCF(jdc,"DEFI_MATER_GC","MAZARS","UNITE_CONTRAINTE",{"M":"Pa"})
-
-    genereErreurMCF(jdc,"DEFI_MATER_GC","MAZARS")
-
-    ####   traitement de DEFI_MATERIAU   ##############################
-    lMLA=["F_MRR_RR", "C_MRR_RR", "F_MTT_TT", "C_MTT_TT", "F_MZZ_ZZ",
-           "C_MZZ_ZZ", "F_MRT_RT", "C_MRT_RT", "F_MRZ_RZ", "C_MRZ_RZ",
-           "F_MTZ_TZ", "C_MTZ_TZ",]
-    for param in lMLA:
-        removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI",param,pasDeRegle(),0)
-        removeMotCleInFact(jdc,"DEFI_MATERIAU","META_LEMA_ANI_FO",param,pasDeRegle(),0)
-
-    lMDC=["BETA","DELTA1", "DELTA2", "DEPDT",]
-    for mcle in lMDC:
-        removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC",mcle,pasDeRegle(),0)
-        removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC_IRRA",mcle,pasDeRegle(),0)
-
-    removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT","NB_VALE",pasDeRegle(),0)
-    removeMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO","NB_VALE",pasDeRegle(),0)
-    listeMc=["C"+str(i) for i in range(1,198)]
-    fusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT",listeMc,"LISTE_COEF")
-    fusionMotCleInFact(jdc,"DEFI_MATERIAU","UMAT_FO",listeMc,"LISTE_COEF")
-
-    removeMotCle(jdc,"DEFI_MATERIAU","LABORD_1D",pasDeRegle(),0)
-
-    genereErreurMCF(jdc,"DEFI_MATERIAU","DIS_VISC")
-    lDISC=["PUIS_DX", "PUIS_DY", "PUIS_DZ", "PUIS_RX", "PUIS_RY", "PUIS_RZ",
-     "COEF_DX", "COEF_DY", "COEF_DZ", "COEF_RX", "COEF_RY", "COEF_RZ"]
-    for param in lDISC:
-        removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_VISC",param,pasDeRegle(),0)
-
-    lTHMD=["PERMIN_X", "PERMIN_Y", "PERMIN_Z", "PERMINXY", "PERMINYZ", "PERMINZX",]
-    for param in lTHMD:
-        removeMotCleInFact(jdc,"DEFI_MATERIAU","THM_DIFFU",param,pasDeRegle(),0)
-
-    # lMONODD=["DELTA1", "DELTA2"]
-    # for param in lMONODD:
-        # removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC",param,pasDeRegle(),0)
-        # removeMotCleInFact(jdc,"DEFI_MATERIAU","MONO_DD_CC_IRRA",param,pasDeRegle(),0)
-
-    removeMotCleInFact(jdc,"DEFI_MATERIAU","GLRC_DM","EF",pasDeRegle(),0)
-    removeMotCleInFact(jdc,"DEFI_MATERIAU","GLRC_DM","NUF",pasDeRegle(),0)
-
-    genereErreurMCF(jdc,"DEFI_MATERIAU","THER_FO")
-    genereErreurMCF(jdc,"DEFI_MATERIAU","THER_NL")
-    genereErreurMCF(jdc,"DEFI_MATERIAU","THER_HYDR")
-    genereErreurMCF(jdc,"DEFI_MATERIAU","THER_COQUE")
-    genereErreurMCF(jdc,"DEFI_MATERIAU","THER_COQUE_FO")
-
-
-    ####   traitement de DEFI_OBSTACLE   ##############################
-    lMCLE=("CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
-    "GUID_B_CARTE_900","GUID_C_CARTE_900","GUID_D_CARTE_900","GUID_E_CARTE_900",
-    "GUID_F_CARTE_900","GUID_A_CARTE_1300","GUID_B_CARTE_1300","GUID_C_CARTE_1300",
-    "GUID_D_CARTE_1300","GUID_E_CARTE_1300","GUID_F_CARTE_1300","GUID_A_CARSP_900",
-    "GUID_B_CARSP_900","GUID_C_CARSP_900","GUID_D_CARSP_900","GUID_E_CARSP_900",
-    "GUID_F_CARSP_900","GUID_A_CARSP_1300","GUID_B_CARSP_1300","GUID_C_CARSP_1300",
-    "GUID_D_CARSP_1300","GUID_E_CARSP_1300","GUID_F_CARSP_1300","GUID_A_GCONT_900",
-    "GUID_B_GCONT_900","GUID_C_GCONT_900","GUID_D_GCONT_900","GUID_E_GCONT_900",
-    "GUID_F_GCONT_900","GUID_A_GCONT_1300","GUID_B_GCONT_1300","GUID_C_GCONT_1300",
-    "GUID_D_GCONT_1300","GUID_E_GCONT_1300","GUID_F_GCONT_1300","GUID_A_GCOMB_900",
-    "GUID_B_GCOMB_900","GUID_C_GCOMB_900","GUID_D_GCOMB_900","GUID_E_GCOMB_900",
-    "GUID_F_GCOMB_900","GUID_A_GCOMB_1300","GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
-    "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300","GUID_F_GCOMB_1300",)
-    genereErreurValeur(jdc,"DEFI_OBSTACLE","TYPE",lMCLE)
-
-    ####   traitement de DYNA_TRAN_MODAL   ##############################
-    removeMotCle(jdc,"DYNA_TRAN_MODAL","LAME_FLUIDE",pasDeRegle(),0)
-    removeMotCle(jdc,"DYNA_TRAN_MODAL","PARA_LAME_FLUI",pasDeRegle(),0)
-    removeMotCle(jdc,"DYNA_TRAN_MODAL","RELA_TRANSIS",pasDeRegle(),0)
-
-    ####   traitement de DYNA_VIBRA   ##############################
-    removeMotCle(jdc,"DYNA_VIBRA","LAME_FLUIDE",pasDeRegle(),0)
-    removeMotCle(jdc,"DYNA_VIBRA","PARA_LAME_FLUI",pasDeRegle(),0)
-    removeMotCle(jdc,"DYNA_VIBRA","RELA_TRANSIS",pasDeRegle(),0)
-
-    ####   traitement de EXTR_TABLE   ##############################
-    changementValeurDsMCF(jdc,"EXTR_TABLE","FILTRE","VALE_K",{"MATR_ELEM":"MATR_TANG_ELEM"})
-    changementValeurDsMCF(jdc,"EXTR_TABLE","FILTRE","VALE_K",{"CODE_RETOUR":"CODE_RETOUR_INTE"})
-
-    ####   traitement de FACTORISER   ##############################
-    renameMotCle(jdc,"FACTORISER","ELIM_LAGR2","ELIM_LAGR")
-    changementValeur(jdc,"FACTORISER","ELIM_LAGR",{"OUI":"LAGR2",})
-
-    ####   traitement de GENE_ACCE_SEISME   ##############################
-    genereErreurMCF(jdc,"GENE_ACCE_SEISME","MODULATION")
-    moveMotCleFromFactToFather(jdc,"GENE_ACCE_SEISME","MODULATION","DUREE_PHASE_FORTE")
-
-
-    removeMotCleInFact(jdc,"GENE_ACCE_SEISME","MODULATION","PARA")
-    removeMotCleInFactSiRegle(jdc,"GENE_ACCE_SEISME","MODULATION","INST_INI",((("MODULATION","TYPE",["GAMMA"],jdc),"MCsousMCFnaPasPourValeurDansListe"),))
-
-    removeMotCleInFact(jdc,"GENE_ACCE_SEISME","DSP","FREQ_PENTE")
-
-    ####   traitement de IMPR_MISS_3D   ##############################
-    genereErreurPourCommande(jdc,"IMPR_MISS_3D")
-    # removeCommande(jdc,"IMPR_MISS_3D")
-
-    ####   traitement de IMPR_RESU   ##############################
-    removeMotCle(jdc,"IMPR_RESU","RESTREINT",pasDeRegle(),0)
-
-    ####   traitement de INFO_FONCTION   ##############################
-    genereErreurMCF(jdc,"INFO_FONCTION","NOCI_SEISME")
-
-    ####   traitement de LIRE_MAILLAGE   ##############################
-    removeMotCle(jdc,"LIRE_MAILLAGE","ABSC_CURV",pasDeRegle(),0)
-
-    ####   traitement de LIRE_MISS_3D   ##############################
-    genereErreurPourCommande(jdc,"LIRE_MISS_3D")
-
-    ####   traitement de MACR_ASCOUF_CALC   ##############################
-    removeMotCle(jdc,"MACR_ASCOUF_CALC","CL_BOL_P2_GV",pasDeRegle(),0)
-    # genereErreurMCF(jdc,"MACR_ASCOUF_CALC","COMP_ELAS")
-
-    ####   traitement de MACR_ASCOUF_MAIL   ##############################
-    genereErreurValeurDsMCF(jdc,"MACR_ASCOUF_MAIL","COUDE","BOL_P2",("'GV'",))
-
-    ####   traitement de MACR_ASPIC_CALC   ##############################
-    # genereErreurMCF(jdc,"MACR_ASPIC_CALC","COMP_ELAS")
-
-    ####   traitement de MACR_ECREVISSE   ##############################
-    genereErreurMCF(jdc,"MACR_ECREVISSE","COMP_INCR")
-
-    ####   traitement de MACR_INFO_MAIL   ##############################
-    changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_6":"V11_2"})
-    changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_N":"V11_N"})
-    changementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",{"V10_N_PERSO":"V11_N_PERSO"})
-
-    ####   traitement de MACRO_BASCULE_SCHEMA   ##############################
-    renameMotCle(jdc,"MACRO_BASCULE_SCHEMA","COMP_INCR_IMPL","COMPORTEMENT_IMPL",pasDeRegle())
-    renameMotCle(jdc,"MACRO_BASCULE_SCHEMA","COMP_INCR_EXPL","COMPORTEMENT_EXPL",pasDeRegle())
-
-    ####   traitement de MACRO_MISS_3D   ##############################
-    genereErreurPourCommande(jdc,"MACRO_MISS_3D")
-
-    ####   traitement de MACRO_MODE_MECA   ##############################
-    # insereMotCleDansCommande(jdc,"MACRO_MODE_MECA","TYPE_RESU='DYNAMIQUE'")
-    chercheOperInsereFacteur(jdc,"MACRO_MODE_MECA","SOLVEUR_MODAL",)
-    chercheOperInsereFacteur(jdc,"MACRO_MODE_MECA","OPTION='BANDE'",pasDeRegle(),0)
-    chercheOperInsereFacteurSiRegle(jdc,"MACRO_MODE_MECA","NORM_MODE",((("NORM_MODE",),"nexistepas"),),1)
-
-    lMCLE=["PREC_SOREN", "NMAX_ITER_SOREN", "PARA_ORTHO_SOREN"]
-    for mcle in lMCLE:
-        moveMotClefInOperToFact(jdc,"MACRO_MODE_MECA",mcle,"SOLVEUR_MODAL")
-
-    moveMotCleFromFactToFact(jdc,"MACRO_MODE_MECA","CALC_FREQ","COEF_DIM_ESPACE","SOLVEUR_MODAL")
-    moveMotCleFromFactToFact(jdc,"MACRO_MODE_MECA","CALC_FREQ","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
-    renameCommande(jdc,"MACRO_MODE_MECA","CALC_MODES", )
-
-    ####   traitement de MODE_ITER_INV   ##############################
-    chercheOperInsereFacteur(jdc,"MODE_ITER_INV","SOLVEUR_MODAL",)
-    moveMotCleFromFactToFather(jdc,"MODE_ITER_INV","CALC_FREQ","OPTION")
-    moveMotCleFromFactToFather(jdc,"MODE_ITER_INV","CALC_CHAR_CRIT","OPTION")
-
-    lINV=["OPTION", "PREC", "NMAX_ITER",]
-    for mcle in lINV:
-        renameMotCleInFact(jdc,"MODE_ITER_INV","CALC_MODE",mcle,mcle+"_INV",pasDeRegle(),0)
-        moveMotCleFromFactToFact(jdc,"MODE_ITER_INV","CALC_MODE",mcle+"_INV","SOLVEUR_MODAL")
-
-    lMCLE=["NMAX_ITER_AJUSTE","PREC_AJUSTE",]
-    for mcle in lMCLE:
-        moveMotCleFromFactToFact(jdc,"MODE_ITER_INV","CALC_FREQ",mcle,"SOLVEUR_MODAL")
-    moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","PREC_JACOBI","SOLVEUR_MODAL")
-    moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","PREC_BATHE","SOLVEUR_MODAL")
-
-    removeMotCle(jdc,"MODE_ITER_INV","CALC_MODE",pasDeRegle(),0)
-
-    chercheOperInsereMotCleSiRegle(jdc,"MODE_ITER_INV","OPTION='AJUSTE'",((("OPTION",),"nexistepas"),),0)
-
-    renameCommande(jdc,"MODE_ITER_INV","CALC_MODES", )
-
-    ####   traitement de MODE_ITER_SIMULT   ##############################
-    chercheOperInsereFacteur(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL",)
-    removeMotCleSiRegle(jdc,"MODE_ITER_SIMULT","OPTION",((("METHODE","TRI_DIAG",jdc),"MCnaPasPourValeur"),),)
-    removeMotCleSiRegle(jdc,"MODE_ITER_SIMULT","OPTION",((("OPTION","SANS",jdc),"MCaPourValeur"),),)
-    moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","OPTION","SOLVEUR_MODAL")
-    changementValeurDsMCF(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL","OPTION",{"MODE_RIGIDE":"OUI"})
-    renameMotCleInFact(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL","OPTION","MODE_RIGIDE")
-    moveMotCleFromFactToFather(jdc,"MODE_ITER_SIMULT","CALC_FREQ","OPTION")
-    moveMotCleFromFactToFather(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","OPTION")
-
-    # chercheOperInsereFacteurSiRegle(jdc,"MODE_ITER_SIMULT","SOLVEUR_MODAL",((("METHODE",),"existe"),),1)
-    moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","METHODE","SOLVEUR_MODAL")
-    moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","TYPE_QZ","SOLVEUR_MODAL")
-    moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT","NMAX_ITER_BATHE","SOLVEUR_MODAL")
-    moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","COEF_DIM_ESPACE","SOLVEUR_MODAL")
-    moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
-    moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","COEF_DIM_ESPACE","SOLVEUR_MODAL")
-    moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","DIM_SOUS_ESPACE","SOLVEUR_MODAL")
-
-    removeMotCleInFactSiRegle(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE",
-                                    ((("SOLVEUR_MODAL","METHODE",["QZ"],jdc),"MCsousMCFnaPasPourValeurDansListe")or
-                                     (("SOLVEUR_MODAL","METHODE",),"nexistepasMCsousMCF"),
-                                    )
-                            )
-
-    moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_FREQ","APPROCHE","SOLVEUR_MODAL")
-    moveMotCleFromFactToFact(jdc,"MODE_ITER_SIMULT","CALC_CHAR_CRIT","APPROCHE","SOLVEUR_MODAL")
-
-    lMCLE=["PREC_SOREN", "NMAX_ITER_SOREN", "PARA_ORTHO_SOREN"]
-    for mcle in lMCLE:
-        moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT",mcle,"SOLVEUR_MODAL")
-
-    lMCLE=["NMAX_ITER_QR", "PREC_ORTHO", "NMAX_ITER_ORTHO", "PREC_LANCZOS"]
-    for mcle in lMCLE:
-        moveMotClefInOperToFact(jdc,"MODE_ITER_SIMULT",mcle,"SOLVEUR_MODAL")
-
-
-    renameCommande(jdc,"MODE_ITER_SIMULT","CALC_MODES", )
-
-    ####   traitement de MODI_MAILLAGE   ##############################
-    genereErreurValeurDsMCF(jdc,"MODI_MAILLAGE","DEFORME","OPTION",("'TRAN_APPUI'",))
-    removeMotCleInFact(jdc,"MODI_MAILLAGE","DEFORME",["GROUP_NO_APPUI"],pasDeRegle(),0)
-    removeMotCleInFact(jdc,"MODI_MAILLAGE","DEFORME",["GROUP_NO_STRU"],pasDeRegle(),0)
-
-    ####   traitement de MODI_MODELE_XFEM   ##############################
-    changementValeur(jdc,"MODI_MODELE_XFEM","CONTACT",{"P1P1":"STANDARD",})
-    changementValeur(jdc,"MODI_MODELE_XFEM","CONTACT",{"P2P1":"STANDARD",})
-
-
-    ####   traitement de POST_DYNA_ALEA   ##############################
-    chercheOperInsereFacteurSiRegle(jdc,"POST_DYNA_ALEA","INTERSPECTRE",((("INTE_SPEC",),"existe"),),1)
-    lPDA=["INTE_SPEC", "NUME_ORDRE_I", "NOEUD_I", "OPTION", "NUME_ORDRE_J",
-          "NOEUD_J", "NOM_CMP_I", "NOM_CMP_J", "MOMENT", "DUREE"]
-    for mcle in lPDA:
-        moveMotClefInOperToFact(jdc,"POST_DYNA_ALEA",mcle,"INTERSPECTRE")
-    removeMotCle(jdc,"POST_DYNA_ALEA","TOUT_ORDRE",pasDeRegle(),0)
-
-    ajouteMotClefDansFacteur(jdc,"POST_DYNA_ALEA","FRAGILITE","METHODE = 'EMV'",pasDeRegle())
-
-    ####   traitement de POST_ELEM   ##############################
-    ajouteMotClefDansFacteurSiRegle(jdc,"POST_ELEM","VOLUMOGRAMME","NB_INTERV=5",
-                                ((("VOLUMOGRAMME","NB_INTERV",),"nexistepasMCsousMCF"),),)
-
-    ####   traitement de POST_FATIGUE   ##############################
-    changementValeur(jdc,"POST_FATIGUE","DOMMAGE",{"MANSON_C":"MANSON_COFFIN",})
-
-    ####   traitement de POURSUITE   ##############################
-    removeMotCle(jdc,"POURSUITE","CODE",)#"NOM",pasDeRegle(),0)
-
-    ####   traitement de RECU_FONCTION   ##############################
-    genereErreurMCF(jdc,"RECU_FONCTION","TABLE")
-
-    ####   traitement de C_COMP_INCR et C_COMP_ELAS   ##############################
-    lCOM=["CALCUL","STAT_NON_LINE","CALC_G", "CALC_PRECONT","DYNA_NON_LINE","CALC_META",
-          "TEST_COMPOR","SIMU_POINT_MAT","CALC_ESSAI_GEOMECA","CALC_FORC_NONL","LIRE_RESU",
-          "MACR_ASCOUF_CALC","MACR_ASPIC_CALC","CALC_EUROPLEXUS","MACR_ECREVISSE",]
-    for com in lCOM:
-        # chercheOperInsereFacteurSiRegle(jdc,com,"COMPORTEMENT",(((["COMPORTEMENT"],),"nexistepasMCFParmi"),),1)
-        fusionMCFToMCF(jdc,com,["COMP_ELAS","COMP_INCR"],"COMPORTEMENT")
-        # renameMotCle(jdc,com,"COMP_ELAS","COMPORTEMENT")
-        # renameMotCle(jdc,com,"COMP_INCR","COMPORTEMENT")
-        chercheOperInsereFacteurSiRegle(jdc,com,"ETAT_INIT",((("COMPORTEMENT","SIGM_INIT",),"existeMCsousMCF"),),1)
-        moveMotCleFromFactToFact(jdc,com,"COMPORTEMENT","SIGM_INIT","ETAT_INIT")
-        renameMotCleInFact(jdc,com,"ETAT_INIT","SIGM_INIT","SIGM",pasDeRegle(),0)
-        removeMotCleInFact(jdc,com,"COMPORTEMENT","SIGM_INIT",pasDeRegle(),0)
-
-        changementValeur(jdc,com,"OPTION",{"FORC_INT_ELEM":"FORC_INTE_ELEM"})
-
-        removeMotCleInFactSiRegle(jdc,com,"COMPORTEMENT","NB_VARI",((("COMPORTEMENT","RELATION","'MFRONT'",jdc),"MCsousMCFaPourValeur"),))
-
-
-    ####   traitement de TEST_COMPOR   ##############################
-    genereErreurPourCommande(jdc,"TEST_COMPOR")
-
-    ####   traitement de THER_NON_LINE   ##############################
-    renameMotCle(jdc,"THER_NON_LINE","COMP_THER_NL","COMPORTEMENT")
-
-    ####   traitement de C_SOLVEUR   ##############################
-    lCOM=['CALC_ERREUR', 'CALC_FORC_AJOU', 'CALC_IFS_DNL', 'CALC_MATR_AJOU', 'CALC_PRECONT',
-        'CREA_ELEM_SSD', 'DEFI_BASE_MODALE', 'DYNA_LINE_HARM', 'DYNA_LINE_TRAN', 'DYNA_NON_LINE',
-        'DYNA_TRAN_MODAL', 'INFO_MODE', 'MACR_ASCOUF_CALC', 'MACR_ASPIC_CALC', 'MACRO_BASCULE_SCHEMA',
-        'MACRO_MATR_AJOU', 'MECA_STATIQUE', 'MODE_ITER_SIMULT', 'MODE_ITER_INV', 'MODE_STATIQUE',
-        'STAT_NON_LINE', 'THER_LINEAIRE', 'THER_NON_LINE', 'THER_NON_LINE_MO', 'CALC_ERC_DYN','CALC_MODES',]
-    for com in lCOM:
-        # Suppression de ELIM_LAGR2
-        changementValeurDsMCF(jdc,com,"SOLVEUR","ELIM_LAGR2",{"OUI":"LAGR2"})
-        removeMotCleInFactSiRegle(jdc,com,"SOLVEUR","ELIM_LAGR2",((("SOLVEUR","ELIM_LAGR2","NON",jdc),"MCsousMCFaPourValeur"),))
-        renameMotCleInFact(jdc,com,"SOLVEUR","ELIM_LAGR2","ELIM_LAGR")
-
-        # Suppression de la méthode FETI
-        genereErreurValeurDsMCF(jdc,com,"SOLVEUR","METHODE",["FETI"])
-        lMCLE=["NB_REORTHO_DD","NMAX_ITER","INFO_FETI","RESI_RELA","PARTITION"]
-        for mocle in lMCLE:
-            genereErreurMotCleInFact(jdc,com,"SOLVEUR",mocle)
-
-    ####   traitement de DEFI_PART_FETI   ##############################
-    genereErreurMCF(jdc,"DEFI_PART_FETI","EXCIT")
-    removeMotCle(jdc,"DEFI_PART_FETI","EXCIT",pasDeRegle(),0)
-    removeMotCle(jdc,"DEFI_PART_FETI","CORRECTION_CONNEX",pasDeRegle(),0)
-    genereErreurPourCommande(jdc,"DEFI_PART_FETI")
-    renameCommande(jdc,"DEFI_PART_FETI","DEFI_PARTITION", )
-
-    #################################################################
-    f=open(outfile,'w')
-    f.write(jdc.getSource())
-    f.close()
-
-    log.ferme(hdlr)
-
-def main():
-    parser = optparse.Optionparser(usage=usage)
-
-    parser.add_option('-i','--infile', dest="infile", default='toto.comm',
-        help="Le fichier à traduire")
-    parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
-        help="Le fichier traduit")
-
-    options, args = parser.parse_args()
-    traduc(options.infile,options.outfile)
-
-if __name__ == '__main__':
-    main()