1 #@ MODIF macr_cabri_calc_cata Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET
2 # -*- coding: iso-8859-1 -*-
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
21 from Intranet.macr_cabri_calc_ops import macr_cabri_calc_ops
22 from Cata.cata import *
24 def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER,
25 CHAR_THER,CHAR_MECA,RESU_THER,**args):
26 if MODELE_THER != None:
27 self.type_sdprod(MODELE_THER,modele_sdaster)
28 if MODELE_MECA != None:
29 self.type_sdprod(MODELE_MECA,modele_sdaster)
31 self.type_sdprod(RESU_THER,evol_ther)
32 if CHAM_MATER != None:
33 self.type_sdprod(CHAM_MATER,cham_mater)
36 self.type_sdprod(m['CHARGE'],char_ther)
39 self.type_sdprod(m['CHARGE'],char_meca)
43 MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
44 op=macr_cabri_calc_ops,
45 sd_prod=macr_cabri_calc_prod,
46 fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie",
48 UIinfo={"groupes":("Outils métier",)},
49 MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,),
50 AFFE_MATERIAU = FACT(statut='o',max='**',
51 regles=(UN_PARMI('TOUT','GROUP_MA',),),
52 TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ),
53 GROUP_MA = SIMP(statut='f',typ='TXM',into=(
59 MATER = SIMP(statut='o',typ=mater_sdaster),
60 TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
62 CHAM_MATER = SIMP(statut = 'f',typ=CO,),
63 MODELE_THER= SIMP(statut = 'f',typ=CO,),
65 DEFI_CHAR_THER = FACT(statut ='d',
66 TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,),
67 COEF_H_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
68 TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
69 COEF_H_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
70 TEMP_EXT_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
71 LIST_INST = SIMP(statut='f',typ=listr8_sdaster),
74 CHAR_THER = FACT(statut = 'f',max=4,
75 CHARGE = SIMP(statut='o',typ=CO),
76 TYPE = SIMP(statut='o',typ='TXM',
77 into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
81 RESU_THER = SIMP(statut = 'f',typ=CO,),
84 MODELE_MECA= SIMP(statut = 'f',typ=CO,),
86 DEFI_CHAR_MECA = FACT(statut='o',
87 PRETENS = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
88 PRES_REP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
89 EFFE_FOND = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
92 CHAR_MECA = FACT(statut = 'f',max=11,
93 CHARGE = SIMP(statut='o',typ=CO),
94 TYPE = SIMP(statut='o',typ='TXM',
95 into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT",
96 "BLOC_LAT_ALES","BLOC_LAT_NALES",
98 "PRES_FLU","EFFET_FOND",
101 "SERR_ECROU_1","SERR_ECROU_2",),)
104 RELATION = SIMP(statut='f',typ='TXM',
105 into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
107 SOLVEUR = FACT(statut='d',
108 METHODE = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ),
109 b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
110 fr="Paramètres de la méthode multi frontale",
111 RENUM = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
112 NPREC = SIMP(statut='d',typ='I',defaut=8),
113 STOP_SINGULIER = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ),
116 INCREMENT = FACT(statut='f',
117 regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
118 EXCLUS('NUME_INST_FIN','INST_FIN'),),
119 LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
120 EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
121 into=("CHRONOLOGIQUE",) ),
122 NUME_INST_INIT =SIMP(statut='f',typ='I'),
123 INST_INIT =SIMP(statut='f',typ='R'),
124 NUME_INST_FIN =SIMP(statut='f',typ='I'),
125 INST_FIN =SIMP(statut='f',typ='R'),
126 PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
127 # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
128 SUBD_METHODE =SIMP( statut='f',typ='TXM',
129 into =("AUCUNE","UNIFORME","EXTRAPOLE"),
131 fr="Méthode de subdivision des pas de temps en cas de non-convergence"
133 b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
134 regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
135 SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
136 fr="Coefficient multiplicateur de la 1ère subdivision"),
137 SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,
138 fr="Nombre de subdivision d'un pas de temps"),
139 SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
140 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
141 SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
142 fr="Pas de temps en dessous duquel on ne subdivise plus"),
144 b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
145 regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
146 SUBD_OPTION =SIMP(statut='f',typ='TXM',
147 into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
148 defaut="IGNORE_PREMIERES",
149 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
150 SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
151 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
152 SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3,
153 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
154 SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2,
155 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
156 SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
157 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
158 SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
159 fr="Pas de temps en dessous duquel on ne subdivise plus"),
160 SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
161 fr="% itération autorisée en plus"),
163 # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
164 OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
165 NOM_CHAM =SIMP(statut='f',typ='TXM',),
166 NOM_CMP =SIMP(statut='f',typ='TXM',),
167 VALE =SIMP(statut='f',typ='R'),
169 NEWTON =FACT(statut='d',
170 REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ),
171 PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
172 MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
173 PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
174 REAC_ITER =SIMP(statut='f',typ='I',defaut=0),
175 EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
177 RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
178 into=("IMPLICITE",)),
179 CONVERGENCE =FACT(statut='d',
180 regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
181 SIGM_REFE =SIMP(statut='f',typ='R'),
182 EPSI_REFE =SIMP(statut='f',typ='R'),
183 FLUX_THER_REFE =SIMP(statut='f',typ='R'),
184 RESI_REFE_RELA =SIMP(statut='f',typ='R'),
185 RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
186 RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
187 ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
188 ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),