Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Traducteur / traduitV8V9.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 """
4 """
5 usage="""usage: %prog [options]
6 Typical use is:
7   python traduitV7V8.py --infile=xxxx --outfile=yyyy
8 """
9
10 import log
11 import optparse
12
13 from load   import getJDC
14 from mocles import parseKeywords
15 from removemocle  import *
16 from renamemocle  import *
17 from renamemocle  import *
18 from inseremocle  import *
19 from changeValeur import *
20 from movemocle    import *
21 from dictErreurs  import GenereErreurPourCommande
22
23 import calcG
24
25
26 atraiter=( "DEFI_MAILLAGE","CALC_VECT_ELEM","DYNA_NON_LINE","STAT_NON_LINE","FACT_LDLT","FACT_GRAD","RESO_LDLT","RESO_GRAD","DYNA_TRAN_MODAL","NORM_MODE","MACRO_MODE_MECA","POST_RCCM","THER_NON_LINE","THER_LINEAIRE","THER_NON_LINE_MO","DEFI_CABLE_BP","GENE_VARI_ALEA","DEFI_MATERIAU","IMPR_MATRICE","CALC_G","CALC_MATR_ELEM")
27
28 def traduc(infile,outfile,flog=None):
29
30     hdlr=log.initialise(flog)
31     jdc=getJDC(infile,atraiter)
32     root=jdc.root
33
34     #Parse les mocles des commandes
35     parseKeywords(root)
36     
37     ####################### traitement erreurs ########################
38     GenereErreurPourCommande(jdc,("POST_RCCM"))
39
40     ####################### traitement Sous-Structuration  #######################
41     renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_SUPER_MAILLE","MACR_ELEM_STAT","MACR_ELEM")
42     renameMotCleInFact(jdc,"DYNA_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
43     renameMotCleInFact(jdc,"STAT_NON_LINE","SOUS_STRUC","MAILLE","SUPER_MAILLE")
44     renameMotCleInFact(jdc,"CALC_VECT_ELEM","SOUS_STRUC","MAILLE","SUPER_MAILLE")
45     #########################################################################
46
47     ####################### traitement Resolution lineaire ######################
48     renameMotCle(jdc,"RESO_LDLT","MATR_FACT","MATR")
49     renameMotCle(jdc,"RESO_GRAD","MATR_ASSE","MATR")
50     renameMotCle(jdc,"RESO_GRAD","MATR_FACT","MATR_FACT")
51     renameOper(jdc,"RESO_LDLT","RESOUDRE")
52     renameOper(jdc,"RESO_GRAD","RESOUDRE")
53     renameOper(jdc,"FACT_LDLT","FACTORISER")
54     renameOper(jdc,"FACT_GRAD","FACTORISER")
55     #########################################################################
56
57     ####################### traitement DYNA_TRAN_MODAL ######################
58     removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
59     #########################################################################
60
61     ####################### traitement MASS_INER dans NORM_MODE ##########
62     removeMotCle(jdc,"NORM_MODE","MASSE_INER")
63     removeMotCleInFact(jdc,"MACRO_MODE_MECA","NORM_MODE","MASSE_INER")
64     #########################################################################
65
66     ####################### traitement POST_RCCM ############################
67     removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NUME_PASSAGE",((("TYPE_RESU_MECA","TUYAUTERIE",jdc),"MCaPourValeur"),))
68     #########################################################################
69
70     ####################### traitement THER_NON_LINE ############################
71     renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
72     renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
73     renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_INIT","NUME_INST_INIT")
74     renameMotCleInFact(jdc,"THER_NON_LINE","INCREMENT","NUME_FIN","NUME_INST_FIN")
75     #########################################################################
76
77     ####################### traitement THER_LINEAIRE ############################
78     renameMotCleInFact(jdc,"THER_LINEAIRE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
79     renameMotCle(jdc,"THER_LINEAIRE","TEMP_INIT","ETAT_INIT",)
80     renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_INIT","NUME_INST_INIT")
81     renameMotCleInFact(jdc,"THER_LINEAIRE","INCREMENT","NUME_FIN","NUME_INST_FIN")
82     #########################################################################
83
84     ####################### traitement THER_NON_LINE ############################
85     renameMotCleInFact(jdc,"THER_NON_LINE","TEMP_INIT","NUME_INIT","NUME_ORDRE")
86     renameMotCle(jdc,"THER_NON_LINE","TEMP_INIT","ETAT_INIT",)
87     #########################################################################
88
89     ####################### traitement DEFI_CABLE_BP ######################
90     removeMotCle(jdc,"DEFI_CABLE_BP","MAILLAGE")
91     #########################################################################
92
93     ####################### traitement GENE_VARI_ALEA ######################
94     removeMotCleSiRegle(jdc,"GENE_VARI_ALEA","COEF_VAR",((("TYPE","EXPONENTIELLE",jdc),"MCaPourValeur"),))
95     #########################################################################
96
97     ####################### traitement DEFI_MATERIAU ######################
98     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","BAZANT_FD")
99     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","PORO_JOINT")
100     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","APPUI_ELAS")
101     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_EPRI")
102     removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_CYRA2")
103     #########################################################################
104
105     ####################### traitement IMPR_MATRICE ######################
106     removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ELEM","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
107     removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ASSE","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
108     #########################################################################
109
110
111     ####################### traitement CALC_G ######################
112     removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR",jdc),"MCaPourValeur"),))
113     removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR_GLOB",jdc),"MCaPourValeur"),))
114     removeMotCle(jdc,"CALC_G","PROPAGATION")
115     removeMotCle(jdc,"CALC_G","THETA_LAGR")
116     removeMotCle(jdc,"CALC_G","DIRE_THETA_LAGR")
117     #########################################################################
118
119     ####################### traitement CALC_MATR_ELEM ######################
120     removeMotCleSiRegle(jdc,"CALC_MATR_ELEM","OPTION",((("OPTION","RIGI_MECA_LAGR",jdc),"MCaPourValeur"),))
121     removeMotCleAvecErreur(jdc,"CALC_MATR_ELEM","PROPAGATION")
122     removeMotCle(jdc,"CALC_MATR_ELEM","THETA")
123     #########################################################################
124
125     ####################### traitement CONTACT ######################
126     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","KT_ULTM")
127     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","EFFO_N_INIT")
128     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_IRRA")
129     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_N_FO")
130     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","RIGI_MZ")
131     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_1")
132     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_2")
133     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_3")
134     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","ANGLE_4")
135     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_1")
136     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_2")
137     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_3")
138     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","MOMENT_4")
139     removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","C_PRAGER_MZ")
140     dDis_Choc={"DIS_CONTACT":"DIS_CHOC"}
141     ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
142     ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dDis_Choc)
143     renameMotCleInFact(jdc,"STAT_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
144     renameMotCleInFact(jdc,"DYNA_NON_LINE","COMP_INCR","DIS_CONTACT","DIS_CHOC")
145     dGrilles={"DIS_GRICRA":"GRILLE_CRAYONS"}
146     ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dGrilles)
147     ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dGrilles)
148
149     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","RECHERCHE")
150     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_Y")
151     removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_ORIE_POU")
152
153     renameCommandeSiRegle(jdc,"AFFE_CHAR_MECA_F","AFFE_CHAR_MECA",((("CONTACT",),"existeMCFParmi"),))
154     #########################################################################
155
156     ####################### traitement CAM_CLAY ######################
157     AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
158     #########################################################################
159
160     ####################### traitement GLRC ######################
161     renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
162     #########################################################################
163
164     f=open(outfile,'w')
165     f.write(jdc.getSource())
166     f.close()
167
168     log.ferme(hdlr)
169
170 def main():
171     parser = optparse.OptionParser(usage=usage)
172
173     parser.add_option('-i','--infile', dest="infile", default='toto.comm',
174         help="Le fichier à traduire")
175     parser.add_option('-o','--outfile', dest="outfile", default='tutu.comm',
176         help="Le fichier traduit")
177
178     options, args = parser.parse_args()
179     traduc(options.infile,options.outfile)
180
181 if __name__ == '__main__':
182     main()
183