]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA76/Macro/macr_cabri_calc_ops.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA76 / Macro / macr_cabri_calc_ops.py
1 #@ MODIF macr_cabri_calc_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
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,
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    
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                  MODELE=modmeca,);
111
112
113
114    # Affectation des materiaux
115    if CHAM_MATER != None:
116       self.DeclareOut('_cham',CHAM_MATER)
117    motscles={}
118    motscles['AFFE']=[]
119    for mat in affemateriau:
120       if mat['TOUT'] == None:
121          # Creation de mots-cles pour les AFFE_CHAR_MECA
122          motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
123                                     MATER = mat['MATER'],
124                                     TEMP_REF = mat['TEMP_REF'],) )
125       else:
126          # Creation de mots-cles pour les AFFE_CHAR_MECA
127          motscles['AFFE'].append(_F(TOUT='OUI',
128                                     MATER = mat['MATER'],
129                                     TEMP_REF = mat['TEMP_REF'],) )
130       
131    _cham = AFFE_MATERIAU(MAILLAGE=mail,
132                     MODELE=modther,
133                     AFFE=motscles['AFFE'],
134                    )
135
136    #################################################################
137    ########## CONDITIONS AUX LIMITES THERMIQUES
138    #################################################################   
139    # Recuperation des parametres thermiques
140
141    if DEFI_CHAR_THER != None:
142       temp_ini = DEFI_CHAR_THER['TEMP_INIT']
143       if DEFI_CHAR_THER['COEF_H_FLUI']!=None:
144          coef_int = DEFI_CHAR_THER['COEF_H_FLUI']
145       else:
146          coef_int = DEFI_FONCTION(NOM_PARA='INST',
147                     VALE=(0.0,0.016,
148                        7200.0,0.016,),
149                     PROL_DROITE='CONSTANT',
150                     PROL_GAUCHE='CONSTANT',);      
151       if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None:
152          temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI']
153       else:
154          temp_int = DEFI_FONCTION(NOM_PARA='INST',
155                     VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
156                           600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
157                     PROL_DROITE='CONSTANT',
158                     PROL_GAUCHE='CONSTANT',);    
159       if DEFI_CHAR_THER['COEF_H_AIR']!=None:
160          coef_ext = DEFI_CHAR_THER['COEF_H_AIR']
161       else:
162          coef_ext = DEFI_FONCTION(NOM_PARA='INST',
163                     VALE=(0.0,1e-05,7200.0,1e-05,),
164                     PROL_DROITE='CONSTANT',
165                     PROL_GAUCHE='CONSTANT',);
166      
167       if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None:
168          temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR']
169       else:
170          temp_ext = DEFI_FONCTION(NOM_PARA='INST',
171                     VALE=(0.0,20.0,7200.0,20.0,),
172                     PROL_DROITE='CONSTANT',
173                     PROL_GAUCHE='CONSTANT',);    
174       if DEFI_CHAR_THER['LIST_INST']!=None:
175          transi1  = DEFI_CHAR_THER['LIST_INST']
176       else:
177          transi1  = DEFI_LIST_REEL(DEBUT=0.0,
178                      INTERVALLE=(_F(JUSQU_A=1.0,
179                                     NOMBRE=1,),
180                                  _F(JUSQU_A=11.0,
181                                     NOMBRE=10,),
182                                  _F(JUSQU_A=600.0,
183                                     NOMBRE=10,),
184                                  _F(JUSQU_A=610.0,
185                                     NOMBRE=30,),
186                                  _F(JUSQU_A=1800.0,
187                                     NOMBRE=30,),
188                                  _F(JUSQU_A=7200.0,
189                                     NOMBRE=10,),),);                                                        
190    else:
191       temp_ini = DEFI_CHAR_THER['TEMP_INIT']
192       coef_int = DEFI_FONCTION(NOM_PARA='INST',
193                     VALE=(0.0,0.016,
194                        7200.0,0.016,),
195                     PROL_DROITE='CONSTANT',
196                     PROL_GAUCHE='CONSTANT',);      
197       temp_int = DEFI_FONCTION(NOM_PARA='INST',
198                     VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
199                           600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
200                     PROL_DROITE='CONSTANT',
201                     PROL_GAUCHE='CONSTANT',);    
202       coef_ext = DEFI_FONCTION(NOM_PARA='INST',
203                     VALE=(0.0,1e-05,7200.0,1e-05,),
204                     PROL_DROITE='CONSTANT',
205                     PROL_GAUCHE='CONSTANT',);    
206       temp_ext = DEFI_FONCTION(NOM_PARA='INST',
207                     VALE=(0.0,20.0,7200.0,20.0,),
208                     PROL_DROITE='CONSTANT',
209                     PROL_GAUCHE='CONSTANT',);                                       
210       transi1  = DEFI_LIST_REEL(DEBUT=0.0,
211                      INTERVALLE=(_F(JUSQU_A=1.0,
212                                     NOMBRE=1,),
213                                  _F(JUSQU_A=11.0,
214                                     NOMBRE=10,),
215                                  _F(JUSQU_A=600.0,
216                                     NOMBRE=10,),
217                                  _F(JUSQU_A=610.0,
218                                     NOMBRE=30,),
219                                  _F(JUSQU_A=1800.0,
220                                     NOMBRE=30,),
221                                  _F(JUSQU_A=7200.0,
222                                     NOMBRE=10,),),);     
223    # Que sauver ?
224    if CHAR_THER != None:
225       for m in CHAR_THER:
226          if m['TYPE']=="BRIDE_FLUIDE":
227             self.DeclareOut('cl_th1',m['CHARGE'])
228          if m['TYPE']=="BRIDE_AIR":
229             self.DeclareOut('cl_th2',m['CHARGE'])
230          if m['TYPE']=="ECROU_GOUJON":
231             self.DeclareOut('cl_th3',m['CHARGE'])
232          if m['TYPE']=="BRIDE_JOINT":
233             self.DeclareOut('cl_th4',m['CHARGE'])
234
235    # Echanges thermiques internes entre le fluide et la bride
236    cl_th1=AFFE_CHAR_THER_F(MODELE=modther,
237                            ECHANGE=_F(GROUP_MA = 'M_INT',
238                                       COEF_H   = coef_int,
239                                       TEMP_EXT = temp_int,),);
240
241    # Echanges thermiques externes entre bride et air ambiant
242    cl_th2=AFFE_CHAR_THER_F(MODELE=modther,
243                            ECHANGE=_F(GROUP_MA='M_EXT',
244                                    COEF_H=coef_ext,
245                                    TEMP_EXT=temp_ext,),);
246
247    # Echanges thermiques entre ecrou et goujon
248    cl_th3=AFFE_CHAR_THER(MODELE=modther,
249                          LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
250                                         GROUP_NO_2='N_SCGE',
251                                         DDL_1='TEMP',
252                                         COEF_MULT_1=1.0,
253                                         DDL_2='TEMP',
254                                         COEF_MULT_2=-1.0,
255                                         COEF_IMPO=0.0,),);
256
257    # Echanges thermiques entre bride et joint
258    cl_th4=AFFE_CHAR_THER(MODELE=modther,
259                          LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ',
260                                         GROUP_NO_2='N_SCJB',
261                                         DDL_1='TEMP',
262                                         COEF_MULT_1=1.0,
263                                         DDL_2='TEMP',
264                                         COEF_MULT_2=-1.0,
265                                         COEF_IMPO=0.0,),);
266
267
268
269    #################################################################
270    ########## CALCUL THERMIQUE
271    #################################################################   
272    if RESU_THER != None:
273       self.DeclareOut('resuther',RESU_THER)   
274
275    resuther=THER_LINEAIRE(MODELE=modther,
276                   CHAM_MATER=_cham,
277                   EXCIT=(_F(CHARGE=cl_th1,),
278                          _F(CHARGE=cl_th2,),
279                          _F(CHARGE=cl_th3,),
280                          _F(CHARGE=cl_th4,),),
281                   INCREMENT=_F(LIST_INST=transi1,),
282                   TEMP_INIT=_F(VALE=temp_ini,),
283                   TITRE='CABRI THERMIQUE &DATE &HEURE',);
284    
285    #################################################################
286    ########## CONDITIONS AUX LIMITES MECANIQUES
287    #################################################################   
288    # Recuperation des parametres mecaniques
289    if DEFI_CHAR_MECA != None:
290      if DEFI_CHAR_MECA['PRETENS']!=None:
291          f_pret = DEFI_CHAR_MECA['PRETENS']
292      else:
293          f_pret=DEFI_FONCTION(NOM_PARA='INST',
294                      VALE=(0.0,0.0,1.0,-0.02,),
295                      PROL_DROITE='CONSTANT',
296                      PROL_GAUCHE='CONSTANT',);                                 
297      if DEFI_CHAR_MECA['PRES_REP']!=None:
298          pre_int = DEFI_CHAR_MECA['PRES_REP']
299      else:
300          pre_int = DEFI_FONCTION(NOM_PARA='INST',
301                       VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
302                       PROL_DROITE='CONSTANT',
303                       PROL_GAUCHE='CONSTANT',);  
304      if DEFI_CHAR_MECA['EFFE_FOND']!=None:
305          eff_fond = DEFI_CHAR_MECA['EFFE_FOND']
306      else:
307          eff_fond=DEFI_FONCTION(NOM_PARA='INST',
308                        VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
309                        PROL_DROITE='CONSTANT',
310                        PROL_GAUCHE='CONSTANT',);
311    else:
312       f_pret=DEFI_FONCTION(NOM_PARA='INST',
313                      VALE=(0.0,0.0,1.0,-0.02,),
314                      PROL_DROITE='CONSTANT',
315                      PROL_GAUCHE='CONSTANT',);                                 
316
317       pre_int = DEFI_FONCTION(NOM_PARA='INST',
318                       VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
319                       PROL_DROITE='CONSTANT',
320                       PROL_GAUCHE='CONSTANT',);  
321
322       eff_fond=DEFI_FONCTION(NOM_PARA='INST',
323                        VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
324                        PROL_DROITE='CONSTANT',
325                        PROL_GAUCHE='CONSTANT',);     
326    # Que sauver ?
327    if CHAR_MECA != None:
328       for m in CHAR_MECA:
329          if m['TYPE']=="BLOC_BAS_GOUJ":
330             self.DeclareOut('cl_me1',m['CHARGE'])
331          if m['TYPE']=="BLOC_BAS_JOINT":
332             self.DeclareOut('cl_me2',m['CHARGE'])
333          if m['TYPE']=="BLOC_LAT_ALES":
334             self.DeclareOut('cl_me3',m['CHARGE'])
335          if m['TYPE']=="BLOC_LAT_NALES":
336             self.DeclareOut('cl_me4',m['CHARGE'])
337          if m['TYPE']=="PLAN_TUBE":
338             self.DeclareOut('cl_me5',m['CHARGE'])
339          if m['TYPE']=="PRES_FLU":
340             self.DeclareOut('cl_me6',m['CHARGE'])
341          if m['TYPE']=="EFFET_FOND":
342             self.DeclareOut('cl_me7',m['CHARGE'])
343          if m['TYPE']=="CONT_JOINT":
344             self.DeclareOut('cl_me8',m['CHARGE'])
345          if m['TYPE']=="DEFO_THER":
346             self.DeclareOut('cl_me9',m['CHARGE'])
347          if m['TYPE']=="SERR_ECROU_1":
348             self.DeclareOut('cl_me10',m['CHARGE'])
349          if m['TYPE']=="SERR_ECROU_2":
350             self.DeclareOut('cl_me11',m['CHARGE'])            
351                             
352
353    # Blocage bas du goujon
354    cl_me1=AFFE_CHAR_MECA(MODELE=modmeca,
355                       DDL_IMPO=_F(GROUP_NO='N_M_GOU',
356                                   DZ=0.0,),
357                       INFO=2,);
358    # Blocage bas du joint
359    cl_me2=AFFE_CHAR_MECA(MODELE=modmeca,
360                       DDL_IMPO=_F(GROUP_NO='N_M_JOI',
361                                   DZ=0.0,),
362                       INFO=2,);
363
364    # Blocage lateral, face laterale avec alesage
365    cl_me3=AFFE_CHAR_MECA(MODELE=modmeca,
366                       DDL_IMPO=_F(GROUP_NO='N_M_L_AA',
367                                   DY=0.0,),
368                       INFO=2,);
369
370    # Face laterale sans alesage
371    cl_me4=AFFE_CHAR_MECA(MODELE=modmeca,
372                       FACE_IMPO=_F(GROUP_MA='M_L_SA',
373                                    DNOR=0.0,),
374                       INFO=2,);
375
376    # Condition de planeite de la face de coupe du tube
377    cl_me5=AFFE_CHAR_MECA(MODELE=modmeca,
378                       LIAISON_UNIF=_F(GROUP_MA='M_TUB',
379                                       DDL='DZ',),
380                       INFO=2,);
381    # Pression due au fluide
382    cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca,
383                            PRES_REP=_F(GROUP_MA='M_INT',
384                                      PRES=pre_int,),
385                            INFO=2,);
386
387    # Effet de fond
388    cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca,
389                            PRES_REP=_F(GROUP_MA='M_TUB',
390                                      PRES=eff_fond,),
391                            INFO=2,);
392
393    # Contact zone de joint
394    cl_me8=AFFE_CHAR_MECA(MODELE=modmeca,
395                         CONTACT=_F(GROUP_MA_MAIT='SCBJ',
396                                    GROUP_MA_ESCL='SCJB',),
397                         INFO=2,);
398    # Deformation thermique
399    cl_me9=AFFE_CHAR_MECA(  MODELE=modmeca,
400                            TEMP_CALCULEE=resuther,
401                            INFO=2,);
402
403    # Serrage ecrou/goujon (pre-tensionnement)
404    cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca,
405                          LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
406                                           GROUP_NO_2='N_SCGE',
407                                           DDL_1='DZ',
408                                           COEF_MULT_1=1.0,
409                                           DDL_2='DZ',
410                                           COEF_MULT_2=-1.0,
411                                           COEF_IMPO=f_pret,),
412                       INFO=2,);
413
414    cl_me11=AFFE_CHAR_MECA(MODELE=modmeca,
415                        LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
416                                         GROUP_NO_2='N_SCGE',
417                                         DDL_1='DX',
418                                         COEF_MULT_1=1.0,
419                                         DDL_2='DX',
420                                         COEF_MULT_2=-1.0,
421                                         COEF_IMPO=0.0,),
422                       INFO=2,);
423
424
425    #################################################################
426    ########## CALCUL MECANIQUE
427    #################################################################  
428    # Options de convergence        
429    solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
430    
431    # Elimination des valeurs "None"
432    for i in solveur.keys():
433       if solveur[i]==None : del solveur[i]
434
435
436    transi2 = DEFI_LIST_REEL(DEBUT=0.0,
437                      INTERVALLE=(_F(JUSQU_A=1.0,
438                                     NOMBRE=2,),
439                                  _F(JUSQU_A=11.0,
440                                     NOMBRE=20,),
441                                  _F(JUSQU_A=600.0,
442                                     NOMBRE=20,),
443                                  _F(JUSQU_A=610.0,
444                                     NOMBRE=20,),
445                                  _F(JUSQU_A=1800.0,
446                                     NOMBRE=20,),
447                                  _F(JUSQU_A=7200.0,
448                                     NOMBRE=20,),),);   
449
450    # Options d'incrementation  
451    if INCREMENT != None:
452       if INCREMENT['LIST_INST'] != None:
453          listinst = INCREMENT['LIST_INST']
454       else:
455          listinst = transi2   
456    
457       increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
458    
459       # Elimination des valeurs "None"
460       for i in increment.keys():
461          if increment[i]==None : del increment[i]
462       
463       increment['LIST_INST'] = listinst
464             
465    else:
466       listinst  = transi2
467       increment =_F(
468                LIST_INST       = listinst,
469                ),       
470                               
471    # Options de Newton     
472    newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
473    # Elimination des valeurs "None"
474    for i in newton.keys():
475       if newton[i]==None : del newton[i]   
476
477    # Options de convergence        
478    convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) 
479    # Elimination des valeurs "None"
480    for i in convergence.keys():
481       if convergence[i]==None : del convergence[i]
482
483    # Options de comportement
484    # Type incremental (=1) ou elastique (=0)
485    comp_incr = 0
486    if RELATION:
487       relation=RELATION
488       if relation == 'VMIS_ISOT_TRAC':
489          comp_incr = 1
490       else:
491          comp_incr = 0
492    else:
493       relation = 'ELAS'
494       comp_incr = 0
495
496          
497    # Parametres du calcul
498    if comp_incr == 1:
499       resumeca=STAT_NON_LINE(MODELE=modmeca,
500                   CHAM_MATER=_cham,
501                   EXCIT=(_F(CHARGE=cl_me1,),
502                          _F(CHARGE=cl_me2,),
503                          _F(CHARGE=cl_me3,),
504                          _F(CHARGE=cl_me4,),
505                          _F(CHARGE=cl_me5,),
506                          _F(CHARGE=cl_me6,), 
507                          _F(CHARGE=cl_me7,), 
508                          _F(CHARGE=cl_me8,), 
509                          _F(CHARGE=cl_me9,), 
510                          _F(CHARGE=cl_me10,), 
511                          _F(CHARGE=cl_me11,),                            
512                   ),
513                   SOLVEUR        = solveur, 
514                   COMP_INCR      =_F(RELATION=relation,),
515                   NEWTON         = newton,
516                   INCREMENT      = increment,
517                   CONVERGENCE    = convergence,
518                   TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
519    else:
520       resumeca=STAT_NON_LINE(MODELE=modmeca,
521                   CHAM_MATER=_cham,
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_me9,), 
531                          _F(CHARGE=cl_me10,), 
532                          _F(CHARGE=cl_me11,),                            
533                   ),
534                   SOLVEUR        = solveur, 
535                   COMP_ELAS      =_F(RELATION=relation,),
536                   NEWTON         = newton,
537                   INCREMENT      = increment,
538                   CONVERGENCE    = convergence,
539                   TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);                  
540
541    return ier
542