+++ /dev/null
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-"""
-"""
-usage="""usage: %prog [options]
-Typical use is:
- python jdcparser.py --infile=xxxx --outfile=yyyy
-"""
-
-import log
-import optparse
-
-from load import getJDC
-from mocles import parseKeywords
-from removemocle import *
-from renamemocle import *
-from renamemocle import *
-from inseremocle import *
-from changeValeur import *
-from movemocle import *
-from dictErreurs import GenereErreurPourCommande
-
-# Demander a emmanuel pour affe_char_ther et test_resu
-import calcG
-
-atraiter=( "IMPR_GENE","CALC_FONCTION", "DEFI_MATERIAU","STAT_NON_LINE",
- "CALC_G_LOCAL_T","CALC_G_THETA_T","CALC_G","AFFE_CHAR_MECA",
- "AFFE_CHAR_THER_F","IMPR_CO","DEFI_SQUELETTE","DEFI_FONCTION",
- "CALC_THETA","AFFE_MODELE","DYNA_NON_LINE","CALC_ELEM",
- "CALC_NO","EXTR_MODE","CALC_META","IMPR_RESU","TEST_RESU",
- "DEFI_THER_JOULE","DYNA_TRAN_EXPLI","DEBUT","CALC_CHAM_ELEM",
- "AFFE_CHAR_THER", "MACR_LIGN_COUPE","POST_RCCM","PROJ_MESU_MODAL",
- "CREA_RESU","DIST_LIGN_3D","MODI_MAILLAGE","LIRE_TABLE",
- "POST_SIMPLIFIE","AFFE_MATERIAU"
- )
-
-#atraiter=( "IMPR_GENE",)
-
-def traduc(infile,outfile):
- jdc=getJDC(infile,atraiter)
- root=jdc.root
-
- #Parse les mocles des commandes
- parseKeywords(root)
-
- ####################### traitement erreurs #######################
- GenereErreurPourCommande(jdc,("POST_RCCM","DIST_LIGN_3D"))
-
- ####################### traitement CALC_META #######################
- renameMotCleInFact(jdc,"CALC_META","ETAT_INIT","META_INIT","META_INIT_ELNO")
-
- ####################### traitement CALC_FONCTION #######################
- removeMotCleSiRegle(jdc,"CALC_FONCTION","NOM_PARA",((("MAX"),"existeMCFParmi"),))
- renameCommandeSiRegle(jdc,"CALC_FONCTION","INFO_FONCTION", ((("RMS","MAX","NOCI_SEISME","NORME","ECART-TYPE"),"existeMCFParmi"),))
-
- ####################### traitement IMPR_GENE #######################
- moveMotCleFromFactToFather(jdc,"IMPR_GENE","GENE","UNITE")
- moveMotCleFromFactToFather(jdc,"IMPR_GENE","GENE","FORMAT")
-
- ####################### traitement STAT/DYNA_NON_LINE #######################
- moveMotCleFromFactToFactMulti(jdc,"STAT_NON_LINE","CONVERGENCE","RESI_INTE_RELA",("COMP_INCR","COMP_ELAS"))
- moveMotCleFromFactToFactMulti(jdc,"STAT_NON_LINE","CONVERGENCE","ITER_INTE_MAXI",("COMP_INCR","COMP_ELAS"))
- moveMotCleFromFactToFactMulti(jdc,"STAT_NON_LINE","CONVERGENCE","ITER_INTE_PAS",("COMP_INCR","COMP_ELAS"))
- moveMotCleFromFactToFactMulti(jdc,"STAT_NON_LINE","CONVERGENCE","RESO_INTE",("COMP_INCR","COMP_ELAS"))
- removeMotCleAvecErreur(jdc,"STAT_NON_LINE","VARI_COMM")
- moveMotCleFromFactToFactMulti(jdc,"DYNA_NON_LINE","CONVERGENCE","RESI_INTE_RELA",("COMP_INCR","COMP_ELAS"))
- moveMotCleFromFactToFactMulti(jdc,"DYNA_NON_LINE","CONVERGENCE","ITER_INTE_MAXI",("COMP_INCR","COMP_ELAS"))
- moveMotCleFromFactToFactMulti(jdc,"DYNA_NON_LINE","CONVERGENCE","ITER_INTE_PAS",("COMP_INCR","COMP_ELAS"))
- moveMotCleFromFactToFactMulti(jdc,"DYNA_NON_LINE","CONVERGENCE","RESO_INTE",("COMP_INCR","COMP_ELAS"))
- removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","VARI_COMM")
-
- dStatNonLine={"ELAS":"ELAS_THER"}
- lavertit=("ELAS")
- ChangementValeurDsMCFAvecAvertissement(jdc,"STAT_NON_LINE","COMP-INCR","RELATION_KIT",dStatNonLine,lavertit)
-
- lavertit=("CHABOCHE","ASSE_COMBU")
- dchaboche={"CHABOCHE":"VMIS_CIN1_CHAB","ASSE_COMBU":"XXX_IRA"}
- ChangementValeurDsMCFAvecAvertissement(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dchaboche,lavertit)
-
- ####################### traitement DEFI_MATERIAU #######################
- renameMotCle(jdc,"DEFI_MATERIAU","LEMAITRE","LEMAITRE_IRRA")
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","FLU_IRRA","QSR_K",("LEMAITRE_IRRA",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","FLU_IRRA","BETA",("LEMAITRE_IRRA",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","FLU_IRRA","PHI_ZERO",("LEMAITRE_IRRA",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","FLU_IRRA","L",("LEMAITRE_IRRA",))
- removeMotCle(jdc,"DEFI_MATERIAU","FLU_IRRA")
- renameMotCleAvecErreur(jdc,"DEFI_MATERIAU","CHABOCHE","CINx_CHAB")
-
- ####################### traitement DEFI_MATERIAU #######################
- renameMotCleInFact(jdc,"DEFI_MATERIAU","GRAN_IRRA","A","GRAN_A")
- renameMotCleInFact(jdc,"DEFI_MATERIAU","GRAN_IRRA","B","GRAN_B")
- renameMotCleInFact(jdc,"DEFI_MATERIAU","GRAN_IRRA","S","GRAN_S")
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","GRAN_IRRA","GRAN_A",("LEMAITRE_IRRA",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","GRAN_IRRA","GRAN_B",("LEMAITRE_IRRA",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","GRAN_IRRA","GRAN_S",("LEMAITRE_IRRA",))
- removeMotCle(jdc,"DEFI_MATERIAU","GRAN_IRRA")
-
- ####################### traitement DEFI_MATERIAU #######################
- chercheOperInsereFacteurSiRegle(jdc,"DEFI_MATERIAU","ELAS",((("CABLE",),"existe"),))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","CABLE","E", ("ELAS",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","CABLE","NU", ("ELAS",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","CABLE","RHO",("ELAS",))
- moveMotCleFromFactToFactMulti(jdc,"DEFI_MATERIAU","CABLE","ALPHA",("ELAS",))
- AjouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","ELAS","NU=0.,",((("ELAS","NU"),"nexistepasMCsousMCF"),))
-
- ####################### traitement IMPR_CO #######################
- chercheOperInsereFacteurSiRegle(jdc,"IMPR_CO","CONCEPT",((("CO",),"existe"),))
- moveMotClefInOperToFact(jdc,"IMPR_CO","CO","CONCEPT")
- renameMotCleInFact(jdc,"IMPR_CO","CONCEPT","CO","NOM")
-
- ####################### traitement DEFI_SQUELETTE #######################
- chercheOperInsereFacteurSiRegle(jdc,"DEFI_SQUELETTE","CYCLIQUE",((("MODE_CYCL",),"existe"),))
- moveMotClefInOperToFact(jdc,"DEFI_SQUELETTE","MODE_CYCL","CYCLIQUE")
-
- ####################### traitement AFFE_CHAR_* #######################
- removeMotCle(jdc,"AFFE_CHAR_MECA","VERI_DDL")
- removeMotCle(jdc,"AFFE_CHAR_MECA","SECH_CALCULEE")
- removeMotCle(jdc,"AFFE_CHAR_MECA","HYDR_CALCULEE")
- removeMotCle(jdc,"AFFE_CHAR_THER_F","VERI_DDL")
- removeMotCle(jdc,"AFFE_CHAR_THER","VERI_DDL")
-
- chercheOperInsereFacteurSiRegle(jdc,"CALC_G_LOCAL_T","LISSAGE",((("LISSAGE_G","LISSAGE_THETA","DEGRE"),"existeMCFParmi"),))
- moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_THETA","LISSAGE")
- moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","LISSAGE_G","LISSAGE")
- moveMotClefInOperToFact(jdc,"CALC_G_LOCAL_T","DEGRE","LISSAGE")
-
- ####################### traitement CALC_G #######################
- dlocal={"CALC_G_LGLO":"G_LAGR", "G_BILINEAIRE":"G_BILI", "CALC_G_MAX":"G_MAX"}
- ChangementValeur(jdc,"CALC_G_LOCAL_T","OPTION",dlocal)
- #
- dtheta={"CALC_G_LAGR":"G_LAGR_GLOB", "G_BILINEAIRE":"G_BILI_GLOB", "CALC_G_MAX":"G_MAX_GLOB","CALC_G":"CALC_G_GLOB"}
- # Attention si le defaut doit generer un avertissement Il faut le mettre comme dernier mot de la liste
- lavertit=("CALC_G_LAGR","CALC_G","defaut")
- ChangementValeurAvecAvertissement(jdc,"CALC_G_THETA_T","OPTION",dtheta,lavertit)
- renameOper(jdc,"CALC_G_LOCAL_T","CALC_G")
- renameOper(jdc,"CALC_G_THETA_T","CALC_G")
-
- # Attention cela necessite un traitement particulier et ne peut pas etre generalise tel quel
- # Attention egalement doit etre fait avant le regroupement dans THETA
- calcG.traitementRayon(jdc)
- renameMotCle(jdc,"CALC_G","THETA","THETA_OLD")
- chercheOperInsereFacteur(jdc,"CALC_G","THETA")
- moveMotClefInOperToFact(jdc,"CALC_G","THETA_OLD","THETA")
- renameMotCleInFact(jdc,"CALC_G","THETA","THETA_OLD","THETA")
-
- moveMotClefInOperToFact(jdc,"CALC_G","FOND_FISS","THETA")
- moveMotClefInOperToFact(jdc,"CALC_G","R_INF_FO","THETA")
- moveMotClefInOperToFact(jdc,"CALC_G","R_SUP_FO","THETA")
- moveMotClefInOperToFact(jdc,"CALC_G","R_INF","THETA")
- moveMotClefInOperToFact(jdc,"CALC_G","R_SUP","THETA")
- moveMotClefInOperToFact(jdc,"CALC_G","FISSURE","THETA")
-
- ####################### traitement AFFE_MODELE #######################
- daffeModele={"PLAN_FISSURE":"PLAN_JOINT", "AXIS_FISSURE":"AXIS_JOINT","OHNO_FO":"VISC_TAHERI_FO","OHNO":"VISC_TAHERI"}
- lavertit=("OHNO","OHNO_FO")
- ChangementValeurDsMCFAvecAvertissement(jdc,"AFFE_MODELE","AFFE","MODELISATION",daffeModele,lavertit)
- removeMotCleSiRegleAvecErreur(jdc,"AFFE_MODELE","AFFE",((("AFFE","MODELISATION","APPUI_REP",jdc),"MCsousMCFaPourValeur"),))
-
- ####################### traitement PROJ_MESU_MODAL #######################
- removeMotCleInFact(jdc,"PROJ_MESU_MODAL","MODELE_MESURE","NOM_PARA")
- removeMotCleInFactSiRegleAvecErreur(jdc,"AFFE_CHAR_MECA","CONTACT","FROTTEMENT",((("CONTACT","METHODE","CONTRAINTE",jdc),"MCsousMCFaPourValeur"),))
-
- ####################### traitement CALC_ELEM / CALC_NO #######################
- dcalcelemno={"ERRE_ELGA_NORE":"ERRE_ELEM_SIGM","ERRE_ELEM_NOZ1":"ERZ1_ELEM_SIGM","ERRE_ELEM_NOZ2":"ERZ2_ELEM_SIGM","ERRE_ELNO_ELGA":"ERRE_ELNO_ELEM","ERRE_NOEU_ELGA":"ERRE_NOEU_ELEM","ERTH_ELEM_TEMP":"ERRE_ELEM_TEMP","ERTH_ELNO_ELEM":"ERRE_ELNO_ELEM"}
- ChangementValeur(jdc,"CALC_ELEM","OPTION",dcalcelemno)
- ChangementValeur(jdc,"CALC_NO","OPTION",dcalcelemno)
- ChangementValeurDsMCF(jdc,"IMPR_RESU","RESU","NOM_CHAM",dcalcelemno)
- ChangementValeur(jdc,"TEST_RESU","RESU",dcalcelemno)
- removeMotCleAvecErreur(jdc,"TEST_RESU","UNITE")
-
-
- ####################### traitement EXTR_MODE #######################
- AjouteMotClefDansFacteurSiRegle(jdc,"EXTR_MODE","FILTRE_MODE","SEUIL=1.E-3", ((("FILTRE_MODE","CRIT_EXTR",),"existeMCsousMCF"),(("FILTRE_MODE","SEUIL",),"nexistepasMCsousMCF")))
-
- ####################### traitement DYNA_TRAN_EXPLI #######################
- chercheOperInsereFacteur(jdc,"DYNA_TRAN_EXPLI","DIFF_CENT")
-
- ####################### traitement CREA_RESU #######################
- dcrearesu={"HYDR_ELGA":"HYDR_NOEU_ELGA"}
- lavertit=("HYDR_ELGA",)
- ChangementValeur(jdc,"CREA_RESU","NOM_CHAM",dcrearesu,lavertit)
-
- ####################### traitement DEBUT #######################
- removeMotCleSiRegle(jdc,"DEBUT","BASE",((("BASE","FICHIER","LOCALE",jdc),"MCsousMCFaPourValeur"),))
-
- ####################### traitement DEFI_THER_JOULE #######################
- removeCommande(jdc,"DEFI_THER_JOULE")
-
- ####################### traitement CALC_CHAM_ELEM #######################
- removeCommandeSiRegleAvecErreur(jdc,"CALC_CHAM_ELEM",((("OPTION","SOUR_ELGA_ELEC",jdc),"MCaPourValeur"),))
-
- ####################### traitement MACR_LIGNE_COUPE #######################
- AppelleMacroSelonValeurConcept(jdc,"MACR_LIGN_COUPE",("LIGN_COUPE","TABLE","CO"))
-
- ####################### traitement MODI_MAILLAGE #######################
- removeMotCle(jdc,"MODI_MAILLAGE","MODELE")
-
- ####################### traitement LIRE_TABLE #######################
- removeMotCle(jdc,"LIRE_TABLE","TYPE_TABLE")
-
- ####################### traitement POST_SIMPLIFIE #######################
- removeCommande(jdc,"POST_SIMPLIFIE")
-
- ####################### traitement AFFE_MATERIAU #######################
- removeMotCleInFact(jdc,"AFFE_MATERIAU","AFFE","SECH_REF")
-
-
- f=open(outfile,'w')
- f.write(jdc.getSource())
- f.close()
-
-
-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()
-