]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/Intranet/macr_cabri_calc_cata.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA9 / Intranet / macr_cabri_calc_cata.py
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.                                                  
10 #                                                                       
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.                              
15 #                                                                       
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 # ======================================================================
20
21 from Intranet.macr_cabri_calc_ops import macr_cabri_calc_ops
22 from Cata.cata import *
23    
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)  
30   if RESU_THER != None:
31    self.type_sdprod(RESU_THER,evol_ther)     
32   if CHAM_MATER != None:
33    self.type_sdprod(CHAM_MATER,cham_mater)     
34   if CHAR_THER != None: 
35     for m in CHAR_THER:
36       self.type_sdprod(m['CHARGE'],char_ther)
37   if CHAR_MECA != None: 
38     for m in CHAR_MECA:
39       self.type_sdprod(m['CHARGE'],char_meca)
40   return evol_noli
41
42
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",
47                       reentrant='n',
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=(
54                                                                   "BRIDE",
55                                                                   "GOUJON",
56                                                                   "ROND",
57                                                                   "ECROU",
58                                                                   "JOINT",) ),
59                         MATER    = SIMP(statut='o',typ=mater_sdaster),
60                         TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
61                       ),                      
62                       CHAM_MATER = SIMP(statut = 'f',typ=CO,),
63                       MODELE_THER= SIMP(statut = 'f',typ=CO,),
64                       
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),
72                       ),                      
73                       
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",
78                                        "BRIDE_JOINT"),)
79                                        ),
80
81                       RESU_THER  = SIMP(statut = 'f',typ=CO,),                                       
82
83                                        
84                       MODELE_MECA= SIMP(statut = 'f',typ=CO,),
85
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),),
90                       ),                                                             
91
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",
97                                        "PLAN_TUBE",
98                                        "PRES_FLU","EFFET_FOND",
99                                        "CONT_JOINT",
100                                        "DEFO_THER",
101                                        "SERR_ECROU_1","SERR_ECROU_2",),)
102                                        ),
103                      
104                       RELATION = SIMP(statut='f',typ='TXM',
105                                        into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
106                         
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") ),
114                            ),                 
115                       ),                                             
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"),
130               defaut="AUCUNE",
131               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
132            ),
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"),
143            ),
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"),
162            ),
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'),
168                       ),
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),
176                       ),
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),
189                       ),
190                      );