]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/Macro/macr_cabri_calc_ops.py
Salome HOME
CCAR: creation V1_13a1 a partir de la branche Liv-V1_12
[tools/eficas.git] / Aster / Cata / cataSTA9 / Macro / macr_cabri_calc_ops.py
1 #@ MODIF macr_cabri_calc_ops Macro  DATE 09/05/2007   AUTEUR REZETTE C.REZETTE 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2003  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
22
23
24 def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
25     CHAR_MECA,RESU_THER,RESO_INTE,
26     AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, 
27     INCREMENT,CHAM_MATER,**args):
28    """
29      Ecriture de la macro MACR_CABRI_CALC
30    """
31    
32    #################################################################
33    ########## PREPARATION MACRO
34    #################################################################
35
36    from Accas import _F
37
38    ier =0
39    
40    # On met certains mots-clefs dans des variables locales pour les proteger
41    affemateriau = AFFE_MATERIAU
42    mail         = MAILLAGE  
43    resointe     = RESO_INTE
44
45    # On importe les definitions des commandes a utiliser dans la macro
46    # Le nom de la variable doit etre obligatoirement le nom de la commande
47    DEFI_GROUP       = self.get_cmd('DEFI_GROUP')
48    AFFE_MATERIAU    = self.get_cmd('AFFE_MATERIAU')
49    AFFE_MODELE      = self.get_cmd('AFFE_MODELE') 
50    MODI_MAILLAGE    = self.get_cmd('MODI_MAILLAGE')   
51    AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F')
52    AFFE_CHAR_THER   = self.get_cmd('AFFE_CHAR_THER')  
53    AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F')
54    AFFE_CHAR_MECA   = self.get_cmd('AFFE_CHAR_MECA')  
55    DEFI_FONCTION    = self.get_cmd('DEFI_FONCTION')
56    DEFI_LIST_REEL   = self.get_cmd('DEFI_LIST_REEL')
57    THER_LINEAIRE    = self.get_cmd('THER_LINEAIRE')
58    STAT_NON_LINE    = self.get_cmd('STAT_NON_LINE')
59
60    # La macro compte pour 1 dans la numerotation des commandes
61    self.set_icmd(1)
62
63    # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans 
64    # le contexte de la macro
65    self.DeclareOut('resumeca',self.sd)
66    self.DeclareOut('mail',MAILLAGE)
67            
68    #################################################################
69    ########## PREPARATION DES MODELES
70    #################################################################
71
72    # Definition des groupes
73    mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail,
74                         CREA_GROUP_NO=(
75                                   _F(GROUP_MA='M_GOU',NOM='N_M_GOU',),
76                                   _F(GROUP_MA='M_JOI',NOM='N_M_JOI',),
77                                   _F(GROUP_MA='SCBJ',NOM='N_SCBJ',),
78                                   _F(GROUP_MA='SCJB',NOM='N_SCJB',),
79                                   _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',),
80                                   _F(GROUP_MA='SCEG',NOM='N_SCEG',),
81                                   _F(GROUP_MA='SCGE',NOM='N_SCGE',),),)
82
83    # Creation du modele thermique
84    if MODELE_THER != None:
85       self.DeclareOut('modther',MODELE_THER)
86          
87    modther=AFFE_MODELE(MAILLAGE=mail,
88                           AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
89                           'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',),
90                                   PHENOMENE='THERMIQUE',
91                                   MODELISATION='3D_DIAG',),
92                          );
93
94    # Creation du modele mecanique
95    if MODELE_MECA != None:
96       self.DeclareOut('modmeca',MODELE_MECA)
97          
98    modmeca = AFFE_MODELE(MAILLAGE=mail,
99                           AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
100                           'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',),
101                                   PHENOMENE='MECANIQUE',
102                                   MODELISATION='3D',),
103                          );
104
105    # Orientation des mailles
106    mail=MODI_MAILLAGE(reuse =mail,
107                  MAILLAGE=mail,
108                  ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),),
109                                _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),),
110                               );
111
112
113
114    # Affectation des materiaux (thermique)
115    motscles={}
116    motscles['AFFE']=[]
117    for mat in affemateriau:
118       if mat['TOUT'] == None:
119          # Creation de mots-cles pour les AFFE_CHAR_MECA
120          motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
121                                     MATER = mat['MATER'],
122                                     TEMP_REF = mat['TEMP_REF'],) )
123       else:
124          # Creation de mots-cles pour les AFFE_CHAR_MECA
125          motscles['AFFE'].append(_F(TOUT='OUI',
126                                     MATER = mat['MATER'],
127                                     TEMP_REF = mat['TEMP_REF'],) )
128       
129    __cham = AFFE_MATERIAU(MAILLAGE=mail,
130                     MODELE=modther,
131                     AFFE=motscles['AFFE'],
132                    )
133
134    #################################################################
135    ########## CONDITIONS AUX LIMITES THERMIQUES
136    #################################################################   
137    # Recuperation des parametres thermiques
138
139    if DEFI_CHAR_THER != None:
140       temp_ini = DEFI_CHAR_THER['TEMP_INIT']
141       if DEFI_CHAR_THER['COEF_H_FLUI']!=None:
142          coef_int = DEFI_CHAR_THER['COEF_H_FLUI']
143       else:
144          coef_int = DEFI_FONCTION(NOM_PARA='INST',
145                     VALE=(0.0,0.016,
146                        7200.0,0.016,),
147                     PROL_DROITE='CONSTANT',
148                     PROL_GAUCHE='CONSTANT',);      
149       if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None:
150          temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI']
151       else:
152          temp_int = DEFI_FONCTION(NOM_PARA='INST',
153                     VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
154                           600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
155                     PROL_DROITE='CONSTANT',
156                     PROL_GAUCHE='CONSTANT',);    
157       if DEFI_CHAR_THER['COEF_H_AIR']!=None:
158          coef_ext = DEFI_CHAR_THER['COEF_H_AIR']
159       else:
160          coef_ext = DEFI_FONCTION(NOM_PARA='INST',
161                     VALE=(0.0,1e-05,7200.0,1e-05,),
162                     PROL_DROITE='CONSTANT',
163                     PROL_GAUCHE='CONSTANT',);
164      
165       if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None:
166          temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR']
167       else:
168          temp_ext = DEFI_FONCTION(NOM_PARA='INST',
169                     VALE=(0.0,20.0,7200.0,20.0,),
170                     PROL_DROITE='CONSTANT',
171                     PROL_GAUCHE='CONSTANT',);    
172       if DEFI_CHAR_THER['LIST_INST']!=None:
173          transi1  = DEFI_CHAR_THER['LIST_INST']
174       else:
175          transi1  = DEFI_LIST_REEL(DEBUT=0.0,
176                      INTERVALLE=(_F(JUSQU_A=1.0,
177                                     NOMBRE=1,),
178                                  _F(JUSQU_A=11.0,
179                                     NOMBRE=10,),
180                                  _F(JUSQU_A=600.0,
181                                     NOMBRE=10,),
182                                  _F(JUSQU_A=610.0,
183                                     NOMBRE=30,),
184                                  _F(JUSQU_A=1800.0,
185                                     NOMBRE=30,),
186                                  _F(JUSQU_A=7200.0,
187                                     NOMBRE=10,),),);                                                        
188    else:
189       temp_ini = DEFI_CHAR_THER['TEMP_INIT']
190       coef_int = DEFI_FONCTION(NOM_PARA='INST',
191                     VALE=(0.0,0.016,
192                        7200.0,0.016,),
193                     PROL_DROITE='CONSTANT',
194                     PROL_GAUCHE='CONSTANT',);      
195       temp_int = DEFI_FONCTION(NOM_PARA='INST',
196                     VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
197                           600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
198                     PROL_DROITE='CONSTANT',
199                     PROL_GAUCHE='CONSTANT',);    
200       coef_ext = DEFI_FONCTION(NOM_PARA='INST',
201                     VALE=(0.0,1e-05,7200.0,1e-05,),
202                     PROL_DROITE='CONSTANT',
203                     PROL_GAUCHE='CONSTANT',);    
204       temp_ext = DEFI_FONCTION(NOM_PARA='INST',
205                     VALE=(0.0,20.0,7200.0,20.0,),
206                     PROL_DROITE='CONSTANT',
207                     PROL_GAUCHE='CONSTANT',);                                       
208       transi1  = DEFI_LIST_REEL(DEBUT=0.0,
209                      INTERVALLE=(_F(JUSQU_A=1.0,
210                                     NOMBRE=1,),
211                                  _F(JUSQU_A=11.0,
212                                     NOMBRE=10,),
213                                  _F(JUSQU_A=600.0,
214                                     NOMBRE=10,),
215                                  _F(JUSQU_A=610.0,
216                                     NOMBRE=30,),
217                                  _F(JUSQU_A=1800.0,
218                                     NOMBRE=30,),
219                                  _F(JUSQU_A=7200.0,
220                                     NOMBRE=10,),),);     
221    # Que sauver ?
222    if CHAR_THER != None:
223       for m in CHAR_THER:
224          if m['TYPE']=="BRIDE_FLUIDE":
225             self.DeclareOut('cl_th1',m['CHARGE'])
226          if m['TYPE']=="BRIDE_AIR":
227             self.DeclareOut('cl_th2',m['CHARGE'])
228          if m['TYPE']=="ECROU_GOUJON":
229             self.DeclareOut('cl_th3',m['CHARGE'])
230          if m['TYPE']=="BRIDE_JOINT":
231             self.DeclareOut('cl_th4',m['CHARGE'])
232
233    # Echanges thermiques internes entre le fluide et la bride
234    cl_th1=AFFE_CHAR_THER_F(MODELE=modther,
235                            ECHANGE=_F(GROUP_MA = 'M_INT',
236                                       COEF_H   = coef_int,
237                                       TEMP_EXT = temp_int,),);
238
239    # Echanges thermiques externes entre bride et air ambiant
240    cl_th2=AFFE_CHAR_THER_F(MODELE=modther,
241                            ECHANGE=_F(GROUP_MA='M_EXT',
242                                    COEF_H=coef_ext,
243                                    TEMP_EXT=temp_ext,),);
244
245    # Echanges thermiques entre ecrou et goujon
246    cl_th3=AFFE_CHAR_THER(MODELE=modther,
247                          LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
248                                         GROUP_NO_2='N_SCGE',
249                                         DDL_1='TEMP',
250                                         COEF_MULT_1=1.0,
251                                         DDL_2='TEMP',
252                                         COEF_MULT_2=-1.0,
253                                         COEF_IMPO=0.0,),);
254
255    # Echanges thermiques entre bride et joint
256    cl_th4=AFFE_CHAR_THER(MODELE=modther,
257                          LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ',
258                                         GROUP_NO_2='N_SCJB',
259                                         DDL_1='TEMP',
260                                         COEF_MULT_1=1.0,
261                                         DDL_2='TEMP',
262                                         COEF_MULT_2=-1.0,
263                                         COEF_IMPO=0.0,),);
264
265
266
267    #################################################################
268    ########## CALCUL THERMIQUE
269    #################################################################   
270    if RESU_THER != None:
271       self.DeclareOut('resuther',RESU_THER)   
272
273    resuther=THER_LINEAIRE(MODELE=modther,
274                   CHAM_MATER=__cham,
275                   EXCIT=(_F(CHARGE=cl_th1,),
276                          _F(CHARGE=cl_th2,),
277                          _F(CHARGE=cl_th3,),
278                          _F(CHARGE=cl_th4,),),
279                   INCREMENT=_F(LIST_INST=transi1,),
280                   TEMP_INIT=_F(VALE=temp_ini,),
281                   TITRE='CABRI THERMIQUE &DATE &HEURE',);
282  
283       # Affectation des materiaux (mécanique)
284    if CHAM_MATER != None:
285       self.DeclareOut('_chamt',CHAM_MATER)
286    motscles={}
287    motscles['AFFE']=[]
288    motscles['AFFE_VARC']=[]
289    for mat in affemateriau:
290       if mat['TOUT'] == None:
291          # Creation de mots-cles pour les AFFE_CHAR_MECA
292          motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
293                                     MATER = mat['MATER'],) )
294          motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',GROUP_MA=mat['GROUP_MA'],
295                                          EVOL=resuther,NOM_CHAM='TEMP',
296                                          VALE_REF = mat['TEMP_REF'],))
297       else:
298          # Creation de mots-cles pour les AFFE_CHAR_MECA
299          motscles['AFFE'].append(_F(TOUT='OUI',
300                                     MATER = mat['MATER'],
301                                     TEMP_REF = mat['TEMP_REF'],) )
302          motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',TOUT='OUI',
303                                          EVOL=resuther,NOM_CHAM='TEMP',
304                                          VALE_REF = mat['TEMP_REF'],))
305       
306    _chamt = AFFE_MATERIAU(MAILLAGE=mail,
307                     MODELE=modther,
308                     AFFE=motscles['AFFE'],
309                     AFFE_VARC=motscles['AFFE_VARC'],
310                    )
311
312    #################################################################
313    ########## CONDITIONS AUX LIMITES MECANIQUES
314    #################################################################   
315    # Recuperation des parametres mecaniques
316    if DEFI_CHAR_MECA != None:
317      if DEFI_CHAR_MECA['PRETENS']!=None:
318          f_pret = DEFI_CHAR_MECA['PRETENS']
319      else:
320          f_pret=DEFI_FONCTION(NOM_PARA='INST',
321                      VALE=(0.0,0.0,1.0,-0.02,),
322                      PROL_DROITE='CONSTANT',
323                      PROL_GAUCHE='CONSTANT',);                                 
324      if DEFI_CHAR_MECA['PRES_REP']!=None:
325          pre_int = DEFI_CHAR_MECA['PRES_REP']
326      else:
327          pre_int = DEFI_FONCTION(NOM_PARA='INST',
328                       VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
329                       PROL_DROITE='CONSTANT',
330                       PROL_GAUCHE='CONSTANT',);  
331      if DEFI_CHAR_MECA['EFFE_FOND']!=None:
332          eff_fond = DEFI_CHAR_MECA['EFFE_FOND']
333      else:
334          eff_fond=DEFI_FONCTION(NOM_PARA='INST',
335                        VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
336                        PROL_DROITE='CONSTANT',
337                        PROL_GAUCHE='CONSTANT',);
338    else:
339       f_pret=DEFI_FONCTION(NOM_PARA='INST',
340                      VALE=(0.0,0.0,1.0,-0.02,),
341                      PROL_DROITE='CONSTANT',
342                      PROL_GAUCHE='CONSTANT',);                                 
343
344       pre_int = DEFI_FONCTION(NOM_PARA='INST',
345                       VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
346                       PROL_DROITE='CONSTANT',
347                       PROL_GAUCHE='CONSTANT',);  
348
349       eff_fond=DEFI_FONCTION(NOM_PARA='INST',
350                        VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
351                        PROL_DROITE='CONSTANT',
352                        PROL_GAUCHE='CONSTANT',);     
353    # Que sauver ?
354    if CHAR_MECA != None:
355       for m in CHAR_MECA:
356          if m['TYPE']=="BLOC_BAS_GOUJ":
357             self.DeclareOut('cl_me1',m['CHARGE'])
358          if m['TYPE']=="BLOC_BAS_JOINT":
359             self.DeclareOut('cl_me2',m['CHARGE'])
360          if m['TYPE']=="BLOC_LAT_ALES":
361             self.DeclareOut('cl_me3',m['CHARGE'])
362          if m['TYPE']=="BLOC_LAT_NALES":
363             self.DeclareOut('cl_me4',m['CHARGE'])
364          if m['TYPE']=="PLAN_TUBE":
365             self.DeclareOut('cl_me5',m['CHARGE'])
366          if m['TYPE']=="PRES_FLU":
367             self.DeclareOut('cl_me6',m['CHARGE'])
368          if m['TYPE']=="EFFET_FOND":
369             self.DeclareOut('cl_me7',m['CHARGE'])
370          if m['TYPE']=="CONT_JOINT":
371             self.DeclareOut('cl_me8',m['CHARGE'])
372          if m['TYPE']=="SERR_ECROU_1":
373             self.DeclareOut('cl_me10',m['CHARGE'])
374          if m['TYPE']=="SERR_ECROU_2":
375             self.DeclareOut('cl_me11',m['CHARGE'])            
376                             
377
378    # Blocage bas du goujon
379    cl_me1=AFFE_CHAR_MECA(MODELE=modmeca,
380                       DDL_IMPO=_F(GROUP_NO='N_M_GOU',
381                                   DZ=0.0,),
382                       INFO=2,);
383    # Blocage bas du joint
384    cl_me2=AFFE_CHAR_MECA(MODELE=modmeca,
385                       DDL_IMPO=_F(GROUP_NO='N_M_JOI',
386                                   DZ=0.0,),
387                       INFO=2,);
388
389    # Blocage lateral, face laterale avec alesage
390    cl_me3=AFFE_CHAR_MECA(MODELE=modmeca,
391                       DDL_IMPO=_F(GROUP_NO='N_M_L_AA',
392                                   DY=0.0,),
393                       INFO=2,);
394
395    # Face laterale sans alesage
396    cl_me4=AFFE_CHAR_MECA(MODELE=modmeca,
397                       FACE_IMPO=_F(GROUP_MA='M_L_SA',
398                                    DNOR=0.0,),
399                       INFO=2,);
400
401    # Condition de planeite de la face de coupe du tube
402    cl_me5=AFFE_CHAR_MECA(MODELE=modmeca,
403                       LIAISON_UNIF=_F(GROUP_MA='M_TUB',
404                                       DDL='DZ',),
405                       INFO=2,);
406    # Pression due au fluide
407    cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca,
408                            PRES_REP=_F(GROUP_MA='M_INT',
409                                      PRES=pre_int,),
410                            INFO=2,);
411
412    # Effet de fond
413    cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca,
414                            PRES_REP=_F(GROUP_MA='M_TUB',
415                                      PRES=eff_fond,),
416                            INFO=2,);
417
418    # Contact zone de joint
419    cl_me8=AFFE_CHAR_MECA(MODELE=modmeca,
420                         CONTACT=_F(GROUP_MA_MAIT='SCBJ',
421                                    GROUP_MA_ESCL='SCJB',),
422                         INFO=2,);
423
424    # Serrage ecrou/goujon (pre-tensionnement)
425    cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca,
426                          LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
427                                           GROUP_NO_2='N_SCGE',
428                                           DDL_1='DZ',
429                                           COEF_MULT_1=1.0,
430                                           DDL_2='DZ',
431                                           COEF_MULT_2=-1.0,
432                                           COEF_IMPO=f_pret,),
433                       INFO=2,);
434
435    cl_me11=AFFE_CHAR_MECA(MODELE=modmeca,
436                        LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
437                                         GROUP_NO_2='N_SCGE',
438                                         DDL_1='DX',
439                                         COEF_MULT_1=1.0,
440                                         DDL_2='DX',
441                                         COEF_MULT_2=-1.0,
442                                         COEF_IMPO=0.0,),
443                       INFO=2,);
444
445
446    #################################################################
447    ########## CALCUL MECANIQUE
448    #################################################################  
449    # Options de convergence        
450    solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
451    
452    # Elimination des valeurs "None"
453    for i in solveur.keys():
454       if solveur[i]==None : del solveur[i]
455
456
457    transi2 = DEFI_LIST_REEL(DEBUT=0.0,
458                      INTERVALLE=(_F(JUSQU_A=1.0,
459                                     NOMBRE=2,),
460                                  _F(JUSQU_A=11.0,
461                                     NOMBRE=20,),
462                                  _F(JUSQU_A=600.0,
463                                     NOMBRE=20,),
464                                  _F(JUSQU_A=610.0,
465                                     NOMBRE=20,),
466                                  _F(JUSQU_A=1800.0,
467                                     NOMBRE=20,),
468                                  _F(JUSQU_A=7200.0,
469                                     NOMBRE=20,),),);   
470
471    # Options d'incrementation  
472    if INCREMENT != None:
473       if INCREMENT['LIST_INST'] != None:
474          listinst = INCREMENT['LIST_INST']
475       else:
476          listinst = transi2   
477    
478       increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
479    
480       # Elimination des valeurs "None"
481       for i in increment.keys():
482          if increment[i]==None : del increment[i]
483       
484       increment['LIST_INST'] = listinst
485             
486    else:
487       listinst  = transi2
488       increment =_F(
489                LIST_INST       = listinst,
490                ),       
491                               
492    # Options de Newton     
493    newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
494    # Elimination des valeurs "None"
495    for i in newton.keys():
496       if newton[i]==None : del newton[i]   
497
498    # Options de convergence        
499    convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) 
500    # Elimination des valeurs "None"
501    for i in convergence.keys():
502       if convergence[i]==None : del convergence[i]
503
504    # Options de comportement
505    # Type incremental (=1) ou elastique (=0)
506    comp_incr = 0
507    if RELATION:
508       relation=RELATION
509       if relation == 'VMIS_ISOT_TRAC':
510          comp_incr = 1
511       else:
512          comp_incr = 0
513    else:
514       relation = 'ELAS'
515       comp_incr = 0
516
517          
518    # Parametres du calcul
519    if comp_incr == 1:
520       resumeca=STAT_NON_LINE(MODELE=modmeca,
521                   CHAM_MATER=_chamt,
522                   EXCIT=(_F(CHARGE=cl_me1,),
523                          _F(CHARGE=cl_me2,),
524                          _F(CHARGE=cl_me3,),
525                          _F(CHARGE=cl_me4,),
526                          _F(CHARGE=cl_me5,),
527                          _F(CHARGE=cl_me6,), 
528                          _F(CHARGE=cl_me7,), 
529                          _F(CHARGE=cl_me8,), 
530                          _F(CHARGE=cl_me10,), 
531                          _F(CHARGE=cl_me11,),                            
532                   ),
533                   SOLVEUR        = solveur, 
534                   COMP_INCR      =_F(RELATION=relation,RESO_INTE=resointe),
535                   NEWTON         = newton,
536                   INCREMENT      = increment,
537                   CONVERGENCE    = convergence,
538                   TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
539    else:
540       resumeca=STAT_NON_LINE(MODELE=modmeca,
541                   CHAM_MATER=_chamt,
542                   EXCIT=(_F(CHARGE=cl_me1,),
543                          _F(CHARGE=cl_me2,),
544                          _F(CHARGE=cl_me3,),
545                          _F(CHARGE=cl_me4,),
546                          _F(CHARGE=cl_me5,),
547                          _F(CHARGE=cl_me6,), 
548                          _F(CHARGE=cl_me7,), 
549                          _F(CHARGE=cl_me8,), 
550                          _F(CHARGE=cl_me10,), 
551                          _F(CHARGE=cl_me11,),                            
552                   ),
553                   SOLVEUR        = solveur, 
554                   COMP_ELAS      =_F(RELATION=relation,RESO_INTE=resointe),
555                   NEWTON         = newton,
556                   INCREMENT      = increment,
557                   CONVERGENCE    = convergence,
558                   TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);                  
559
560    return ier
561