]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA11/cata.py
Salome HOME
menage
[tools/eficas.git] / Aster / Cata / cataSTA11 / cata.py
1 # coding: utf-8
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
8 #
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 #
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17 # ======================================================================
18 # person_in_charge: mathieu.courtois at edf.fr
19
20 import os
21 from math import sin, cos, tan, asin, acos, atan2, atan, sinh, cosh, tanh
22 from math import pi ,exp,log, log10, sqrt
23
24 import Accas
25 from Accas import *
26 from Accas import _F
27 import ops
28
29 try:
30     import aster
31     aster_exists = True
32 except ImportError:
33     aster = None
34     aster_exists = False
35
36 # Le catalogue est constitué par concaténation des fichiers .capy
37 # de catapy/{entete,commun,commande}.
38
39 # Tous les imports globaux devraient être faits ici dans accas.capy.
40 # Veillez à limiter les imports dans la définition des concepts (co_*.capy)
41 # au strict nécessaire et les faire sous les méthodes qui en ont
42 # expressément besoin.
43
44 JdC = JDC_CATA(code='ASTER',
45                execmodul=None,
46 #               regles=(AU_MOINS_UN('DEBUT', 'POURSUITE'),
47 #                       AU_MOINS_UN('FIN'),
48 #                       A_CLASSER(('DEBUT', 'POURSUITE'), 'FIN'))
49                )
50
51 # Types géométriques
52 class no(GEOM):
53     """
54     Classe servant à définir le nom d'un noeud dans le fichier de commande
55     En clair : un chaine de longueur 8.
56     """
57     pass
58
59 class grno(GEOM):
60     """
61     Classe servant à définir le nom d'un groupe de noeuds dans le fichier de commande
62     En clair : un chaine de longueur 24.
63     """
64     def __convert__(cls,valeur):
65         """
66         Fonction de verification de la longueur de la chaine
67         """
68         if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:
69             return valeur.strip()
70         raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))
71     __convert__ = classmethod(__convert__)
72
73 class ma(GEOM):
74     """
75     Classe servant à définir le nom d'une maille dans le fichier de commande
76     En clair : un chaine de longueur 8.
77     """
78     pass
79
80 class grma(GEOM):
81     """
82     Classe servant à définir le nom d'un groupe de mailles dans le fichier de commande
83     En clair : un chaine de longueur 24.
84     """
85     def __convert__(cls,valeur):
86         """
87         Fonction de verification de la longueur de la chaine
88         """
89         if isinstance(valeur, (str,unicode)) and len(valeur.strip()) <= 24:
90             return valeur.strip()
91         raise ValueError(_(u'On attend une chaine de caractères (de longueur <= 24).'))
92     __convert__ = classmethod(__convert__)
93
94 # ======================================================================
95 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
96 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
97 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
98 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
99 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
100 #                                                                       
101 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
102 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
103 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
104 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
105 #                                                                       
106 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
107 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
108 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
109 # ======================================================================
110 # person_in_charge: mathieu.courtois at edf.fr
111
112
113 class cabl_precont(ASSD):
114     cata_sdj = "SD.sd_cabl_precont.sd_cabl_precont"
115
116 # ======================================================================
117 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
118 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
119 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
120 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
121 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
122 #                                                                       
123 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
124 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
125 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
126 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
127 #                                                                       
128 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
129 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
130 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
131 # ======================================================================
132 # person_in_charge: mathieu.courtois at edf.fr
133
134
135 class cara_elem(ASSD):
136     cata_sdj = "SD.sd_cara_elem.sd_cara_elem"
137
138     def toEPX(self):
139
140         # Raideurs 
141         ressorts = {}
142
143         try:
144            EPXnoeud = self.sdj.CARRIGXN.get()
145            EPXval   = self.sdj.CARRIGXV.get()
146            lenEPXval   = len(EPXval)
147            lenEPXnoeud = len(EPXnoeud)*6
148         except:
149            # s'il y a un problème sur la structure de données ==> <F>
150            from Utilitai.Utmess import UTMESS
151            UTMESS('F','MODELISA9_98')
152         # Vérification de la déclaration qui est faite dans 'acearp'
153         if ( lenEPXval != lenEPXnoeud ):
154            from Utilitai.Utmess import UTMESS
155            UTMESS('F','MODELISA9_97')
156         # Tout est OK
157         i=0
158         for no in EPXnoeud :
159            ressorts[no] = EPXval[i:i+6]
160            i+=6
161
162         # Amortissements
163         amorts = {}
164         try:
165            EPXnoeud = self.sdj.CARAMOXN.get()
166            EPXval   = self.sdj.CARAMOXV.get()
167            lenEPXval   = len(EPXval)
168            lenEPXnoeud = len(EPXnoeud)*6
169         except:
170            # s'il y a un problème sur la structure de données ==> <F>
171            from Utilitai.Utmess import UTMESS
172            UTMESS('F','MODELISA9_98')
173         # Vérification de la déclaration qui est faite dans 'acearp'
174         if ( lenEPXval != lenEPXnoeud ):
175            from Utilitai.Utmess import UTMESS
176            UTMESS('F','MODELISA9_97')
177         # Tout est OK
178         i=0
179         for no in EPXnoeud :
180            amorts[no] = EPXval[i:i+6]
181            i+=6
182
183         return ressorts, amorts
184
185 # ======================================================================
186 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
187 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
188 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
189 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
190 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
191 #                                                                       
192 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
193 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
194 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
195 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
196 #                                                                       
197 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
198 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
199 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
200 # ======================================================================
201 # person_in_charge: mathieu.courtois at edf.fr
202
203 class cham_gd_sdaster(ASSD):
204     cata_sdj = "SD.sd_champ.sd_champ"
205
206 class carte_sdaster(cham_gd_sdaster):
207     cata_sdj = "SD.sd_champ.sd_carte_class"
208
209 class cham_elem(cham_gd_sdaster):
210    cata_sdj = "SD.sd_champ.sd_cham_elem_class"
211
212    def EXTR_COMP(self,comp,lgma,topo=0) :
213       """ retourne les valeurs de la composante comp du champ sur la liste
214         de groupes de mailles lgma avec eventuellement l'info de la
215         topologie si topo>0. Si lgma est une liste vide, c'est equivalent
216         a un TOUT='OUI' dans les commandes aster
217         Attributs retourne
218           - self.valeurs : numpy.array contenant les valeurs
219         Si on a demande la topo  :
220           - self.maille  : numero de mailles
221           - self.point   : numero du point dans la maille
222           - self.sous_point : numero du sous point dans la maille """
223       import numpy
224       if not self.accessible() :
225          raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'")
226
227       ncham=self.get_name()
228       ncham=ncham+(8-len(ncham))*' '
229       nchams=ncham[0:7]+'S'
230       ncmp=comp+(8-len(comp))*' '
231
232       aster.prepcompcham(ncham,nchams,ncmp,"EL      ",topo,lgma)
233
234       valeurs=numpy.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
235
236       if (topo>0) :
237          maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M'))
238          point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P'))
239          sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP'))
240       else :
241          maille=None
242          point=None
243          sous_point=None
244
245       aster.prepcompcham("__DETR__",nchams,ncmp,"EL      ",topo,lgma)
246
247       return post_comp_cham_el(valeurs,maille,point,sous_point)
248
249 class cham_no_sdaster(cham_gd_sdaster):
250    cata_sdj = "SD.sd_champ.sd_cham_no_class"
251
252    def EXTR_COMP(self,comp=' ',lgno=[],topo=0) :
253       """ retourne les valeurs de la composante comp du champ sur la liste
254         de groupes de noeuds lgno avec eventuellement l'info de la
255         topologie si topo>0. Si lgno est une liste vide, c'est equivalent
256         a un TOUT='OUI' dans les commandes aster
257         Attributs retourne
258           - self.valeurs : numpy.array contenant les valeurs
259         Si on a demande la topo (i.e. self.topo = 1) :
260           - self.noeud  : numero de noeud
261         Si on demande toutes les composantes (comp = ' ') :
262           - self.comp : les composantes associees a chaque grandeur pour chaque noeud
263       """
264       import numpy
265       if not self.accessible() :
266          raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'")
267
268       ncham=self.get_name()
269       ncham=ncham+(8-len(ncham))*' '
270       nchams=ncham[0:7]+'S'
271       ncmp=comp+(8-len(comp))*' '
272
273       aster.prepcompcham(ncham,nchams,ncmp,"NO      ",topo,lgno)
274
275       valeurs=numpy.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
276
277       if (topo>0) :
278          noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N'))
279       else :
280          noeud=None
281
282       if comp[:1] == ' ':
283          comp=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.C'))
284          aster.prepcompcham("__DETR__",nchams,ncmp,"NO      ",topo,lgno)
285          return post_comp_cham_no(valeurs,noeud,comp)
286       else:
287          aster.prepcompcham("__DETR__",nchams,ncmp,"NO      ",topo,lgno)
288          return post_comp_cham_no(valeurs,noeud)
289
290    def __add__(self, other):
291       from SD.sd_nume_equa import sd_nume_equa
292       # on recupere le type
293       __nume_ddl=sd_nume_equa(self.sdj.REFE.get()[1])
294       __gd=__nume_ddl.REFN.get()[1].strip()
295       __type='NOEU_'+__gd
296       # on recupere le nom du maillage
297       __nomMaillage=self.sdj.REFE.get()[0].strip()
298       # on recupere l'objet du maillage
299       __maillage=CONTEXT.get_current_step().get_concept(__nomMaillage)
300       __CHAM = CREA_CHAMP(OPERATION='ASSE',
301                           MAILLAGE=__maillage,
302                           TYPE_CHAM=__type,
303                           INFO=1,
304                           ASSE=(_F(CHAM_GD=self,
305                                    TOUT='OUI',
306                                    CUMUL='OUI',
307                                    COEF_R=1.),
308                                 _F(CHAM_GD=other,
309                                    TOUT='OUI',
310                                    CUMUL='OUI',
311                                    COEF_R=1.),
312                                ))
313       return __CHAM
314
315 # post-traitement :
316 class post_comp_cham_no :
317     def __init__(self, valeurs, noeud=None, comp=None) :
318         self.valeurs = valeurs
319         self.noeud = noeud
320         self.comp = comp
321
322 class post_comp_cham_el :
323     def __init__(self, valeurs, maille=None, point=None, sous_point=None) :
324         self.valeurs = valeurs
325         self.maille = maille
326         self.point = point
327         self.sous_point = sous_point
328
329 # ======================================================================
330 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
331 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
332 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
333 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
334 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
335 #                                                                       
336 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
337 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
338 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
339 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
340 #                                                                       
341 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
342 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
343 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
344 # ======================================================================
345 # person_in_charge: jacques.pellet at edf.fr
346
347 class cham_mater(ASSD):
348     cata_sdj = "SD.sd_cham_mater.sd_cham_mater"
349
350     def get_vale_ref(self, nom_varc):
351         """Retourne la valeur de référence de `nom_varc`."""
352         from SD.sd_carte import sd_carte
353         nom_varc = nom_varc.strip()
354         varc = self.sdj.varc
355         nom = [sv.strip() for sv in varc.CVRCNOM.get()]
356         assert nom_varc in nom, (nom_varc, nom)
357         idx = nom.index(nom_varc)
358         novarc = [sv for sv in varc.CVRCVARC.get()]
359         assert len(novarc) > idx, novarc
360         nomch = novarc[idx]
361         # accès à la carte
362         cartref = sd_carte("%-8s.%-8s.1" % (self.nom, nomch))
363         valref = cartref.VALE.get()[0]
364         return valref
365
366 # ======================================================================
367 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
368 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
369 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
370 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
371 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
372 #                                                                       
373 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
374 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
375 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
376 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
377 #                                                                       
378 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
379 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
380 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
381 # ======================================================================
382 # person_in_charge: mathieu.courtois at edf.fr
383
384
385 class char_acou(ASSD):
386     cata_sdj = "SD.sd_char_acou.sd_char_acou"
387
388 # ======================================================================
389 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
390 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
391 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
392 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
393 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
394 #                                                                       
395 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
396 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
397 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
398 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
399 #                                                                       
400 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
401 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
402 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
403 # ======================================================================
404 # person_in_charge: mathieu.courtois at edf.fr
405
406
407 class char_cine_acou(ASSD):
408     cata_sdj = "SD.sd_char_cine.sd_char_cine"
409
410 # ======================================================================
411 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
412 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
413 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
414 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
415 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
416 #                                                                       
417 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
418 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
419 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
420 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
421 #                                                                       
422 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
423 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
424 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
425 # ======================================================================
426 # person_in_charge: mathieu.courtois at edf.fr
427
428
429 class char_cine_meca(ASSD):
430     cata_sdj = "SD.sd_char_cine.sd_char_cine"
431
432 # ======================================================================
433 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
434 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
435 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
436 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
437 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
438 #                                                                       
439 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
440 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
441 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
442 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
443 #                                                                       
444 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
445 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
446 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
447 # ======================================================================
448 # person_in_charge: mathieu.courtois at edf.fr
449
450
451 class char_cine_ther(ASSD):
452     cata_sdj = "SD.sd_char_cine.sd_char_cine"
453
454 # ======================================================================
455 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
456 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
457 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
458 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
459 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
460 #                                                                       
461 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
462 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
463 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
464 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
465 #                                                                       
466 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
467 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
468 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
469 # ======================================================================
470 # person_in_charge: mathieu.courtois at edf.fr
471
472
473 class char_contact(ASSD):
474     cata_sdj = "SD.sd_contact.sd_contact"
475
476 # ======================================================================
477 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
478 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
479 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
480 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
481 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
482 #                                                                       
483 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
484 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
485 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
486 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
487 #                                                                       
488 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
489 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
490 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
491 # ======================================================================
492 # person_in_charge: mathieu.courtois at edf.fr
493
494
495 class char_meca(ASSD):
496     cata_sdj = "SD.sd_char_meca.sd_char_meca"
497
498 # ======================================================================
499 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
500 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
501 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
502 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
503 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
504 #                                                                       
505 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
506 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
507 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
508 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
509 #                                                                       
510 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
511 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
512 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
513 # ======================================================================
514 # person_in_charge: mathieu.courtois at edf.fr
515
516
517 class char_ther(ASSD):
518     cata_sdj = "SD.sd_char_ther.sd_char_ther"
519
520 # ======================================================================
521 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
522 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
523 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
524 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
525 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
526 #                                                                       
527 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
528 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
529 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
530 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
531 #                                                                       
532 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
533 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
534 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
535 # ======================================================================
536 # person_in_charge: mathieu.courtois at edf.fr
537
538
539 class compor_sdaster(ASSD):
540     cata_sdj = "SD.sd_compor.sd_compor"
541
542 # ======================================================================
543 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
544 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
545 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
546 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
547 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
548 #                                                                       
549 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
550 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
551 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
552 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
553 #                                                                       
554 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
555 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
556 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
557 # ======================================================================
558 # person_in_charge: mathieu.courtois at edf.fr
559
560
561 class corresp_2_mailla(ASSD):
562     cata_sdj = "SD.sd_corresp_2_mailla.sd_corresp_2_mailla"
563
564 # ======================================================================
565 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
566 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
567 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
568 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
569 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
570 #                                                                       
571 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
572 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
573 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
574 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
575 #                                                                       
576 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
577 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
578 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
579 # ======================================================================
580 # person_in_charge: mathieu.courtois at edf.fr
581
582
583 class courbe_sdaster(ASSD):
584     cata_sdj = "SD.sd_courbe.sd_courbe"
585
586 # ======================================================================
587 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
588 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
589 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
590 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
591 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
592 #                                                                       
593 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
594 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
595 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
596 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
597 #                                                                       
598 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
599 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
600 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
601 # ======================================================================
602 # person_in_charge: mathieu.courtois at edf.fr
603
604 class entier(ASSD):
605     cata_sdj = "SD.AsBase"
606
607     def __init__(self, valeur=None, **args):
608         ASSD.__init__(self, **args)
609         self.valeur = valeur
610
611     def __adapt__(self, validator):
612         if validator.name == "list":
613             # validateur liste,cardinalité
614             return (self, )
615         elif validator.name == "type":
616             # validateur type
617             return validator.adapt(self.valeur or 0)
618         else:
619             # validateur into et valid
620             return self
621
622 # ======================================================================
623 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
624 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
625 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
626 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
627 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
628 #                                                                       
629 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
630 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
631 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
632 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
633 #                                                                       
634 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
635 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
636 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
637 # ======================================================================
638 # person_in_charge: mathieu.courtois at edf.fr
639
640
641 class fiss_xfem(ASSD):
642     cata_sdj = "SD.sd_xfem.sd_fiss_xfem"
643
644 # ======================================================================
645 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
646 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
647 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
648 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
649 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
650 #                                                                       
651 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
652 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
653 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
654 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
655 #                                                                       
656 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
657 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
658 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
659 # ======================================================================
660 # person_in_charge: mathieu.courtois at edf.fr
661
662 # types 'fonction' :
663 class fonction_class(ASSD):
664    cata_sdj = "SD.sd_fonction.sd_fonction_aster"
665
666    def Valeurs(self):
667       pass
668
669    def Parametres(self):
670       """
671       Retourne un dictionnaire contenant les parametres de la fonction ;
672       le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne,
673       le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel.
674       """
675       from Utilitai.Utmess import UTMESS
676       if self.accessible():
677         TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
678         objev = '%-19s.PROL' % self.get_name()
679         prol = self.sdj.PROL.get()
680         if prol == None:
681            UTMESS('F', 'SDVERI_2', valk=[objev])
682         dico={
683          'INTERPOL'    : [prol[1][0:3],prol[1][4:7]],
684          'NOM_PARA'    : prol[2][0:16].strip(),
685          'NOM_RESU'    : prol[3][0:16].strip(),
686          'PROL_DROITE' : TypeProl[prol[4][1]],
687          'PROL_GAUCHE' : TypeProl[prol[4][0]],
688         }
689       elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' :
690         dico={
691          'INTERPOL'    : self.etape['INTERPOL'],
692          'NOM_PARA'    : self.etape['NOM_PARA'],
693          'NOM_RESU'    : self.etape['NOM_RESU'],
694          'PROL_DROITE' : self.etape['PROL_DROITE'],
695          'PROL_GAUCHE' : self.etape['PROL_GAUCHE'],
696         }
697         if   type(dico['INTERPOL']) == tuple:
698                   dico['INTERPOL']=list(dico['INTERPOL'])
699         elif type(dico['INTERPOL']) == str:
700                   dico['INTERPOL']=[dico['INTERPOL'],]
701         if len(dico['INTERPOL'])==1 :
702            dico['INTERPOL']=dico['INTERPOL']*2
703       else:
704          raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'")
705       return dico
706
707    def Trace(self,FORMAT='TABLEAU',**kargs):
708       """Tracé d'une fonction"""
709       if not self.accessible() :
710          raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'")
711       from Utilitai.Graph import Graph
712       gr=Graph()
713       gr.AjoutCourbe(Val=self.Valeurs(),
714             Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']],
715             Leg=os.linesep.join(self.sdj.TITR.get()) )
716       gr.Trace(FORMAT=FORMAT,**kargs)
717
718 class fonction_sdaster(fonction_class):
719
720    def convert(self, arg='real'):
721       """
722       Retourne un objet de la classe t_fonction
723       représentation python de la fonction
724       """
725       from Cata_Utils.t_fonction import t_fonction, t_fonction_c
726       class_fonction = t_fonction
727       if arg == 'complex':
728          class_fonction = t_fonction_c
729       absc, ordo = self.Valeurs()
730       return class_fonction(absc, ordo, self.Parametres(), nom=self.nom)
731
732    def Valeurs(self) :
733       """
734       Retourne deux listes de valeurs : abscisses et ordonnees
735       """
736       from Utilitai.Utmess import UTMESS
737       if self.accessible():
738         vale = '%-19s.VALE' % self.get_name()
739         lbl = self.sdj.VALE.get()
740         if lbl == None:
741           UTMESS('F', 'SDVERI_2', valk=[vale])
742         lbl = list(lbl)
743         dim = len(lbl)/2
744         lx = lbl[0:dim]
745         ly = lbl[dim:2*dim]
746       elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' :
747          if self.etape['VALE'] is not None:
748             lbl = list(self.etape['VALE'])
749             dim = len(lbl)
750             lx = [lbl[i] for i in range(0,dim,2)]
751             ly = [lbl[i] for i in range(1,dim,2)]
752          elif self.etape['VALE_PARA'] is not None:
753             lx = self.etape['VALE_PARA'].Valeurs()
754             ly = self.etape['VALE_FONC'].Valeurs()
755          elif self.etape['ABSCISSE'] is not None:
756             lx = self.etape['ABSCISSE']
757             ly = self.etape['ORDONNEE']
758          else:
759             raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \
760                "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
761                "dans le fichier de commandes courant.")
762       else:
763          raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \
764                "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
765                "dans le fichier de commandes courant.")
766       return [lx, ly]
767
768    def Absc(self):
769       """Retourne la liste des abscisses"""
770       return self.Valeurs()[0]
771
772    def Ordo(self):
773       """Retourne la liste des ordonnées"""
774       return self.Valeurs()[1]
775
776    def __call__(self, val, tol=1.e-6):
777       """Evaluate a function at 'val'. If provided, 'tol' is a relative
778       tolerance to match an abscissa value."""
779       # Pour EFICAS : substitution de l'instance de classe
780       # parametre par sa valeur
781       if isinstance(val, ASSD):
782          val=val.valeur
783       __ff=self.convert()
784       return __ff(val, tol=tol)
785
786
787 class fonction_c(fonction_class):
788
789    def convert(self,arg='real'):
790       """
791       Retourne un objet de la classe t_fonction ou t_fonction_c,
792       représentation python de la fonction complexe
793       """
794       import numpy
795       from Cata_Utils.t_fonction import t_fonction, t_fonction_c
796       class_fonction = t_fonction
797       if arg == 'complex':
798          class_fonction = t_fonction_c
799       absc = self.Absc()
800       para = self.Parametres()
801       if arg == 'real':
802          ordo = self.Ordo()
803       elif arg == 'imag':
804          ordo = self.OrdoImg()
805       elif arg == 'modul':
806          ordo = numpy.sqrt(numpy.array(self.Ordo())**2 + numpy.array(self.OrdoImg())**2)
807       elif arg == 'phase':
808          ordo = numpy.arctan2(numpy.array(self.OrdoImg()), numpy.array(self.Ordo())) * 180. / pi
809       elif arg == 'complex':
810          ordo = map(complex,self.Ordo(),self.OrdoImg())
811       else:
812          assert False, 'unexpected value for arg: %r' % arg
813       return class_fonction(self.Absc(), ordo, self.Parametres(), nom=self.nom)
814
815    def Valeurs(self) :
816       """
817       Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires.
818       """
819       from Utilitai.Utmess import UTMESS
820       if self.accessible():
821          vale = '%-19s.VALE' % self.get_name()
822          lbl = self.sdj.VALE.get()
823          if lbl == None:
824            UTMESS('F', 'SDVERI_2', valk=[vale])
825          lbl = list(lbl)
826          dim=len(lbl)/3
827          lx=lbl[0:dim]
828          lr=[]
829          li=[]
830          for i in range(dim):
831             lr.append(lbl[dim+2*i])
832             li.append(lbl[dim+2*i+1])
833       elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' \
834             and self.etape['VALE_C'] is not None:
835          lbl=list(self.etape['VALE_C'])
836          dim=len(lbl)
837          lx=[lbl[i] for i in range(0,dim,3)]
838          lr=[lbl[i] for i in range(1,dim,3)]
839          li=[lbl[i] for i in range(2,dim,3)]
840       else:
841          raise Accas.AsException("Erreur (fonction_c.Valeurs) : ne fonctionne en " \
842                "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
843                "dans le jdc courant.")
844       return [lx, lr, li]
845
846    def Absc(self):
847       """Retourne la liste des abscisses"""
848       return self.Valeurs()[0]
849
850    def Ordo(self):
851       """Retourne la liste des parties réelles des ordonnées"""
852       return self.Valeurs()[1]
853
854    def OrdoImg(self):
855       """Retourne la liste des parties imaginaires des ordonnées"""
856       return self.Valeurs()[2]
857
858    def Trace(self,FORMAT='TABLEAU',**kargs):
859       """Tracé d'une fonction complexe"""
860       if not self.accessible():
861          raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'")
862       from Utilitai.Graph import Graph
863       para = self.Parametres()
864       gr=Graph()
865       gr.AjoutCourbe(Val=self.Valeurs(),
866          Lab=[para['NOM_PARA'], '%s_R' % para['NOM_RESU'], '%s_I' % para['NOM_RESU']],
867          Leg=os.linesep.join(self.sdj.TITR.get()) )
868       gr.Trace(FORMAT=FORMAT,**kargs)
869
870    def __call__(self, val, tol=1.e-6):
871       """Evaluate a function at 'val'. If provided, 'tol' is a relative
872       tolerance to match an abscissa value."""
873       # Pour EFICAS : substitution de l'instance de classe
874       # parametre par sa valeur
875       if isinstance(val, ASSD):
876          val=val.valeur
877       __ff=self.convert(arg='complex')
878       return __ff(val, tol=tol)
879
880
881 class nappe_sdaster(fonction_class):
882
883    def convert(self):
884       """
885       Retourne un objet de la classe t_nappe, représentation python de la nappe
886       """
887       from Cata_Utils.t_fonction import t_fonction, t_nappe
888       para = self.Parametres()
889       vale = self.Valeurs()
890       l_fonc = []
891       i = 0
892       for pf in para[1] :
893           para_f = {'INTERPOL'    : pf['INTERPOL_FONC'],
894                     'PROL_DROITE' : pf['PROL_DROITE_FONC'],
895                     'PROL_GAUCHE' : pf['PROL_GAUCHE_FONC'],
896                     'NOM_PARA'    : para[0]['NOM_PARA_FONC'],
897                     'NOM_RESU'    : para[0]['NOM_RESU'],
898                    }
899           l_fonc.append(t_fonction(vale[1][i][0],vale[1][i][1],para_f))
900           i += 1
901       return t_nappe(vale[0], l_fonc, para[0], nom=self.nom)
902
903    def Valeurs(self):
904       """
905       Retourne la liste des valeurs du parametre,
906       et une liste de couples (abscisses,ordonnees) de chaque fonction.
907       """
908       from Utilitai.Utmess import UTMESS
909       if not self.accessible():
910          raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'")
911       nsd = '%-19s' % self.get_name()
912       dicv=aster.getcolljev(nsd+'.VALE')
913       # les cles de dicv sont 1,...,N (indice du parametre)
914       lpar=aster.getvectjev(nsd+'.PARA')
915       if lpar == None:
916          UTMESS('F', 'SDVERI_2', valk=[nsd+'.PARA'])
917       lval=[]
918       for k in range(len(dicv)):
919          lbl=dicv[k+1]
920          dim=len(lbl)/2
921          lval.append([lbl[0:dim],lbl[dim:2*dim]])
922       return [list(lpar),lval]
923
924    def Parametres(self):
925       """
926       Retourne un dictionnaire contenant les parametres de la nappe,
927       le type jeveux (NAPPE) n'est pas retourne,
928       le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel,
929       et une liste de dictionnaire des parametres de chaque fonction.
930       """
931       from Utilitai.Utmess import UTMESS
932       if not self.accessible():
933          raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'")
934       TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
935       objev = '%-19s.PROL' % self.get_name()
936       prol=aster.getvectjev(objev)
937       if prol == None:
938          UTMESS('F', 'SDVERI_2', valk=[objev])
939       dico={
940          'INTERPOL'      : [prol[1][0:3],prol[1][4:7]],
941          'NOM_PARA'      : prol[2][0:16].strip(),
942          'NOM_RESU'      : prol[3][0:16].strip(),
943          'PROL_DROITE'   : TypeProl[prol[4][1]],
944          'PROL_GAUCHE'   : TypeProl[prol[4][0]],
945          'NOM_PARA_FONC' : prol[6][0:4].strip(),
946       }
947       lparf=[]
948       nbf=(len(prol)-7)/2
949       for i in range(nbf):
950          dicf={
951             'INTERPOL_FONC'    : [prol[7+i*2][0:3],prol[7+i*2][4:7]],
952             'PROL_DROITE_FONC' : TypeProl[prol[8+i*2][1]],
953             'PROL_GAUCHE_FONC' : TypeProl[prol[8+i*2][0]],
954          }
955          lparf.append(dicf)
956       return [dico,lparf]
957
958    def Absc(self):
959       """Retourne la liste des abscisses"""
960       return self.Valeurs()[0]
961
962    def Trace(self,FORMAT='TABLEAU',**kargs):
963       """Tracé d'une nappe"""
964       if not self.accessible():
965          raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'")
966       from Utilitai.Graph import Graph
967       gr=Graph()
968       lv=self.Valeurs()[1]
969       dp=self.Parametres()[0]
970       for lx,ly in lv:
971          gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']],
972             Leg=os.linesep.join(self.sdj.TITR.get()) )
973       gr.Trace(FORMAT=FORMAT,**kargs)
974
975    def __call__(self, val1, val2, tol=1.e-6):
976       """Evaluate a function at 'val'. If provided, 'tol' is a relative
977       tolerance to match an abscissa value."""
978       # Pour EFICAS : substitution de l'instance de classe
979       # parametre par sa valeur
980       if isinstance(val1, ASSD):
981          val1=val1.valeur
982       if isinstance(val2, ASSD):
983          val2=val2.valeur
984       __ff=self.convert()
985       return __ff(val1, val2, tol=tol)
986
987 # ======================================================================
988 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
989 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
990 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
991 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
992 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
993 #                                                                       
994 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
995 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
996 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
997 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
998 #                                                                       
999 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1000 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1001 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1002 # ======================================================================
1003 # person_in_charge: mathieu.courtois at edf.fr
1004
1005
1006 class fond_fiss(ASSD):
1007     cata_sdj = "SD.sd_fond_fiss.sd_fond_fiss"
1008
1009 # ======================================================================
1010 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1011 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1012 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1013 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1014 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1015 #                                                                       
1016 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1017 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1018 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1019 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1020 #                                                                       
1021 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1022 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1023 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1024 # ======================================================================
1025 # person_in_charge: mathieu.courtois at edf.fr
1026
1027
1028 class gfibre_sdaster(ASSD):
1029     cata_sdj = "SD.sd_gfibre.sd_gfibre"
1030
1031 # ======================================================================
1032 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1033 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1034 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1035 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1036 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1037 #                                                                       
1038 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1039 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1040 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1041 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1042 #                                                                       
1043 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1044 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1045 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1046 # ======================================================================
1047 # person_in_charge: mathieu.courtois at edf.fr
1048
1049
1050 class interf_dyna_clas(ASSD):
1051     cata_sdj = "SD.sd_interf_dyna_clas.sd_interf_dyna_clas"
1052
1053 # ======================================================================
1054 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
1055 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1056 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1057 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1058 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1059 #                                                                       
1060 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1061 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1062 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1063 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1064 #                                                                       
1065 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1066 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1067 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1068 # ======================================================================
1069 # person_in_charge: harinaivo.andriambololona at edf.fr
1070
1071
1072 class interspectre(ASSD):
1073     cata_sdj = "SD.sd_interspectre.sd_interspectre"
1074
1075 # ======================================================================
1076 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1077 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1078 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1079 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1080 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1081 #                                                                       
1082 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1083 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1084 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1085 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1086 #                                                                       
1087 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1088 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1089 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1090 # ======================================================================
1091 # person_in_charge: mathieu.courtois at edf.fr
1092
1093
1094 class list_inst(ASSD):
1095     cata_sdj = "SD.sd_list_inst.sd_list_inst"
1096
1097 # ======================================================================
1098 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1099 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1100 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1101 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1102 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1103 #                                                                       
1104 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1105 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1106 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1107 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1108 #                                                                       
1109 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1110 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1111 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1112 # ======================================================================
1113 # person_in_charge: mathieu.courtois at edf.fr
1114
1115
1116 class listis_sdaster(ASSD):
1117     cata_sdj = "SD.sd_listis.sd_listis"
1118
1119 # ======================================================================
1120 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1121 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1122 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1123 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1124 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1125 #                                                                       
1126 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1127 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1128 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1129 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1130 #                                                                       
1131 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1132 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1133 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1134 # ======================================================================
1135 # person_in_charge: mathieu.courtois at edf.fr
1136
1137
1138 class listr8_sdaster(ASSD):
1139    cata_sdj = "SD.sd_listr8.sd_listr8"
1140
1141    def Valeurs(self) :
1142       """
1143       Retourne la liste des valeurs : [val1, ..., valN]
1144       """
1145       if not self.accessible():
1146          raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'")
1147       from Utilitai.Utmess import UTMESS
1148       t_vale = self.sdj.VALE.get()
1149       if t_vale == None:
1150          UTMESS('F', 'SDVERI_2', valk=[vale])
1151       return list(t_vale)
1152
1153 # ======================================================================
1154 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1155 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1156 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1157 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1158 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1159 #                                                                       
1160 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1161 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1162 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1163 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1164 #                                                                       
1165 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1166 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1167 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1168 # ======================================================================
1169 # person_in_charge: mathieu.courtois at edf.fr
1170
1171 def VALE_triang2array(vect_VALE, dim, dtype=None):
1172     """Conversion (par recopie) de l'objet .VALE decrivant une matrice pleine
1173     par sa triangulaire sup en numpy.array plein.
1174     """
1175     import numpy
1176     triang_sup = numpy.array(vect_VALE)
1177     assert dim*(dim+1)/2 == len(triang_sup), \
1178         'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup))
1179
1180     valeur = numpy.zeros([dim, dim], dtype=dtype)
1181     for i in range(1, dim+1):
1182         for j in range(1, i+1):
1183             k = i*(i-1)/2 + j
1184             valeur[j-1, i-1]=triang_sup[k-1]
1185     valeur = valeur + numpy.transpose(valeur)
1186     for i in range(dim):
1187         valeur[i, i] = 0.5 * valeur[i, i]
1188     return valeur
1189
1190 class macr_elem_dyna(ASSD):
1191     cata_sdj = "SD.sd_macr_elem_dyna.sd_macr_elem_dyna"
1192
1193     def EXTR_MATR_GENE(self,typmat) :
1194         """ retourne les valeurs des matrices generalisees reelles
1195         dans un format numpy
1196          typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
1197          typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
1198          typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
1199          Attributs retourne
1200             - self.valeurs : numpy.array contenant les valeurs """
1201         import numpy
1202         if not self.accessible():
1203             raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'")
1204
1205         if (typmat=='MASS_GENE') :
1206             macr_elem = self.sdj.MAEL_MASS
1207         elif (typmat=='RIGI_GENE') :
1208             macr_elem = self.sdj.MAEL_RAID
1209         elif (typmat=='AMOR_GENE') :
1210             macr_elem = self.sdj.MAEL_AMOR
1211         else:
1212             raise Accas.AsException("Le type de la matrice est incorrect")
1213
1214         desc=numpy.array(macr_elem.DESC.get())
1215         # On teste si le DESC du vecteur existe
1216         if (desc==None):
1217             raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
1218
1219         matrice = VALE_triang2array(macr_elem.VALE.get(), desc[1])
1220         return matrice
1221
1222     def RECU_MATR_GENE(self,typmat,matrice) :
1223         """ envoie les valeurs d'un tableau numpy dans des matrices generalisees
1224         reelles definies dans jeveux
1225          typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
1226          typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
1227          typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
1228          Attributs ne retourne rien """
1229         import numpy
1230         if not self.accessible():
1231             raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'")
1232
1233         nommacr=self.get_name()
1234         if (typmat=='MASS_GENE') :
1235             macr_elem = self.sdj.MAEL_MASS
1236         elif (typmat=='RIGI_GENE') :
1237             macr_elem = self.sdj.MAEL_RAID
1238         elif (typmat=='AMOR_GENE') :
1239             macr_elem = self.sdj.MAEL_AMOR
1240         else:
1241             raise Accas.AsException("Le type de la matrice est incorrect")
1242         nom_vale = macr_elem.VALE.nomj()
1243         desc=numpy.array(macr_elem.DESC.get())
1244
1245         # On teste si le DESC de la matrice jeveux existe
1246         if (desc==None):
1247             raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
1248         numpy.asarray(matrice)
1249
1250         # On teste si la matrice python est de dimension 2
1251         if (len(numpy.shape(matrice))<>2):
1252             raise Accas.AsException("La dimension de la matrice est incorrecte")
1253
1254         # On teste si les tailles de la matrice jeveux et python sont identiques
1255         if (tuple([desc[1],desc[1]])<>numpy.shape(matrice)) :
1256             raise Accas.AsException("La dimension de la matrice est incorrecte")
1257         taille=desc[1]*desc[1]/2.0+desc[1]/2.0
1258         tmp=numpy.zeros([int(taille)])
1259         for j in range(desc[1]+1):
1260             for i in range(j):
1261                 k=j*(j-1)/2+i
1262                 tmp[k]=matrice[j-1,i]
1263         aster.putvectjev(nom_vale,len(tmp),tuple((
1264             range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
1265
1266 # ======================================================================
1267 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1268 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1269 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1270 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1271 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1272 #                                                                       
1273 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1274 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1275 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1276 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1277 #                                                                       
1278 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1279 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1280 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1281 # ======================================================================
1282 # person_in_charge: mathieu.courtois at edf.fr
1283
1284
1285 class macr_elem_stat(ASSD):
1286     cata_sdj = "SD.sd_macr_elem_stat.sd_macr_elem_stat"
1287
1288 # ======================================================================
1289 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
1290 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
1291 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
1292 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
1293 # (AT YOUR OPTION) ANY LATER VERSION.
1294 #
1295 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
1296 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
1297 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
1298 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
1299 #
1300 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
1301 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
1302 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
1303 # ======================================================================
1304 # person_in_charge: mathieu.courtois at edf.fr
1305
1306
1307 class maillage_sdaster(ASSD):
1308    cata_sdj = "SD.sd_maillage.sd_maillage"
1309
1310    def LIST_GROUP_NO(self) :
1311       """ retourne la liste des groupes de noeuds sous la forme :
1312         [ (gno1, nb noeuds  gno1), ...] """
1313       if not self.accessible():
1314          raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'")
1315       dic_gpno = self.sdj.GROUPENO.get()
1316       if dic_gpno is None:
1317           return []
1318       return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno]
1319
1320    def LIST_GROUP_MA(self) :
1321       """ retourne la liste des groupes de mailles sous la forme :
1322         [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """
1323       if not self.accessible():
1324          raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'")
1325       ltyma = aster.getvectjev("&CATA.TM.NOMTM")
1326       catama = aster.getcolljev("&CATA.TM.TMDIM")
1327       dic_gpma = self.sdj.GROUPEMA.get()
1328       if dic_gpma is None:
1329           return []
1330       dimama = [catama[ltyma[ma-1].ljust(24)][0] for ma in self.sdj.TYPMAIL.get()]
1331       ngpma = []
1332       for grp in dic_gpma.keys():
1333          dim = max([dimama[ma-1] for ma in dic_gpma[grp]])
1334          ngpma.append((grp.strip(), len(dic_gpma[grp]),dim))
1335       return ngpma
1336
1337 class grille_sdaster(maillage_sdaster):
1338     cata_sdj = "SD.sd_grille.sd_grille"
1339
1340 class squelette(maillage_sdaster):
1341     cata_sdj = "SD.sd_squelette.sd_squelette"
1342
1343 # ======================================================================
1344 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1345 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1346 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1347 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1348 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1349 #                                                                       
1350 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1351 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1352 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1353 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1354 #                                                                       
1355 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1356 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1357 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1358 # ======================================================================
1359 # person_in_charge: mathieu.courtois at edf.fr
1360
1361
1362 class mater_sdaster(ASSD):
1363    cata_sdj = "SD.sd_mater.sd_mater"
1364
1365    def RCVALE(self, phenomene, nompar=(), valpar=(), nomres=(), stop=1):
1366       """Appel à la routine fortran RCVALE pour récupérer les valeurs des
1367       propriétés du matériau.
1368       """
1369       if not self.accessible():
1370          raise Accas.AsException("Erreur dans mater.RCVALE en PAR_LOT='OUI'")
1371       from Utilitai.Utmess import UTMESS
1372       # vérification des arguments
1373       if not type(nompar) in (list, tuple):
1374          nompar = [nompar,]
1375       if not type(valpar) in (list, tuple):
1376          valpar = [valpar,]
1377       if not type(nomres) in (list, tuple):
1378          nomres = [nomres,]
1379       nompar = tuple(nompar)
1380       valpar = tuple(valpar)
1381       nomres = tuple(nomres)
1382       if len(nompar) != len(valpar):
1383          vk1=', '.join(nompar)
1384          vk2=', '.join([repr(v) for v in valpar])
1385          UTMESS('F','SDVERI_4',valk=[vk1,vk2])
1386       if len(nomres) < 1:
1387          UTMESS('F', 'SDVERI_5')
1388       # appel à l'interface Python/C
1389       return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop)
1390
1391 # ======================================================================
1392 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1393 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1394 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1395 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1396 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1397 #                                                                       
1398 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1399 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1400 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1401 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1402 #                                                                       
1403 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1404 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1405 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1406 # ======================================================================
1407 # person_in_charge: mathieu.courtois at edf.fr
1408
1409 class matr_asse(ASSD):
1410     cata_sdj = "SD.sd_matr_asse.sd_matr_asse"
1411
1412     def EXTR_MATR(self) :
1413         """ retourne les valeurs de la matrice  dans un format numpy
1414             Attributs retourne
1415               - self.valeurs : numpy.array contenant les valeurs """
1416         import numpy
1417         from SD.sd_stoc_morse import sd_stoc_morse
1418
1419         if not self.accessible():
1420             raise Accas.AsException("Erreur dans matr_asse.EXTR_MATR en PAR_LOT='OUI'")
1421
1422         refa = numpy.array(self.sdj.REFA.get())
1423         ma=refa[0]
1424         nu=refa[1]
1425         smos = sd_stoc_morse(nu[:14]+'.SMOS')
1426
1427         valm=self.sdj.VALM.get()
1428         smhc=smos.SMHC.get()
1429         smdi=smos.SMDI.get()
1430
1431         sym=len(valm)==1
1432         dim=len(smdi)
1433         nnz=smdi[dim-1]
1434
1435         triang_sup = numpy.array(valm[1])
1436         if sym:
1437             triang_inf = triang_sup
1438         else:
1439             triang_inf = numpy.array(valm[2])
1440
1441         if type(valm[1][0]) == type(1.j) :
1442             dtype=complex
1443         else :
1444             dtype=float
1445         valeur=numpy.zeros([dim, dim], dtype=dtype)
1446
1447         jcol=1
1448         for kterm in range(1,nnz+1):
1449             ilig=smhc[kterm-1]
1450             if (smdi[jcol-1] < kterm):
1451                 jcol=jcol+1
1452             valeur[jcol-1,ilig-1]=triang_inf[kterm-1]
1453             valeur[ilig-1,jcol-1]=triang_sup[kterm-1]
1454
1455         return valeur
1456
1457 class matr_asse_gd(matr_asse):
1458     cata_sdj = "SD.sd_matr_asse.sd_matr_asse"
1459
1460 class matr_asse_depl_c(matr_asse_gd):
1461     pass
1462
1463 class matr_asse_depl_r(matr_asse_gd):
1464     pass
1465
1466 class matr_asse_pres_c(matr_asse_gd):
1467     pass
1468
1469 class matr_asse_pres_r(matr_asse_gd):
1470     pass
1471
1472 class matr_asse_temp_c(matr_asse_gd):
1473     pass
1474
1475 class matr_asse_temp_r(matr_asse_gd):
1476     pass
1477
1478 # ======================================================================
1479 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1480 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1481 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1482 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1483 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1484 #                                                                       
1485 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1486 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1487 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1488 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1489 #                                                                       
1490 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1491 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1492 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1493 # ======================================================================
1494 # person_in_charge: mathieu.courtois at edf.fr
1495
1496 def VALM_triang2array(dict_VALM, dim, dtype=None):
1497    """Conversion (par recopie) de l'objet .VALM decrivant une matrice pleine
1498    par sa triangulaire inf (et parfois triang sup) en numpy.array plein.
1499    """
1500    import numpy
1501    # stockage symetrique ou non (triang inf+sup)
1502    sym = len(dict_VALM) == 1
1503    triang_sup = numpy.array(dict_VALM[1])
1504    assert dim*(dim+1)/2 == len(triang_sup), \
1505          'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup))
1506    if sym:
1507       triang_inf = triang_sup
1508    else:
1509       triang_inf = numpy.array(dict_VALM[2])
1510    valeur=numpy.zeros([dim, dim], dtype=dtype)
1511    for i in range(1, dim+1):
1512      for j in range(1, i+1):
1513        k = i*(i-1)/2 + j
1514        valeur[i-1, j-1]=triang_inf[k-1]
1515        valeur[j-1, i-1]=triang_sup[k-1]
1516    return valeur
1517
1518 def VALM_diag2array(dict_VALM, dim, dtype=None):
1519    """Conversion (par recopie) de l'objet .VALM decrivant une matrice
1520    diagonale en numpy.array plein.
1521    """
1522    import numpy
1523    diag = numpy.array(dict_VALM[1])
1524    assert dim == len(diag), 'Dimension incorrecte : %d != %d' % (dim, len(diag))
1525    valeur=numpy.zeros([dim, dim], dtype=dtype)
1526    for i in range(dim):
1527       valeur[i,i] =  diag[i]
1528    return valeur
1529
1530 class matr_asse_gene(ASSD):
1531     cata_sdj = "SD.sd_matr_asse_gene.sd_matr_asse_gene"
1532
1533 class matr_asse_gene_r(matr_asse_gene):
1534   def EXTR_MATR_GENE(self) :
1535     """ retourne les valeurs de la matrice generalisee reelle
1536     dans un format numpyal Array
1537         Attributs retourne
1538           - self.valeurs : numpy.array contenant les valeurs """
1539     if not self.accessible():
1540        raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'")
1541     import numpy
1542
1543     desc=numpy.array(self.sdj.DESC.get())
1544     # On teste si le DESC de la matrice existe
1545     if (desc==None):
1546        raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
1547     # Si le stockage est plein
1548     if desc[2]==2 :
1549        valeur = VALM_triang2array(self.sdj.VALM.get(), desc[1])
1550
1551     # Si le stockage est diagonal
1552     elif desc[2]==1 :
1553        valeur = VALM_diag2array(self.sdj.VALM.get(), desc[1])
1554
1555     # Sinon on arrete tout
1556     else:
1557       raise KeyError
1558     return valeur
1559
1560   def RECU_MATR_GENE(self,matrice) :
1561     """ envoie les valeurs d'un tableau numpy dans des matrices
1562     generalisees reelles definies dans jeveux
1563         Attributs ne retourne rien """
1564     import numpy
1565     if not self.accessible():
1566        raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'")
1567
1568     ncham=self.get_name()
1569     desc=numpy.array(self.sdj.DESC.get())
1570
1571     # On teste si le DESC de la matrice existe
1572     if (desc==None):
1573        raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
1574     numpy.asarray(matrice)
1575
1576     # On teste si la dimension de la matrice python est 2
1577     if (len(numpy.shape(matrice))<>2) :
1578        raise Accas.AsException("La dimension de la matrice est incorrecte ")
1579
1580     # On teste si les tailles des matrices jeveux et python sont identiques
1581     if (tuple([desc[1],desc[1]])<>numpy.shape(matrice)) :
1582        raise Accas.AsException("La taille de la matrice est incorrecte ")
1583
1584     # Si le stockage est plein
1585     if desc[2]==2 :
1586       taille=desc[1]*desc[1]/2.0+desc[1]/2.0
1587       tmp=numpy.zeros([int(taille)])
1588       for j in range(desc[1]+1):
1589         for i in range(j):
1590           k=j*(j-1)/2+i
1591           tmp[k]=matrice[j-1,i]
1592       aster.putcolljev('%-19s.VALM' % ncham,len(tmp),tuple((\
1593       range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
1594     # Si le stockage est diagonal
1595     elif desc[2]==1 :
1596       tmp=numpy.zeros(desc[1])
1597       for j in range(desc[1]):
1598           tmp[j]=matrice[j,j]
1599       aster.putcolljev('%-19s.VALM' % ncham,len(tmp),tuple((\
1600       range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
1601     # Sinon on arrete tout
1602     else:
1603       raise KeyError
1604     return
1605
1606 class matr_asse_gene_c(matr_asse_gene):
1607   def EXTR_MATR_GENE(self) :
1608     """ retourne les valeurs de la matrice generalisee complexe
1609     dans un format numpy
1610         Attributs retourne
1611           - self.valeurs : numpy.array contenant les valeurs """
1612     import numpy
1613     if not self.accessible():
1614        raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'")
1615
1616     desc = numpy.array(self.sdj.DESC.get())
1617     if desc == None:
1618        raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster ")
1619     # Si le stockage est plein
1620     if desc[2] == 2 :
1621        valeur = VALM_triang2array(self.sdj.VALM.get(), desc[1], complex)
1622
1623     # Si le stockage est diagonal
1624     elif desc[2]==1 :
1625        valeur = VALM_diag2array(self.sdj.VALM.get(), desc[1], complex)
1626
1627     # Sinon on arrete tout
1628     else:
1629        raise KeyError
1630     return valeur
1631
1632   def RECU_MATR_GENE(self,matrice) :
1633     """ envoie les valeurs d'un tableau numpy dans des matrices
1634     generalisees reelles definies dans jeveux
1635         Attributs ne retourne rien """
1636     import numpy
1637     if not self.accessible():
1638        raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'")
1639
1640     numpy.asarray(matrice)
1641     ncham=self.get_name()
1642     desc=numpy.array(self.sdj.DESC.get())
1643
1644     # On teste si le DESC de la matrice existe
1645     if (desc==None):
1646        raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
1647     numpy.asarray(matrice)
1648
1649     # On teste si la dimension de la matrice python est 2
1650     if (len(numpy.shape(matrice))<>2) :
1651        raise Accas.AsException("La dimension de la matrice est incorrecte ")
1652
1653     # On teste si la taille de la matrice jeveux et python est identique
1654     if (tuple([desc[1],desc[1]])<>numpy.shape(matrice)) :
1655        raise Accas.AsException("La taille de la matrice est incorrecte ")
1656
1657     # Si le stockage est plein
1658     if desc[2]==2 :
1659       taille=desc[1]*desc[1]/2.0+desc[1]/2.0
1660       tmpr=numpy.zeros([int(taille)])
1661       tmpc=numpy.zeros([int(taille)])
1662       for j in range(desc[1]+1):
1663         for i in range(j):
1664           k=j*(j-1)/2+i
1665           tmpr[k]=matrice[j-1,i].real
1666           tmpc[k]=matrice[j-1,i].imag
1667       aster.putvectjev('%-19s.VALM' % ncham, len(tmpr), tuple((\
1668                        range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
1669     # Si le stockage est diagonal
1670     elif desc[2]==1 :
1671       tmpr=numpy.zeros(desc[1])
1672       tmpc=numpy.zeros(desc[1])
1673       for j in range(desc[1]):
1674           tmpr[j]=matrice[j,j].real
1675           tmpc[j]=matrice[j,j].imag
1676       aster.putvectjev('%-19s.VALM' % ncham,len(tmpr),tuple((\
1677                        range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
1678     # Sinon on arrete tout
1679     else:
1680       raise KeyError
1681     return
1682
1683 # ======================================================================
1684 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1685 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1686 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1687 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1688 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1689 #                                                                       
1690 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1691 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1692 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1693 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1694 #                                                                       
1695 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1696 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1697 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1698 # ======================================================================
1699 # person_in_charge: mathieu.courtois at edf.fr
1700
1701
1702 class matr_elem(ASSD):
1703     cata_sdj = "SD.sd_matr_elem.sd_matr_elem"
1704
1705 class matr_elem_depl_c(matr_elem):
1706     pass
1707
1708 class matr_elem_depl_r(matr_elem):
1709     pass
1710
1711 class matr_elem_pres_c(matr_elem):
1712     pass
1713
1714 class matr_elem_temp_r(matr_elem):
1715     pass
1716
1717 # ======================================================================
1718 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1719 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1720 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1721 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1722 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1723 #                                                                       
1724 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1725 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1726 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1727 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1728 #                                                                       
1729 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1730 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1731 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1732 # ======================================================================
1733 # person_in_charge: mathieu.courtois at edf.fr
1734
1735
1736 class melasflu_sdaster(ASSD):
1737     cata_sdj = "SD.sd_melasflu.sd_melasflu"
1738
1739 # ======================================================================
1740 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1741 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1742 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1743 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1744 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1745 #                                                                       
1746 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1747 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1748 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1749 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1750 #                                                                       
1751 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1752 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1753 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1754 # ======================================================================
1755 # person_in_charge: mathieu.courtois at edf.fr
1756
1757
1758 class mode_cycl(ASSD):
1759     cata_sdj = "SD.sd_mode_cycl.sd_mode_cycl"
1760
1761 # ======================================================================
1762 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1763 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1764 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1765 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1766 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1767 #                                                                       
1768 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1769 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1770 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1771 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1772 #                                                                       
1773 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1774 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1775 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1776 # ======================================================================
1777 # person_in_charge: mathieu.courtois at edf.fr
1778
1779
1780 class modele_gene(ASSD):
1781    cata_sdj = "SD.sd_modele_gene.sd_modele_gene"
1782
1783    def LIST_SOUS_STRUCT(self) :
1784       """ retourne la liste des sous structures du modele generalise
1785          la liste des macro-elements sous-jacents"""
1786       if not self.accessible():
1787          raise Accas.AsException("Erreur dans modele_gene.LIST_SOUS_STRUCT en PAR_LOT='OUI'")
1788       nommodgen=self.get_name()
1789       ncham=nommodgen+(8-len(nommodgen))*' '
1790       ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO')
1791       ssme=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.SSME')
1792       return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))]
1793
1794    def LIST_LIAIS_STRUCT(self) :
1795       """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme :
1796          [ (ss1, nom_liais1,  ss2 , nom_liais2), ...] """
1797       if not self.accessible() :
1798          raise Accas.AsException("Erreur dans modele_gene.LIST_LIAIS_STRUCT en PAR_LOT='OUI'")
1799       nommodgen=self.get_name()
1800       ncham=nommodgen+(8-len(nommodgen))*' '
1801       lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF')
1802       return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf]
1803
1804 # ======================================================================
1805 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1806 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1807 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1808 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1809 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1810 #                                                                       
1811 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1812 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1813 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1814 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1815 #                                                                       
1816 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1817 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1818 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1819 # ======================================================================
1820 # person_in_charge: mathieu.courtois at edf.fr
1821
1822
1823 class modele_sdaster(ASSD):
1824     cata_sdj = "SD.sd_modele.sd_modele"
1825
1826 # ======================================================================
1827 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1828 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1829 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1830 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1831 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1832 #                                                                       
1833 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1834 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1835 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1836 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1837 #                                                                       
1838 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1839 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1840 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1841 # ======================================================================
1842 # person_in_charge: mathieu.courtois at edf.fr
1843
1844
1845 class nume_ddl_gene(ASSD):
1846     cata_sdj = "SD.sd_nume_ddl.sd_nume_ddl"
1847
1848 # ======================================================================
1849 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
1850 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1851 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1852 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1853 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1854 #                                                                       
1855 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1856 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1857 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1858 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1859 #                                                                       
1860 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1861 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1862 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1863 # ======================================================================
1864 # person_in_charge: mathieu.courtois at edf.fr
1865
1866
1867 class nume_ddl_sdaster(ASSD):
1868     cata_sdj = "SD.sd_nume_ddl.sd_nume_ddl"
1869
1870 # ======================================================================
1871 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
1872 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1873 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1874 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1875 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1876 #                                                                       
1877 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1878 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1879 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1880 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1881 #                                                                       
1882 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1883 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1884 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1885 # ======================================================================
1886 # person_in_charge: mathieu.courtois at edf.fr
1887
1888 class reel(ASSD):
1889     cata_sdj = "SD.AsBase"
1890
1891     def __init__(self, valeur=None, **args):
1892         ASSD.__init__(self, **args)
1893         self.valeur = valeur
1894
1895     def __call__(self):
1896         return self.valeur
1897
1898     def __adapt__(self, validator):
1899         if validator.name == "list":
1900             # validateur liste,cardinalité
1901             return (self, )
1902         elif validator.name == "type":
1903             # validateur type
1904             return validator.adapt(self.valeur or 0.)
1905         else:
1906             # validateur into et valid
1907             return self
1908
1909 # ======================================================================
1910 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
1911 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1912 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1913 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1914 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1915 #                                                                       
1916 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1917 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1918 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1919 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1920 #                                                                       
1921 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1922 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1923 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1924 # ======================================================================
1925 # person_in_charge: mathieu.courtois at edf.fr
1926
1927
1928 class resultat_sdaster(ASSD):
1929    cata_sdj = "SD.sd_resultat.sd_resultat"
1930
1931    def LIST_CHAMPS (self) :
1932       if not self.accessible():
1933          raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'")
1934       return aster.GetResu(self.get_name(), "CHAMPS")
1935
1936    def LIST_NOM_CMP (self) :
1937       if not self.accessible():
1938          raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'")
1939       return aster.GetResu(self.get_name(), "COMPOSANTES")
1940
1941    def LIST_VARI_ACCES (self) :
1942       if not self.accessible():
1943          raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'")
1944       return aster.GetResu(self.get_name(), "VARI_ACCES")
1945
1946    def LIST_PARA (self) :
1947       if not self.accessible():
1948          raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'")
1949       return aster.GetResu(self.get_name(), "PARAMETRES")
1950
1951 class resultat_jeveux(resultat_sdaster):
1952    """Classe permettant d'accéder à un resultat jeveux qui n'a pas d'ASSD associée,
1953    c'est le cas des concepts résultats (table, evol_xxxx) dérivés."""
1954    def __init__(self, nom_jeveux):
1955       resultat_sdaster.__init__(self)
1956       self.set_name(nom_jeveux)
1957
1958 class comb_fourier(resultat_sdaster): pass
1959 class fourier_elas(resultat_sdaster): pass
1960 class fourier_ther(resultat_sdaster): pass
1961 class mult_elas(resultat_sdaster): pass
1962 class theta_geom(resultat_sdaster): pass
1963
1964 # resultat_sdaster/evol_sdaster :
1965 class evol_sdaster(resultat_sdaster): pass
1966 class evol_char(evol_sdaster): pass
1967 class evol_elas(evol_sdaster): pass
1968 class evol_noli(evol_sdaster): pass
1969 class evol_ther(evol_sdaster): pass
1970 class evol_varc(evol_sdaster): pass
1971
1972
1973
1974 # ======================================================================
1975 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
1976 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1977 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1978 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1979 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1980 #                                                                       
1981 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1982 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1983 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1984 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1985 #                                                                       
1986 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1987 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1988 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1989 # ======================================================================
1990 # person_in_charge: hassan.berro at edf.fr
1991
1992 class dyna_gene(ASSD):
1993     cata_sdj = "SD.sd_dyna_gene.sd_dyna_gene"
1994
1995 class dyna_phys(resultat_sdaster):
1996     cata_sdj="SD.sd_dyna_phys.sd_dyna_phys"
1997
1998 # Concepts généralisés
1999 class harm_gene  (dyna_gene) : pass
2000 class tran_gene  (dyna_gene) : pass
2001
2002 # Concepts physiques
2003 class acou_harmo (dyna_phys) : pass
2004 class dyna_harmo (dyna_phys) : pass
2005 class dyna_trans (dyna_phys) : pass
2006 class mode_acou  (dyna_phys) : pass
2007 class mode_flamb (dyna_phys) : pass
2008 class mode_meca  (dyna_phys) : pass
2009 class mode_meca_c(mode_meca) : pass
2010
2011 # TODO : convertir mode_gene en format généralisé
2012 class mode_gene  (dyna_phys) : pass
2013 # ======================================================================
2014 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2015 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2016 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2017 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2018 # (AT YOUR OPTION) ANY LATER VERSION.
2019 #
2020 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2021 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2022 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2023 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2024 #
2025 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2026 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2027 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2028 # ======================================================================
2029 # person_in_charge: mathieu.courtois at edf.fr
2030
2031
2032 class sd_partit(ASSD):
2033     cata_sdj = "SD.sd_partition.sd_partit"
2034
2035 # ======================================================================
2036 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2037 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2038 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2039 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2040 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2041 #                                                                       
2042 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2043 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2044 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2045 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2046 #                                                                       
2047 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2048 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2049 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2050 # ======================================================================
2051 # person_in_charge: mathieu.courtois at edf.fr
2052
2053
2054 class spectre_sdaster(ASSD):
2055     cata_sdj = "SD.sd_spectre.sd_spectre"
2056
2057 # ======================================================================
2058 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2059 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2060 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2061 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2062 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2063 #                                                                       
2064 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2065 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2066 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2067 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2068 #                                                                       
2069 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2070 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2071 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2072 # ======================================================================
2073 # person_in_charge: mathieu.courtois at edf.fr
2074
2075
2076 class surface_sdaster(ASSD):
2077     cata_sdj = "SD.sd_surface.sd_surface"
2078
2079 # ======================================================================
2080 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2081 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2082 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2083 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2084 # (AT YOUR OPTION) ANY LATER VERSION.
2085 #
2086 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2087 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2088 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2089 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2090 #
2091 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2092 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2093 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2094 # ======================================================================
2095 # person_in_charge: mathieu.courtois at edf.fr
2096
2097
2098 class table_sdaster(ASSD):
2099     cata_sdj = "SD.sd_table.sd_table"
2100
2101     def __getitem__(self, key):
2102         """Retourne la valeur d'une cellule de la table.
2103         Exemple : TAB['INST', 1] retourne la 1ère valeur de la colonne 'INST'."""
2104         from Utilitai.Utmess import UTMESS
2105         if not self.accessible():
2106             raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'")
2107         assert len(key) == 2
2108         para, numlign = key
2109         tabnom = self.sdj.TBLP.get()
2110         try:
2111             i = tabnom.index('%-24s' % para)
2112             resu = aster.getvectjev(tabnom[i + 2])
2113             exist = aster.getvectjev(tabnom[i + 3])
2114             assert resu is not None
2115             assert exist is not None
2116             assert exist[numlign - 1] != 0
2117             res = resu[numlign - 1]
2118         except (IndexError, AssertionError):
2119             # pour __getitem__, il est plus logique de retourner KeyError.
2120             raise KeyError
2121         return res
2122
2123     def TITRE(self):
2124         """Retourne le titre d'une table Aster
2125         (Utile pour récupérer le titre et uniquement le titre d'une table dont
2126         on souhaite manipuler la dérivée).
2127         """
2128         if not self.accessible():
2129             raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'")
2130         #titj = aster.getvectjev('%-19s.TITR' % self.get_name())
2131         titj = self.sdj.TITR.get()
2132         if titj != None:
2133             titr = '\n'.join(titj)
2134         else:
2135             titr = ''
2136         return titr
2137
2138     def EXTR_TABLE(self, para=None) :
2139         """Produit un objet Table à partir du contenu d'une table Aster.
2140         On peut limiter aux paramètres listés dans 'para'.
2141         """
2142         def Nonefy(l1,l2) :
2143             if l2 == 0:
2144                 return None
2145             else:
2146                 return l1
2147         if not self.accessible():
2148             raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'")
2149         from Utilitai.Table import Table
2150         # titre
2151         titr = self.TITRE()
2152         # récupération des paramètres
2153         #v_tblp = aster.getvectjev('%-19s.TBLP' % self.get_name())
2154         v_tblp = self.sdj.TBLP.get()
2155         if v_tblp == None:
2156             # retourne une table vide
2157             return Table(titr=titr, nom=self.nom)
2158         tabnom=list(v_tblp)
2159         nparam=len(tabnom)/4
2160         lparam=[tabnom[4*i:4*i+4] for i in range(nparam)]
2161         # restriction aux paramètres demandés
2162         if para is not None:
2163             if type(para) not in (list, tuple):
2164                 para = [para, ]
2165             para = [p.strip() for p in para]
2166             restr = []
2167             for ip in lparam:
2168                 if ip[0].strip() in para:
2169                     restr.append(ip)
2170             lparam = restr
2171         dval={}
2172         # liste des paramètres et des types
2173         lpar=[]
2174         ltyp=[]
2175         for i in lparam :
2176             value=list(aster.getvectjev(i[2]))
2177             exist=aster.getvectjev(i[3])
2178             dval[i[0].strip()] = map(Nonefy, value, exist)
2179             lpar.append(i[0].strip())
2180             ltyp.append(i[1].strip())
2181         n=len(dval[lpar[0]])
2182         # contenu : liste de dict
2183         lisdic=[]
2184         for i in range(n) :
2185             d={}
2186             for p in lpar:
2187                d[p]=dval[p][i]
2188             lisdic.append(d)
2189         return Table(lisdic, lpar, ltyp, titr, self.nom)
2190
2191 class table_fonction(table_sdaster):
2192     """Table contenant en plus une colonne FONCTION et/ou FONCTION_C dont les
2193     valeurs des cellules sont des noms de fonction_sdaster ou fonction_c."""
2194
2195 class table_jeveux(table_sdaster):
2196     """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée,
2197     c'est le cas des concepts résultats (table, evol_xxxx) dérivés."""
2198     def __init__(self, nom_jeveux):
2199         table_sdaster.__init__(self)
2200         self.set_name(nom_jeveux)
2201
2202 class table_fonction(table_sdaster):
2203     """Table contenant une colonne FONCTION et/ou FONCTION_C dont les
2204     valeurs des cellules sont des noms de fonction_sdaster ou
2205     fonction_c."""
2206     cata_sdj = "SD.sd_table_fonction.sd_table_fonction"
2207
2208 class table_container(table_sdaster):
2209     """Table contenant les colonnes NOM_OBJET, TYPE_OBJET et NOM_SD."""
2210     cata_sdj = "SD.sd_table_container.sd_table_container"
2211
2212 # ======================================================================
2213 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2214 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2215 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2216 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2217 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2218 #                                                                       
2219 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2220 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2221 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2222 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2223 #                                                                       
2224 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2225 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2226 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2227 # ======================================================================
2228 # person_in_charge: mathieu.courtois at edf.fr
2229
2230
2231 class type_flui_stru(ASSD):
2232    cata_sdj = "SD.sd_type_flui_stru.sd_type_flui_stru"
2233
2234 # ======================================================================
2235 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2236 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2237 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2238 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2239 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2240 #                                                                       
2241 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2242 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2243 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2244 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2245 #                                                                       
2246 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2247 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2248 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2249 # ======================================================================
2250 # person_in_charge: mathieu.courtois at edf.fr
2251
2252
2253 class vect_asse_gene(ASSD):
2254    cata_sdj = "SD.sd_cham_gene.sd_cham_gene"
2255
2256    def EXTR_VECT_GENE_R(self) :
2257       """ retourne les valeurs du vecteur generalisee
2258       dans un format numpy
2259          Attributs retourne
2260             - self.valeurs : numpy.array contenant les valeurs """
2261       import numpy
2262       if not self.accessible():
2263          raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'")
2264       #ncham=self.get_name()
2265       #ncham=ncham+(8-len(ncham))*' '
2266       #valeur=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
2267       valeur = numpy.array(self.sdj.VALE.get())
2268       return valeur
2269
2270    def RECU_VECT_GENE_R(self, vecteur) :
2271       """ envoie les valeurs d'un tableau numpy dans un vecteur generalise
2272       reel definie dans jeveux
2273          Attributs ne retourne rien """
2274       if not self.accessible():
2275          raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'")
2276       import numpy
2277       numpy.asarray(vecteur)
2278       ncham=self.get_name()
2279       ncham=ncham+(8-len(ncham))*' '
2280       #desc=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
2281       desc = numpy.array(self.sdj.DESC.get())
2282       # On teste si le DESC du vecteur existe
2283       if (desc==None):
2284          raise Accas.AsException("L'objet vecteur n'existe pas ou \
2285          est mal cree par Code Aster")
2286       # On teste si la taille du vecteur jeveux et python est identique
2287       if desc[1] != numpy.shape(vecteur)[0] :
2288          raise Accas.AsException("La taille du vecteur python est incorrecte")
2289       aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',
2290                        len(vecteur),
2291                        tuple(range(1, len(vecteur)+1)),
2292                        tuple(vecteur),
2293                        tuple(vecteur),
2294                        1)
2295       return
2296
2297    def EXTR_VECT_GENE_C(self) :
2298       """ retourne les valeurs du vecteur generalisee
2299       dans un format numpy
2300          Attributs retourne
2301             - self.valeurs : numpy.array contenant les valeurs """
2302       import numpy
2303       if not self.accessible():
2304          raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'")
2305
2306       #ncham=self.get_name()
2307       #ncham=ncham+(8-len(ncham))*' '
2308       #valeur=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'), complex)
2309       valeur=numpy.array(self.sdj.VALE.get(), complex)
2310
2311       return valeur
2312
2313    def RECU_VECT_GENE_C(self,vecteur) :
2314       """ envoie les valeurs d'un tableau numpy dans un vecteur generalise
2315       complexe definie dans jeveux
2316          Attributs ne retourne rien """
2317       if not self.accessible():
2318          raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'")
2319       import numpy
2320       numpy.asarray(vecteur)
2321       ncham=self.get_name()
2322       ncham=ncham+(8-len(ncham))*' '
2323       desc=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
2324       # On teste si le DESC de la matrice existe
2325       if (desc==None):
2326          raise Accas.AsException("L'objet vecteur n'existe pas ou \
2327          est mal cree par Code Aster")
2328       # On teste si la taille de la matrice jeveux et python est identique
2329       if desc[1]<>numpy.shape(vecteur)[0] :
2330          raise Accas.AsException("La taille du vecteur python est incorrecte")
2331       tmpr=vecteur.real
2332       tmpc=vecteur.imag
2333       aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',
2334                        len(tmpr),
2335                        tuple(range(1, len(tmpr)+1)),
2336                        tuple(tmpr),
2337                        tuple(tmpc),
2338                        1)
2339       return
2340
2341 # ======================================================================
2342 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
2343 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2344 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2345 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2346 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2347 #                                                                       
2348 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2349 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2350 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2351 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2352 #                                                                       
2353 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2354 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2355 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2356 # ======================================================================
2357 # person_in_charge: mathieu.courtois at edf.fr
2358
2359
2360 class vect_elem(ASSD):
2361    cata_sdj = "SD.sd_vect_elem.sd_vect_elem"
2362
2363 class vect_elem_depl_r(vect_elem):
2364    pass
2365
2366 class vect_elem_pres_r(vect_elem):
2367    pass
2368
2369 class vect_elem_pres_c(vect_elem):
2370    pass
2371
2372 class vect_elem_temp_r(vect_elem):
2373    pass
2374
2375 # ======================================================================
2376 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
2377 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2378 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2379 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2380 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2381 #                                                                       
2382 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2383 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2384 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2385 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2386 #                                                                       
2387 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2388 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2389 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2390 # ======================================================================
2391 # person_in_charge: mickael.abbas at edf.fr
2392
2393 def C_AFFICHAGE() : return FACT(statut='f',max=1,
2394         INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
2395         INFO_TEMPS  = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),  
2396         UNITE       = SIMP(statut='f',typ='I',val_min=1),
2397         PAS         = SIMP(statut='f',typ='I',val_min=1),
2398        );
2399
2400 # ======================================================================
2401 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
2402 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2403 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2404 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2405 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2406 #                                                                       
2407 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2408 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2409 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2410 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2411 #                                                                       
2412 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2413 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2414 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2415 # ======================================================================
2416 # person_in_charge: mickael.abbas at edf.fr
2417 def C_ARCHIVAGE() : return FACT(statut='d',max=1,
2418     regles         = (EXCLUS('PAS_ARCH','LIST_INST','INST'),),
2419     LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
2420     INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
2421     PAS_ARCH       = SIMP(statut='f',typ='I' ),
2422     CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2423            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
2424               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
2425            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
2426               PRECISION       =SIMP(statut='o',typ='R',),),
2427     CHAM_EXCLU     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
2428 );
2429
2430 # ======================================================================
2431 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
2432 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2433 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2434 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2435 # (AT YOUR OPTION) ANY LATER VERSION.
2436 #
2437 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2438 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2439 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2440 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2441 #
2442 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2443 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2444 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2445 # ======================================================================
2446 # person_in_charge: jean-michel.proix at edf.fr
2447 def C_COMPORTEMENT(COMMAND=None) :  #COMMUN#
2448
2449     assert COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC','CALC_G','POST_GP','CALC_ESSAI_GEOMECA','CALC_EUROPLEXUS',
2450                        'CALC_POINT_MAT','SIMU_POINT_MAT', 'DYNA_NON_LINE','STAT_NON_LINE','CALCUL','CALC_FORC_NONL',
2451                        'CALC_IFS_DNL','CALC_PRECONT','CREA_RESU','LIRE_RESU','MACR_ECREVISSE','TEST_COMPOR',None)
2452
2453     if COMMAND !='CALC_EUROPLEXUS':
2454         mcfact = FACT(statut='f',min=1,max='**',
2455
2456            RELATION  =SIMP( statut='o',typ='TXM',defaut="ELAS",into=C_RELATION(COMMAND)),
2457            b_monox     = BLOC(condition = "RELATION == 'MONOCRISTAL' ",
2458                                  fr="SD issue de DEFI_COMPOR",
2459                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
2460            b_polyx     = BLOC(condition = "RELATION == 'POLYCRISTAL' ",
2461                                  fr="SD issue de DEFI_COMPOR",
2462                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
2463            b_zmat      = BLOC(condition = "RELATION == 'ZMAT' ",
2464                                  fr="Comportement de la bibliotheque Zmat",
2465                    NB_VARI =SIMP(statut='o',typ='I',max=1),
2466                    UNITE =SIMP(statut='o',typ='I',max=1),),
2467            b_umat      = BLOC(condition = "RELATION == 'UMAT' ",
2468                                  fr="Comportement utilisateur de type UMAT",
2469                    NB_VARI =SIMP(statut='o',typ='I',max=1,fr="Nombre de variables internes"),
2470                    LIBRAIRIE = SIMP(statut='o', typ='TXM',validators=LongStr(1,128),
2471                         fr="Chemin vers la bibliothèque dynamique définissant le comportement UMAT"),
2472                    NOM_ROUTINE = SIMP(statut='o', typ='TXM',
2473                         fr="Nom de la routine UMAT dans la bibliothèque"),),
2474            b_mfront      = BLOC(condition = "RELATION == 'MFRONT' ",
2475                                  fr="Comportement utilisateur de type MFRONT",
2476                    NB_VARI =SIMP(statut='o',typ='I',max=1,fr="Nombre de variables internes"),
2477                    LIBRAIRIE = SIMP(statut='o', typ='TXM',validators=LongStr(1,128),
2478                         fr="Chemin vers la bibliothèque dynamique définissant le comportement MFRONT"),
2479                    NOM_ROUTINE = SIMP(statut='o', typ='TXM',
2480                         fr="Nom de la routine MFRONT dans la bibliothèque"),),
2481
2482 # KITs
2483            b_kit_ddi = BLOC(condition = "RELATION == 'KIT_DDI' ",
2484                             fr="relations de couplage fluage-plasticite",
2485                RELATION_KIT    =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(),
2486                                  into=(
2487                                        "VMIS_CINE_LINE",
2488                                        "VMIS_ISOT_TRAC",
2489                                        "VMIS_ISOT_LINE",
2490                                        "VMIS_ISOT_PUIS",
2491                                        "GLRC_DM",
2492                                        "GRANGER_FP",
2493                                        "GRANGER_FP_INDT",
2494                                        "GRANGER_FP_V",
2495                                        "BETON_UMLV_FP",
2496                                        "ROUSS_PR",
2497                                        "BETON_DOUBLE_DP",
2498                                        "ENDO_ISOT_BETON",
2499                                        "MAZARS"
2500                                        ),),
2501                    ),
2502            b_kit_cg= BLOC(condition = "RELATION == 'KIT_CG' ",
2503                             fr="relations pour elements cables gaines",
2504                RELATION_KIT    =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(),
2505                                  into=(
2506                                        "CABLE_GAINE_FROT",
2507                                        "VMIS_ISOT_LINE",
2508                                        "VMIS_ISOT_TRAC",
2509                                        "VMIS_CINE_LINE",
2510                                        "PINTO_MENEGOTTO",
2511                                        "ELAS",
2512                                        "SANS"
2513                                        ),),
2514                    ),
2515
2516            b_kit_thm = BLOC(condition = "RELATION in ['KIT_HHM','KIT_HH','KIT_H','KIT_HM','KIT_THHM', \
2517                                                       'KIT_THH','KIT_THM','KIT_THV']",
2518                             fr="lois de comportements thermo-hydro-mecaniques",
2519                RELATION_KIT    =SIMP(statut='o',typ='TXM',max=9,validators=NoRepeat(),
2520                                  into=(
2521 # MECA
2522                                        "ELAS",
2523                                        "CJS",
2524                                        "HUJEUX",
2525                                        "CAM_CLAY",
2526                                        "BARCELONE",
2527                                        "LAIGLE",
2528                                        "LETK",
2529                                        "DRUCK_PRAGER",
2530                                        "DRUCK_PRAG_N_A",
2531                                        "VISC_DRUC_PRAG",
2532                                        "ELAS_GONF",
2533                                        "HOEK_BROWN_EFF",
2534                                        "HOEK_BROWN_TOT",
2535                                        "MAZARS",
2536                                        "ENDO_ISOT_BETON",
2537                                        "JOINT_BANDIS",
2538                                        "CZM_LIN_REG",
2539                                        "CZM_EXP_REG",
2540 # THMC
2541                                        "GAZ",
2542                                        "LIQU_SATU",
2543                                        "LIQU_GAZ_ATM",
2544                                        "LIQU_VAPE_GAZ",
2545                                        "LIQU_AD_GAZ_VAPE",
2546                                        "LIQU_AD_GAZ",
2547                                        "LIQU_VAPE",
2548                                        "LIQU_GAZ",
2549 # HYDR
2550                                        "HYDR_UTIL",
2551                                        "HYDR_VGM",
2552                                        "HYDR_VGC",
2553                                        "HYDR",
2554                                        "HYDR_ENDO",
2555                                        ),),
2556                                        ),
2557            b_kit_meta = BLOC(condition = "RELATION in ('META_LEMA_ANI','META_P_CL_PT_RE','META_P_CL_PT','META_P_CL_RE','META_P_CL',\
2558        'META_P_IL_PT_RE','META_P_IL_PT','META_P_IL_RE','META_P_IL','META_P_INL_PT_RE','META_P_INL_PT','META_P_INL_RE','META_P_INL',\
2559            'META_V_CL_PT_RE','META_V_CL_PT','META_V_CL_RE','META_V_CL','META_V_IL_PT_RE','META_V_IL_PT','META_V_IL_RE','META_V_IL',\
2560            'META_V_INL_PT_RE','META_V_INL_PT','META_V_INL_RE','META_V_INL')",
2561                             fr="nombre de phases metallurgiques",
2562                RELATION_KIT    =SIMP(statut='o',typ='TXM',max=1,validators=NoRepeat(),
2563                                  into=("ACIER","ZIRC"),),
2564                                  ),
2565
2566            DEFORMATION       =SIMP(statut='f',typ='TXM',defaut="PETIT",
2567                                    into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),
2568
2569            # gestion des contraintes planes par la méthode itérative
2570
2571               RESI_CPLAN_MAXI    =SIMP(statut='f',typ='R',
2572                                       fr="Critère d'arret absolu pour assurer la condition de contraintes planes"),
2573
2574                    b_resi_cplan  =BLOC(condition = " RESI_CPLAN_MAXI == None ",
2575
2576               RESI_CPLAN_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6,
2577                                       fr="Critère d'arret relatif pour assurer la condition de contraintes planes"),
2578                                   ),
2579
2580               ITER_CPLAN_MAXI =SIMP(statut='f',typ='I',defaut= 1,
2581                                       fr="Nombre d'itérations maxi pour assurer la condition de contraintes planes"),
2582            #
2583            RESI_INTE_RELA    =SIMP(statut='f',typ='R',defaut= 1.0E-6),
2584            ITER_INTE_MAXI    =SIMP(statut='f',typ='I',defaut= 20 ),
2585
2586            b_redec_local      = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",
2587                                      fr="Nombre de redécoupages internes du pas de temps",
2588                ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
2589                                      ),
2590
2591            ALGO_INTE         =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",
2592                                                               "NEWTON", "NEWTON_RELI", "NEWTON_PERT", "RUNGE_KUTTA",
2593                                                               "SPECIFIQUE", "SANS_OBJET")),
2594
2595            TYPE_MATR_TANG    =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")),
2596
2597            b_perturb         =BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ",
2598                                    fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation",
2599                 VALE_PERT_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-5),
2600                                   ),
2601
2602            b_tangsec        = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ",
2603                                    fr="Modification evolutive de la matrice tangente/secante",
2604                  SEUIL        =SIMP(statut='f',typ='R',defaut= 3. ),
2605                  AMPLITUDE    =SIMP(statut='f',typ='R',defaut= 1.5 ),
2606                  TAUX_RETOUR  =SIMP(statut='f',typ='R',defaut= 0.05 ),
2607                                   ),
2608
2609            b_crirupt        = BLOC(condition =
2610            " RELATION in ('VMIS_ISOT_LINE','VMIS_ISOT_TRAC','VISCOCHAB','VISC_ISOT_LINE','VISC_ISOT_TRAC',)",
2611                                    fr="Critere de rupture selon une contrainte critique",
2612                  POST_ITER    =SIMP(statut='f',typ='TXM',into=("CRIT_RUPT",), ),
2613                                   ),
2614
2615            PARM_THETA      =SIMP(statut='f',typ='R',val_min=0.,val_max=1., defaut= 1.),
2616            PARM_ALPHA      =SIMP(statut='f',typ='R',defaut= 1. ),
2617
2618            b_radi          =BLOC(condition = "TYPE_MATR_TANG == None",
2619               RESI_RADI_RELA  =SIMP(statut='f',typ='R', ),
2620                                ),
2621
2622            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2623            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2624            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2625            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2626
2627          )
2628
2629     else:
2630         mcfact = FACT(statut='o',min=1,max='**',  #COMMUN#
2631
2632            RELATION  = SIMP( statut='o',typ='TXM',defaut="ELAS",into=('ELAS','GLRC_DAMAGE')),
2633            GROUP_MA  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
2634         )
2635
2636
2637     return mcfact
2638
2639 # ======================================================================
2640 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
2641 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2642 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2643 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2644 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2645 #                                                                       
2646 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2647 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2648 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2649 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2650 #                                                                       
2651 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2652 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2653 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2654 # ======================================================================
2655 # person_in_charge: mickael.abbas at edf.fr
2656 def C_CONVERGENCE() : return FACT(statut='d',
2657            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA','RESI_COMP_RELA'),),
2658            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
2659              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE','FORC_REFE',
2660                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE','DEPL_REFE','LAGR_REFE'),),
2661              FORC_REFE       =SIMP(statut='f',typ='R',min=2,max=2,
2662                 fr="Force et Moment de référence pour les éléments de structure."),
2663              SIGM_REFE       =SIMP(statut='f',typ='R'),
2664              DEPL_REFE       =SIMP(statut='f',typ='R'),
2665              EPSI_REFE       =SIMP(statut='f',typ='R'),
2666              FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
2667              FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
2668              FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
2669              VARI_REFE       =SIMP(statut='f',typ='R'),
2670              LAGR_REFE       =SIMP(statut='f',typ='R'),
2671            ),
2672            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
2673            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
2674            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
2675            RESI_COMP_RELA  =SIMP(statut='f',typ='R'),
2676            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
2677            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
2678            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
2679          );
2680
2681 # ======================================================================
2682 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
2683 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2684 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2685 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2686 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2687 #                                                                       
2688 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2689 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2690 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2691 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2692 #                                                                       
2693 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2694 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2695 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2696 # ======================================================================
2697 # person_in_charge: mickael.abbas at edf.fr
2698 def C_INCREMENT(TYPE_CMD) :   #COMMUN#
2699 #
2700     assert TYPE_CMD in ('THERMIQUE','MECANIQUE',)
2701     kwargs = {}
2702     statut_liste_inst = ' '
2703
2704 # La liste d'instants est facultative en thermique et obligatoire en mecanique
2705
2706     if TYPE_CMD in ('THERMIQUE'):
2707       statut_liste_inst = 'f'
2708     elif TYPE_CMD in ('MECANIQUE'):
2709       statut_liste_inst = 'o'
2710
2711     kwargs['LIST_INST']         =SIMP(statut=statut_liste_inst,typ=(listr8_sdaster,list_inst))
2712     kwargs['NUME_INST_INIT']    =SIMP(statut='f',typ='I')
2713     kwargs['INST_INIT']         =SIMP(statut='f',typ='R')
2714     kwargs['NUME_INST_FIN']     =SIMP(statut='f',typ='I')
2715     kwargs['INST_FIN']          =SIMP(statut='f',typ='R')
2716     kwargs['PRECISION']         =SIMP(statut='f',typ='R',defaut=1.0E-6 )
2717
2718     mcfact = FACT(statut=statut_liste_inst,max='**',            
2719                   regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
2720                             EXCLUS('NUME_INST_FIN','INST_FIN'),),
2721                   **kwargs)
2722
2723     return mcfact
2724
2725 # ======================================================================
2726 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
2727 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
2728 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
2729 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
2730 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
2731 #                                                                       
2732 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
2733 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
2734 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
2735 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
2736 #                                                                       
2737 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
2738 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
2739 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
2740 # ======================================================================
2741 # person_in_charge: mickael.abbas at edf.fr
2742 def C_NEWTON() : return FACT(statut='d',
2743            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1,val_min=0),
2744            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOLE") ),
2745            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
2746            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',val_min=0.0),
2747            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
2748            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0,val_min=0),
2749            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
2750          );
2751
2752 # ======================================================================
2753 # COPYRIGHT (C) 1991 - 2013  EDF R&D                WWW.CODE-ASTER.ORG
2754 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2755 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2756 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2757 # (AT YOUR OPTION) ANY LATER VERSION.
2758 #
2759 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2760 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2761 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2762 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2763 #
2764 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2765 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2766 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2767 # ======================================================================
2768 # person_in_charge: josselin.delmas at edf.fr
2769
2770 class NOM_CHAM_INTO:  #COMMUN#
2771     """
2772     """
2773     def Tous(self):
2774         """ Tous les champs
2775         """
2776         self.all_phenomenes = ('CONTRAINTE', 'DEFORMATION', 'ENERGIE', 'CRITERES',
2777                                'VARI_INTERNE', 'HYDRAULIQUE', 'THERMIQUE',
2778                                'ACOUSTIQUE', 'FORCE', 'ERREUR', 'DEPLACEMENT',
2779                                'METALLURGIE', 'AUTRES')
2780         d = {}
2781         d['CONTRAINTE'] = {
2782             "EFGE_ELGA":        ( ("lin", "nonlin",),
2783                                  _(u"Efforts généralisés aux points de Gauss"), ),
2784             "EFGE_ELNO":        ( ("lin", "nonlin",),
2785                                  _(u"Efforts généralisés aux noeuds par élément"), ),
2786             "EFGE_NOEU":        ( ("lin", "nonlin",),
2787                                  _(u"Efforts généralisés aux noeuds"), ),
2788             "SIEF_ELGA":        ( ("lin",),
2789                                  _(u"Contraintes et efforts aux points de Gauss"), ),
2790             "SIEF_ELNO":        ( ("lin", "nonlin",),
2791                                  _(u"Contraintes et efforts aux noeuds par élément"), ),
2792             "SIEF_NOEU":        ( ("lin", "nonlin",),
2793                                  _(u"Contraintes et efforts aux noeuds"), ),
2794             "SIGM_ELGA":        ( ("lin", "nonlin",),
2795                                  _(u"Contraintes aux points de Gauss"), ),
2796             "SIGM_ELNO":        ( ("lin", "nonlin",),
2797                                  _(u"Contraintes aux noeuds par élément"), ),
2798             "SIGM_NOEU":        ( ("lin", "nonlin",),
2799                                  _(u"Contraintes aux noeuds"), ),
2800             "SIPM_ELNO":        ( ("lin","nonlin"),
2801                                  _(u"Contraintes aux noeuds par élément pour les éléments de poutre"), ),
2802             "SIPO_ELNO":        ( ("lin", "nonlin",),
2803                                  _(u"Contraintes aux noeuds par élément pour les éléments de poutre"), ),
2804             "SIPO_NOEU":        ( ("lin", "nonlin",),
2805                                  _(u"Contraintes aux noeuds pour les éléments de poutre"), ),
2806             "SIRO_ELEM":        ( ("lin", "nonlin",),
2807                                  _(u"Contraintes de rosette par élément"), ),
2808         }
2809         d['DEFORMATION'] = {
2810             "DEGE_ELGA":        ( ("lin", "nonlin",),          
2811                                  _(u"Déformations généralisées aux points de Gauss"), ),
2812             "DEGE_ELNO":        ( ("lin", "nonlin",),
2813                                  _(u"Déformations généralisées aux noeuds par élément"), ),
2814             "DEGE_NOEU":        ( ("lin", "nonlin",),
2815                                  _(u"Déformations généralisées aux noeuds"), ),
2816             "EPFD_ELGA":        ( ("nonlin",),
2817                                  _(u"Déformations de fluage de déssication aux points de Gauss"), ),
2818             "EPFD_ELNO":        ( ("nonlin",),
2819                                  _(u"Déformations de fluage de déssication aux noeuds par élément"), ),
2820             "EPFD_NOEU":        ( ("nonlin",),
2821                                  _(u"Déformations de fluage de déssication aux noeuds"), ),
2822             "EPFP_ELGA":        ( ("nonlin",),
2823                                  _(u"Déformations de fluage propre aux points de Gauss"), ),
2824             "EPFP_ELNO":        ( ("nonlin",),
2825                                  _(u"Déformations de fluage propre aux noeuds par élément"), ),
2826             "EPFP_NOEU":        ( ("nonlin",),
2827                                  _(u"Déformations de fluage propre aux noeuds"), ),
2828             "EPME_ELGA":        ( ("lin", "nonlin",),
2829                                  _(u"Déformations mécaniques en petits déplacements aux points de Gauss"), ),
2830             "EPME_ELNO":        ( ("lin", "nonlin",),
2831                                  _(u"Déformations mécaniques en petits déplacements aux noeuds par élément"), ),
2832             "EPME_NOEU":        ( ("lin", "nonlin",),
2833                                  _(u"Déformations mécaniques en petits déplacements aux noeuds"), ),
2834             "EPMG_ELGA":        ( ("nonlin",),
2835                                  _(u"Déformations mécaniques en grands déplacements aux points de Gauss"), ),
2836             "EPMG_ELNO":        ( ("nonlin",),
2837                                  _(u"Déformations mécaniques en grands déplacements aux noeuds par élément"), ),
2838             "EPMG_NOEU":        ( ("nonlin",),
2839                                  _(u"Déformations mécaniques en grands déplacements aux noeuds"), ),
2840             "EPSG_ELGA":        ( ("lin","nonlin",),
2841                                  _(u"Déformations de Green-Lagrange aux points de Gauss"), ),
2842             "EPSG_ELNO":        ( ("lin","nonlin",),
2843                                  _(u"Déformations de Green-Lagrange aux noeuds par élément"), ),
2844             "EPSG_NOEU":        ( ("lin","nonlin",),
2845                                  _(u"Déformations de Green-Lagrange aux noeuds"), ),
2846             "EPSI_ELGA":        ( ("lin", "nonlin",),
2847                                  _(u"Déformations aux points de Gauss"), ),
2848             "EPSI_ELNO":        ( ("lin", "nonlin",),
2849                                  _(u"Déformations aux noeuds par élément"), ),
2850             "EPSI_NOEU":        ( ("lin", "nonlin",),
2851                                  _(u"Déformations aux noeuds"), ),
2852             "EPSP_ELGA":        ( ("nonlin",),
2853                                  _(u"Déformations anélastique aux points de Gauss"), ),
2854             "EPSP_ELNO":        ( ("nonlin",),
2855                                  _(u"Déformations anélastique aux noeuds par élément"), ),
2856             "EPSP_NOEU":        ( ("nonlin",),
2857                                  _(u"Déformations anélastique aux noeuds"), ),
2858             "EPVC_ELGA":        ( ("lin", "nonlin",),
2859                                  _(u"Déformations dues aux variables de commande aux points de Gauss"), ),
2860             "EPVC_ELNO":        ( ("lin", "nonlin",),
2861                                  _(u"Déformations dues aux variables de commande aux noeuds par élément"), ),
2862             "EPVC_NOEU":        ( ("lin", "nonlin",),
2863                                  _(u"Déformations dues aux variables de commande aux noeuds"), ),
2864         }
2865         d['ENERGIE'] = {
2866             "DISS_ELEM":        ( ("lin", "nonlin",),
2867                                  _(u"Énergie de dissipation par élément"), ),
2868             "DISS_ELGA":        ( ("lin", "nonlin",),
2869                                  _(u"Densité d'énergie de dissipation aux points de Gauss"), ),
2870             "DISS_ELNO":        ( ("lin", "nonlin",),
2871                                  _(u"Densité d'énergie de dissipation aux noeuds par élément"), ),
2872             "DISS_NOEU":        ( ("lin", "nonlin",),
2873                                  _(u"Densité d'énergie de dissipation aux noeuds"), ),
2874             "ECIN_ELEM":        ( ("lin",),
2875                                  _(u"Énergie cinétique par élément"), ),
2876             "ENEL_ELEM":        ( ("lin", "nonlin",),
2877                                  _(u"Énergie élastique par élément"), ),
2878             "ENEL_ELGA":        ( ("lin", "nonlin",),
2879                                  _(u"Densité d'énergie élastique aux points de Gauss"), ),
2880             "ENEL_ELNO":        ( ("lin", "nonlin",),
2881                                  _(u"Densité d'énergie élastique aux noeuds par élément"), ),
2882             "ENEL_NOEU":        ( ("lin", "nonlin",),
2883                                  _(u"Densité d'énergie élastique aux noeuds"), ),
2884             "EPOT_ELEM":        ( ("lin",),
2885                                  _(u"Énergie potentielle de déformation élastique par élément"), ),
2886             "ETOT_ELEM":        ( ("lin", "nonlin",),
2887                                  _(u"Incrément d'énergie de déformation totale par élément"), ),
2888             "ETOT_ELGA":        ( ("lin", "nonlin",),
2889                                  _(u"Incrément de densité d'énergie de déformation totale aux points de Gauss"), ),
2890             "ETOT_ELNO":        ( ("lin", "nonlin",),
2891                                  _(u"Incrément de densité d'énergie de déformation totale aux noeuds par élément"), ),
2892             "ETOT_NOEU":        ( ("lin", "nonlin",),
2893                                  _(u"Incrément de densité d'énergie de déformation totale aux noeuds"), ),
2894         }                       
2895         d['CRITERES'] = {
2896             "DERA_ELGA":        ( ("nonlin",),
2897                                  _(u"Indicateur local de décharge et de perte de radialité aux points de Gauss"), ),
2898             "DERA_ELNO":        ( ("nonlin",),
2899                                  _(u"Indicateur local de décharge et de perte de radialité aux noeuds par élément"), ),
2900             "DERA_NOEU":        ( ("nonlin",),
2901                                  _(u"Indicateur local de décharge et de perte de radialité aux noeuds"), ),
2902             "ENDO_ELGA":        ( ("nonlin",),
2903                                  _(u"Dommage de Lemaître-Sermage aux points de Gauss"), ),
2904             "ENDO_ELNO":        ( ("nonlin",),
2905                                  _(u"Dommage de Lemaître-Sermage aux noeuds par élément"), ),
2906             "ENDO_NOEU":        ( ("nonlin",),
2907                                  _(u"Dommage de Lemaître-Sermage aux noeuds"), ),
2908             "EPEQ_ELGA":        ( ("lin", "nonlin",),
2909                                  _(u"Déformations équivalentes aux points de Gauss"), ),
2910             "EPEQ_ELNO":        ( ("lin", "nonlin",),
2911                                  _(u"Déformations équivalentes aux noeuds par élément"), ),
2912             "EPEQ_NOEU":        ( ("lin", "nonlin",),
2913                                  _(u"Déformations équivalentes aux noeuds"), ),
2914             "EPMQ_ELGA":        ( ("lin", "nonlin",),
2915                                  _(u"Déformations mécaniques équivalentes aux points de Gauss"), ),
2916             "EPMQ_ELNO":        ( ("lin", "nonlin",),
2917                                  _(u"Déformations mécaniques équivalentes aux noeuds par élément"), ),
2918             "EPMQ_NOEU":        ( ("lin", "nonlin",),
2919                                  _(u"Déformations mécaniques équivalentes aux noeuds"), ),
2920             "INDL_ELGA":        ( ("nonlin",),
2921                                  _(u"Indicateur de localisation aux points de Gauss"), ),
2922             "PDIL_ELGA":        ( ("nonlin",),
2923                                  _(u"Module de rigidité de micro-dilatation"), ),
2924             "SIEQ_ELGA":        ( ("lin", "nonlin",),
2925                                  _(u"Contraintes équivalentes aux points de Gauss"), ),
2926             "SIEQ_ELNO":        ( ("lin", "nonlin",),
2927                                  _(u"Contraintes équivalentes aux noeuds par élément"), ),
2928             "SIEQ_NOEU":        ( ("lin", "nonlin",),
2929                                  _(u"Contraintes équivalentes aux noeuds"), ),
2930         }
2931         d['VARI_INTERNE'] = {
2932             "VAEX_ELGA":        ( ("nonlin",),
2933                                  _(u"Extraction d'une variable interne aux points de Gauss"), ),
2934             "VAEX_ELNO":        ( ("nonlin",),
2935                                  _(u"Extraction d'une variable interne aux noeuds pas élément"), ),
2936             "VAEX_NOEU":        ( ("nonlin",),
2937                                  _(u"Extraction d'une variable interne aux noeuds"), ),
2938             "VARC_ELGA":        ( ("lin", "nonlin",),
2939                                  _(u"Variables de commande aux points de Gauss"), ),
2940             "VARI_ELNO":        ( ("nonlin",),
2941                                  _(u"Variables internes aux noeuds pas élément"), ),
2942             "VARI_NOEU":        ( ("nonlin",),
2943                                  _(u"Variables internes aux noeuds"), ),
2944         }
2945         d['HYDRAULIQUE'] = {
2946             "FLHN_ELGA":        ( ("nonlin",),
2947                                  _(u"Flux hydrauliques aux points de Gauss"), ),
2948         }
2949         d['THERMIQUE'] = {
2950             "TEMP_ELGA":        ( (),
2951                                  _(u"Température aux points de Gauss"), ),
2952             "FLUX_ELGA":        ( (),
2953                                  _(u"Flux thermique aux points de Gauss"), ),
2954             "FLUX_ELNO":        ( (),
2955                                  _(u"Flux thermique aux noeuds par élément"), ),
2956             "FLUX_NOEU":        ( (),
2957                                  _(u"Flux thermique aux noeuds"), ),
2958             "HYDR_NOEU":        ( (),
2959                                  _(u"Hydratation aux noeuds"), ),
2960             "SOUR_ELGA":        ( (),
2961                                  _(u"Source de chaleur à partir d'un potentiel électrique"), ),
2962             "ETHE_ELEM":        ( (),
2963                                  _(u"Énergie dissipée thermiquement"), ),
2964         }
2965         d['ACOUSTIQUE'] = {
2966             "PRAC_ELNO":        ( (),
2967                                  _(u"Pression acoustique aux noeuds par élément"), ),
2968             "PRAC_NOEU":        ( (),
2969                                  _(u"Pression acoustique aux noeuds"), ),
2970             "PRME_ELNO":        ( (),
2971                                  _(u"Pression aux noeuds par élément pour les éléments FLUIDE"), ),
2972             "INTE_ELNO":        ( (),
2973                                  _(u"Intensité acoustique aux noeuds par élément"), ),
2974             "INTE_NOEU":        ( (),
2975                                  _(u"Intensité acoustique aux noeuds"), ),
2976         }
2977         d['FORCE'] = {
2978             "FORC_NODA":        ( (),
2979                                  _(u"Forces nodales"), ),
2980             "REAC_NODA":        ( (),
2981                                  _(u"Réactions nodales"), ),
2982         }
2983         d['ERREUR'] = {
2984             "SIZ1_NOEU":        ( (),
2985                                  _(u"Contraintes lissées de Zhu-Zienkiewicz version 1 aux noeuds"), ),
2986             "ERZ1_ELEM":        ( (),
2987                                  _(u"Indicateur d'erreur de Zhu-Zienkiewicz version 1 par élément"), ),
2988             "SIZ2_NOEU":        ( (),
2989                                  _(u"Contraintes lissées de Zhu-Zienkiewicz version 2 aux noeuds"), ),
2990             "ERZ2_ELEM":        ( (),
2991                                  _(u"Indicateur d'erreur de Zhu-Zienkiewicz version 2 par élément"), ),
2992             "ERME_ELEM":        ( (),
2993                                  _(u"Indicateur d'erreur en résidu en mécanique par élément"), ),
2994             "ERME_ELNO":        ( (),
2995                                  _(u"Indicateur d'erreur en résidu en mécanique aux noeuds par élément"), ),
2996             "ERME_NOEU":        ( (),
2997                                  _(u"Indicateur d'erreur en résidu en mécanique aux noeuds"), ),
2998             "QIRE_ELEM":        ( (),
2999                                  _(u"Indicateur d'erreur en quantités d'intérêt en résidu par élément"), ),
3000             "QIRE_ELNO":        ( (),
3001                                  _(u"Indicateur d'erreur en quantités d'intérêt en résidu aux noeuds par élément"), ),
3002             "QIRE_NOEU":        ( (),
3003                                  _(u"Indicateur d'erreur en quantités d'intérêt en résidu aux noeuds"), ),
3004             "QIZ1_ELEM":        ( (),
3005                                  _(u"Indicateur d'erreur en quantités d'intérêt de Zhu-Zienkiewicz version 1 par élément"), ),
3006             "QIZ2_ELEM":        ( (),
3007                                  _(u"Indicateur d'erreur en quantités d'intérêt de Zhu-Zienkiewicz version 2 par élément"), ),
3008             "SING_ELEM":        ( (),
3009                                  _(u"Degré de singularité par élément"), ),
3010             "SING_ELNO":        ( (),
3011                                  _(u"Degré de singularité aux noeuds par élément"), ),
3012             "ERTH_ELEM":        ( (),
3013                                  _(u"Indicateur d'erreur en résidu en thermique par élément"), ),
3014             "ERTH_ELNO":        ( (),
3015                                  _(u"Indicateur d'erreur en résidu en thermique aux noeuds par élément"), ),
3016             "ERTH_NOEU":        ( (),
3017                                  _(u"Indicateur d'erreur en résidu en thermique aux noeuds"), ),
3018         }
3019         d['METALLURGIE'] = {
3020             "DURT_ELNO":        ( (),
3021                                  _(u"Dureté aux noeuds par élément"), ),
3022             "DURT_NOEU":        ( (),
3023                                  _(u"Dureté aux noeuds"), ),
3024             "META_ELNO":        ( (),
3025                                  _(u"Proportion de phases métallurgiques aux noeuds par élément"), ),
3026             "META_NOEU":        ( (),
3027                                  _(u"Proportion de phases métallurgiques aux noeuds"), ),
3028         }
3029         d['DEPLACEMENT'] = {
3030             "ACCE":             ( (),
3031                                  _(u"Accélération aux noeuds"), ),
3032             "ACCE_ABSOLU":      ( (),
3033                                  _(u"Accélération absolue aux noeuds"), ),
3034             "DEPL":             ( (),
3035                                  _(u"Déplacements aux noeuds"), ),
3036             "DEPL_ABSOLU":      ( (),
3037                                  _(u"Déplacements absolus aux noeuds"), ),
3038             "STRX_ELGA":        ( (),
3039                                  _(u"Efforts généralisés à partir des déplacements en linéaire aux points de Gauss"), ),
3040             "TEMP":             ( (),
3041                                  _(u"Température aux noeuds"), ),
3042             "VITE":             ( (),
3043                                  _(u"Vitesse aux noeuds"), ),
3044             "VALE_CONT":        ( (),
3045                                  _(u"Statuts de contact"), ),
3046             "VARI_ELGA":        ( (),
3047                                  _(u"Variables internes aux points de Gauss"), ),
3048             "VITE_ABSOLU":      ( (),
3049                                  _(u"Vitesse absolue aux noeuds"), ),
3050         }
3051         d['AUTRES'] = {
3052             "COMPORTEMENT":     ( (),
3053                                  _(u"Carte de comportement mécanique"), ),
3054             "COMPORTHER":       ( (),
3055                                  _(u"Carte de comportement thermique"), ),
3056             "DEPL_VIBR":        ( (),
3057                                  _(u"Déplacement pour mode vibratoire"), ),
3058             "DIVU":             ( (),
3059                                  _(u"Déformation volumique en THM"), ),
3060             "EPSA_ELNO":        ( (),
3061                                  _(u"Déformations anélastique aux noeuds par élément"), ),
3062             "EPSA_NOEU":        ( (),
3063                                  _(u"Déformations anélastique aux noeuds"), ),
3064             "FERRAILLAGE":      ( ("lin",),
3065                                  _(u"Densité de ferraillage"), ),
3066             "FSUR_2D":          ( (),
3067                                  _(u"Chargement de force surfacique en 2D"), ),
3068             "FSUR_3D":          ( (),
3069                                  _(u"Chargement de force surfacique en 3D"), ),
3070             "FVOL_2D":          ( (),
3071                                  _(u"Chargement de force volumique en 2D"), ),
3072             "FVOL_3D":          ( (),
3073                                  _(u"Chargement de force volumique en 3D"), ),
3074             "HYDR_ELNO":        ( (),
3075                                  _(u"Hydratation aux noeuds par élément"), ),
3076             "IRRA":             ( (),
3077                                  _(u"Irradition aux noeuds"), ),
3078             "MODE_FLAMB":       ( (),
3079                                  _(u"Mode de flambement"), ),
3080             "MODE_STAB":        ( (),
3081                                  _(u"Mode de stabilité"), ),
3082             "NEUT":             ( (),
3083                                  _(u"Variable de commande 'neutre'"), ),
3084             "PRES":             ( (),
3085                                  _(u"Chargement de pression"), ),
3086             "PTOT":             ( (),
3087                                  _(u"Pression totale de fluide en THM"), ),
3088             "SISE_ELNO":        ( (),
3089                                  _(u"Contraintes aux noeuds par sous-élément"), ),
3090             "SPMX_ELGA":        ( (),
3091                                  _(u"Valeurs maximum sur un sous-point"), ),
3092             "THETA":            ( (),
3093                                  _(u"Champ theta"), ),
3094             "VITE_VENT":        ( (),
3095                                  _(u"Chargement vitesse du vent"), ),
3096         }
3097         for typ in ('ELGA', 'ELNO', 'ELEM', 'NOEU', 'CART'):
3098             for i in range(1, 11):
3099                 d['AUTRES']['UT%02d_%s' % (i, typ)]=( (),
3100                                  _(u"Champ utilisateur numéro %02d_%s" % (i, typ)), )
3101         self.d_all = d
3102         return
3103
3104     def CheckPhenom(self):
3105         """ Vérification de la cohérence entre les phenomènes et les clés
3106         """
3107         l_keys = list(self.d_all.keys())
3108         l_phen = list(self.all_phenomenes)
3109         uniq_keys = set(l_keys)
3110         uniq_phen = set(l_phen)
3111         if len(l_keys) != len(uniq_keys) or len(l_phen) != len(uniq_phen) :
3112             for i in uniq_keys :
3113                 l_keys.remove(i)
3114             assert len(l_keys) == 0, 'Keys must be unique: %s' % l_keys
3115             for i in uniq_phen :
3116                 l_phen.remove(i)
3117             assert len(l_phen) == 0, 'Phenomenon must be unique: %s' % l_phen
3118         if len(l_keys) > len(l_phen) :
3119             for i in l_phen :
3120                 l_keys.remove(i)
3121             assert len(l_keys) == 0, 'Key %s not listed in the list of phenomenons' % l_keys
3122         if len(l_keys) < len(l_phen) :
3123             for i in l_keys:
3124                 l_phen.remove(i)
3125             assert len(l_phen) == 0, 'Phenomenon %s not known as a key' % l_phen
3126
3127
3128     def CheckField(self):
3129         """ Vérification des doublons dans les noms des champs
3130         """
3131         l_cham = []
3132         for phen in self.all_phenomenes:
3133             l_cham.extend(self.d_all[phen].keys())
3134         uniq = set(l_cham)
3135         if len(l_cham) != len(uniq):
3136             for i in uniq:
3137                 l_cham.remove(i)
3138             assert len(l_cham) == 0, 'Field names must be unique: %s' % l_cham
3139
3140
3141     def InfoChamps(self, l_nom_cham):
3142         """ on renvoie juste les informations relatives au(x) champ(s)
3143         """
3144         d_cham = {}.fromkeys( l_nom_cham, ( '', '', '' ) )
3145         for nom_cham in l_nom_cham:
3146             for phen in self.all_phenomenes:
3147               for cham in self.d_all[phen].keys():
3148                   if nom_cham == cham:
3149                       cate = self.d_all[phen][cham][0]
3150                       helptxt = self.d_all[phen][cham][1]
3151                       d_cham[nom_cham] = ( phen, cate, helptxt )
3152         return d_cham
3153
3154     def Filtre(self, *l_typ_cham, **kwargs):
3155         """ Check des doublons
3156         """
3157         phenomene   = kwargs.get('phenomene')
3158         categorie   = kwargs.get('categorie')
3159         # Construction de la liste des champs en tenant compte des eventuels filtre (phenomene, categorie, l_typ_cham)
3160         # ------------------------------------------------------------------------------------------------------------
3161         l_cham = []
3162         # Filtre par phenomene
3163         if phenomene is None:
3164             l_phen = self.all_phenomenes
3165         else:
3166             l_phen = [ phenomene ]
3167         for phen in l_phen:
3168             # parcours de tous les champs
3169             for cham in self.d_all[phen].keys():
3170                isok = True
3171                # Filtre par categorie
3172                if categorie is not None:
3173                  lcat = self.d_all[phen][cham][0]
3174                  if type(lcat) not in (tuple, list):
3175                      lcat = [lcat, ]
3176                  if categorie in lcat:
3177                      isok = True
3178                  else:
3179                      isok = False
3180                if isok:
3181                  l_cham.append(cham)
3182         l_cham.sort()
3183         # Filtre sur les types de champs
3184         if len(l_typ_cham) == 0:
3185             return tuple(l_cham)
3186         l_ncham = []
3187         for typ in l_typ_cham :
3188             for cham in l_cham :
3189                 if typ in cham.split('_'):
3190                   l_ncham.append(cham)
3191         return tuple(l_ncham)
3192
3193     def __init__(self):
3194         self.Tous()
3195         # check les doublons (fonctionnalite developpeur permettant de detecter les doublons dans les champs)
3196         if 1:
3197             self.CheckPhenom()
3198             self.CheckField()
3199
3200     def __call__(self, *l_typ_cham, **kwargs):
3201         """Cette fonction retourne la liste des "into" possibles pour le mot-clé NOM_CHAM.
3202         C'est à dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD).
3203         l_typ_cham : rien ou un ou plusieurs parmi 'ELGA', 'ELNO', 'NOEU', 'ELEM'.
3204         kwargs : un dictionnaire de mot-cles, les cles parmis : 
3205           'phenomene'  : retourne la liste des champs en filtrant par le phenomene (eventuellement mixe avec le suivant)
3206           'categorie'  : retourne la liste des champs en filtrant par le phenomene (eventuellement mixe avec le precedent)
3207           'l_nom_cham' : (une liste ou un string) retourne uniqement les informations relatives au champ precise en argument
3208         """
3209         l_nom_cham  = kwargs.get('l_nom_cham')
3210         if type(l_nom_cham) == str:
3211             l_nom_cham = [ l_nom_cham ]
3212         if l_nom_cham:
3213             return self.InfoChamps(l_nom_cham)
3214         else:
3215             return self.Filtre(*l_typ_cham, **kwargs)
3216
3217
3218 C_NOM_CHAM_INTO = NOM_CHAM_INTO()
3219
3220 # person_in_charge: xavier.desroches at edf.fr
3221 # ======================================================================
3222 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
3223 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3224 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3225 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3226 # (AT YOUR OPTION) ANY LATER VERSION.
3227 #
3228 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3229 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3230 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3231 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3232 #
3233 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3234 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3235 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3236 # ======================================================================
3237 # ce fichier contient la liste des  noms des grandeurs de CODE_ASTER
3238 def C_NOM_GRANDEUR() : return  ( #COMMUN#
3239 "ABSC_R",
3240 "ADRSJEVE",
3241 "ADRSJEVN",
3242 "CAARPO",
3243 "CACABL",
3244 "CACOQU",
3245 "CADISA",
3246 "CADISK",
3247 "CADISM",
3248 "CAFI_R",
3249 "CAGEBA",
3250 "CAGEPO",
3251 "CAGNBA",
3252 "CAGNPO",
3253 "CAMASS",
3254 "CAORIE",
3255 "CAPOUF",
3256 "CARCRI",
3257 "CASECT",
3258 "CHLI_R",
3259 "CODE_I",
3260 "COEH_F",
3261 "COEH_R",
3262 "COMPOR",
3263 "CORR_R",
3264 "CRRU_R",
3265 "DBEL_R",
3266 "DCEL_I",
3267 "DDLI_C",
3268 "DDLI_F",
3269 "DDLI_R",
3270 "DDLM_C",
3271 "DDLM_R",
3272 "DEPL_C",
3273 "DEPL_F",
3274 "DEPL_R",
3275 "DISS_R",
3276 "DOMA_R",
3277 "DURT_R",
3278 "ENDO_R",
3279 "ENER_R",
3280 "EPSI_C",
3281 "EPSI_F",
3282 "EPSI_R",
3283 "ERRE_R",
3284 "FACY_R",
3285 "FELECR",
3286 "FER2_R",
3287 "FISS_R",
3288 "FLAPLA",
3289 "FLUN_F",
3290 "FLUN_R",
3291 "FLUX_F",
3292 "FLUX_R",
3293 "FORC_C",
3294 "FORC_F",
3295 "FORC_R",
3296 "FREQ_R",
3297 "FTHM_F",
3298 "FTHM_R",
3299 "G",
3300 "GEOM_R",
3301 "G_DEPL_R",
3302 "HARMON",
3303 "HYDR_R",
3304 "IMPE_C",
3305 "IMPE_F",
3306 "IMPE_R",
3307 "INDL_R",
3308 "INFC_R",
3309 "INST_R",
3310 "INTE_R",
3311 "INTLOC",
3312 "IRRA_R",
3313 "ITECREL",
3314 "ITEDEC",
3315 "J",
3316 "LISTMA",
3317 "MACOMP",
3318 "MASS_R",
3319 "MATE_F",
3320 "NBSP_I",
3321 "NEUT_F",
3322 "NEUT_I",
3323 "NEUT_K16",
3324 "NEUT_K24",
3325 "NEUT_K8",
3326 "NEUT_R",
3327 "NUMC_I",
3328 "NUMMOD",
3329 "ONDE_F",
3330 "ONDE_R",
3331 "PESA_R",
3332 "PDIL_R",
3333 "PILO_K",
3334 "PILO_R",
3335 "POSI",
3336 "PREC",
3337 "PRES_C",
3338 "PRES_F",
3339 "PRES_R",
3340 "RAYO_F",
3341 "RAYO_R",
3342 "RCCM_K",
3343 "RCCM_R",
3344 "RESCREL",
3345 "RICE_TRA",
3346 "ROTA_R",
3347 "SECTION",
3348 "SIEF_C",
3349 "SIEF_R",
3350 "SIZZ_R",
3351 "SOUR_F",
3352 "SOUR_R",
3353 "SPMX_R",
3354 "STRX_R",
3355 "STAOUDYN",
3356 "TEMP_C",
3357 "TEMP_F",
3358 "TEMP_R",
3359 "THETA",
3360 "VALO_R",
3361 "VANL_R",
3362 "VAR2_R",
3363 "VARI_R",
3364 "VENTCX_F",
3365 "VNOR_C",
3366 "VNOR_F",
3367 "VOISIN",
3368 "WEIBULL",
3369 "XCONTAC",
3370                                  )
3371
3372 # ======================================================================
3373 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
3374 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3375 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3376 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3377 # (AT YOUR OPTION) ANY LATER VERSION.
3378 #
3379 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3380 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3381 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3382 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3383 #
3384 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3385 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3386 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3387 # ======================================================================
3388 # person_in_charge: mickael.abbas at edf.fr
3389
3390 def C_OBSERVATION() : return FACT(statut='f',max=99,
3391            TITRE           =SIMP(statut='f',typ='TXM',max=1),
3392            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
3393                                    into=("VALE_CONT","FORC_NODA",
3394                                          "DEPL","VITE","ACCE","TEMP",
3395                                          "SIEF_ELGA","VARI_ELGA",
3396                                          "DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
3397
3398            EVAL_CHAM       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
3399                                    into=("MIN","MAX","MOY","MAXI_ABS","MINI_ABS","VALE",),),
3400
3401            NOM_CMP         =SIMP(statut='o',typ='TXM',max=20),
3402            EVAL_CMP        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
3403                                    into=("VALE","FORMULE",),),
3404
3405            b_formule       =BLOC(condition="(EVAL_CMP=='FORMULE')",
3406                                    FORMULE = SIMP(statut='o',typ=formule,max=1),
3407                                 ),
3408
3409            b_cham_no       =BLOC(condition="(NOM_CHAM=='DEPL') or \
3410                                             (NOM_CHAM=='VITE') or \
3411                                             (NOM_CHAM=='ACCE') or \
3412                                             (NOM_CHAM=='TEMP') or \
3413                                             (NOM_CHAM=='FORC_NODA') or \
3414                                             (NOM_CHAM=='VALE_CONT') or \
3415                                             (NOM_CHAM=='DEPL_ABSOLU') or \
3416                                             (NOM_CHAM=='VITE_ABSOLU') or \
3417                                             (NOM_CHAM=='ACCE_ABSOLU')",
3418                                  regles   =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')),
3419                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),
3420                                  NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3421                                  GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3422                                  MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3423                                  GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3424                                 ),
3425
3426
3427            b_cham_elga     =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \
3428                                             (NOM_CHAM=='VARI_ELGA')",
3429                                  regles          =(UN_PARMI('GROUP_MA','MAILLE','TOUT')),
3430                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),
3431                                  MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
3432                                  GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3433                                  EVAL_ELGA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
3434                                                         into=("MIN","MAX","VALE",),),
3435                                  b_elga_vale     =BLOC(condition="(EVAL_ELGA=='VALE')",
3436                                    POINT           =SIMP(statut='o',typ='I'  ,validators=NoRepeat(),max='**'),
3437                                    SOUS_POINT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
3438                                  ),
3439                                 ),
3440
3441            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
3442            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
3443            PAS_OBSE        =SIMP(statut='f',typ='I'),
3444            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
3445            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
3446               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
3447            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
3448               PRECISION       =SIMP(statut='o',typ='R',),),
3449
3450
3451        );
3452
3453 # person_in_charge: mathieu.courtois at edf.fr
3454 # ======================================================================
3455 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
3456 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3457 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3458 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3459 # (AT YOUR OPTION) ANY LATER VERSION.
3460 #
3461 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3462 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3463 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3464 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3465 #
3466 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3467 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3468 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3469 # ======================================================================
3470 # ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
3471 def C_PARA_FONCTION() : return  ( #COMMUN#
3472                    "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
3473                    "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
3474                    "AMOR","ABSC","ABSC_CURV","SIGM","HYDR","SECH","PORO","SAT",
3475                    "PGAZ","PCAP","PLIQ","PVAP","PAD","VITE","ENDO",
3476                    "NORM","EPAIS","NEUT1","NEUT2",)
3477
3478 # ======================================================================
3479 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
3480 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
3481 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
3482 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
3483 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
3484 #                                                                       
3485 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
3486 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
3487 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
3488 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
3489 #                                                                       
3490 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
3491 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
3492 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
3493 # ======================================================================
3494 # person_in_charge: kyrylo.kazymyrenko at edf.fr
3495 def C_PILOTAGE() : return FACT(statut='f',
3496            regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3497            TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","DEFORMATION",
3498                                                     "ANA_LIM","SAUT_IMPO","SAUT_LONG_ARC") ),
3499            COEF_MULT     =SIMP(statut='f',typ='R',defaut= 1.0E+0),
3500            EVOL_PARA     =SIMP(statut='f',typ='TXM',defaut="SANS", into=("SANS","CROISSANT","DECROISSANT") ),
3501            ETA_PILO_MAX  =SIMP(statut='f',typ='R'),
3502            ETA_PILO_MIN  =SIMP(statut='f',typ='R'),
3503            ETA_PILO_R_MAX=SIMP(statut='f',typ='R'),
3504            ETA_PILO_R_MIN=SIMP(statut='f',typ='R'),
3505            PROJ_BORNES   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
3506            SELECTION     =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL",
3507                                into=("RESIDU","MIXTE","ANGL_INCR_DEPL","NORM_INCR_DEPL")),
3508            TOUT          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3509            GROUP_MA      =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3510            FISSURE       =SIMP(statut='f',typ=fiss_xfem ,validators=NoRepeat(),max='**'),
3511            MAILLE        =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
3512            NOEUD         =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
3513            GROUP_NO      =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
3514            NOM_CMP       =SIMP(statut='f',typ='TXM',max='**'),
3515            DIRE_PILO     =SIMP(statut='f',typ='TXM',max='**'),
3516          );
3517
3518 # ======================================================================
3519 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
3520 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
3521 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
3522 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
3523 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
3524 #                                                                       
3525 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
3526 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
3527 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
3528 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
3529 #                                                                       
3530 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
3531 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
3532 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
3533 # ======================================================================
3534 # person_in_charge: mickael.abbas at edf.fr
3535 def C_RECH_LINEAIRE() : return FACT(statut='f',
3536            METHODE         =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE","PILOTAGE") ),
3537            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
3538            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3,val_max=999),
3539            RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
3540            RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
3541            RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.),
3542          );
3543
3544 # ======================================================================
3545 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
3546 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3547 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3548 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3549 # (AT YOUR OPTION) ANY LATER VERSION.
3550 #
3551 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3552 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3553 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3554 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3555 #
3556 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3557 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3558 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3559 # ======================================================================
3560 # person_in_charge: jean-michel.proix@edf.fr
3561 #
3562 def C_RELATION( COMMAND ):
3563
3564     if COMMAND in ('CALC_G',):
3565                    return (             "ELAS",            #COMMUN#
3566                                         "ELAS_VMIS_LINE",
3567                                         "ELAS_VMIS_TRAC",
3568                                         "ELAS_VMIS_PUIS",
3569                                         "ELAS_HYPER",
3570                                         "VMIS_ISOT_LINE",
3571                                         "VMIS_ISOT_TRAC",
3572                                         # relations interdites depuis issue21711, elles
3573                                         # devront etre introduites dans le F90 si besoin
3574                                         #"VMIS_CINE_LINE",
3575                                         #"VMIS_ISOT_PUIS",
3576                                      )
3577     elif COMMAND in ('MACR_ASCOUF_CALC','MACR_ASPIC_CALC',):
3578                    return (             "ELAS",           
3579                                         "ELAS_VMIS_TRAC",
3580                                         "VMIS_ISOT_TRAC",
3581                                      )
3582     elif COMMAND =='DEFI_COMPOR' :
3583                    return (             "ELAS",  #uniquement ce qui a du sens (cf doc) et qui fait l'objet d'un test
3584                                         "BETON_UMLV_FP",
3585                                         "BETON_DOUBLE_DP",
3586                                         "CORR_ACIER",
3587                                         "GRANGER_FP",
3588                                         "GRANGER_FP_V",
3589                                         "GRANGER_FP_INDT",
3590                                         "GRAN_IRRA_LOG",
3591                                         "MAZARS_GC",
3592                                         "VISC_IRRA_LOG",
3593                                         "VMIS_CINE_GC",
3594                                         "VMIS_CINE_LINE",
3595                                         "VMIS_ISOT_LINE",
3596                                         "VMIS_ISOT_TRAC",
3597                                         "VMIS_ISOT_PUIS",
3598                                      )
3599     else :
3600                    return (             "ELAS",            
3601                                         "ELAS_VMIS_LINE",
3602                                         "ELAS_VMIS_TRAC",
3603                                         "ELAS_VMIS_PUIS",
3604                                         "ELAS_HYPER",
3605                                         "ELAS_POUTRE_GR",
3606                                         "CABLE",
3607                                         "ARME",
3608                                         "ASSE_CORN",
3609                                         "BARCELONE",
3610                                         "BETON_BURGER_FP",
3611                                         "BETON_DOUBLE_DP",
3612                                         "BETON_RAG",
3613                                         "BETON_REGLE_PR",
3614                                         "BETON_UMLV_FP",
3615                                         "CABLE_GAINE_FROT",
3616                                         "CAM_CLAY",
3617                                         "CJS",
3618                                         "CORR_ACIER",
3619                                         "CZM_EXP",
3620                                         "CZM_EXP_REG",
3621                                         "CZM_FAT_MIX",
3622                                         "CZM_LIN_REG",
3623                                         "CZM_OUV_MIX",
3624                                         "CZM_TAC_MIX",
3625                                         "CZM_LAB_MIX",
3626                                         "CZM_TRA_MIX",
3627                                         "DIS_BILI_ELAS",
3628                                         "DIS_CHOC",
3629                                         "DIS_ECRO_CINE",
3630                                         "DIS_GOUJ2E_ELAS",
3631                                         "DIS_GOUJ2E_PLAS",
3632                                         "DIS_GRICRA",
3633                                         "DIS_VISC",
3634                                         "DRUCK_PRAGER",
3635                                         "DRUCK_PRAG_N_A",
3636                                         "ELAS_GONF",
3637                                         "ELAS_HYPER",
3638                                         "ENDO_CARRE",
3639                                         "ENDO_FISS_EXP",
3640                                         "ENDO_FRAGILE",
3641                                         "ENDO_HETEROGENE",
3642                                         "ENDO_ISOT_BETON",
3643                                         "ENDO_ORTH_BETON",
3644                                         "ENDO_SCALAIRE",
3645                                         "GATT_MONERIE",
3646                                         "GLRC_DAMAGE",
3647                                         "GLRC_DM",
3648                                         "DHRC",
3649                                         "GRANGER_FP",
3650                                         "GRANGER_FP_INDT",
3651                                         "GRANGER_FP_V",
3652                                         "GRAN_IRRA_LOG",
3653                                         "GRILLE_CINE_LINE",
3654                                         "GRILLE_ISOT_LINE",
3655                                         "GRILLE_PINTO_MEN",
3656                                         "HAYHURST",
3657                                         "HOEK_BROWN",
3658                                         "HOEK_BROWN_EFF",
3659                                         "HOEK_BROWN_TOT",
3660                                         "HUJEUX",
3661                                         "IRRAD3M",
3662                                         "JOINT_BA",
3663                                         "JOINT_BANDIS",
3664                                         "JOINT_MECA_RUPT",
3665                                         "JOINT_MECA_FROT",
3666                                         "KIT_CG",
3667                                         "KIT_DDI",
3668                                         "KIT_HH",
3669                                         "KIT_H",
3670                                         "KIT_HHM",
3671                                         "KIT_HM",
3672                                         "KIT_THH",
3673                                         "KIT_THHM",
3674                                         "KIT_THM",
3675                                         "KIT_THV",
3676                                         "LAIGLE",
3677                                         "LEMAITRE",
3678                                         "LEMAITRE_IRRA",
3679                                         "LEMA_SEUIL",
3680                                         "LETK",
3681                                         "LMARC_IRRA",
3682                                         "MAZARS",
3683                                         "MAZARS_GC",
3684                                         "META_LEMA_ANI",
3685                                         "META_P_CL",
3686                                         "META_P_CL_PT",
3687                                         "META_P_CL_PT_RE",
3688                                         "META_P_CL_RE",
3689                                         "META_P_IL",
3690                                         "META_P_IL_PT",
3691                                         "META_P_IL_PT_RE",
3692                                         "META_P_IL_RE",
3693                                         "META_P_INL",
3694                                         "META_P_INL_PT",
3695                                         "META_P_INL_PT_RE",
3696                                         "META_P_INL_RE",
3697                                         "META_V_CL",
3698                                         "META_V_CL_PT",
3699                                         "META_V_CL_PT_RE",
3700                                         "META_V_CL_RE",
3701                                         "META_V_IL",
3702                                         "META_V_IL_PT",
3703                                         "META_V_IL_PT_RE",
3704                                         "META_V_IL_RE",
3705                                         "META_V_INL",
3706                                         "META_V_INL_PT",
3707                                         "META_V_INL_PT_RE",
3708                                         "META_V_INL_RE",
3709                                         "MOHR_COULOMB",
3710                                         "MONOCRISTAL",
3711                                         "MULTIFIBRE",
3712                                         "NORTON",
3713                                         "NORTON_HOFF",
3714                                         "PINTO_MENEGOTTO",
3715                                         "POLYCRISTAL",
3716                                         "ROUSSELIER",
3717                                         "ROUSS_PR",
3718                                         "ROUSS_VISC",
3719                                         "RUPT_FRAG",
3720                                         "SANS",
3721                                         "VENDOCHAB",
3722                                         "VISC_ENDO_LEMA",
3723                                         "VISCOCHAB",
3724                                         "VISC_CIN1_CHAB",
3725                                         "VISC_CIN2_CHAB",
3726                                         "VISC_CIN2_MEMO",
3727                                         "VISC_CIN2_NRAD",
3728                                         "VISC_MEMO_NRAD",
3729                                         "VISC_DRUC_PRAG",
3730                                         "VISC_IRRA_LOG",
3731                                         "VISC_ISOT_LINE",
3732                                         "VISC_ISOT_TRAC",
3733                                         "VISC_TAHERI",
3734                                         "VMIS_ASYM_LINE",
3735                                         "VMIS_CIN1_CHAB",
3736                                         "VMIS_CIN2_CHAB",
3737                                         "VMIS_CINE_GC",
3738                                         "VMIS_CIN2_MEMO",
3739                                         "VMIS_CIN2_NRAD",
3740                                         "VMIS_MEMO_NRAD",
3741                                         "VMIS_CINE_LINE",
3742                                         "VMIS_ECMI_LINE",
3743                                         "VMIS_ECMI_TRAC",
3744                                         "VMIS_ISOT_LINE",
3745                                         "VMIS_ISOT_PUIS",
3746                                         "VMIS_ISOT_TRAC",
3747                                         "VMIS_JOHN_COOK",
3748                                         "ZMAT",
3749                                         "UMAT",
3750                                         "MFRONT",
3751                                      )
3752
3753 # ======================================================================
3754 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
3755 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3756 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3757 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3758 # (AT YOUR OPTION) ANY LATER VERSION.
3759 #
3760 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3761 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3762 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3763 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3764 #
3765 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3766 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3767 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3768 # ======================================================================
3769 # person_in_charge: olivier.boiteau at edf.fr
3770
3771 def C_SOLVEUR( COMMAND, BASE=None ) :  #COMMUN#
3772
3773 # ----------------------------------------------------------------------------------------------------------------------------------
3774 #
3775 # VERIFICATIONS
3776 #
3777 # ----------------------------------------------------------------------------------------------------------------------------------
3778
3779    assert COMMAND in ('CALC_ERREUR',
3780                       'CALC_FORC_AJOU',
3781                       'CALC_IFS_DNL',
3782                       'CALC_MATR_AJOU',
3783                       'CALC_PRECONT',
3784                       'CREA_ELEM_SSD',
3785                       'DEFI_BASE_MODALE',
3786                       'DYNA_LINE_HARM',
3787                       'DYNA_LINE_TRAN',
3788                       'DYNA_NON_LINE',
3789                       'DYNA_TRAN_MODAL',
3790                       'INFO_MODE',
3791                       'MACR_ASCOUF_CALC',
3792                       'MACR_ASPIC_CALC',
3793                       'MACRO_BASCULE_SCHEMA',
3794                       'MACRO_MATR_AJOU',
3795                       'MECA_STATIQUE',
3796                       'MODE_ITER_SIMULT',
3797                       'MODE_ITER_INV',
3798                       'MODE_STATIQUE',
3799                       'MODE_NON_LINE',
3800                       'STAT_NON_LINE',
3801                       'THER_LINEAIRE',
3802                       'THER_NON_LINE',
3803                       'THER_NON_LINE_MO',
3804                       )
3805
3806    if BASE != None:
3807       assert COMMAND == 'DYNA_LINE_HARM'
3808       assert BASE in ('GENE','PHYS')
3809
3810 # ----------------------------------------------------------------------------------------------------------------------------------
3811 #
3812 # CLASSIFICATION EN 3 CATEGORIES :
3813 #  - solveurs directs uniquement
3814 #  - solveurs pour le linéaire
3815 #  - solveurs pour le non-linéaire
3816 #
3817 # GESTION DES EXCEPTIONS
3818 #
3819 # ----------------------------------------------------------------------------------------------------------------------------------
3820
3821    _type   = None
3822
3823 #  Classification ('SD'/'LIN'/'NL')
3824    if COMMAND in ('CREA_ELEM_SSD',
3825                   'DEFI_BASE_MODALE',
3826                   'DYNA_LINE_HARM',
3827                   'DYNA_TRAN_MODAL',
3828                   'INFO_MODE',
3829                   'MODE_ITER_SIMULT',
3830                   'MODE_ITER_INV',
3831                   ):
3832       _type = 'SD'
3833    elif COMMAND in ('CALC_ERREUR',
3834                     'CALC_FORC_AJOU',
3835                     'CALC_MATR_AJOU',
3836                     'DYNA_LINE_TRAN',
3837                     'MACRO_MATR_AJOU',
3838                     'MECA_STATIQUE',
3839                     'MODE_STATIQUE',
3840                     'THER_LINEAIRE',
3841                     'THER_NON_LINE_MO',
3842                     ):
3843       _type = 'LIN'
3844    elif COMMAND in ('CALC_IFS_DNL',
3845                     'CALC_PRECONT',
3846                     'DYNA_NON_LINE',
3847                     'MACR_ASCOUF_CALC',
3848                     'MACR_ASPIC_CALC',
3849                     'MACRO_BASCULE_SCHEMA',
3850                     'STAT_NON_LINE',
3851                     'THER_NON_LINE',
3852                     'MODE_NON_LINE',
3853                     ):
3854       _type = 'NL'
3855    else:
3856       assert False
3857
3858 # ----------------------------------------------------------------------------------------------------------------------------------
3859
3860    _dist   = False
3861
3862 #  MATR_DISTRIBUEE ne fonctionnent que dans MECA_STATIQUE et MECA_NON_LINE
3863    if COMMAND in ('CALC_IFS_DNL',
3864                   'CALC_PRECONT',
3865                   'DYNA_NON_LINE',
3866                   'MACR_ASCOUF_CALC',
3867                   'MACR_ASPIC_CALC',
3868                   'MACRO_BASCULE_SCHEMA',
3869                   'MECA_STATIQUE',
3870                   'STAT_NON_LINE',
3871                   ):
3872       _dist = True
3873
3874 # ----------------------------------------------------------------------------------------------------------------------------------
3875
3876    _gene   = False
3877    _ldlt   = False
3878
3879 #  Avec des matrices généralisées, MULT_FRONT n'est pas permis, LDLT est donc par défaut
3880    if BASE == 'GENE':
3881       _gene = True
3882       _ldlt = True
3883
3884 #  LDLT est le solveur par défaut dans DYNA_TRAN_MODAL (systèmes linéaires petits)
3885    if COMMAND == 'DYNA_TRAN_MODAL':
3886       _ldlt = True
3887
3888 # ----------------------------------------------------------------------------------------------------------------------------------
3889
3890    _syme   = False
3891
3892 #  Seuls les opérateurs non-linéaires produisent des matrices non-symétriques
3893    if _type == 'NL':
3894       _syme = True
3895    if COMMAND == 'THER_NON_LINE_MO':
3896       _syme = True
3897
3898 # ----------------------------------------------------------------------------------------------------------------------------------
3899
3900    _singu  = True
3901    _rcmk   = True
3902    _resol  = True
3903    _cmodal = False
3904
3905 #  Avec les solveurs modaux STOP_SINGULIER n'existe pas, de plus RCMK n'est pas disponible
3906    if COMMAND in ('INFO_MODE','MODE_ITER_INV','MODE_ITER_SIMULT'):
3907       _cmodal= True
3908       _singu = False
3909       _rcmk  = False
3910 #     Dans INFO_MODE on ne fait que factoriser
3911       if COMMAND == 'INFO_MODE':
3912          _resol = False
3913
3914 # ----------------------------------------------------------------------------------------------------------------------------------
3915
3916    _singu_non = False
3917
3918 #  Dans DEFI_BASE_MODALE, NON est le défaut de STOP_SINGULIER
3919    if COMMAND == 'DEFI_BASE_MODALE':
3920       _singu_non = True
3921
3922 # ----------------------------------------------------------------------------------------------------------------------------------
3923 #
3924 # INITIALISATIONS
3925 #
3926 # ----------------------------------------------------------------------------------------------------------------------------------
3927
3928 #  Mot-clés simples
3929    _MotCleSimples={}
3930
3931 #  Solveurs
3932    _BlocMF={}
3933    _BlocLD={}
3934    _BlocMU={}
3935    _BlocGC={}
3936    _BlocPE={}
3937
3938 #  Préconditionneurs
3939    _BlocGC_INC={}
3940    _BlocPE_INC={}
3941    _BlocXX_SP={}
3942    _BlocPE_ML={}
3943    _BlocPE_BOOMER={}
3944    _BlocXX_Autres={}
3945
3946 # ----------------------------------------------------------------------------------------------------------------------------------
3947 #
3948 # MOT-CLES SIMPLES : METHODE
3949 #                    SYME
3950 #
3951 # ----------------------------------------------------------------------------------------------------------------------------------
3952
3953 #  METHODE
3954    if (_ldlt):
3955       _defaut = "LDLT"
3956    else:
3957       _defaut = "MULT_FRONT"
3958
3959    if _type == 'SD':
3960       _into = ("MULT_FRONT", "LDLT", "MUMPS", )
3961       if _gene:
3962          _into = ("LDLT", "MUMPS", )
3963    else:
3964       _into = ("MULT_FRONT", "LDLT", "MUMPS", "GCPC", "PETSC", )
3965
3966    if COMMAND =='MODE_NON_LINE':
3967       _defaut = "MUMPS"
3968       _into = ("MUMPS",)
3969
3970    _MotCleSimples['METHODE'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, )
3971
3972 # ----------------------------------------------------------------------------------------------------------------------------------
3973
3974 #  SYME
3975    if _syme:
3976       _MotCleSimples['SYME'] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), )
3977
3978 # ----------------------------------------------------------------------------------------------------------------------------------
3979 #
3980 # MULT_FRONT/LDLT/MUMPS (RENUM/NPREC/STOP_SINGULIER)
3981 #
3982 # ----------------------------------------------------------------------------------------------------------------------------------
3983
3984 #  RENUM
3985    _BlocMF['RENUM'] = SIMP(statut='f', typ='TXM', defaut="METIS", into=("MD", "MDA", "METIS", ), )
3986
3987    if _rcmk:
3988       _into = ("RCMK", "SANS", )
3989       _defaut = "RCMK"
3990    else:
3991       _into = ("SANS",)
3992       _defaut = "SANS"
3993
3994    _BlocLD['RENUM'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, )
3995
3996    _BlocMU['RENUM'] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("AMD", "AMF", "PORD", "METIS", "QAMD", "SCOTCH", "AUTO", ), )
3997
3998 # ----------------------------------------------------------------------------------------------------------------------------------
3999 #  NPREC
4000    _BlocMF['NPREC'] = SIMP(statut='f', typ='I', defaut=8, )
4001    _BlocLD['NPREC'] = SIMP(statut='f', typ='I', defaut=8, )
4002    _BlocMU['NPREC'] = SIMP(statut='f', typ='I', defaut=8, )
4003
4004 # ----------------------------------------------------------------------------------------------------------------------------------
4005 #  ELIM_LAGR
4006
4007    if not _cmodal :
4008       _BlocPE['ELIM_LAGR'     ] = SIMP(statut='f', typ='TXM', defaut="NON" , into=("OUI", "NON"), )
4009       _BlocMF['ELIM_LAGR'     ] = SIMP(statut='f', typ='TXM', defaut="NON" , into=("OUI", "NON"), )
4010       _BlocLD['ELIM_LAGR'     ] = SIMP(statut='f', typ='TXM', defaut="NON" , into=("OUI", "NON"), )
4011       _BlocMU['ELIM_LAGR'     ] = SIMP(statut='f', typ='TXM', defaut="LAGR2" , into=("OUI", "NON", "LAGR2"), )
4012    else :
4013       _BlocMU['ELIM_LAGR'     ] = SIMP(statut='f', typ='TXM', defaut="LAGR2" , into=("NON", "LAGR2"), )
4014
4015
4016 # ----------------------------------------------------------------------------------------------------------------------------------
4017 #  STOP_SINGULIER
4018    _into = ("OUI", "NON", )
4019    _defaut = "OUI"
4020
4021    if _singu_non:
4022       _defaut = "NON"
4023
4024    if _singu:
4025       _BlocMF['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, )
4026       _BlocLD['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, )
4027       _BlocMU['STOP_SINGULIER'] = SIMP(statut='f', typ='TXM', defaut=_defaut, into=_into, )
4028
4029 # ----------------------------------------------------------------------------------------------------------------------------------
4030 #
4031 # MUMPS (MOT-CLES RESTANT)
4032 #
4033 # ----------------------------------------------------------------------------------------------------------------------------------
4034
4035    _BlocMU['TYPE_RESOL'     ] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("NONSYM", "SYMGEN", "SYMDEF", "AUTO", ), )
4036
4037 # ----------------------------------------------------------------------------------------------------------------------------------
4038
4039    _BlocMU['PRETRAITEMENTS' ] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("SANS", "AUTO", ), )
4040
4041 # ----------------------------------------------------------------------------------------------------------------------------------
4042
4043    if _resol:
4044       _BlocMU['POSTTRAITEMENTS'] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("SANS", "AUTO", "FORCE", ), )
4045
4046 # ----------------------------------------------------------------------------------------------------------------------------------
4047
4048    _BlocMU['PCENT_PIVOT'    ] = SIMP(statut='f', typ='I'  , defaut=20, val_min=1, )
4049
4050 # ----------------------------------------------------------------------------------------------------------------------------------
4051
4052    if _resol:
4053       if _type == 'LIN':
4054          _BlocMU['RESI_RELA'] = SIMP(statut='f', typ='R', defaut=1.0E-6, )
4055       else:
4056          _BlocMU['RESI_RELA'] = SIMP(statut='f', typ='R', defaut=-1.0, )
4057
4058 # ----------------------------------------------------------------------------------------------------------------------------------
4059
4060    _BlocMU['GESTION_MEMOIRE'] = SIMP(statut='f', typ='TXM', defaut="AUTO", into=("IN_CORE", "OUT_OF_CORE", "AUTO", "EVAL"), )
4061
4062 # ----------------------------------------------------------------------------------------------------------------------------------
4063
4064    if _type == 'NL':
4065       _BlocMU['FILTRAGE_MATRICE'] = SIMP(statut='f', typ='R'  , defaut=-1.0, )
4066       _BlocMU['MIXER_PRECISION' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), )
4067
4068 # ----------------------------------------------------------------------------------------------------------------------------------
4069
4070    if _dist:
4071       _BlocMU['MATR_DISTRIBUEE' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), )
4072       _BlocPE['MATR_DISTRIBUEE' ] = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON", ), )
4073
4074 # ----------------------------------------------------------------------------------------------------------------------------------
4075 #
4076 # GCPC/PETSC
4077 #
4078 # ----------------------------------------------------------------------------------------------------------------------------------
4079
4080    _BlocPE['ALGORITHME'] = SIMP(statut='f', typ='TXM', defaut="GMRES", into=("CG", "CR", "GMRES", "GCR", ), )
4081
4082 # ----------------------------------------------------------------------------------------------------------------------------------
4083
4084    _BlocGC['PRE_COND'] = SIMP(statut='f', typ='TXM', defaut="LDLT_INC", into=("LDLT_INC", "LDLT_SP", ), )
4085    _BlocPE['PRE_COND'] = SIMP(statut='f', typ='TXM', defaut="LDLT_SP" ,
4086                               into=("LDLT_INC", "LDLT_SP", "JACOBI", "SOR", "ML", "BOOMER", "SANS", ), )
4087
4088 # ----------------------------------------------------------------------------------------------------------------------------------
4089
4090    _BlocGC['RESI_RELA'] = SIMP(statut='f', typ='R', defaut= 1.E-6, )
4091    _BlocPE['RESI_RELA'] = SIMP(statut='f', typ='R', defaut= 1.E-6, )
4092
4093 # ----------------------------------------------------------------------------------------------------------------------------------
4094
4095    _BlocGC['NMAX_ITER'] = SIMP(statut='f', typ='I', defaut= 0, )
4096    _BlocPE['NMAX_ITER'] = SIMP(statut='f', typ='I', defaut= 0, )
4097
4098 # ----------------------------------------------------------------------------------------------------------------------------------
4099 #  Mot-cle cache pour desactiver le critere en norme non preconditionnee dans PETSC
4100
4101    if _type == 'NL':
4102       _BlocPE['RESI_RELA_PC'] = SIMP(statut='c', typ='R', defaut= -1.0, )
4103    else:
4104       _BlocPE['RESI_RELA_PC'] = SIMP(statut='c', typ='R', defaut=  0.0, )
4105
4106 # ----------------------------------------------------------------------------------------------------------------------------------
4107
4108    _BlocGC_INC['RENUM'] = SIMP(statut='f', typ='TXM', defaut="RCMK", into=("SANS","RCMK"), )
4109    _BlocPE_INC['RENUM'] = SIMP(statut='f', typ='TXM', defaut="RCMK", into=("SANS","RCMK"), )
4110
4111 # ----------------------------------------------------------------------------------------------------------------------------------
4112
4113    _BlocGC_INC['NIVE_REMPLISSAGE'] = SIMP(statut='f', typ='I', defaut= 0, )
4114    _BlocPE_INC['NIVE_REMPLISSAGE'] = SIMP(statut='f', typ='I', defaut= 0, )
4115
4116 # ----------------------------------------------------------------------------------------------------------------------------------
4117
4118    _BlocPE_INC['REMPLISSAGE'] = SIMP(statut='f', typ='R', defaut= 1.0, )
4119
4120 # ----------------------------------------------------------------------------------------------------------------------------------
4121
4122    _BlocXX_SP['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS",), )
4123    _BlocXX_SP['REAC_PRECOND'] = SIMP(statut='f', typ='I', defaut=30, )
4124    _BlocXX_SP['PCENT_PIVOT' ] = SIMP(statut='f', typ='I', defaut=20, val_min=1, )
4125
4126 # ----------------------------------------------------------------------------------------------------------------------------------
4127
4128    _BlocPE_ML['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS",), )
4129
4130 # ----------------------------------------------------------------------------------------------------------------------------------
4131
4132    _BlocPE_BOOMER['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS",), )
4133
4134 # ----------------------------------------------------------------------------------------------------------------------------------
4135
4136    _BlocXX_Autres['RENUM'] = SIMP(statut='f', typ='TXM', defaut="SANS", into=("SANS","RCMK", ), )
4137
4138
4139 # ----------------------------------------------------------------------------------------------------------------------------------
4140 #
4141 # PREPARATION DU MOT-CLE FACTEUR
4142 #
4143 # ----------------------------------------------------------------------------------------------------------------------------------
4144
4145    mcfact = FACT(statut='d',
4146                  b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
4147                                      fr="Paramètres de la méthode multi frontale",
4148                                      **_BlocMF
4149                                      ),
4150                  b_ldlt       = BLOC(condition = "METHODE == 'LDLT' ",
4151                                      fr="Paramètres de la méthode LDLT",
4152                                      **_BlocLD
4153                                      ),
4154                  b_mumps      = BLOC(condition = "METHODE == 'MUMPS' ",
4155                                      fr="Paramètres de la méthode MUMPS",
4156                                      **_BlocMU
4157                                      ),
4158                  b_gcpc       = BLOC(condition = "METHODE == 'GCPC' ",
4159                                       fr="Paramètres de la méthode du gradient conjugué",
4160                                      b_ldltinc    = BLOC(condition = "PRE_COND == 'LDLT_INC' ",
4161                                                          fr="Paramètres de la factorisation incomplète",
4162                                                          **_BlocGC_INC
4163                                                          ),
4164                                      b_simple     = BLOC(condition = "PRE_COND == 'LDLT_SP' ",
4165                                                          fr="Paramètres de la factorisation simple précision",
4166                                                          **_BlocXX_SP
4167                                                          ),
4168                                      **_BlocGC
4169                                      ),
4170                  b_petsc      = BLOC(condition = "METHODE == 'PETSC' ",
4171                                      fr="Paramètres de la méthode PETSC",
4172                                      b_ldltinc    = BLOC(condition = "PRE_COND == 'LDLT_INC' ",
4173                                                          fr="Paramètres de la factorisation incomplète",
4174                                                          **_BlocPE_INC
4175                                                          ),
4176                                      b_simple     = BLOC(condition = "PRE_COND == 'LDLT_SP' ",
4177                                                          fr="Paramètres de la factorisation simple précision",
4178                                                          **_BlocXX_SP
4179                                                          ),
4180                                      b_ml         = BLOC(condition = "PRE_COND == 'ML' ",
4181                                                          fr="Paramètres du multigrille algébrique ML",
4182                                                          **_BlocPE_ML
4183                                                          ),
4184                                      b_boomer        = BLOC(condition = "PRE_COND == 'BOOMER' ",
4185                                                          fr="Paramètres du multigrille algébrique HYPRE",
4186                                                          **_BlocPE_BOOMER
4187                                                          ),
4188                                      b_autres     = BLOC(condition = "PRE_COND == 'JACOBI' or \
4189                                                                       PRE_COND == 'SOR'    or \
4190                                                                       PRE_COND == 'SANS'",
4191                                                          **_BlocXX_Autres
4192                                                          ),
4193                                      **_BlocPE
4194                                      ),
4195                  **_MotCleSimples
4196                  )
4197
4198    return mcfact
4199
4200 # ======================================================================
4201 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
4202 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4203 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4204 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4205 # (AT YOUR OPTION) ANY LATER VERSION.
4206 #
4207 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4208 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4209 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4210 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4211 #
4212 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4213 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4214 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4215 # ======================================================================
4216 # person_in_charge: mickael.abbas at edf.fr
4217
4218 def C_SUIVI_DDL() : return FACT(statut='f',max=4,
4219
4220            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
4221                                    into=("DEPL","VITE","ACCE",
4222                                          "FORC_NODA",
4223                                          "SIEF_ELGA","VARI_ELGA",)),
4224
4225            EVAL_CHAM       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
4226                                    into=("MIN","MAX","MOY","MAXI_ABS","MINI_ABS","VALE",),),
4227
4228            NOM_CMP         =SIMP(statut='o',typ='TXM',max=20),
4229            EVAL_CMP        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
4230                                    into=("VALE","FORMULE",),),
4231
4232            b_formule       =BLOC(condition="(EVAL_CMP=='FORMULE')",
4233                                    FORMULE = SIMP(statut='o',typ=formule,max=1),
4234                                 ),
4235
4236            b_cham_no       =BLOC(condition="(NOM_CHAM=='DEPL') or \
4237                                             (NOM_CHAM=='VITE') or \
4238                                             (NOM_CHAM=='ACCE') or \
4239                                             (NOM_CHAM=='FORC_NODA') or \
4240                                             (NOM_CHAM=='VALE_CONT')",
4241                                  regles   =(UN_PARMI('NOEUD','GROUP_NO','GROUP_MA','MAILLE','TOUT')),
4242                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),
4243                                  NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4244                                  GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4245                                  MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4246                                  GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4247                                 ),
4248
4249            b_cham_elga     =BLOC(condition="(NOM_CHAM=='SIEF_ELGA') or \
4250                                             (NOM_CHAM=='VARI_ELGA')",
4251                                  regles          =(UN_PARMI('GROUP_MA','MAILLE','TOUT')),
4252                                  TOUT            =SIMP(statut='d',typ='TXM',into=("OUI",) ),
4253                                  MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
4254                                  GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
4255                                  EVAL_ELGA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,defaut='VALE',
4256                                                         into=("MIN","MAX","VALE",),),
4257                                  b_elga_vale     =BLOC(condition="(EVAL_ELGA=='VALE')",
4258                                    POINT           =SIMP(statut='o',typ='I'  ,validators=NoRepeat(),max='**'),
4259                                    SOUS_POINT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
4260                                  ),
4261                                 ),
4262
4263            TITRE           =  SIMP(statut='f',typ='TXM',max=3),
4264
4265
4266        );
4267
4268 # ======================================================================
4269 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
4270 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
4271 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
4272 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
4273 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
4274 #                                                                       
4275 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
4276 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
4277 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
4278 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
4279 #                                                                       
4280 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
4281 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
4282 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
4283 # ======================================================================
4284 # person_in_charge: mathieu.courtois at edf.fr
4285 def C_TEST_REFERENCE(keyword, max=1):       #COMMUN#
4286     """Mots-clés communs pour TEST_RESU, TEST_TABLE, TEST_FONCTION.
4287     On retourne un bloc pour ajouter la règle UN_PARMI."""
4288     assert keyword in ('CHAM_NO', 'CHAM_ELEM', 'CARTE', 'RESU', 'GENE', 'OBJET',
4289                        'TABLE', 'FONCTION', 'FICHIER')
4290     with_int     = keyword not in ('FONCTION', 'FICHIER')
4291     with_complex = keyword not in ('OBJET', 'FICHIER')
4292     with_string  = keyword in ('FICHIER', 'TABLE')
4293     vale_abs     = keyword not in ('CARTE', 'FICHIER')
4294     type_test    = keyword not in ('CARTE', 'GENE', 'OBJET')
4295     multi_prec   = keyword in ('RESU', 'GENE')
4296     reference    = keyword not in ('FICHIER', )
4297     un_parmi     = keyword not in ('FICHIER', )
4298
4299     opts = {}
4300     opts_ref = {}
4301     types = ['',]
4302     def add_type(typ):
4303         ttyp = typ == 'K' and 'TXM' or typ
4304         types.append('_' + typ)
4305         opts['VALE_CALC_' + typ] = SIMP(statut='f',typ=ttyp,max=max)
4306         opts_ref['VALE_REFE_' + typ] = SIMP(statut='f',typ=ttyp,max=max)
4307     if with_int:
4308         add_type('I')
4309     if with_complex:
4310         add_type('C')
4311     if with_string:
4312         add_type('K')
4313     if vale_abs:
4314         opts['VALE_ABS'] = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"))
4315     if type_test:
4316         opts['TYPE_TEST'] = SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN"))
4317     if not multi_prec:
4318         opts['TOLE_MACHINE'] = SIMP(statut='f',typ='R',defaut=1.e-6)
4319         opts['CRITERE']      = SIMP(statut='f',typ='TXM',defaut='RELATIF',into=("RELATIF","ABSOLU"))
4320     else:
4321         opts['TOLE_MACHINE'] = SIMP(statut='f',typ='R',max=2)
4322         opts['CRITERE']      = SIMP(statut='f',typ='TXM',max=2,into=("RELATIF","ABSOLU"))
4323     if un_parmi:
4324         opts['regles'] = (UN_PARMI(*['VALE_CALC' + t for t in types]))
4325         opts_ref['regles'] = (UN_PARMI(*['VALE_REFE' + t for t in types]))
4326     if reference:
4327         opts['b_reference'] = BLOC(condition = "REFERENCE != None",
4328             VALE_REFE   = SIMP(statut='f',typ='R',max=max),
4329             PRECISION   = SIMP(statut='f',typ='R',defaut=1.e-3),
4330             **opts_ref)
4331         opts['REFERENCE'] = SIMP(statut='f',typ='TXM',
4332                                  into=("ANALYTIQUE","SOURCE_EXTERNE","AUTRE_ASTER","NON_DEFINI"))
4333     kwargs = {
4334         'b_values' : BLOC(condition = "True",
4335             VALE_CALC    = SIMP(statut='f',typ='R',max=max),
4336             LEGENDE      = SIMP(statut='f',typ='TXM'),
4337             **opts
4338         )
4339     }
4340     return kwargs
4341
4342 # ======================================================================
4343 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
4344 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4345 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4346 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4347 # (AT YOUR OPTION) ANY LATER VERSION.
4348 #
4349 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4350 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4351 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4352 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4353 #
4354 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4355 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4356 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4357 # ======================================================================
4358 # person_in_charge: gerald.nicolas at edf.fr
4359 #
4360 # ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
4361 def C_TYPE_CHAM_INTO( type_cham=None ) : #COMMUN#
4362 # Si aucun argument n'est passe, on utilise tous les types de champs possibles
4363   if ( type_cham is None ) :
4364     l_cham = ["ELEM", "ELNO", "ELGA", "CART", "NOEU"]
4365 # Sinon, on n'utilise que les types passes en argument
4366   else :
4367     l_cham = []
4368     for typ in type_cham :
4369       l_cham.append(typ)
4370
4371   l = []
4372   for gd in C_NOM_GRANDEUR() :
4373     if gd != "VARI_R" :
4374        for typ in l_cham :
4375           l.append(typ+"_"+gd)
4376     else :
4377        # il ne peut pas exister NOEU_VARI_R ni CART_VARI_R (il faut utiliser VAR2_R):
4378        for typ in l_cham :
4379           if typ not in ("CART", "NOEU") :
4380              l.append(typ+"_"+gd)
4381
4382   return tuple(l)
4383
4384 # ======================================================================
4385 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
4386 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4387 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4388 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4389 # (AT YOUR OPTION) ANY LATER VERSION.
4390 #
4391 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4392 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4393 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4394 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4395 #
4396 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4397 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4398 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4399 # ======================================================================
4400 # person_in_charge: jean-luc.flejou at edf.fr
4401 AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
4402    fr="Affectation de caracteristiques a des elements de structure",
4403    reentrant='n',
4404    UIinfo ={"groupes":("Modélisation",)},
4405    regles = (AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF',
4406                          'GRILLE','MEMBRANE','MULTIFIBRE','RIGI_PARASOL'),
4407              PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE'),
4408              EXCLUS('DISCRET','DISCRET_2D'),),
4409    MODELE = SIMP(statut='o',typ=modele_sdaster ),
4410    INFO   = SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
4411    VERIF  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ),
4412
4413 #  ============================================================================
4414    POUTRE               = FACT(statut= 'f',max= '**',
4415       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4416       MAILLE               = SIMP(statut= 'f',typ= ma  ,validators= NoRepeat(),max= '**'),
4417       GROUP_MA             = SIMP(statut= 'f',typ= grma,validators= NoRepeat(),max= '**'),
4418       SECTION              = SIMP(statut= 'o',typ= 'TXM' ,into= ("GENERALE","RECTANGLE","CERCLE") ),
4419       b_generale           = BLOC(condition = " SECTION == 'GENERALE'",
4420          VARI_SECT            = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
4421          b_constant           = BLOC(condition = "VARI_SECT == 'CONSTANT'",
4422                                      regles = (PRESENT_ABSENT('TABLE_CARA','CARA'),
4423                                      PRESENT_PRESENT('TABLE_CARA','NOM_SEC'),PRESENT_PRESENT('CARA','VALE')),
4424             TABLE_CARA           = SIMP(statut= 'f',typ=table_sdaster),
4425             NOM_SEC             = SIMP(statut= 'f',typ= 'TXM'),
4426             CARA                 = SIMP(statut= 'f',typ= 'TXM',validators= NoRepeat(),min= 4 ,max= 15,
4427                                        fr= "A,IY,IZ,JX sont des paramètres obligatoires",
4428                                        into= ("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
4429                                              "JG","IYR2","IZR2","AI") ),
4430             VALE                    = SIMP(statut= 'f',typ= 'R',min= 4 ,max= 15), ),
4431          b_homothetique       = BLOC(condition = "VARI_SECT == 'HOMOTHETIQUE'",
4432             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 8 ,max= 30,
4433                                        fr= "A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires",
4434                                        into= ("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
4435                                              "RZ1","RT1","JG1","IYR21","IZR21","AI1",
4436                                              "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
4437                                              "RZ2","RT2","JG2","IYR22","IZR22","AI2") ),
4438             VALE                 = SIMP(statut= 'o',typ= 'R',min= 8 ,max= 30),),
4439       ),
4440       b_rectangle          = BLOC(condition = "SECTION == 'RECTANGLE'",
4441          VARI_SECT            = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut= "CONSTANT"),
4442          b_constant           = BLOC(condition = "VARI_SECT == 'CONSTANT'",
4443             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 1 ,max= 4,
4444                                        into= ("H","EP", "HY","HZ","EPY","EPZ") ),
4445             VALE                 = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 4), ),
4446          b_homothetique       = BLOC(condition = "VARI_SECT == 'HOMOTHETIQUE'",
4447             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 2 ,max= 8,
4448                                        into= ("H1","HZ1","HY1","EP1","EPY1","EPZ1",
4449                                           "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
4450             VALE                 = SIMP(statut= 'o',typ= 'R',min= 2 ,max= 8), ),
4451          b_affine             = BLOC(condition = "VARI_SECT == 'AFFINE'",
4452             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 3 ,max= 6,
4453                                        into= ("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ),
4454             VALE                 = SIMP(statut= 'o',typ= 'R',min= 3 ,max= 6), ),
4455       ),
4456       b_cercle             = BLOC(condition = " SECTION == 'CERCLE'",
4457          VARI_SECT            = SIMP(statut= 'f',typ= 'TXM',into= ("CONSTANT","HOMOTHETIQUE"),defaut= "CONSTANT"),
4458          b_constant           = BLOC(condition = "VARI_SECT == 'CONSTANT'",
4459             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 1 ,max= 2,
4460                                        fr= "R est un paramètre obligatoire",
4461                                        into= ("R","EP") ),
4462             VALE                 = SIMP(statut= 'o',typ= 'R',min= 1 ,max= 2), ),
4463          b_homothetique       = BLOC(condition = "VARI_SECT == 'HOMOTHETIQUE'",
4464             CARA                 = SIMP(statut= 'o',typ= 'TXM',validators= NoRepeat(),min= 2 ,max= 4,
4465                                        fr= "R1, R2 sont des paramètres obligatoires",
4466                                        into= ("R1","R2","EP1","EP2") ),
4467             VALE                 = SIMP(statut= 'o',typ= 'R',min= 2 ,max= 4), ),
4468          MODI_METRIQUE     = SIMP(statut= 'f',typ= 'TXM',defaut= "NON",into= ("OUI","NON") ),
4469          FCX               = SIMP(statut= 'f',typ= (fonction_sdaster,nappe_sdaster,formule) ),
4470          TUYAU_NSEC        = SIMP(statut= 'f',typ= 'I',val_max= 32,defaut= 16),
4471          TUYAU_NCOU        = SIMP(statut= 'f',typ= 'I',val_max= 10,defaut= 3),
4472       ),
4473    ),
4474
4475 #  ============================================================================
4476    BARRE                = FACT(statut='f',max='**',
4477       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4478       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4479       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4480       SECTION              = SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
4481       b_generale           = BLOC(condition = "SECTION=='GENERALE'",
4482                                 regles = (PRESENT_ABSENT('TABLE_CARA','CARA'),
4483                                 PRESENT_PRESENT('TABLE_CARA','NOM_SEC'),PRESENT_PRESENT('CARA','VALE')),
4484          TABLE_CARA           = SIMP(statut= 'f',typ=table_sdaster),
4485          NOM_SEC              = SIMP(statut= 'f',typ= 'TXM'),
4486          CARA                 = SIMP(statut='f',typ='TXM',into=("A",) ),
4487          VALE                 = SIMP(statut='f',typ='R',min=1,max=1 ), ),
4488       b_rectangle          = BLOC(condition = "SECTION=='RECTANGLE'",
4489          CARA                 = SIMP(statut='o',typ='TXM',
4490                                     into=("H","EP","HZ","HY","EPY","EPZ"),
4491                                     validators=NoRepeat(),min=1,max=4 ),
4492          VALE                 = SIMP(statut='o',typ='R',min=1,max=4 ), ),
4493       b_cercle             =  BLOC(condition = "SECTION=='CERCLE'",
4494          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ),
4495          VALE                 = SIMP(statut='o',typ='R',min=1,max=2 ), ),
4496       FCX                  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4497    ),
4498
4499 #  ============================================================================
4500    COQUE                = FACT(statut='f',max='**',
4501       regles               = (UN_PARMI('MAILLE','GROUP_MA' ),
4502                               EXCLUS('ANGL_REP','VECTEUR'),
4503                               PRESENT_PRESENT( 'EXCENTREMENT',   'INER_ROTA' ),
4504                               PRESENT_PRESENT( 'EXCENTREMENT_FO','INER_ROTA' ),
4505                               UN_PARMI('EPAIS','EPAIS_FO' ),
4506                               EXCLUS('EXCENTREMENT','EXCENTREMENT_FO'),),
4507       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4508       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4509       EPAIS                = SIMP(statut='f',typ='R' ),
4510       EPAIS_FO             = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4511       ANGL_REP             = SIMP(statut='f',typ='R',min=2,max=2),
4512       VECTEUR              = SIMP(statut='f',typ='R',min=3,max=3),
4513       A_CIS                = SIMP(statut='f',typ='R',defaut= 0.8333333E0),
4514       COEF_RIGI_DRZ        = SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
4515       COQUE_NCOU           = SIMP(statut='f',typ='I',defaut= 1 ),
4516       EXCENTREMENT         = SIMP(statut='f',typ='R' ),
4517       EXCENTREMENT_FO      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4518       INER_ROTA            = SIMP(statut='f',typ='TXM',into=("OUI",) ),
4519       MODI_METRIQUE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
4520    ),
4521
4522 #  ============================================================================
4523    CABLE                = FACT(statut='f',max='**',
4524       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4525       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4526       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4527       N_INIT               = SIMP(statut='f',typ='R',defaut= 5000. ),
4528       SECTION              = SIMP(statut='f',typ='R' ),
4529       FCX                  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4530    ),
4531
4532 #  ============================================================================
4533    DISCRET              = FACT(statut='f',max='**',
4534       REPERE               = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
4535       AMOR_HYST            = SIMP(statut='f',typ='R' ),
4536
4537       SYME                 = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
4538       b_SYME_OUI           = BLOC(condition="SYME=='OUI'",
4539          fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
4540          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
4541             into=("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
4542                   "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
4543                   "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
4544          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
4545          b_AK_T_D_N            = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))",
4546             fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)",
4547             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4548             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4549             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4550             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4551             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4552             VALE                 = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
4553          b_AK_T_D_L            = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))",
4554             fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)",
4555             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4556             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4557             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4558             VALE                 = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
4559          b_AK_TR_D_N           = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))",
4560             fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)",
4561             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4562             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4563             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4564             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4565             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4566             VALE                 = SIMP(statut='o',typ='R',min=6 ,max=6 ),),
4567          b_AK_TR_D_L           = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))",
4568             fr="SEGMENT: 6 valeurs (triangulaire supérieure par colonne)",
4569             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4570             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4571             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4572             VALE                 = SIMP(statut='o',typ='R',min=6 ,max=6 ),),
4573          b_MAK_T_N              = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
4574             fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)",
4575             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4576             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4577             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4578             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4579             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4580             VALE                 = SIMP(statut='o',typ='R',min=6 ,max=6 ),),
4581          b_MAK_T_L              = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
4582             fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)",
4583             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4584             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4585             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4586             VALE                 = SIMP(statut='o',typ='R',min=21,max=21),),
4587          b_MAK_TR_N             = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
4588             fr="NOEUD: 21 valeurs (triangulaire supérieure par colonne)",
4589             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4590             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4591             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4592             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4593             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4594             VALE                 = SIMP(statut='o',typ='R',min=21,max=21),),
4595          b_MAK_TR_L             = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
4596             fr="SEGMENT: 78 valeurs (triangulaire supérieure par colonne)",
4597             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4598             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4599             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4600             VALE                 = SIMP(statut='o',typ='R',min=78,max=78),),
4601          #  Affection des caractéristiques de MASSE
4602          b_M_T_D_N           = BLOC(condition = "(CARA=='M_T_D_N')",
4603             fr="NOEUD: 1 valeur de masse",
4604             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4605             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4606             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4607             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4608             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4609             VALE                 = SIMP(statut='o',typ='R',min=1 ,max=1 ),),
4610          b_M_T_D_L           = BLOC(condition = "(CARA=='M_T_D_L')",
4611             fr="SEGMENT: 1 valeur de masse",
4612             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4613             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4614             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4615             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4616             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4617             VALE                 = SIMP(statut='o',typ='R',min=1 ,max=1 ),),
4618          b_M_TR_D_N           = BLOC(condition = "(CARA=='M_TR_D_N')",
4619             fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentrement",
4620             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4621             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4622             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4623             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4624             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4625             VALE                 = SIMP(statut='o',typ='R',min=10,max=10),),
4626          b_M_TR_D_L           = BLOC(condition = "(CARA=='M_TR_D_L')",
4627             fr="SEGMENT: 1 valeur de masse, 3 valeurs du tenseur d'inertie",
4628             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4629             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4630             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4631             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4632             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4633             VALE                 = SIMP(statut='o',typ='R',min=4,max=4),),
4634       ),
4635       #     éléments à matrice non-symétrique
4636       #        b_MAK_T_N_NS       'K_T_N'     'A_T_N'    'M_T_N'
4637       #        b_MAK_T_L_NS       'K_T_L'     'A_T_L'    'M_T_L'
4638       #        b_MAK_TR_N_NS      'K_TR_N'    'A_TR_N'   'M_TR_N'
4639       #        b_MAK_TR_L_NS      'K_TR_L'    'A_TR_L'   'M_TR_L'
4640       b_SYME_NON           = BLOC(condition="SYME=='NON'",
4641          fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
4642          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
4643             into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
4644                   "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
4645                   "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
4646          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE
4647          b_MAK_T_N_NS           = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
4648             fr="NOEUD: 9 valeurs (matrice pleine par colonne)",
4649             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4650             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4651             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4652             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4653             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4654             VALE                 = SIMP(statut='o',typ='R',min=9 ,max=9 ),),
4655          b_MAK_T_L_NS           = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
4656             fr="SEGMENT: 36 valeurs (matrice pleine par colonne)",
4657             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4658             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4659             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4660             VALE                 = SIMP(statut='o',typ='R',min=36,max=36),),
4661          b_MAK_TR_N_NS          = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
4662             fr="NOEUD: 36 valeurs (matrice pleine par colonne)",
4663             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4664             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4665             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4666             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4667             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4668             VALE                 = SIMP(statut='o',typ='R',min=36,max=36),),
4669          b_MAK_TR_L_NS          = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
4670             fr="SEGMENT: 144 valeurs (matrice pleine par colonne)",
4671             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4672             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4673             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4674             VALE                 = SIMP(statut='o',typ='R',min=144,max=144),),
4675       ),
4676    ),
4677 #  ============================================================================
4678    DISCRET_2D           = FACT(statut='f',max='**',
4679       REPERE               = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
4680       AMOR_HYST            = SIMP(statut='f',typ='R' ),
4681       SYME                 = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
4682       b_SYME_OUI           = BLOC(condition="SYME=='OUI'",
4683          fr="SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
4684          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
4685             into=("K_T_D_N", "K_T_D_L", "K_TR_D_N", "K_TR_D_L", "K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
4686                   "M_T_D_N", "M_T_D_L", "M_TR_D_N", "M_TR_D_L", "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
4687                   "A_T_D_N", "A_T_D_L", "A_TR_D_N", "A_TR_D_L", "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
4688          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE
4689          b_AK_T_D_N            = BLOC(condition = "((CARA=='K_T_D_N')or(CARA=='A_T_D_N'))",
4690             fr="NOEUD: 2 valeurs (triangulaire supérieure par colonne)",
4691             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4692             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4693             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4694             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4695             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4696             VALE                 = SIMP(statut='o',typ='R',min=2 ,max=2 ),),
4697          b_AK_T_D_L            = BLOC(condition = "((CARA=='K_T_D_L')or(CARA=='A_T_D_L'))",
4698             fr="SEGMENT: 2 valeurs (triangulaire supérieure par colonne)",
4699             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4700             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4701             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4702             VALE                 = SIMP(statut='o',typ='R',min=2 ,max=2 ),),
4703          b_AK_TR_D_N           = BLOC(condition = "((CARA=='K_TR_D_N')or(CARA=='A_TR_D_N'))",
4704             fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)",
4705             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4706             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4707             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4708             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4709             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4710             VALE                 = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
4711          b_AK_TR_D_L           = BLOC(condition = "((CARA=='K_TR_D_L')or(CARA=='A_TR_D_L'))",
4712             fr="SEGMENT: 3 valeurs (triangulaire supérieure par colonne)",
4713             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4714             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4715             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4716             VALE                 = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
4717          b_MAK_T_N              = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
4718             fr="NOEUD: 3 valeurs (triangulaire supérieure par colonne)",
4719             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4720             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4721             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4722             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4723             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4724             VALE                 = SIMP(statut='o',typ='R',min=3 ,max=3 ),),
4725          b_MAK_T_L              = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
4726             fr="SEGMENT: 10 valeurs (triangulaire supérieure par colonne)",
4727             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4728             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4729             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4730             VALE                 = SIMP(statut='o',typ='R',min=10,max=10),),
4731          b_MAK_TR_N             = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
4732             fr="NOEUD: 6 valeurs (triangulaire supérieure par colonne)",
4733             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4734            NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4735             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4736             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4737             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4738             VALE                 = SIMP(statut='o',typ='R',min=6 ,max=6),),
4739          b_MAK_TR_L             = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
4740             fr="SEGMENT: 21 valeurs (triangulaire supérieure par colonne)",
4741             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4742             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4743             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4744             VALE                 = SIMP(statut='o',typ='R',min=21,max=21),),
4745          #  Affection des caractéristiques de MASSE
4746          b_M_T_D_N            = BLOC(condition = "(CARA=='M_T_D_N')",
4747             fr="NOEUD: 1 valeur de masse",
4748             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4749             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4750             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4751             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4752             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4753             VALE                 = SIMP(statut='o',typ='R',min=1 ,max=1 ),),
4754          b_M_T_D_L            = BLOC(condition = "(CARA=='M_T_D_L')",
4755             fr="SEGMENT: 1 valeur de masse",
4756             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4757             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4758             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4759             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4760             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4761             VALE                 = SIMP(statut='o',typ='R',min=1 ,max=1 ),),
4762          b_M_TR_D_N           = BLOC(condition = "(CARA=='M_TR_D_N')",
4763             fr="NOEUD: 1 valeur de masse, 1 valeur d'inertie, 2 composantes du vecteur d'excentrement",
4764             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4765             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4766             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4767             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4768             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4769             VALE                 = SIMP(statut='o',typ='R',min=4 ,max=4 ),),
4770          b_M_TR_D_L           = BLOC(condition = "(CARA=='M_TR_D_L')",
4771             fr="SEGMENT: 1 valeur de masse, 1 valeur d'inertie",
4772             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4773             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4774             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4775             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4776             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4777             VALE                 = SIMP(statut='o',typ='R',min=2 ,max=2 ),),
4778       ),
4779       #     éléments à matrice non-symétrique
4780       #        b_MAK_T_N_NS       'K_T_N'     'A_T_N'    'M_T_N'
4781       #        b_MAK_T_L_NS       'K_T_L'     'A_T_L'    'M_T_L'
4782       #        b_MAK_TR_N_NS      'K_TR_N'    'A_TR_N'   'M_TR_N'
4783       #        b_MAK_TR_L_NS      'K_TR_L'    'A_TR_L'   'M_TR_L'
4784       b_SYME_NON           = BLOC(condition="SYME=='NON'",
4785          fr="NON-SYMETRIQUE: Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
4786          CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,defaut="None",
4787             into=("K_T_N", "K_T_L", "K_TR_N", "K_TR_L",
4788                   "M_T_N", "M_T_L", "M_TR_N", "M_TR_L",
4789                   "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",),),
4790          #  Affection des caractéristiques de RIGIDITE/AMORTISSEMENT/MASSE : NON-SYMETRIQUE
4791          b_MAK_T_N_NS           = BLOC(condition = "((CARA=='K_T_N')or(CARA=='A_T_N')or(CARA=='M_T_N'))",
4792             fr="NOEUD: 4 valeurs (matrice pleine par colonne)",
4793             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4794             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4795             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4796             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4797             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4798             VALE                 = SIMP(statut='o',typ='R',min=4 ,max=4 ),),
4799          b_MAK_T_L_NS           = BLOC(condition = "((CARA=='K_T_L')or(CARA=='A_T_L')or(CARA=='M_T_L'))",
4800             fr="SEGMENT: 16 valeurs (matrice pleine par colonne)",
4801             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4802             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4803             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4804             VALE                 = SIMP(statut='o',typ='R',min=16,max=16),),
4805          b_MAK_TR_N_NS          = BLOC(condition = "((CARA=='K_TR_N')or(CARA=='A_TR_N')or(CARA=='M_TR_N'))",
4806             fr="NOEUD: 9 valeurs (matrice pleine par colonne)",
4807             regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
4808             NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4809             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4810             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4811             GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4812             VALE                 = SIMP(statut='o',typ='R',min=9 ,max=9),),
4813          b_MAK_TR_L_NS          = BLOC(condition = "((CARA=='K_TR_L')or(CARA=='A_TR_L')or(CARA=='M_TR_L'))",
4814             fr="SEGMENT: 36 valeurs (matrice pleine par colonne)",
4815             regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4816             MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4817             GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4818             VALE                 = SIMP(statut='o',typ='R',min=36,max=36),),
4819       ),
4820    ),
4821 #  ============================================================================
4822    ORIENTATION          = FACT(statut='f',max='**',
4823       regles               = (UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
4824       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4825       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4826       NOEUD                = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4827       GROUP_NO             = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4828       CARA                 = SIMP(statut='o',typ='TXM',
4829                                  into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
4830       VALE                 = SIMP(statut='o',typ='R',max='**'),
4831       PRECISION            = SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
4832       CRITERE              = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
4833    ),
4834
4835 # ============================================================================
4836    DEFI_ARC             = FACT(statut='f',max='**',
4837       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
4838                               UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
4839                                        'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
4840                               PRESENT_PRESENT('ORIE_ARC','RAYON'),
4841                               EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
4842                               EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
4843                               EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
4844                               EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
4845                               PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
4846                               PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
4847       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4848       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4849       ORIE_ARC             = SIMP(statut='f',typ='R'),
4850       CENTRE               = SIMP(statut='f',typ='R',max='**'),
4851       NOEUD_CENTRE         = SIMP(statut='f',typ=no),
4852       GROUP_NO_CENTRE      = SIMP(statut='f',typ=grno),
4853       POIN_TANG            = SIMP(statut='f',typ='R',max='**'),
4854       NOEUD_POIN_TANG      = SIMP(statut='f',typ=no),
4855       GROUP_NO_POIN_TG     = SIMP(statut='f',typ=grno),
4856       RAYON                = SIMP(statut='f',typ='R'),
4857       COEF_FLEX            = SIMP(statut='f',typ='R'),
4858       INDI_SIGM            = SIMP(statut='f',typ='R'),
4859       COEF_FLEX_XY         = SIMP(statut='f',typ='R'),
4860       INDI_SIGM_XY         = SIMP(statut='f',typ='R'),
4861       COEF_FLEX_XZ         = SIMP(statut='f',typ='R'),
4862       INDI_SIGM_XZ         = SIMP(statut='f',typ='R'),
4863       PRECISION            = SIMP(statut='f',typ='R',defaut= 1.0E-3),
4864       CRITERE              = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
4865    ),
4866
4867 #============================================================================
4868    MASSIF               = FACT(statut='f',max='**',
4869       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
4870                               UN_PARMI('ANGL_REP','ANGL_AXE','ANGL_EULER'),
4871                               EXCLUS('ANGL_REP','ANGL_EULER'),
4872                               EXCLUS('ANGL_REP','ANGL_AXE'),
4873                               EXCLUS('ANGL_REP','ORIG_AXE'),
4874                               PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
4875       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4876       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4877       ANGL_REP             = SIMP(statut='f',typ='R',max=3),
4878       ANGL_EULER           = SIMP(statut='f',typ='R',min=3,max=3),
4879       ANGL_AXE             = SIMP(statut='f',typ='R',max=2),
4880       ORIG_AXE             = SIMP(statut='f',typ='R',max=3),
4881    ),
4882
4883 #  ============================================================================
4884    POUTRE_FLUI          = FACT(statut='f',max='**',
4885       regles               = (UN_PARMI('MAILLE','GROUP_MA'),),
4886       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4887       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4888       B_T                  = SIMP(statut='o',typ='R'),
4889       B_N                  = SIMP(statut='o',typ='R'),
4890       B_TN                 = SIMP(statut='o',typ='R',defaut= 0.E+0 ),
4891       A_FLUI               = SIMP(statut='o',typ='R'),
4892       A_CELL               = SIMP(statut='o',typ='R'),
4893       COEF_ECHELLE         = SIMP(statut='o',typ='R'),
4894    ),
4895
4896 #  ============================================================================
4897    GRILLE               = FACT(statut='f',max='**',
4898       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
4899                               EXCLUS('ANGL_REP','AXE'),
4900                               UN_PARMI('SECTION','SECTION_FO' ),
4901                               EXCLUS('EXCENTREMENT','EXCENTREMENT_FO'), ),
4902       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4903       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4904       SECTION              = SIMP(statut='f',typ='R'),
4905       SECTION_FO           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4906       ANGL_REP             = SIMP(statut='f',typ='R',max=2),
4907       EXCENTREMENT         = SIMP(statut='f',typ='R'),
4908       EXCENTREMENT_FO      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4909       AXE                  = SIMP(statut='f',typ='R',max='**'),
4910       COEF_RIGI_DRZ        = SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
4911    ),
4912
4913 #  ============================================================================
4914    MEMBRANE             = FACT(statut='f',max='**',
4915       regles               = (UN_PARMI('MAILLE','GROUP_MA'),
4916                               EXCLUS('ANGL_REP','AXE'),
4917                               ),
4918       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4919       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4920       ANGL_REP             = SIMP(statut='f',typ='R',max=2),
4921       AXE                  = SIMP(statut='f',typ='R',max='**'),
4922    ),
4923
4924 #============================================================================
4925    RIGI_PARASOL         = FACT(statut='f',max='**',
4926       regles               = (UN_PARMI('COEF_GROUP','FONC_GROUP'),
4927                               UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
4928                               EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),),
4929       GROUP_MA             = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**',
4930          fr="Surface servant à répartir les caractéristiques des discrets"),
4931       GROUP_MA_POI1        = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1,
4932          fr="Mailles de type point correspondant aux discrets"),
4933       GROUP_MA_SEG2        = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1,
4934          fr="Mailles de type seg2 correspondant aux discrets"),
4935       FONC_GROUP           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4936       COEF_GROUP           = SIMP(statut='f',typ='R',max='**'),
4937       REPERE               = SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
4938       CARA                 = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,
4939                                  into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
4940                                        "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L"),
4941                                  fr="Choix des types de discrets du tapis de ressorts." ),
4942       b_cara= BLOC(condition =""" au_moins_un(CARA, ["K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
4943                                             "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L"]) or \
4944                                   (len(CARA)==2 and CARA[0][2:]==CARA[1][2:])""",
4945                    fr="Valeurs pour les discrets du tapis de ressorts.",
4946          VALE = SIMP(statut='o',typ='R',max='**',
4947               fr="Valeurs pour les discrets du tapis de ressorts.",),
4948       ),
4949       GROUP_NO_CENTRE      = SIMP(statut='f',typ=grno),
4950       NOEUD_CENTRE         = SIMP(statut='f',typ=no),
4951       COOR_CENTRE          = SIMP(statut='f',typ='R',min=2,max=3),
4952       EUROPLEXUS           = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
4953       UNITE                = SIMP(statut='f',typ='I',val_min=1),
4954    ),
4955
4956 #============================================================================
4957    RIGI_MISS_3D         = FACT(statut='f',max='**',
4958       GROUP_MA_POI1        = SIMP(statut='o',typ=grma,max=1),
4959       GROUP_MA_SEG2        = SIMP(statut='f',typ=grma,max=1),
4960       FREQ_EXTR            = SIMP(statut='o',typ='R',max=1),
4961       UNITE_RESU_IMPE      = SIMP(statut='f',typ='I',defaut=30),
4962    ),
4963
4964 #============================================================================
4965    MASS_AJOU            = FACT(statut='f',max='**',
4966       GROUP_MA             = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**',
4967          fr="Surface servant à répartir les caractéristiques des discrets"),
4968       GROUP_MA_POI1        = SIMP(statut='o',typ=grma,validators=NoRepeat(),max=1,
4969          fr="Mailles de type point correspondant aux discrets"),
4970       FONC_GROUP           = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4971    ),
4972
4973 #============================================================================
4974    GEOM_FIBRE           = SIMP(statut='f',max=1,typ=gfibre_sdaster,
4975       fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"),
4976
4977    MULTIFIBRE           = FACT(statut='f',max='**',
4978       regles               = (AU_MOINS_UN('GROUP_MA','MAILLE'),),
4979       GROUP_MA             = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4980       MAILLE               = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4981       GROUP_FIBRE          = SIMP(statut='o',typ='TXM',max='**'),
4982       PREC_AIRE            = SIMP(statut= 'f',typ= 'R',defaut= 0.01),
4983       PREC_INERTIE         = SIMP(statut= 'f',typ= 'R',defaut= 0.1),
4984    ),
4985 );
4986
4987 # ======================================================================
4988 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4989 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4990 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4991 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4992 # (AT YOUR OPTION) ANY LATER VERSION.
4993 #
4994 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4995 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4996 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4997 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4998 #
4999 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5000 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5001 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5002 # ======================================================================
5003 #
5004 AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
5005                     fr="Affectation de charges et conditions aux limites acoustiques constantes",
5006                     reentrant='n',
5007             UIinfo={"groupes":("Chargements","Acoustique",)},
5008          regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
5009          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
5010          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées",
5011                                into=('DUALISATION',),defaut='DUALISATION',),
5012                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
5013          PRES_IMPO       =FACT(statut='f',max='**',
5014            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
5015              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5016              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5017              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5018              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5019              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5020              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5021              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5022              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5023              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5024              PRES            =SIMP(statut='o',typ='C' ),
5025          ),
5026          VITE_FACE       =FACT(statut='f',max='**',
5027              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
5028                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
5029            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5030            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5031            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5032            VNOR            =SIMP(statut='o',typ='C' ),
5033          ),
5034          IMPE_FACE       =FACT(statut='f',max='**',
5035              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
5036                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
5037            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5038            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5039            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5040            IMPE            =SIMP(statut='o',typ='C' ),
5041          ),
5042          LIAISON_UNIF    =FACT(statut='f',max='**',
5043            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),),
5044            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5045            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5046            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5047            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5048            DDL             =SIMP(statut='o',typ='TXM',max='**'),
5049          ),
5050 )  ;
5051
5052 # ======================================================================
5053 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
5054 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5055 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5056 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5057 # (AT YOUR OPTION) ANY LATER VERSION.
5058 #
5059 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5060 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5061 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5062 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5063 #
5064 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5065 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5066 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5067 # ======================================================================
5068 # person_in_charge: jacques.pellet at edf.fr
5069 def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_IMPO,**args):
5070   if MECA_IMPO != None  : return char_cine_meca
5071   if THER_IMPO != None  : return char_cine_ther
5072   if ACOU_IMPO != None  : return char_cine_acou
5073   if EVOL_IMPO != None  :
5074       if AsType(EVOL_IMPO) in (evol_elas,evol_noli) :
5075           return char_cine_meca
5076       elif AsType(EVOL_IMPO) in (evol_ther,) :
5077           return char_cine_ther
5078       else :
5079           raise AsException("Extension à faire ...")
5080
5081   raise AsException("type de concept resultat non prevu")
5082
5083
5084 AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
5085                     ,fr="Affectation de conditions aux limites cinématiques (U=U0) pour un traitement sans dualisation",
5086                      reentrant='n',
5087             UIinfo={"groupes":("Chargements","Mécanique",)},
5088          regles=(UN_PARMI('MECA_IMPO','THER_IMPO','ACOU_IMPO','EVOL_IMPO'),
5089                  ),
5090          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
5091
5092          MECA_IMPO       =FACT(statut='f',max='**',
5093            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5094                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
5095                                'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
5096                                'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
5097                                'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
5098                                'VO6','WI6','WO6','WO','WI1','WO1','GONF',
5099                                'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
5100                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22',
5101                                'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21',
5102                                'PRES22','PRES23','PRES31','PRES32','PRES33','LH1','GLIS'),),
5103              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5104              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5105              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5106              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5107              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5108              DX              =SIMP(statut='f',typ='R' ),
5109              DY              =SIMP(statut='f',typ='R' ),
5110              DZ              =SIMP(statut='f',typ='R' ),
5111              DRX             =SIMP(statut='f',typ='R' ),
5112              DRY             =SIMP(statut='f',typ='R' ),
5113              DRZ             =SIMP(statut='f',typ='R' ),
5114              GRX             =SIMP(statut='f',typ='R' ),
5115              PRES            =SIMP(statut='f',typ='R' ),
5116              PHI             =SIMP(statut='f',typ='R' ),
5117              TEMP            =SIMP(statut='f',typ='R' ),
5118              PRE1            =SIMP(statut='f',typ='R' ),
5119              PRE2            =SIMP(statut='f',typ='R' ),
5120              UI2             =SIMP(statut='f',typ='R' ),
5121              UI3             =SIMP(statut='f',typ='R' ),
5122              UI4             =SIMP(statut='f',typ='R' ),
5123              UI5             =SIMP(statut='f',typ='R' ),
5124              UI6             =SIMP(statut='f',typ='R' ),
5125              UO2             =SIMP(statut='f',typ='R' ),
5126              UO3             =SIMP(statut='f',typ='R' ),
5127              UO4             =SIMP(statut='f',typ='R' ),
5128              UO5             =SIMP(statut='f',typ='R' ),
5129              UO6             =SIMP(statut='f',typ='R' ),
5130              VI2             =SIMP(statut='f',typ='R' ),
5131              VI3             =SIMP(statut='f',typ='R' ),
5132              VI4             =SIMP(statut='f',typ='R' ),
5133              VI5             =SIMP(statut='f',typ='R' ),
5134              VI6             =SIMP(statut='f',typ='R' ),
5135              VO2             =SIMP(statut='f',typ='R' ),
5136              VO3             =SIMP(statut='f',typ='R' ),
5137              VO4             =SIMP(statut='f',typ='R' ),
5138              VO5             =SIMP(statut='f',typ='R' ),
5139              VO6             =SIMP(statut='f',typ='R' ),
5140              WI2             =SIMP(statut='f',typ='R' ),
5141              WI3             =SIMP(statut='f',typ='R' ),
5142              WI4             =SIMP(statut='f',typ='R' ),
5143              WI5             =SIMP(statut='f',typ='R' ),
5144              WI6             =SIMP(statut='f',typ='R' ),
5145              WO2             =SIMP(statut='f',typ='R' ),
5146              WO3             =SIMP(statut='f',typ='R' ),
5147              WO4             =SIMP(statut='f',typ='R' ),
5148              WO5             =SIMP(statut='f',typ='R' ),
5149              WO6             =SIMP(statut='f',typ='R' ),
5150              WO              =SIMP(statut='f',typ='R' ),
5151              WI1             =SIMP(statut='f',typ='R' ),
5152              WO1             =SIMP(statut='f',typ='R' ),
5153              GONF            =SIMP(statut='f',typ='R' ),
5154              H1X             =SIMP(statut='f',typ='R' ),
5155              H1Y             =SIMP(statut='f',typ='R' ),
5156              H1Z             =SIMP(statut='f',typ='R' ),
5157              E1X             =SIMP(statut='f',typ='R' ),
5158              E1Y             =SIMP(statut='f',typ='R' ),
5159              E1Z             =SIMP(statut='f',typ='R' ),
5160              E2X             =SIMP(statut='f',typ='R' ),
5161              E2Y             =SIMP(statut='f',typ='R' ),
5162              E2Z             =SIMP(statut='f',typ='R' ),
5163              E3X             =SIMP(statut='f',typ='R' ),
5164              E3Y             =SIMP(statut='f',typ='R' ),
5165              E3Z             =SIMP(statut='f',typ='R' ),
5166              E4X             =SIMP(statut='f',typ='R' ),
5167              E4Y             =SIMP(statut='f',typ='R' ),
5168              E4Z             =SIMP(statut='f',typ='R' ),
5169              V11             =SIMP(statut='f',typ='R' ),
5170              V12             =SIMP(statut='f',typ='R' ),
5171              V13             =SIMP(statut='f',typ='R' ),
5172              V21             =SIMP(statut='f',typ='R' ),
5173              V22             =SIMP(statut='f',typ='R' ),
5174              V23             =SIMP(statut='f',typ='R' ),
5175              V31             =SIMP(statut='f',typ='R' ),
5176              V32             =SIMP(statut='f',typ='R' ),
5177              V33             =SIMP(statut='f',typ='R' ),
5178              PRES11          =SIMP(statut='f',typ='R' ),
5179              PRES12          =SIMP(statut='f',typ='R' ),
5180              PRES13          =SIMP(statut='f',typ='R' ),
5181              PRES21          =SIMP(statut='f',typ='R' ),
5182              PRES22          =SIMP(statut='f',typ='R' ),
5183              PRES23          =SIMP(statut='f',typ='R' ),
5184              PRES31          =SIMP(statut='f',typ='R' ),
5185              PRES32          =SIMP(statut='f',typ='R' ),
5186              PRES33          =SIMP(statut='f',typ='R' ),
5187              LH1             =SIMP(statut='f',typ='R' ),
5188              GLIS            =SIMP(statut='f',typ='R' ),
5189          ),
5190
5191          THER_IMPO       =FACT(statut='f',max='**',
5192            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5193                    AU_MOINS_UN('TEMP','TEMP_MIL','TEMP_INF','TEMP_SUP'),),
5194            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5195            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5196            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5197            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5198            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5199            TEMP            =SIMP(statut='f',typ='R' ),
5200            TEMP_MIL        =SIMP(statut='f',typ='R' ),
5201            TEMP_SUP        =SIMP(statut='f',typ='R' ),
5202            TEMP_INF        =SIMP(statut='f',typ='R' ),
5203          ),
5204
5205          ACOU_IMPO       =FACT(statut='f',max='**',
5206            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
5207            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5208            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5209            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5210            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5211            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5212            PRES            =SIMP(statut='o',typ='C' ),
5213          ),
5214
5215          EVOL_IMPO  =SIMP(statut='f',typ=(evol_noli,evol_elas,evol_ther),fr="Pour imposer les ddls d'un evol_xxx"),
5216          b_evol_impo = BLOC ( condition = "EVOL_IMPO != None",
5217            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',), # pour n'imposer que certaines CMPS (par défaut : toutes)
5218          ),
5219
5220          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
5221 )  ;
5222
5223 # ======================================================================
5224 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
5225 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5226 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5227 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5228 # (AT YOUR OPTION) ANY LATER VERSION.
5229 #
5230 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5231 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5232 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5233 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5234 #
5235 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5236 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5237 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5238 # ======================================================================
5239 # person_in_charge: jacques.pellet at edf.fr
5240 def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
5241   if MECA_IMPO != None  : return char_cine_meca
5242   if THER_IMPO != None  : return char_cine_ther
5243   raise AsException("type de concept resultat non prevu")
5244
5245 AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 101,sd_prod=affe_char_cine_f_prod,
5246                       fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres"
5247                         +" pour un traitement sans dualisation",
5248                      reentrant='n',
5249             UIinfo={"groupes":("Chargements","Mécanique",)},
5250          regles=(UN_PARMI('MECA_IMPO','THER_IMPO')),
5251          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
5252          MECA_IMPO       =FACT(statut='f',max='**',
5253            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5254                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
5255                                'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
5256                                'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
5257                                'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
5258                                'VO6','WI6','WO6','WO','WI1','WO1','GONF',
5259                                'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
5260                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22',
5261                                'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21',
5262                                'PRES22','PRES23','PRES31','PRES32','PRES33','LH1','GLIS'),),
5263            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5264            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5265            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5266            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5267            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5268            DX    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5269            DY    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5270            DZ    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5271            DRX   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5272            DRY   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5273            DRZ   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5274            GRX   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5275            PRES  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5276            PHI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5277            TEMP  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5278            PRE1  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5279            PRE2  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5280            UI2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5281            UI3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5282            UI4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5283            UI5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5284            UI6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5285            UO2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5286            UO3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5287            UO4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5288            UO5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5289            UO6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5290            VI2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5291            VI3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5292            VI4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5293            VI5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5294            VI6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5295            VO2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5296            VO3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5297            VO4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5298            VO5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5299            VO6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5300            WI2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5301            WI3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5302            WI4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5303            WI5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5304            WI6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5305            WO2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5306            WO3   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5307            WO4   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5308            WO5   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5309            WO6   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5310            WO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5311            WI1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5312            WO1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5313            GONF  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5314            H1X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5315            H1Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5316            H1Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5317            E1X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5318            E1Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5319            E1Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5320            E2X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5321            E2Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5322            E2Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5323            E3X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5324            E3Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5325            E3Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5326            E4X   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5327            E4Y   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5328            E4Z   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5329            V11   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5330            V12   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5331            V13   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5332            V21   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5333            V22   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5334            V23   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5335            V31   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5336            V32   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5337            V33   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5338            PRES11=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5339            PRES12=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5340            PRES13=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5341            PRES21=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5342            PRES22=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5343            PRES23=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5344            PRES31=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5345            PRES32=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5346            PRES33=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5347            LH1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5348            GLIS  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5349
5350          ),
5351          THER_IMPO       =FACT(statut='f',max='**',
5352            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5353                    AU_MOINS_UN('TEMP','TEMP_MIL','TEMP_INF','TEMP_SUP' ),),
5354            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5355            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5356            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5357            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5358            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5359            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5360            TEMP_MIL        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5361            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5362            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5363          ),
5364          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
5365 )  ;
5366
5367 # ======================================================================
5368 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
5369 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5370 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5371 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5372 # (AT YOUR OPTION) ANY LATER VERSION.
5373 #
5374 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5375 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5376 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5377 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5378 #
5379 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5380 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5381 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5382 # ======================================================================
5383 # person_in_charge: mickael.abbas at edf.fr
5384 AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
5385                     fr="Affectation de charges et conditions aux limites mécaniques constantes",
5386                      reentrant='n',
5387             UIinfo={"groupes":("Chargements","Mécanique",)},
5388          regles=(AU_MOINS_UN('EVOL_CHAR','PESANTEUR','ROTATION','DDL_IMPO','DDL_POUTRE','FACE_IMPO',
5389                              'CHAMNO_IMPO','ARETE_IMPO',
5390                              'LIAISON_DDL','LIAISON_OBLIQUE','LIAISON_GROUP','LIAISON_MAIL',
5391                              'LIAISON_CYCL','LIAISON_SOLIDE','LIAISON_ELEM','LIAISON_UNIF',
5392                              'LIAISON_CHAMNO','LIAISON_RBE3','LIAISON_INTERF',
5393                              'VECT_ASSE',
5394                              'FORCE_NODALE','FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
5395                              'PRE_SIGM','PRES_REP','EFFE_FOND','PRE_EPSI','FORCE_POUTRE','FORCE_TUYAU',
5396                              'FORCE_COQUE','LIAISON_COQUE','RELA_CINE_BP','FORCE_ELEC','INTE_ELEC',
5397                              'IMPE_FACE','VITE_FACE','ONDE_FLUI','FLUX_THM_REP','FORCE_SOL',),
5398                          ),
5399          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5400          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
5401          EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
5402                                typ=evol_char ),
5403
5404          PESANTEUR       =FACT(statut='f',max=1,fr="Champ de pesanteur",
5405             GROUP_MA         =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5406             MAILLE           =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5407             GRAVITE          =SIMP(statut='o',typ='R',min=1,max=1),
5408             DIRECTION        =SIMP(statut='o',typ='R',min=3,max=3),),
5409
5410          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
5411                                into=('DUALISATION',),defaut='DUALISATION',),
5412                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
5413
5414          ROTATION        =FACT(statut='f', max=1, 
5415              fr="Définition d'un chargement de rotation",
5416              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(), max='**'),
5417              MAILLE          =SIMP(statut='f',typ=ma, validators=NoRepeat(),max='**'),
5418              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5419              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5420              VITESSE         =SIMP(statut='o', typ='R',min=1,max=1),
5421              AXE             =SIMP(statut='o', typ='R',min=2, max=3),
5422              CENTRE          =SIMP(statut='f',typ='R',min=2, max=3),
5423              b_rotation_tout=BLOC(condition="(GROUP_MA == None) and (MAILLE ==None)",
5424                        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),),),
5425
5426          DDL_IMPO        =FACT(statut='f',max='**',
5427              fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
5428              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5429                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
5430                                  'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
5431                                  'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
5432                                  'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
5433                                  'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON',
5434                                  'H1X','H1Y','H1Z','H2X','H2Y','H2Z','H3X','H3Y','H3Z','H4X','H4Y','H4Z',
5435                                  'E1X','E1Y','E1Z','E2X','E2Y','E2Z','E3X','E3Y','E3Z','E4X','E4Y','E4Z',
5436                                  'LAGS_C','LAGS_F1','LAGS_F2','LAG2_C','LAG2_F1','LAG2_F2','LAG3_C','LAG3_F1',
5437                                  'V11','V12','V13','V21','V22','V23','V31','V32','V33',
5438                                  'PRES11','PRES12','PRES13','PRES21','PRES22','PRES23','PRES31','PRES32','PRES33','LH1','GLIS'),),
5439              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5440              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5441              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5442              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5443              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5444              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5445              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5446              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5447              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5448              LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
5449              DX              =SIMP(statut='f',typ='R' ),
5450              DY              =SIMP(statut='f',typ='R' ),
5451              DZ              =SIMP(statut='f',typ='R' ),
5452              DRX             =SIMP(statut='f',typ='R' ),
5453              DRY             =SIMP(statut='f',typ='R' ),
5454              DRZ             =SIMP(statut='f',typ='R' ),
5455              GRX             =SIMP(statut='f',typ='R' ),
5456              PRES            =SIMP(statut='f',typ='R' ),
5457              PHI             =SIMP(statut='f',typ='R' ),
5458              TEMP            =SIMP(statut='f',typ='R' ),
5459              PRE1            =SIMP(statut='f',typ='R' ),
5460              PRE2            =SIMP(statut='f',typ='R' ),
5461              UI2             =SIMP(statut='f',typ='R' ),
5462              UI3             =SIMP(statut='f',typ='R' ),
5463              UI4             =SIMP(statut='f',typ='R' ),
5464              UI5             =SIMP(statut='f',typ='R' ),
5465              UI6             =SIMP(statut='f',typ='R' ),
5466              UO2             =SIMP(statut='f',typ='R' ),
5467              UO3             =SIMP(statut='f',typ='R' ),
5468              UO4             =SIMP(statut='f',typ='R' ),
5469              UO5             =SIMP(statut='f',typ='R' ),
5470              UO6             =SIMP(statut='f',typ='R' ),
5471              VI2             =SIMP(statut='f',typ='R' ),
5472              VI3             =SIMP(statut='f',typ='R' ),
5473              VI4             =SIMP(statut='f',typ='R' ),
5474              VI5             =SIMP(statut='f',typ='R' ),
5475              VI6             =SIMP(statut='f',typ='R' ),
5476              VO2             =SIMP(statut='f',typ='R' ),
5477              VO3             =SIMP(statut='f',typ='R' ),
5478              VO4             =SIMP(statut='f',typ='R' ),
5479              VO5             =SIMP(statut='f',typ='R' ),
5480              VO6             =SIMP(statut='f',typ='R' ),
5481              WI2             =SIMP(statut='f',typ='R' ),
5482              WI3             =SIMP(statut='f',typ='R' ),
5483              WI4             =SIMP(statut='f',typ='R' ),
5484              WI5             =SIMP(statut='f',typ='R' ),
5485              WI6             =SIMP(statut='f',typ='R' ),
5486              WO2             =SIMP(statut='f',typ='R' ),
5487              WO3             =SIMP(statut='f',typ='R' ),
5488              WO4             =SIMP(statut='f',typ='R' ),
5489              WO5             =SIMP(statut='f',typ='R' ),
5490              WO6             =SIMP(statut='f',typ='R' ),
5491              WO              =SIMP(statut='f',typ='R' ),
5492              WI1             =SIMP(statut='f',typ='R' ),
5493              WO1             =SIMP(statut='f',typ='R' ),
5494              GONF            =SIMP(statut='f',typ='R' ),
5495              H1X             =SIMP(statut='f',typ='R' ),
5496              H1Y             =SIMP(statut='f',typ='R' ),
5497              H1Z             =SIMP(statut='f',typ='R' ),
5498              H2X             =SIMP(statut='f',typ='R' ),
5499              H2Y             =SIMP(statut='f',typ='R' ),
5500              H2Z             =SIMP(statut='f',typ='R' ),
5501              H3X             =SIMP(statut='f',typ='R' ),
5502              H3Y             =SIMP(statut='f',typ='R' ),
5503              H3Z             =SIMP(statut='f',typ='R' ),
5504              H4X             =SIMP(statut='f',typ='R' ),
5505              H4Y             =SIMP(statut='f',typ='R' ),
5506              H4Z             =SIMP(statut='f',typ='R' ),
5507              E1X             =SIMP(statut='f',typ='R' ),
5508              E1Y             =SIMP(statut='f',typ='R' ),
5509              E1Z             =SIMP(statut='f',typ='R' ),
5510              E2X             =SIMP(statut='f',typ='R' ),
5511              E2Y             =SIMP(statut='f',typ='R' ),
5512              E2Z             =SIMP(statut='f',typ='R' ),
5513              E3X             =SIMP(statut='f',typ='R' ),
5514              E3Y             =SIMP(statut='f',typ='R' ),
5515              E3Z             =SIMP(statut='f',typ='R' ),
5516              E4X             =SIMP(statut='f',typ='R' ),
5517              E4Y             =SIMP(statut='f',typ='R' ),
5518              E4Z             =SIMP(statut='f',typ='R' ),
5519              LAGS_C          =SIMP(statut='f',typ='R' ),
5520              LAGS_F1         =SIMP(statut='f',typ='R' ),
5521              LAGS_F2         =SIMP(statut='f',typ='R' ),
5522              LAG2_C          =SIMP(statut='f',typ='R' ),
5523              LAG2_F1         =SIMP(statut='f',typ='R' ),
5524              LAG2_F2         =SIMP(statut='f',typ='R' ),
5525              LAG3_C          =SIMP(statut='f',typ='R' ),
5526              LAG3_F1         =SIMP(statut='f',typ='R' ),
5527              V11             =SIMP(statut='f',typ='R' ),
5528              V12             =SIMP(statut='f',typ='R' ),
5529              V13             =SIMP(statut='f',typ='R' ),
5530              V21             =SIMP(statut='f',typ='R' ),
5531              V22             =SIMP(statut='f',typ='R' ),
5532              V23             =SIMP(statut='f',typ='R' ),
5533              V31             =SIMP(statut='f',typ='R' ),
5534              V32             =SIMP(statut='f',typ='R' ),
5535              V33             =SIMP(statut='f',typ='R' ),
5536              PRES11          =SIMP(statut='f',typ='R' ),
5537              PRES12          =SIMP(statut='f',typ='R' ),
5538              PRES13          =SIMP(statut='f',typ='R' ),
5539              PRES21          =SIMP(statut='f',typ='R' ),
5540              PRES22          =SIMP(statut='f',typ='R' ),
5541              PRES23          =SIMP(statut='f',typ='R' ),
5542              PRES31          =SIMP(statut='f',typ='R' ),
5543              PRES32          =SIMP(statut='f',typ='R' ),
5544              PRES33          =SIMP(statut='f',typ='R' ),
5545              LH1             =SIMP(statut='f',typ='R' ),
5546              GLIS            =SIMP(statut='f',typ='R' ),
5547            ),
5548
5549
5550
5551          DDL_POUTRE    =FACT(statut='f',max='**',
5552              fr="Bloque des DDLs dans un repère local d'une poutre",
5553              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5554                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),
5555                      UN_PARMI('VECT_Y','ANGL_VRIL'),),
5556              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5557              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5558              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5559              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5560              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5561              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5562              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5563              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5564              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5565
5566
5567              DX              =SIMP(statut='f',typ='R' ),
5568              DY              =SIMP(statut='f',typ='R' ),
5569              DZ              =SIMP(statut='f',typ='R' ),
5570              DRX             =SIMP(statut='f',typ='R' ),
5571              DRY             =SIMP(statut='f',typ='R' ),
5572              DRZ             =SIMP(statut='f',typ='R' ),
5573 #  définition du repère local
5574              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
5575              ANGL_VRIL       =SIMP(statut='f',typ='R',),
5576 #  restriction sur les mailles servant à définir le repère local
5577              GROUP_MA_REPE   =SIMP(statut='f',typ=grma,),
5578              MAILLE_REPE     =SIMP(statut='f',typ=ma,),
5579                             ),
5580
5581
5582
5583            FACE_IMPO       =FACT(statut='f',max='**',
5584              fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)",
5585              regles=(UN_PARMI('GROUP_MA','MAILLE',),
5586                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
5587                                  'TEMP','PRE1','PRE2','DNOR','DTAN'),
5588                      EXCLUS('DNOR','DX'),
5589                      EXCLUS('DNOR','DY'),
5590                      EXCLUS('DNOR','DZ'),
5591                      EXCLUS('DNOR','DRX'),
5592                      EXCLUS('DNOR','DRY'),
5593                      EXCLUS('DNOR','DRZ'),
5594                      EXCLUS('DTAN','DX'),
5595                      EXCLUS('DTAN','DY'),
5596                      EXCLUS('DTAN','DZ'),
5597                      EXCLUS('DTAN','DRX'),
5598                      EXCLUS('DTAN','DRY'),
5599                      EXCLUS('DTAN','DRZ'),),
5600 #  rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
5601              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5602              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5603              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5604              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5605              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5606              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5607              DX              =SIMP(statut='f',typ='R' ),
5608              DY              =SIMP(statut='f',typ='R' ),
5609              DZ              =SIMP(statut='f',typ='R' ),
5610              DRX             =SIMP(statut='f',typ='R' ),
5611              DRY             =SIMP(statut='f',typ='R' ),
5612              DRZ             =SIMP(statut='f',typ='R' ),
5613              DNOR            =SIMP(statut='f',typ='R' ),
5614              DTAN            =SIMP(statut='f',typ='R' ),
5615              GRX             =SIMP(statut='f',typ='R' ),
5616              PRES            =SIMP(statut='f',typ='R' ),
5617              PHI             =SIMP(statut='f',typ='R' ),
5618              TEMP            =SIMP(statut='f',typ='R' ),
5619              PRE1            =SIMP(statut='f',typ='R' ),
5620              PRE2            =SIMP(statut='f',typ='R' ),
5621            ),
5622
5623          CHAMNO_IMPO  =FACT(statut='f',max='**',
5624              fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster",
5625 #  type de cham_no_sdaster CO()
5626              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
5627              COEF_MULT       =SIMP(statut='o',typ='R' ),
5628              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
5629            ),
5630
5631          ARETE_IMPO       =FACT(statut='f',max='**',
5632              fr="Impose à tous les noeuds d'une arete des elements 3D une ou plusieurs valeurs de déplacement",
5633              regles=(UN_PARMI('GROUP_MA','MAILLE',),
5634                      AU_MOINS_UN('DX','DY','DZ','DTAN','PRES','PHI','TEMP','PRE1','PRE2'),
5635                      EXCLUS('DTAN','DX'),
5636                      EXCLUS('DTAN','DY'),
5637                      EXCLUS('DTAN','DZ'),),
5638              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5639              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5640              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5641              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5642              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5643              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5644              DX              =SIMP(statut='f',typ='R' ),
5645              DY              =SIMP(statut='f',typ='R' ),
5646              DZ              =SIMP(statut='f',typ='R' ),
5647              DTAN            =SIMP(statut='f',typ='R' ),
5648              PRE1            =SIMP(statut='f',typ='R' ),
5649              PRE2            =SIMP(statut='f',typ='R' ),
5650              PRES            =SIMP(statut='f',typ='R' ),
5651              PHI             =SIMP(statut='f',typ='R' ),
5652              TEMP            =SIMP(statut='f',typ='R' ),
5653            ),
5654
5655            LIAISON_DDL     =FACT(statut='f',max='**',
5656              fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds",
5657              regles=(UN_PARMI('GROUP_NO','NOEUD'),),
5658              GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
5659              NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
5660              DDL             =SIMP(statut='o',typ='TXM',max='**'),
5661              COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
5662              COEF_IMPO       =SIMP(statut='o',typ='R' ),
5663            ),
5664
5665            LIAISON_OBLIQUE =FACT(statut='f',max='**',
5666              fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante"
5667               +" dans un repère oblique quelconque",
5668              regles=(AU_MOINS_UN('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
5669                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),),
5670              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5671              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5672              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5673              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5674              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5675              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5676              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5677              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5678              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
5679              DX              =SIMP(statut='f',typ='R' ),
5680              DY              =SIMP(statut='f',typ='R' ),
5681              DZ              =SIMP(statut='f',typ='R' ),
5682              DRX             =SIMP(statut='f',typ='R' ),
5683              DRY             =SIMP(statut='f',typ='R' ),
5684              DRZ             =SIMP(statut='f',typ='R' ),
5685            ),
5686
5687            LIAISON_GROUP   =FACT(statut='f',max='**',
5688              fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds",
5689              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
5690                      UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
5691                      EXCLUS('GROUP_MA_1','GROUP_NO_2'),
5692                      EXCLUS('GROUP_MA_1','NOEUD_2'),
5693                      EXCLUS('GROUP_NO_1','GROUP_MA_2'),
5694                      EXCLUS('GROUP_NO_1','MAILLE_2'),
5695                      EXCLUS('MAILLE_1','GROUP_NO_2'),
5696                      EXCLUS('MAILLE_1','NOEUD_2'),
5697                      EXCLUS('NOEUD_1','GROUP_MA_2'),
5698                      EXCLUS('NOEUD_1','MAILLE_2'),
5699                      EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
5700
5701                GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5702                MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5703                GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5704                MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5705                GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5706                NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5707                GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5708                NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5709
5710              SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
5711              SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
5712              DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
5713              COEF_MULT_1     =SIMP(statut='o',typ='R'  ,max='**'),
5714              DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
5715              COEF_MULT_2     =SIMP(statut='o',typ='R'  ,max='**'),
5716              COEF_IMPO       =SIMP(statut='o',typ='R' ),
5717              SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5718              TRAN            =SIMP(statut='f',typ='R',max=3),
5719              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
5720              CENTRE          =SIMP(statut='f',typ='R',max=3),
5721            ),
5722
5723            LIAISON_MAIL    =FACT(statut='f',max='**',
5724              fr="Définit des relations linéaires permettant de recoller deux bords d'une structure",
5725              regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
5726                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL')),
5727               GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5728               MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5729               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5730               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5731               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5732               NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5733
5734               TYPE_RACCORD    =SIMP(statut='o',typ='TXM',defaut="MASSIF",into=("MASSIF","COQUE","COQUE_MASSIF","MASSIF_COQUE",)),
5735
5736               b_MASSIF     =BLOC ( condition = "TYPE_RACCORD == 'MASSIF'",
5737                  regles=( PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
5738               TRAN            =SIMP(statut='f',typ='R',max=3 ),
5739               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
5740               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
5741               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
5742               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
5743               ),
5744               b_COQUE_MASSIF =BLOC ( condition = "TYPE_RACCORD == 'COQUE_MASSIF'",
5745                  EPAIS           =SIMP(statut='o',typ='R'),
5746                  CHAM_NORMALE    =SIMP(statut='o',typ=cham_no_sdaster),
5747               ),
5748               ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
5749          ),
5750
5751            LIAISON_CYCL    =FACT(statut='f',max='**',
5752              fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques",
5753              regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'),
5754                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
5755                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),
5756                      ),
5757               GROUP_MA_MAIT1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5758               MAILLE_MAIT1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5759               GROUP_MA_MAIT2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5760               MAILLE_MAIT2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5761               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5762               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5763               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5764               NOEUD_ESCL     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5765               TRAN            =SIMP(statut='f',typ='R',max=3 ),
5766               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
5767               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
5768               COEF_MAIT1            =SIMP(statut='f',typ='R',max=1 ),
5769               COEF_MAIT2            =SIMP(statut='f',typ='R',max=1 ),
5770               COEF_ESCL            =SIMP(statut='f',typ='R',max=1 ),
5771               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
5772               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
5773          ),
5774
5775
5776            LIAISON_SOLIDE  =FACT(statut='f',max='**',
5777              fr="Modélise une partie indéformable d'une structure."
5778               +" Le mot clé TRAN permettent d'imposer le déplacement de la partie indéformable.",
5779              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
5780
5781              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5782              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5783              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5784              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5785              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5786              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5787              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5788              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5789
5790              TRAN            =SIMP(statut='f',typ='R',max=3 ),
5791              DIST_MIN        =SIMP(statut='f',typ='R'),
5792              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
5793            ),
5794
5795          LIAISON_ELEM    =FACT(statut='f',max='**',
5796             fr="Modélise le raccord : d'une partie massive 3D avec une poutre ou avec un tuyau, d'une coque"
5797                +" avec une poutre ou avec un tuyau, d'une plaque avec une poutre",
5798             regles      =(UN_PARMI('GROUP_MA_1','MAILLE_1'), UN_PARMI('GROUP_NO_2','NOEUD_2'),),
5799             OPTION      =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","2D_POU","COQ_POU","COQ_TUYAU","PLAQ_POUT_ORTH") ),
5800
5801             GROUP_MA_1  =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5802             MAILLE_1    =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5803             GROUP_NO_2  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5804             NOEUD_2     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5805
5806             b_plaq_pout_orth =BLOC( condition = "OPTION == 'PLAQ_POUT_ORTH'",
5807                VERIF_EXCENT   =SIMP(statut='o',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5808             ),
5809
5810             b_cara_pout =BLOC( condition = "OPTION == 'COQ_POU' or OPTION == '3D_TUYAU' or OPTION == 'COQ_TUYAU'",
5811                CARA_ELEM   =SIMP(statut='o',typ=(cara_elem) ),
5812                AXE_POUTRE  =SIMP(statut='o',typ='R',max=3),
5813             ),
5814
5815
5816             NUME_LAGR   =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
5817             ANGL_MAX    =SIMP(statut='f',typ='R',defaut= 1. ),
5818
5819          ),
5820
5821            LIAISON_UNIF    =FACT(statut='f',max='**',
5822              fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
5823              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
5824
5825              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5826              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5827              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5828              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5829              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5830              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5831              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5832              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5833
5834              DDL             =SIMP(statut='o',typ='TXM',max='**'),
5835            ),
5836
5837          LIAISON_CHAMNO  =FACT(statut='f',max='**',
5838              fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO",
5839 #  type de cham_no_sdaster CO()
5840              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
5841              COEF_IMPO       =SIMP(statut='o',typ='R' ),
5842              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
5843            ),
5844
5845          LIAISON_RBE3    =FACT(statut='f',max='**',
5846             fr="""Modélise des relations linéaires de type RBE3 entre
5847                 les degrés de liberté d'un noeud maître et des noeuds esclaves.""",
5848             regles          =(UN_PARMI('GROUP_NO_MAIT','NOEUD_MAIT'), UN_PARMI('GROUP_NO_ESCL','NOEUD_ESCL'),),
5849             GROUP_NO_MAIT   =SIMP(statut='f',typ=grno,max=1),
5850             NOEUD_MAIT      =SIMP(statut='f',typ=no  ,max=1),
5851             DDL_MAIT        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=6,into=('DX','DY','DZ','DRX','DRY','DRZ')),
5852             GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5853             NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),min=1,max='**'),
5854             DDL_ESCL        =SIMP(statut='o',typ='TXM',min=1,max='**'),
5855             COEF_ESCL       =SIMP(statut='f',typ='R',min=1,max='**'),
5856             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
5857          ),
5858
5859          LIAISON_INTERF  =FACT(statut='f',max='**',
5860              fr="Définit une relation linéaire entre les DDLs d'interface à partir d'un MACRELEM",
5861              MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna),
5862              TYPE_LIAISON    =SIMP(statut='f',typ='TXM',defaut="RIGIDE",into=("RIGIDE","SOUPLE") ),
5863            ),
5864
5865 #         SIMP(statut='f',typ='TXM',defaut="NON" ),
5866
5867          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster ),
5868 #
5869 # FORCES
5870 #
5871          FORCE_NODALE    =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
5872            regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
5873                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
5874            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5875            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5876            FX              =SIMP(statut='f',typ='R' ),
5877            FY              =SIMP(statut='f',typ='R' ),
5878            FZ              =SIMP(statut='f',typ='R' ),
5879            MX              =SIMP(statut='f',typ='R' ),
5880            MY              =SIMP(statut='f',typ='R' ),
5881            MZ              =SIMP(statut='f',typ='R' ),
5882            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
5883          ),
5884
5885          FORCE_FACE      =FACT(statut='f',max='**',
5886              fr="Applique des forces surfaciques sur une face d'élément volumique",
5887              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
5888                      AU_MOINS_UN('FX','FY','FZ'),),
5889              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5890              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5891              FX              =SIMP(statut='f',typ='R' ),
5892              FY              =SIMP(statut='f',typ='R' ),
5893              FZ              =SIMP(statut='f',typ='R' ),
5894            ),
5895
5896          FORCE_ARETE     =FACT(statut='f',max='**',
5897          fr="Applique des forces linéiques à une arete d'élément volumique ou de coque",
5898              regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
5899                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
5900              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5901              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5902              FX              =SIMP(statut='f',typ='R' ),
5903              FY              =SIMP(statut='f',typ='R' ),
5904              FZ              =SIMP(statut='f',typ='R' ),
5905              MX              =SIMP(statut='f',typ='R' ),
5906              MY              =SIMP(statut='f',typ='R' ),
5907              MZ              =SIMP(statut='f',typ='R' ),
5908            ),
5909
5910          FORCE_CONTOUR   =FACT(statut='f',max='**',
5911              fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER",
5912              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
5913                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
5914              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5915              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5916              FX              =SIMP(statut='f',typ='R' ),
5917              FY              =SIMP(statut='f',typ='R' ),
5918              FZ              =SIMP(statut='f',typ='R' ),
5919              MX              =SIMP(statut='f',typ='R' ),
5920              MY              =SIMP(statut='f',typ='R' ),
5921              MZ              =SIMP(statut='f',typ='R' ),
5922            ),
5923
5924          FORCE_INTERNE   =FACT(statut='f',max='**',
5925              fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique",
5926              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
5927                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
5928                      AU_MOINS_UN('FX','FY','FZ' ),),
5929              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5930              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5931              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5932              FX              =SIMP(statut='f',typ='R' ),
5933              FY              =SIMP(statut='f',typ='R' ),
5934              FZ              =SIMP(statut='f',typ='R' ),
5935            ),
5936
5937          PRE_SIGM   =FACT(statut='f',max='**',
5938              fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique",
5939              #INST            =SIMP(statut='f',typ='R' ),
5940              SIGM            =SIMP(statut='o',typ=(cham_elem,carte_sdaster)),
5941            ),
5942
5943          PRES_REP        =FACT(statut='f',max='**',
5944              fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux",
5945              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','FISSURE'),
5946                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'),
5947                      AU_MOINS_UN('PRES','CISA_2D' ),),
5948              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5949              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5950              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5951              FISSURE         =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,),
5952              PRES            =SIMP(statut='f',typ='R' ),
5953              CISA_2D         =SIMP(statut='f',typ='R' ),
5954            ),
5955
5956          EFFE_FOND       =FACT(statut='f',max='**',
5957            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression",
5958            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
5959            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
5960            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5961            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5962            PRES            =SIMP(statut='o',typ='R' ),
5963          ),
5964
5965          PRE_EPSI       =FACT(statut='f',max='**',
5966              fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure",
5967              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
5968                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
5969                      AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
5970                                  'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
5971              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5972              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5973              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5974              EPXX            =SIMP(statut='f',typ='R' ),
5975              EPYY            =SIMP(statut='f',typ='R' ),
5976              EPZZ            =SIMP(statut='f',typ='R' ),
5977              EPXY            =SIMP(statut='f',typ='R' ),
5978              EPXZ            =SIMP(statut='f',typ='R' ),
5979              EPYZ            =SIMP(statut='f',typ='R' ),
5980              EPX             =SIMP(statut='f',typ='R' ),
5981              KY              =SIMP(statut='f',typ='R' ),
5982              KZ              =SIMP(statut='f',typ='R' ),
5983              EXX             =SIMP(statut='f',typ='R' ),
5984              EYY             =SIMP(statut='f',typ='R' ),
5985              EXY             =SIMP(statut='f',typ='R' ),
5986              KXX             =SIMP(statut='f',typ='R' ),
5987              KYY             =SIMP(statut='f',typ='R' ),
5988              KXY             =SIMP(statut='f',typ='R' ),
5989            ),
5990
5991         FORCE_POUTRE    =FACT(statut='f',max='**',
5992              fr="Applique des forces linéiques sur des éléments de type poutre",
5993              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
5994                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
5995                      ),
5996              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5997              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5998              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5999              TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
6000 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
6001                b_force = BLOC(condition = "TYPE_CHARGE == 'FORCE'",
6002                           regles=(
6003                     AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','N','VY','VZ','MT','MFY','MFZ'),
6004                    PRESENT_ABSENT('FX','N','VY','VZ','MT','MFY','MFZ'),
6005                      PRESENT_ABSENT('FY','N','VY','VZ','MT','MFY','MFZ'),
6006                      PRESENT_ABSENT('FZ','N','VY','VZ','MT','MFY','MFZ'),
6007                      PRESENT_ABSENT('MX','N','VY','VZ','MT','MFY','MFZ'),
6008                      PRESENT_ABSENT('MY','N','VY','VZ','MT','MFY','MFZ'),
6009                      PRESENT_ABSENT('MZ','N','VY','VZ','MT','MFY','MFZ'),
6010                      PRESENT_ABSENT('N','FX','FY','FZ','MX','MY','MZ'),
6011                      PRESENT_ABSENT('VY','FX','FY','FZ','MX','MY','MZ'),
6012                      PRESENT_ABSENT('VZ','FX','FY','FZ','MX','MY','MZ'),
6013                      PRESENT_ABSENT('MT','FX','FY','FZ','MX','MY','MZ'),
6014                      PRESENT_ABSENT('MFY','FX','FY','FZ','MX','MY','MZ'),
6015                      PRESENT_ABSENT('MFZ','FX','FY','FZ','MX','MY','MZ'),),
6016                     FX              =SIMP(statut='f',typ='R' ),
6017                     FY              =SIMP(statut='f',typ='R' ),
6018                     FZ              =SIMP(statut='f',typ='R' ),
6019                     MX              =SIMP(statut='f',typ='R' ),
6020                     MY              =SIMP(statut='f',typ='R' ),
6021                     MZ              =SIMP(statut='f',typ='R' ),
6022                     N               =SIMP(statut='f',typ='R' ),
6023                     VY              =SIMP(statut='f',typ='R' ),
6024                     VZ              =SIMP(statut='f',typ='R' ),
6025                     MT              =SIMP(statut='f',typ='R' ),
6026                     MFY             =SIMP(statut='f',typ='R' ),
6027                     MFZ             =SIMP(statut='f',typ='R' ),
6028                                   ),
6029            b_vent = BLOC(condition = "TYPE_CHARGE == 'VENT'",
6030                          regles=(
6031                     AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
6032                    PRESENT_ABSENT('FX','N','VY','VZ',),
6033                      PRESENT_ABSENT('FY','N','VY','VZ',),
6034                      PRESENT_ABSENT('FZ','N','VY','VZ',),
6035                      PRESENT_ABSENT('N','FX','FY','FZ',),
6036                      PRESENT_ABSENT('VY','FX','FY','FZ',),
6037                      PRESENT_ABSENT('VZ','FX','FY','FZ',),),
6038                     FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6039                     FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6040                     FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6041                     N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6042                     VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6043                     VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6044                                   ),
6045
6046            ),
6047
6048          FORCE_TUYAU     =FACT(statut='f',max='**',
6049              fr="Applique une pression sur des éléments TUYAU",
6050              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6051                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6052              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6053              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6054              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6055              PRES            =SIMP(statut='f',typ='R' ),
6056            ),
6057
6058          FORCE_COQUE     =FACT(statut='f',max='**',
6059              fr="Applique des forces surfaciques sur des éléments de types coques",
6060              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6061                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6062                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
6063                      PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
6064                      PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
6065                      PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
6066                      PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
6067                      PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
6068                      PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
6069                      PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
6070                      PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
6071                      PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
6072                      PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
6073                      PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
6074                      PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
6075 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
6076              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6077              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6078              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6079
6080                FX              =SIMP(statut='f',typ='R' ),
6081                FY              =SIMP(statut='f',typ='R' ),
6082                FZ              =SIMP(statut='f',typ='R' ),
6083                MX              =SIMP(statut='f',typ='R' ),
6084                MY              =SIMP(statut='f',typ='R' ),
6085                MZ              =SIMP(statut='f',typ='R' ),
6086
6087                F1              =SIMP(statut='f',typ='R' ),
6088                F2              =SIMP(statut='f',typ='R' ),
6089                F3              =SIMP(statut='f',typ='R' ),
6090                MF1             =SIMP(statut='f',typ='R' ),
6091                MF2             =SIMP(statut='f',typ='R' ),
6092
6093              PRES            =SIMP(statut='f',typ='R' ),
6094              PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
6095            ),
6096
6097            LIAISON_COQUE   =FACT(statut='f',max='**',
6098              fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
6099              regles=(AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_2','MAILLE_2',
6100                                'GROUP_NO_1','NOEUD_1','GROUP_NO_2','NOEUD_2',),),
6101              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6102              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6103              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6104              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6105              SANS_GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6106              SANS_MAILLE_1   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6107              SANS_GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6108              SANS_NOEUD_1    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6109              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6110              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6111              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6112              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6113              SANS_GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6114              SANS_MAILLE_2   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6115              SANS_GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6116              SANS_NOEUD_2    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6117              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
6118            ),
6119
6120          RELA_CINE_BP    =FACT(statut='f',max='**',
6121            fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier"
6122               +" la prise en compte des contraintes initiales dans les cables",
6123            CABLE_BP        =SIMP(statut='o',typ=cabl_precont ),
6124            SIGM_BPEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6125            RELA_CINE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6126            DIST_MIN        =SIMP(statut='f',typ='R'),
6127          ),
6128
6129          FORCE_ELEC      =FACT(statut='f',max='**',
6130              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
6131                  +" secondaire droit",
6132              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6133                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6134
6135              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6136              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6137              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6138
6139              POSITION        =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
6140              b_fxyz  =BLOC ( condition = "POSITION == None",
6141                   FX   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6142                   FY   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6143                   FZ   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6144                        ),
6145
6146              b_para     =BLOC ( condition = "POSITION == 'PARA'",
6147                regles=(UN_PARMI('TRANS','DIST'),),
6148                TRANS           =SIMP(statut='f',typ='R',max=3),
6149                DIST            =SIMP(statut='f',typ='R' ),
6150                b_point2        =BLOC ( condition = "DIST != None",
6151                  POINT2           =SIMP(statut='o',typ='R',max=3),
6152                ),
6153              ),
6154              b_fini_infi     =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
6155                POINT1          =SIMP(statut='o',typ='R',max=3),
6156                POINT2          =SIMP(statut='o',typ='R',max=3),
6157              ),
6158            ),
6159
6160
6161
6162
6163         INTE_ELEC       =FACT(statut='f',max='**',
6164              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
6165                +" secondaire non nécessairement droit",
6166              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6167                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6168                      AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
6169                      EXCLUS('TRANS','SYME'),),
6170              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6171              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6172              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6173              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6174              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6175              TRANS           =SIMP(statut='f',typ='R' ,max='**'),
6176              SYME            =SIMP(statut='f',typ='R' ,max='**'),
6177            ),
6178
6179
6180          IMPE_FACE       =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**',
6181              regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
6182              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6183              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6184              IMPE            =SIMP(statut='o',typ='R' ),
6185            ),
6186
6187          VITE_FACE       =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**',
6188              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
6189              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6190              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6191              VNOR            =SIMP(statut='o',typ='R' ),
6192            ),
6193
6194
6195
6196          ONDE_FLUI       =FACT(statut='f',max='**',
6197              fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face",
6198              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
6199              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6200              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6201              PRES            =SIMP(statut='o',typ='R' ),
6202            ),
6203
6204          FLUX_THM_REP    =FACT(statut='f',max='**',
6205              fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide"
6206                  +" (flux hydraulique)",
6207              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6208                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6209                      AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
6210              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6211              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6212              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6213              FLUN            =SIMP(statut='f',typ='R' ),
6214              FLUN_HYDR1      =SIMP(statut='f',typ='R' ),
6215              FLUN_HYDR2      =SIMP(statut='f',typ='R' ),
6216            ),
6217          FORCE_SOL       =FACT(statut='f',max=1,
6218              fr="Définition des impédances et forces  de sol temporelles",
6219            regles=(UN_PARMI('GROUP_NO_INTERF','SUPER_MAILLE'),
6220                    AU_MOINS_UN('UNITE_RESU_MASS','UNITE_RESU_RIGI','UNITE_RESU_AMOR'),),
6221            GROUP_NO_INTERF =SIMP(statut='f',typ=grno,),
6222            SUPER_MAILLE    =SIMP(statut='f',typ=ma,),
6223            UNITE_RESU_MASS =SIMP(statut='f',typ='I', ),
6224            UNITE_RESU_RIGI =SIMP(statut='f',typ='I', ),
6225            UNITE_RESU_AMOR =SIMP(statut='f',typ='I', ),
6226            UNITE_RESU_FORC =SIMP(statut='f',typ='I', ),
6227          ),
6228
6229          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
6230 )  ;
6231
6232 # ======================================================================
6233 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6234 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6235 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6236 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6237 # (AT YOUR OPTION) ANY LATER VERSION.
6238 #
6239 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6240 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6241 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6242 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6243 #
6244 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6245 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6246 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6247 # ======================================================================
6248 # person_in_charge: mickael.abbas at edf.fr
6249 AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
6250                      fr="Affectation de charges et conditions aux limites mécaniques complexes",
6251                      reentrant='n',
6252             UIinfo={"groupes":("Chargements","Mécanique",)},
6253          regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
6254          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
6255          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
6256                                into=('DUALISATION',),defaut='DUALISATION',),
6257                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
6258          DDL_IMPO        =FACT(statut='f',max='**',
6259            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
6260            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
6261                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON','GLIS' ),),
6262              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6263              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6264              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6265              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6266              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6267              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6268              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6269              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6270              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6271            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
6272            DX              =SIMP(statut='f',typ='C' ),
6273            DY              =SIMP(statut='f',typ='C' ),
6274            DZ              =SIMP(statut='f',typ='C' ),
6275            DRX             =SIMP(statut='f',typ='C' ),
6276            DRY             =SIMP(statut='f',typ='C' ),
6277            DRZ             =SIMP(statut='f',typ='C' ),
6278            GRX             =SIMP(statut='f',typ='C' ),
6279            PRES            =SIMP(statut='f',typ='C' ),
6280            PHI             =SIMP(statut='f',typ='C' ),
6281            GLIS            =SIMP(statut='f',typ='C' ),
6282          ),
6283          FORCE_POUTRE    =FACT(statut='f',max='**',
6284            fr="Applique des forces linéiques sur des éléments de type poutre",
6285            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6286                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6287                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
6288                    PRESENT_ABSENT('FX','N','VY','VZ',),
6289                    PRESENT_ABSENT('FY','N','VY','VZ',),
6290                    PRESENT_ABSENT('FZ','N','VY','VZ',),
6291                    PRESENT_ABSENT('N','FX','FY','FZ',),
6292                    PRESENT_ABSENT('VY', 'FX','FY','FZ',),
6293                    PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
6294            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6295            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6296            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6297            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
6298            FX              =SIMP(statut='f',typ='C' ),
6299            FY              =SIMP(statut='f',typ='C' ),
6300            FZ              =SIMP(statut='f',typ='C' ),
6301            N               =SIMP(statut='f',typ='C' ),
6302            VY              =SIMP(statut='f',typ='C' ),
6303            VZ              =SIMP(statut='f',typ='C' ),
6304          ),
6305          LIAISON_DDL     =FACT(statut='f',max='**',
6306            fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds",
6307            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
6308            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
6309            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
6310            DDL             =SIMP(statut='o',typ='TXM',max='**'),
6311            COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
6312            COEF_IMPO       =SIMP(statut='o',typ='C' ),
6313          ),
6314          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
6315 )  ;
6316
6317 # ======================================================================
6318 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
6319 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6320 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6321 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6322 # (AT YOUR OPTION) ANY LATER VERSION.
6323 #
6324 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6325 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6326 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6327 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6328 #
6329 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6330 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6331 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6332 # ======================================================================
6333 # person_in_charge: mickael.abbas at edf.fr
6334 AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
6335                       fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres",
6336                       reentrant='n',
6337             UIinfo={"groupes":("Chargements","Mécanique",)},
6338         regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
6339                             'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
6340                             'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE',
6341                             'LIAISON_OBLIQUE','PRE_EPSI','LIAISON_GROUP','LIAISON_UNIF',
6342                             'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU',
6343                             'EFFE_FOND','FLUX_THM_REP',),),
6344          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6345          MODELE          =SIMP(statut='o',typ=modele_sdaster),
6346          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
6347                                into=('DUALISATION',),defaut='DUALISATION',),
6348                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
6349
6350          DDL_IMPO        =FACT(statut='f',max='**',
6351            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies"
6352                +" par l'intermédiaire d'un concept fonction ",
6353            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
6354                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
6355                                'TEMP','PRE1','PRE2','GONF','LIAISON','H1X',
6356                                'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
6357                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','GLIS'),),
6358              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6359              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6360              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6361              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6362              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6363              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6364              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6365              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6366              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6367            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
6368            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6369            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6370            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6371            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6372            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6373            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6374            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6375            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6376            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6377            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6378            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6379            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6380            GONF            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6381            H1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6382            H1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6383            H1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6384            E1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6385            E1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6386            E1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6387            E2X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6388            E2Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6389            E2Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6390            E3X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6391            E3Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6392            E3Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6393            E4X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6394            E4Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6395            E4Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6396            LAGS_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6397            GLIS            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6398          ),
6399
6400          FACE_IMPO       =FACT(statut='f',max='**',
6401            fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)"
6402               +" fournies par l'intérmédiaire d'un concept fonction",
6403            regles=(UN_PARMI('GROUP_MA','MAILLE'),
6404                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'),
6405                    EXCLUS('DNOR','DX'),
6406                    EXCLUS('DNOR','DY'),
6407                    EXCLUS('DNOR','DZ'),
6408                    EXCLUS('DNOR','DRX'),
6409                    EXCLUS('DNOR','DRY'),
6410                    EXCLUS('DNOR','DRZ'),
6411                    EXCLUS('DTAN','DX'),
6412                    EXCLUS('DTAN','DY'),
6413                    EXCLUS('DTAN','DZ'),
6414                    EXCLUS('DTAN','DRX'),
6415                    EXCLUS('DTAN','DRY'),
6416                    EXCLUS('DTAN','DRZ'),),
6417 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
6418            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6419            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6420            SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6421            SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6422            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6423            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6424            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6425            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6426            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6427            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6428            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6429            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6430            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6431            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6432            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6433            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6434            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6435            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6436            DNOR            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6437            DTAN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6438          ),
6439
6440          LIAISON_DDL     =FACT(statut='f',max='**',
6441            fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par"
6442                +" l'intermediaire d'un concept de type fonction",
6443            regles=(UN_PARMI('GROUP_NO','NOEUD'),UN_PARMI('COEF_MULT','COEF_MULT_FONC'),),
6444            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
6445            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
6446            DDL             =SIMP(statut='o',typ='TXM',max='**'),
6447            COEF_MULT       =SIMP(statut='f',typ='R',max='**'),
6448            COEF_MULT_FONC  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
6449            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6450          ),
6451
6452          LIAISON_OBLIQUE =FACT(statut='f',max='**',
6453            fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique"
6454               +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction",
6455              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
6456                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),),
6457              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6458              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6459              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6460              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6461              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6462              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6463              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6464              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6465              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
6466              DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6467              DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6468              DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6469              DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6470              DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6471              DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6472          ),
6473
6474          LIAISON_GROUP   =FACT(statut='f',max='**',
6475            fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par"
6476                +" l'intermédiaire de concept fonction",
6477            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
6478                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
6479                    EXCLUS('GROUP_MA_1','GROUP_NO_2'),
6480                    EXCLUS('GROUP_MA_1','NOEUD_2'),
6481                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
6482                    EXCLUS('GROUP_NO_1','MAILLE_2'),
6483                    EXCLUS('MAILLE_1','GROUP_NO_2'),
6484                    EXCLUS('MAILLE_1','NOEUD_2'),
6485                    EXCLUS('NOEUD_1','GROUP_MA_2'),
6486                    EXCLUS('NOEUD_1','MAILLE_2'),
6487                    EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
6488            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6489            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6490            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6491            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6492            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6493            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6494            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6495            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6496            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6497            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6498            DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
6499            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
6500            DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
6501            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
6502            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6503            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6504            TRAN            =SIMP(statut='f',typ='R',max=3),
6505            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
6506            CENTRE          =SIMP(statut='f',typ='R',max=3),
6507          ),
6508
6509           LIAISON_UNIF    =FACT(statut='f',max='**',
6510            fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
6511            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
6512              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6513              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6514              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6515              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6516              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6517              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6518              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6519              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6520              DDL             =SIMP(statut='o',typ='TXM',max='**'),
6521          ),
6522
6523
6524          LIAISON_SOLIDE  =FACT(statut='f',max='**',
6525              fr="Modélise une partie indéformable d'une structure."
6526               +" Le mot clé TRAN permettent d'imposer le déplacement de la partie indéformable.",
6527              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
6528
6529              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6530              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6531              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6532              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6533              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6534              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6535              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6536              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6537
6538              TRAN            =SIMP(statut='f',typ='R',max=3 ),
6539              DIST_MIN        =SIMP(statut='f',typ='R'),
6540              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
6541          ),
6542
6543
6544
6545          FORCE_NODALE    =FACT(statut='f',max='**',
6546            fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire"
6547                +" d'un concept fonction",
6548            regles=(UN_PARMI('GROUP_NO','NOEUD'),
6549                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
6550            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6551            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6552            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6553            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6554            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6555            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6556            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6557            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6558            ANGL_NAUT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ),
6559          ),
6560
6561          FORCE_FACE      =FACT(statut='f',max='**',
6562            fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies"
6563                +" par l'intermédiaire d'un concept fonction",
6564            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
6565                    AU_MOINS_UN('FX','FY','FZ'),),
6566            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6567            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6568            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6569            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6570            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6571          ),
6572          FORCE_ARETE     =FACT(statut='f',max='**',
6573            fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont"
6574                +" fournies par l'intermédiaire d'un concept fonction",
6575            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
6576                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
6577            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6578            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6579            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6580            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6581            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6582            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6583            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6584            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6585          ),
6586          FORCE_CONTOUR   =FACT(statut='f',max='**',
6587            fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes"
6588                +" sont fournies par l'intermédiaire d'un concept fonction",
6589            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
6590                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
6591            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6592            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6593            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6594            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6595            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6596            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6597            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6598            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6599          ),
6600
6601          FORCE_INTERNE   =FACT(statut='f',max='**',
6602            fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies"
6603                +" par l'intermédiaire d'un concept fonction",
6604            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6605                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6606                    AU_MOINS_UN('FX','FY','FZ'),),
6607            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6608            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6609            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6610            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6611            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6612            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6613          ),
6614
6615          PRES_REP        =FACT(statut='f',max='**',
6616            fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les"
6617                +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction",
6618            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','FISSURE'),
6619                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'),
6620                    AU_MOINS_UN('PRES','CISA_2D'),),
6621            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6622            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6623            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6624            FISSURE         =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,),
6625            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6626            CISA_2D         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6627          ),
6628
6629          EFFE_FOND       =FACT(statut='f',max='**',
6630            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise"
6631                +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction",
6632            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
6633            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
6634            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6635            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6636            PRES            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6637          ),
6638
6639          PRE_EPSI       =FACT(statut='f',max='**',
6640            fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes"
6641                +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction",
6642            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6643                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6644                    AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
6645            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6646            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6647            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6648            EPXX            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6649            EPYY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6650            EPZZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6651            EPXY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6652            EPXZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6653            EPYZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6654          ),
6655
6656          FORCE_POUTRE    =FACT(statut='f',max='**',
6657            fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par"
6658                +" l'intermédiaire d'un concept fonction",
6659            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6660                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6661
6662                      ),
6663 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
6664            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6665            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6666            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6667            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
6668            # moment interdit avec VENT
6669            b_force = BLOC(condition = "TYPE_CHARGE == 'FORCE'",
6670                           regles=(
6671                     AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','N','VY','VZ','MT','MFY','MFZ'),
6672                    PRESENT_ABSENT('FX','N','VY','VZ','MT','MFY','MFZ'),
6673                      PRESENT_ABSENT('FY','N','VY','VZ','MT','MFY','MFZ'),
6674                      PRESENT_ABSENT('FZ','N','VY','VZ','MT','MFY','MFZ'),
6675                      PRESENT_ABSENT('MX','N','VY','VZ','MT','MFY','MFZ'),
6676                      PRESENT_ABSENT('MY','N','VY','VZ','MT','MFY','MFZ'),
6677                      PRESENT_ABSENT('MZ','N','VY','VZ','MT','MFY','MFZ'),
6678                      PRESENT_ABSENT('N','FX','FY','FZ','MX','MY','MZ'),
6679                      PRESENT_ABSENT('VY','FX','FY','FZ','MX','MY','MZ'),
6680                      PRESENT_ABSENT('VZ','FX','FY','FZ','MX','MY','MZ'),
6681                      PRESENT_ABSENT('MT','FX','FY','FZ','MX','MY','MZ'),
6682                      PRESENT_ABSENT('MFY','FX','FY','FZ','MX','MY','MZ'),
6683                      PRESENT_ABSENT('MFZ','FX','FY','FZ','MX','MY','MZ'),),
6684                     FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6685                     FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6686                     FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6687                     MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6688                     MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6689                     MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6690                     N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6691                     VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6692                     VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6693                     MT              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6694                     MFY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6695                     MFZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6696                                   ),
6697            b_vent = BLOC(condition = "TYPE_CHARGE == 'VENT'",
6698                          regles=(
6699                     AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
6700                    PRESENT_ABSENT('FX','N','VY','VZ',),
6701                      PRESENT_ABSENT('FY','N','VY','VZ',),
6702                      PRESENT_ABSENT('FZ','N','VY','VZ',),
6703                      PRESENT_ABSENT('N','FX','FY','FZ',),
6704                      PRESENT_ABSENT('VY','FX','FY','FZ',),
6705                      PRESENT_ABSENT('VZ','FX','FY','FZ',),),
6706                     FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6707                     FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6708                     FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6709                     N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6710                     VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6711                     VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6712                                   ),
6713          ),
6714
6715          FORCE_TUYAU     =FACT(statut='f',max='**',
6716            fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction",
6717            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6718                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6719            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6720            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6721            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6722            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6723          ),
6724
6725          FORCE_COQUE     =FACT(statut='f',max='**',
6726            fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par"
6727                +" l'intermédiaires d'un concept fonction",
6728            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6729                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6730                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
6731                    PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
6732                    PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
6733                    PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
6734                    PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
6735                    PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
6736                    PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
6737                    PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'),
6738                    PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'),
6739                    PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'),
6740                    PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'),
6741                    PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'),
6742                    PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
6743 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
6744            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6745            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6746            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6747            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6748            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6749            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6750            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6751            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6752            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6753            F1              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6754            F2              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6755            F3              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6756            MF1             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6757            MF2             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6758            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6759            PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
6760                                  into=("SUP","INF","MOY","MAIL") ),
6761          ),
6762
6763          LIAISON_COQUE   =FACT(statut='f',max='**',
6764              fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
6765              regles=(AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_2','MAILLE_2',
6766                                  'GROUP_NO_1','NOEUD_1','GROUP_NO_2','NOEUD_2',),),
6767              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6768              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6769              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6770              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6771              SANS_GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6772              SANS_MAILLE_1   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6773              SANS_GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6774              SANS_NOEUD_1    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6775              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6776              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6777              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6778              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6779              SANS_GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6780              SANS_MAILLE_2   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6781              SANS_GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6782              SANS_NOEUD_2    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6783              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
6784          ),
6785
6786
6787          VITE_FACE       =FACT(statut='f',max='**',
6788            fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par"
6789                +" l'intermédiaire d'un concept fonction",
6790            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
6791                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
6792            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6793            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6794            VNOR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6795          ),
6796          IMPE_FACE       =FACT(statut='f',max='**',
6797            fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire"
6798                +" d'un concept fonction",
6799            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
6800                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
6801            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6802            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6803            IMPE            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6804          ),
6805          ONDE_PLANE      =FACT(statut='f',max=1,
6806            fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire"
6807                +" d'un concept fonction",
6808            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
6809                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
6810            DIRECTION       =SIMP(statut='o',typ='R',min=3, max=3),
6811            TYPE_ONDE       =SIMP(statut='o',typ='TXM', into=("S", "P", "SV", "SH",) ),
6812            FONC_SIGNAL     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6813            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6814            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6815          ),
6816
6817
6818
6819          FLUX_THM_REP    =FACT(statut='f',max='**',
6820            fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)"
6821                +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction",
6822            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6823                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6824                    AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
6825            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6826            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6827            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6828            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6829            FLUN_HYDR1      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6830            FLUN_HYDR2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6831          ),
6832
6833          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
6834 )  ;
6835
6836 # ======================================================================
6837 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
6838 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6839 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6840 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6841 # (AT YOUR OPTION) ANY LATER VERSION.
6842 #
6843 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6844 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6845 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6846 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6847 #
6848 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6849 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6850 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6851 # ======================================================================
6852 # person_in_charge: mickael.abbas at edf.fr
6853 AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
6854                     ,fr="Affectation de charges et conditions aux limites thermiques constantes",
6855                     reentrant='n',
6856             UIinfo={"groupes":("Chargements","Thermique",)},
6857       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE',
6858                           'ECHANGE_PAROI','PRE_GRAD_TEMP','LIAISON_DDL','LIAISON_GROUP',
6859                           'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
6860          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
6861          METHODE         =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées",
6862                                into=('DUALISATION',),defaut='DUALISATION',),
6863                                # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
6864
6865          TEMP_IMPO       =FACT(statut='f',max='**',
6866            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
6867                    AU_MOINS_UN('TEMP','TEMP_MIL','TEMP_SUP','TEMP_INF'),),
6868              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6869              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6870              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6871              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6872              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6873              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6874              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6875              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6876              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6877            TEMP            =SIMP(statut='f',typ='R'),
6878            TEMP_MIL        =SIMP(statut='f',typ='R'),
6879            TEMP_INF        =SIMP(statut='f',typ='R'),
6880            TEMP_SUP        =SIMP(statut='f',typ='R'), ),
6881
6882          FLUX_REP        =FACT(statut='f',max='**',
6883            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6884                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6885                    PRESENT_PRESENT('CARA_TORSION','GROUP_MA'),
6886                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ),
6887            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6888            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6889            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6890            FLUN            =SIMP(statut='f',typ='R'),
6891            FLUN_INF        =SIMP(statut='f',typ='R'),
6892            FLUN_SUP        =SIMP(statut='f',typ='R'),
6893            CARA_TORSION    =SIMP(statut='f',typ=table_sdaster),
6894          ),
6895
6896
6897          RAYONNEMENT     =FACT(statut='f',max='**',
6898            fr="Attention, exprimer les températures en Celsius si rayonnement",
6899            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6900                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6901            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6902            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6903            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6904            SIGMA           =SIMP(statut='o',typ='R'),
6905            EPSILON         =SIMP(statut='o',typ='R'),
6906            TEMP_EXT        =SIMP(statut='o',typ='R'),
6907          ),
6908
6909          ECHANGE         =FACT(statut='f',max='**',
6910            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6911                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6912                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
6913                    ENSEMBLE('COEF_H','TEMP_EXT',),
6914                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
6915                              ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
6916            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6917            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6918            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6919            COEF_H          =SIMP(statut='f',typ='R'),
6920            TEMP_EXT        =SIMP(statut='f',typ='R'),
6921            COEF_H_INF      =SIMP(statut='f',typ='R'),
6922            TEMP_EXT_INF    =SIMP(statut='f',typ='R'),
6923            COEF_H_SUP      =SIMP(statut='f',typ='R'),
6924            TEMP_EXT_SUP    =SIMP(statut='f',typ='R'),
6925          ),
6926
6927          SOURCE          =FACT(statut='f',max='**',
6928            regles=(UN_PARMI('SOUR','SOUR_CALCULEE',),
6929                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6930                    PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),),
6931            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6932            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6933            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6934            SOUR            =SIMP(statut='f',typ='R'),
6935            SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem) ),
6936          ),
6937
6938          PRE_GRAD_TEMP  =FACT(statut='f',max='**',
6939            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
6940                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
6941                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
6942            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6943            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6944            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6945            FLUX_X          =SIMP(statut='f',typ='R' ),
6946            FLUX_Y          =SIMP(statut='f',typ='R' ),
6947            FLUX_Z          =SIMP(statut='f',typ='R' ),
6948                          ),
6949
6950          LIAISON_DDL     =FACT(statut='f',max='**',
6951            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
6952            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
6953            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
6954            DDL             =SIMP(statut='f',typ='TXM',max='**',
6955                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
6956            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
6957            COEF_IMPO       =SIMP(statut='o',typ='R' ),
6958          ),
6959
6960          LIAISON_GROUP   =FACT(statut='f',max='**',
6961            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
6962                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
6963                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
6964                              EXCLUS('GROUP_MA_1','NOEUD_2'),
6965                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
6966                              EXCLUS('GROUP_NO_1','MAILLE_2'),
6967                              EXCLUS('MAILLE_1','GROUP_NO_2'),
6968                              EXCLUS('MAILLE_1','NOEUD_2'),
6969                              EXCLUS('NOEUD_1','GROUP_MA_2'),
6970                              EXCLUS('NOEUD_1','MAILLE_2'),
6971                              EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
6972            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6973            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6974            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6975            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6976            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6977            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
6978            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6979            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6980            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6981            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6982            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
6983                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
6984            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
6985            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
6986                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP",) ),
6987            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
6988            COEF_IMPO       =SIMP(statut='o',typ='R' ),
6989            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6990            TRAN            =SIMP(statut='f',typ='R',max='**'),
6991            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
6992            CENTRE          =SIMP(statut='f',typ='R',max='**'),
6993          ),
6994
6995          LIAISON_MAIL    =FACT(statut='f',max='**',
6996            regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
6997                    AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
6998                                'NOEUD_ESCL'),),
6999            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7000            MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7001            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7002            MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7003            GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7004            NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7005            TRAN            =SIMP(statut='f',typ='R',max='**' ),
7006            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**' ),
7007            CENTRE          =SIMP(statut='f',typ='R',max='**' ),
7008            ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
7009          ),
7010
7011          ECHANGE_PAROI   =FACT(statut='f',max='**',
7012            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','FISSURE'),
7013                    UN_PARMI('GROUP_MA_2','MAILLE_2','FISSURE'),),
7014            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7015            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7016            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7017            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7018            FISSURE         =SIMP(statut='f',typ=fiss_xfem,validators=NoRepeat(),min=1,max=100,),
7019 #          ----------------------
7020            b_paroi_maillee =BLOC(
7021              condition = "FISSURE == None",
7022              COEF_H        =SIMP(statut='o',typ='R'),
7023              TRAN          =SIMP(statut='f',typ='R',min=2,max=3),
7024                                  ),
7025 #          ----------------------
7026            b_xfem         =BLOC(
7027              condition = "FISSURE != None",
7028              regles    =(UN_PARMI('COEF_H','TEMP_CONTINUE'),),
7029              COEF_H        =SIMP(statut='f',typ='R'),
7030              TEMP_CONTINUE =SIMP(statut='f',typ='TXM',into=("OUI",)),
7031                                  ),
7032          ),
7033
7034          LIAISON_UNIF    =FACT(statut='f',max='**',
7035            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
7036            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7037            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7038            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7039            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7040            DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
7041                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
7042          ),
7043
7044          LIAISON_CHAMNO  =FACT(statut='f',max='**',
7045            CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno"
7046            COEF_IMPO       =SIMP(statut='o',typ='R' ),
7047            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
7048          ),
7049
7050          CONVECTION      =FACT(statut='f',max='**',
7051            VITESSE         =SIMP(statut='o',typ=(cham_no_sdaster) ),
7052          ),
7053
7054
7055          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
7056 )  ;
7057
7058 # ======================================================================
7059 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
7060 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7061 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7062 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7063 # (AT YOUR OPTION) ANY LATER VERSION.
7064 #
7065 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7066 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7067 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7068 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7069 #
7070 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7071 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7072 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7073 # ======================================================================
7074 # person_in_charge: mickael.abbas at edf.fr
7075 AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther,
7076                      fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)"
7077                          +" paramètres (temps, ...)",
7078                      reentrant='n',
7079             UIinfo={"groupes":("Chargements","Thermique",)},
7080       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','SOUR_NL','FLUX_REP','FLUX_NL','ECHANGE',
7081                            'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF',
7082                           'PRE_GRAD_TEMP','RAYONNEMENT'),),
7083          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
7084
7085          TEMP_IMPO       =FACT(statut='f',max='**',
7086            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
7087                    AU_MOINS_UN('TEMP','TEMP_MIL','TEMP_SUP','TEMP_INF'),),
7088              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7089              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7090              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7091              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7092              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7093              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7094              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7095              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7096              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7097            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7098            TEMP_MIL        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7099            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7100            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7101          ),
7102
7103          FLUX_REP        =FACT(statut='f',max='**',
7104            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
7105                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
7106                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),),
7107            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7108            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7109            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7110            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7111            FLUN_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7112            FLUN_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7113            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7114            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7115            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7116          ),
7117
7118          FLUX_NL         =FACT(statut='f',max='**',
7119            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
7120                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
7121            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7122            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7123            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7124            FLUN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7125          ),
7126
7127
7128          RAYONNEMENT     =FACT(statut='f',max='**',
7129            fr="Attention, exprimer les températures en Celsius si rayonnement",
7130            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
7131                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
7132            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7133            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7134            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7135            SIGMA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7136            EPSILON         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7137            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7138          ),
7139
7140
7141
7142          ECHANGE         =FACT(statut='f',max='**',
7143            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
7144                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
7145                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
7146                    ENSEMBLE('COEF_H','TEMP_EXT'),
7147                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
7148                    ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
7149            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7150            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7151            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7152            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7153            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7154            COEF_H_INF      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7155            TEMP_EXT_INF    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7156            COEF_H_SUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7157            TEMP_EXT_SUP    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7158          ),
7159
7160
7161          SOURCE          =FACT(statut='f',max='**',
7162            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
7163            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7164            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7165            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7166            SOUR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7167          ),
7168
7169          SOUR_NL          =FACT(statut='f',max='**',
7170            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
7171            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7172            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7173            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7174            SOUR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7175          ),
7176
7177          PRE_GRAD_TEMP  =FACT(statut='f',max='**',
7178            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
7179                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
7180                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
7181            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7182            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7183            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7184            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7185            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7186            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7187          ),
7188
7189          ECHANGE_PAROI   =FACT(statut='f',max='**',
7190            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','FISSURE'),
7191                    UN_PARMI('GROUP_MA_2','MAILLE_2','FISSURE'),),
7192            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7193            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7194            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7195            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7196            FISSURE         =SIMP(statut='f',typ=fiss_xfem,validators=NoRepeat(),min=1,max=100,),
7197 #          ----------------------
7198            b_paroi_maillee =BLOC(
7199              condition = "FISSURE == None",
7200              COEF_H        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
7201              TRAN          =SIMP(statut='f',typ='R',min=2,max=3),
7202                                  ),
7203 #          ----------------------
7204            b_xfem         =BLOC(
7205              condition = "FISSURE != None",
7206              regles    =(UN_PARMI('COEF_H','TEMP_CONTINUE'),),
7207              COEF_H        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7208              TEMP_CONTINUE =SIMP(statut='f',typ='TXM',into=("OUI",)),
7209                                  ),
7210          ),
7211
7212         LIAISON_DDL     =FACT(statut='f',max='**',
7213            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
7214            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
7215            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
7216            DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
7217            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
7218            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7219          ),
7220
7221          LIAISON_GROUP   =FACT(statut='f',max='**',
7222            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
7223                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
7224                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
7225                         EXCLUS('GROUP_MA_1','NOEUD_2'),
7226                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
7227                         EXCLUS('GROUP_NO_1','MAILLE_2'),
7228                         EXCLUS('MAILLE_1','GROUP_NO_2'),
7229                         EXCLUS('MAILLE_1','NOEUD_2'),
7230                         EXCLUS('NOEUD_1','GROUP_MA_2'),
7231                         EXCLUS('NOEUD_1','MAILLE_2'),
7232                         EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
7233            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7234            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7235            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7236            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7237            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7238            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7239            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7240            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7241            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7242            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7243            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
7244                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
7245            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
7246            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
7247                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
7248            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
7249            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
7250            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7251            TRAN            =SIMP(statut='f',typ='R',max='**'),
7252            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
7253            CENTRE          =SIMP(statut='f',typ='R',max='**'),
7254          ),
7255
7256          LIAISON_UNIF    =FACT(statut='f',max='**',
7257            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
7258            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7259            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7260            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7261            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7262            DDL             =SIMP(statut='f',typ='TXM',defaut="TEMP",
7263                                  into=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP") ),
7264          ),
7265
7266          CONVECTION      =FACT(statut='f',max='**',
7267            VITESSE         =SIMP(statut='o',typ=cham_no_sdaster ),
7268          ),
7269
7270          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
7271 )  ;
7272
7273 # ======================================================================
7274 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
7275 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7276 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7277 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7278 # (AT YOUR OPTION) ANY LATER VERSION.
7279 #
7280 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7281 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7282 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7283 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7284 #
7285 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7286 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7287 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7288 # ======================================================================
7289 # person_in_charge: jacques.pellet at edf.fr
7290 AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
7291                    fr="Affecter des matériaux à des zones géométriques d'un maillage",
7292                          reentrant='n',
7293             UIinfo={"groupes":("Modélisation",)},
7294          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
7295          MODELE          =SIMP(statut='f',typ=modele_sdaster),
7296
7297          #  affectation du nom du matériau (par mailles):
7298          #  ----------------------------------------------
7299          AFFE            =FACT(statut='o',max='**',
7300            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
7301            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7302            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7303            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7304            MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
7305          ),
7306
7307          #  affectation de comportement (multifibres pour l'instant):
7308          #  ----------------------------------------------
7309          AFFE_COMPOR        =FACT(statut='f',max='**',
7310            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
7311            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7312            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7313            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7314            COMPOR          =SIMP(statut='o',typ=compor_sdaster,max=1),
7315          ),
7316
7317          #  affectation des variables de commande :
7318          #  --------------------------------------------------
7319          # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
7320          LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","GEOM","CORR","IRRA","HYDR","SECH","EPSA",
7321                                                            "M_ACIER","M_ZIRC","NEUT1","NEUT2","PTOT","DIVU",)),
7322
7323          AFFE_VARC    =FACT(statut='f',max='**',
7324           regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
7325                   PRESENT_ABSENT('GROUP_MA','TOUT'),
7326                   PRESENT_ABSENT('MAILLE','TOUT'),
7327                 # La règle suivante permet de donner VALE_REF sans donner EVOL ni CHAM_GD
7328                 # Elle est nécessaire pour la THM (voir doc U4.43.03)
7329                 # Mais on ne peut plus l'écrire depuis de VALE_REF est dans un bloc
7330                 # AU_MOINS_UN('EVOL','CHAM_GD','VALE_REF'),
7331                   EXCLUS('EVOL','CHAM_GD'),
7332                   ),
7333
7334           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut]
7335           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7336           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7337
7338           NOM_VARC        =SIMP(statut='o',typ='TXM', into=("TEMP","GEOM","CORR","IRRA","HYDR","SECH","EPSA",
7339                                "M_ACIER","M_ZIRC","NEUT1","NEUT2","PTOT","DIVU",)),
7340           CHAM_GD        =SIMP(statut='f',typ=cham_gd_sdaster,),
7341           EVOL            =SIMP(statut='f',typ=evol_sdaster,),
7342
7343           B_EVOL          =BLOC(condition="EVOL!=None",
7344               NOM_CHAM      =SIMP(statut='f',typ='TXM',into=("TEMP","CORR","IRRA","NEUT","GEOM",
7345                                                              "HYDR_ELNO","HYDR_NOEU",
7346                                                              "META_ELNO","META_NOEU",
7347                                                              "EPSA_ELNO","EPSA_NOEU","PTOT","DIVU",)),
7348               PROL_DROITE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
7349               PROL_GAUCHE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
7350               FONC_INST     =SIMP(statut='f',typ=(fonction_sdaster,formule)),
7351           ),
7352
7353           # VALE_REF est nécessaire pour certaines VARC :
7354           B_VALE_REF          =BLOC(condition="NOM_VARC in ('TEMP','SECH')",
7355                VALE_REF          =SIMP(statut='o',typ='R'),
7356           ),
7357
7358          ),
7359
7360          #  mots clés cachés pour les variables de commande NEUT1/NEUT2 :
7361          #  --------------------------------------------------------------
7362          VARC_NEUT1   =FACT(statut='d',
7363            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT1"),
7364            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
7365            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
7366            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")),
7367          ),
7368          VARC_NEUT2   =FACT(statut='d',
7369            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT2"),
7370            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
7371            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
7372            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")),
7373          ),
7374
7375          #  mots clés cachés pour variable de commande TEMP :
7376          #  --------------------------------------------------
7377          VARC_TEMP    =FACT(statut='d',
7378            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="TEMP"),
7379            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
7380            CMP_GD          =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP",)),
7381            CMP_VARC        =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("TEMP","TEMP_MIL","TEMP_INF","TEMP_SUP",)),
7382          ),
7383
7384          #  mots clés cachés pour variable de commande GEOM :
7385          #  --------------------------------------------------
7386          VARC_GEOM    =FACT(statut='d',
7387            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="GEOM"),
7388            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="GEOM_R"),
7389            CMP_GD          =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("X","Y","Z",)),
7390            CMP_VARC        =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("X","Y","Z",)),
7391          ),
7392
7393          #  mots clés cachés pour variable de commande PTOT :
7394          #  -------------------------------------------------
7395          VARC_PTOT    =FACT(statut='d',
7396            NOM_VARC         =SIMP(statut='c',typ='TXM',defaut="PTOT"),
7397            GRANDEUR         =SIMP(statut='c',typ='TXM',defaut="DEPL_R"),
7398            CMP_GD           =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("PTOT",)),
7399            CMP_VARC         =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("PTOT",)),
7400          ),
7401
7402          #  mots clés cachés pour variable de commande SECH :
7403          #  --------------------------------------------------
7404          VARC_SECH    =FACT(statut='d',
7405            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="SECH"),
7406            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
7407            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
7408            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)),
7409          ),
7410
7411          #  mots clés cachés pour variable de commande HYDR :
7412          #  --------------------------------------------------
7413          VARC_HYDR    =FACT(statut='d',
7414            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="HYDR"),
7415            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="HYDR_R"),
7416            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
7417            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
7418          ),
7419
7420          #  mots clés cachés pour variable de commande CORR :
7421          #  --------------------------------------------------
7422          VARC_CORR    =FACT(statut='d',
7423            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="CORR"),
7424            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="CORR_R"),
7425            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
7426            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
7427          ),
7428
7429          #  mots clés cachés pour variable de commande IRRA :
7430          #  --------------------------------------------------
7431          VARC_IRRA    =FACT(statut='d',
7432            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="IRRA"),
7433            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="IRRA_R"),
7434            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
7435            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
7436          ),
7437
7438          #  mots clés cachés pour variable de commande DIVU :
7439          #  --------------------------------------------------
7440          VARC_DIVU    =FACT(statut='d',
7441            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="DIVU"),
7442            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="EPSI_R"),
7443            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("DIVU",)),
7444            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("DIVU",)),
7445          ),
7446
7447          #  mots clés cachés pour variable de commande EPSA :
7448          #  --------------------------------------------------
7449          VARC_EPSA    =FACT(statut='d',
7450            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="EPSA"),
7451            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="EPSI_R"),
7452            CMP_GD          =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)),
7453            CMP_VARC        =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPSAXX","EPSAYY","EPSAZZ","EPSAXY","EPSAXZ","EPSAYZ",)),
7454          ),
7455          #  mots clés cachés pour variable de commande metallurgique ACIER :
7456          #  -----------------------------------------------------------------
7457          VARC_M_ACIER  =FACT(statut='d',
7458            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ACIER"),
7459            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
7460            CMP_GD          =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("V1","V2","V3","V4","V5","V6","V7")),
7461            CMP_VARC        =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE",
7462                                                                           "PMARTENS","TAUSTE","TRANSF","TACIER",)),
7463          ),
7464          #  mots clés cachés pour variable de commande metallurgique ZIRCALOY :
7465          #  --------------------------------------------------------------------
7466          VARC_M_ZIRC  =FACT(statut='d',
7467            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ZIRC"),
7468            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
7469            CMP_GD          =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("V1","V2","V3","V4")),
7470            CMP_VARC        =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("ALPHPUR","ALPHBETA","TZIRC","TEMPS")),
7471          ),
7472
7473          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
7474 )  ;
7475
7476 # ======================================================================
7477 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
7478 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7479 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7480 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7481 # (AT YOUR OPTION) ANY LATER VERSION.
7482 #
7483 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7484 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7485 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7486 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7487 #
7488 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7489 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7490 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7491 # ======================================================================
7492 # person_in_charge: jacques.pellet at edf.fr
7493 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
7494             UIinfo={"groupes":("Modélisation",)},
7495                  fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n',
7496          regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),UN_PARMI('MAILLAGE','GRILLE')),
7497          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
7498          GRILLE          =SIMP(statut='f',typ=grille_sdaster),
7499          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
7500          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ),
7501 #
7502 #====
7503 # Définition des grandeurs caractéristiques
7504 #====
7505 #
7506          GRANDEUR_CARA =FACT(statut='f',max=1,
7507          fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM",
7508          ang="Characteristic data for HM error estimators adimensionalisation",
7509 #
7510             LONGUEUR      =SIMP(statut='f',typ='R',val_min=0,
7511                                 fr ="Longueur caractéristique",
7512                                 ang="Characteristic length",),
7513             PRESSION      =SIMP(statut='f',typ='R',val_min=0,
7514                                 fr ="Pression caractéristique",
7515                                 ang="Characteristic pressure",),
7516             TEMPERATURE   =SIMP(statut='f',typ='R',val_min=0,
7517                                 fr ="Température caractéristique",
7518                                 ang="Characteristic temperature",),),
7519 #
7520          AFFE_SOUS_STRUC =FACT(statut='f',
7521            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
7522            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7523            SUPER_MAILLE    =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
7524            PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
7525          ),
7526          AFFE            =FACT(statut='f',max='**',
7527            regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
7528            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7529            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7530            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7531            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7532            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7533            PHENOMENE       =SIMP(statut='o',typ='TXM',
7534                                  into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
7535                 b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
7536                                         fr="modélisations mécaniques",
7537                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
7538                                   "2D_DIS_T",        # RESP. : FLEJOU J.L.FLEJOU
7539                                   "2D_DIS_TR",       # RESP. : FLEJOU J.L.FLEJOU
7540                                   "2D_FLUI_ABSO",    # RESP. : DEVESA G.DEVESA
7541                                   "2D_FLUI_PESA",    # RESP. : GREFFET N.GREFFET
7542                                   "2D_FLUI_STRU",    # RESP. : GREFFET N.GREFFET
7543                                   "2D_FLUIDE",       # RESP. : GREFFET N.GREFFET
7544                                   "3D",              # RESP. : DESROCHES X.DESROCHES
7545                                   "3D_ABSO",         # RESP. : DEVESA G.DEVESA
7546                                   "3D_FAISCEAU",     # RESP. : VOLDOIRE F.VOLDOIRE
7547                                   "3D_FLUI_ABSO",    # RESP. : DEVESA G.DEVESA
7548                                   "3D_FLUIDE",       # RESP. : GREFFET N.GREFFET
7549                                   "3D_INCO",         # RESP. : SFAYOLLE S.FAYOLLE
7550                                   "3D_INCO_UP",      # RESP. : SFAYOLLE S.FAYOLLE
7551                                   "3D_INCO_OSGS",    # RESP. : SFAYOLLE S.FAYOLLE
7552                                   "3D_INCO_GD",      # RESP. : SFAYOLLE S.FAYOLLE
7553                                   "3D_INCO_LOG",     # RESP. : SFAYOLLE S.FAYOLLE
7554                                   "3D_INCO_LUP",     # RESP. : SFAYOLLE S.FAYOLLE
7555                                   "3D_SI",           # RESP. : DESROCHES X.DESROCHES
7556                                   "3D_GRAD_EPSI",    # RESP. : MICHEL S.MICHEL
7557                                   "3D_GRAD_VARI",    # RESP. : MICHEL S.MICHEL
7558                                   "3D_GVNO",         # RESP. : BEAURAIN J.BEAURAIN
7559                                   "3D_JOINT",        # RESP. : LAVERNE J.LAVERNE
7560                                   "3D_JOINT_HYME",   # RESP. : LAVERNE J.LAVERNE
7561                                   "3D_INTERFACE",    # RESP. : LAVERNE J.LAVERNE
7562                                   "3D_INTERFACE_S",  # RESP. : LAVERNE J.LAVERNE
7563                                   "AXIS",            # RESP. : LEFEBVRE J.P.LEFEBVRE
7564                                   "AXIS_FLUI_STRU",  # RESP. : GREFFET N.GREFFET
7565                                   "AXIS_FLUIDE",     # RESP. : GREFFET N.GREFFET
7566                                   "AXIS_FOURIER",    # RESP. : DESROCHES X.DESROCHES
7567                                   "AXIS_INCO",       # RESP. : SFAYOLLE S.FAYOLLE
7568                                   "AXIS_INCO_UP",    # RESP. : SFAYOLLE S.FAYOLLE
7569                                   "AXIS_INCO_OSGS",  # RESP. : SFAYOLLE S.FAYOLLE
7570                                   "AXIS_INCO_GD",    # RESP. : SFAYOLLE S.FAYOLLE
7571                                   "AXIS_INCO_LOG",   # RESP. : SFAYOLLE S.FAYOLLE
7572                                   "AXIS_INCO_LUP",   # RESP. : SFAYOLLE S.FAYOLLE
7573                                   "AXIS_SI",         # RESP. : DESROCHES X.DESROCHES
7574                                   "AXIS_GRAD_VARI",  # RESP. : MICHEL S.MICHEL
7575                                   "AXIS_GVNO",       # RESP. : BEAURAIN J.BEAURAIN
7576                                   "AXIS_JOINT",      # RESP. : LAVERNE J.LAVERNE
7577                                   "AXIS_INTERFACE",  # RESP. : LAVERNE J.LAVERNE
7578                                   "AXIS_INTERFACE_S",# RESP. : LAVERNE J.LAVERNE
7579                                   "AXIS_ELDI",       # RESP. : LAVERNE J.LAVERNE
7580                                   "BARRE",           # RESP. : FLEJOU J.L.FLEJOU
7581                                   "CABLE_GAINE",     # RESP. :
7582                                   "2D_BARRE",        # RESP. : FLEJOU J.L.FLEJOU
7583                                   "C_PLAN",          # RESP. : LEFEBVRE J.P.LEFEBVRE
7584                                   "C_PLAN_SI",       # RESP. : DESROCHES X.DESROCHES
7585                                   "C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
7586                                   "CABLE",           # RESP. : FLEJOU J.L.FLEJOU
7587                                   "CABLE_POULIE",    # RESP. : None
7588                                   "COQUE_3D",        # RESP. : DESROCHES X.DESROCHES
7589                                   "COQUE_AXIS",      # RESP. : DESROCHES X.DESROCHES
7590                                   "COQUE_C_PLAN",    # RESP. : DESROCHES X.DESROCHES
7591                                   "COQUE_D_PLAN",    # RESP. : DESROCHES X.DESROCHES
7592                                   "D_PLAN",          # RESP. : LEFEBVRE J.P.LEFEBVRE
7593                                   "D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
7594                                   "D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL
7595                                   "D_PLAN_GVNO",     # RESP. : BEAURAIN J.BEAURAIN
7596                                   "D_PLAN_GRAD_SIGM",# RESP. : GRANET S.GRANET
7597                                   "PLAN_JOINT",      # RESP. : LAVERNE J.LAVERNE
7598                                   "PLAN_JOINT_HYME", # RESP. : LAVERNE J.LAVERNE
7599                                   "PLAN_INTERFACE",  # RESP. : LAVERNE J.LAVERNE
7600                                   "PLAN_INTERFACE_S",# RESP. : LAVERNE J.LAVERNE
7601                                   "PLAN_ELDI",       # RESP. : LAVERNE J.LAVERNE
7602                                   "D_PLAN_ABSO",     # RESP. : DEVESA G.DEVESA
7603                                   "D_PLAN_INCO",     # RESP. : SFAYOLLE S.FAYOLLE
7604                                   "D_PLAN_INCO_UP",  # RESP. : SFAYOLLE S.FAYOLLE
7605                                   "D_PLAN_INCO_OSGS",# RESP. : SFAYOLLE S.FAYOLLE
7606                                   "D_PLAN_INCO_GD",  # RESP. : SFAYOLLE S.FAYOLLE
7607                                   "D_PLAN_INCO_LOG", # RESP. : SFAYOLLE S.FAYOLLE
7608                                   "D_PLAN_INCO_LUP", # RESP. : SFAYOLLE S.FAYOLLE
7609                                   "D_PLAN_SI",       # RESP. : DESROCHES X.DESROCHES
7610                                   "DIS_T",           # RESP. : FLEJOU J.L.FLEJOU
7611                                   "DIS_TR",          # RESP. : FLEJOU J.L.FLEJOU
7612                                   "DKT",             # RESP. : DESROCHES X.DESROCHES
7613                                   "DKTG",            # RESP. : MARKOVIC D.MARKOVIC
7614                                   "DST",             # RESP. : DESROCHES X.DESROCHES
7615                                   "FLUI_STRU",       # RESP. : GREFFET N.GREFFET
7616                                   "GRILLE_EXCENTRE", # RESP. : ROSPARS C.ROSPARS
7617                                   "GRILLE_MEMBRANE", # RESP. : ROSPARS C.ROSPARS
7618                                   "MEMBRANE",        # RESP. : ROSPARS C.ROSPARS
7619                                   "POU_C_T",         # RESP. : FLEJOU J.L.FLEJOU
7620                                   "POU_D_E",         # RESP. : FLEJOU J.L.FLEJOU
7621                                   "POU_D_EM",        # RESP. : FLEJOU J.L.FLEJOU
7622                                   "POU_D_T",         # RESP. : FLEJOU J.L.FLEJOU
7623                                   "POU_D_T_GD",      # RESP. : FLEJOU J.L.FLEJOU
7624                                   "POU_D_TG",        # RESP. : FLEJOU J.L.FLEJOU
7625                                   "POU_D_TGM",       # RESP. : FLEJOU J.L.FLEJOU
7626                                   "Q4G",             # RESP. : DESROCHES X.DESROCHES
7627                                   "Q4GG",            # RESP. : DESROCHES X.DESROCHES
7628                                   "TUYAU_3M",        # RESP. : PROIX J.M.PROIX
7629                                   "TUYAU_6M",        # RESP. : PROIX J.M.PROIX
7630                                   "SHB",             # RESP. : DESROCHES X.DESROCHES
7631                                   "D_PLAN_HHM",      # RESP. : GRANET S.GRANET
7632                                   "D_PLAN_HM",       # RESP. : GRANET S.GRANET
7633                                   "D_PLAN_HM_SI",    # RESP. : GRANET S.GRANET
7634                                   "D_PLAN_THM",      # RESP. : GRANET S.GRANET
7635                                   "D_PLAN_HHMD",     # RESP. : GRANET S.GRANET
7636                                   "D_PLAN_HH2MD",    # RESP. : GRANET S.GRANET
7637                                   "D_PLAN_HMD",      # RESP. : GRANET S.GRANET
7638                                   "D_PLAN_THHD",     # RESP. : GRANET S.GRANET
7639                                   "D_PLAN_THH2D",    # RESP. : GRANET S.GRANET
7640                                   "D_PLAN_THVD",     # RESP. : GRANET S.GRANET
7641                                   "D_PLAN_THH2MD",   # RESP. : GRANET S.GRANET
7642                                   "D_PLAN_THHMD",    # RESP. : GRANET S.GRANET
7643                                   "D_PLAN_THMD",     # RESP. : GRANET S.GRANET
7644                                   "D_PLAN_HHMS",     # RESP. : GRANET S.GRANET
7645                                   "D_PLAN_HH2MS",    # RESP. : GRANET S.GRANET
7646                                   "D_PLAN_HMS",      # RESP. : GRANET S.GRANET
7647                                   "D_PLAN_THHS",     # RESP. : GRANET S.GRANET
7648                                   "D_PLAN_THH2S",    # RESP. : GRANET S.GRANET
7649                                   "D_PLAN_THVS",     # RESP. : GRANET S.GRANET
7650                                   "D_PLAN_THH2MS",   # RESP. : GRANET S.GRANET
7651                                   "D_PLAN_THHMS",    # RESP. : GRANET S.GRANET
7652                                   "D_PLAN_THMS",     # RESP. : GRANET S.GRANET
7653                                   "D_PLAN_HM_P",     # RESP. : GRANET S.GRANET
7654                                   "D_PLAN_HS",       # RESP. : GRANET S.GRANET
7655                                   "D_PLAN_HHD",      # RESP. : GRANET S.GRANET
7656                                   "D_PLAN_HHS",      # RESP. : GRANET S.GRANET
7657                                   "D_PLAN_HH2D",     # RESP. : GRANET S.GRANET
7658                                   "D_PLAN_HH2S",     # RESP. : GRANET S.GRANET
7659                                   "D_PLAN_2DG",      # RESP. : GRANET S.GRANET
7660                                   "D_PLAN_DIL",      # RESP. : GRANET S.GRANET
7661                                   "3D_DIL",          # RESP. : GRANET S.GRANET
7662                                   "AXIS_THM",        # RESP. : GRANET S.GRANET
7663                                   "AXIS_HHM",        # RESP. : GRANET S.GRANET
7664                                   "AXIS_HM",         # RESP. : GRANET S.GRANET
7665                                   "AXIS_HH2MD",      # RESP. : GRANET S.GRANET
7666                                   "AXIS_HHMD",       # RESP. : GRANET S.GRANET
7667                                   "AXIS_HMD",        # RESP. : GRANET S.GRANET
7668                                   "AXIS_THHD",       # RESP. : GRANET S.GRANET
7669                                   "AXIS_THH2D",      # RESP. : GRANET S.GRANET
7670                                   "AXIS_THVD",       # RESP. : GRANET S.GRANET
7671                                   "AXIS_THHMD",      # RESP. : GRANET S.GRANET
7672                                   "AXIS_THH2MD",     # RESP. : GRANET S.GRANET
7673                                   "AXIS_THMD",       # RESP. : GRANET S.GRANET
7674                                   "AXIS_HH2MS",      # RESP. : GRANET S.GRANET
7675                                   "AXIS_HHMS",       # RESP. : GRANET S.GRANET
7676                                   "AXIS_HMS",        # RESP. : GRANET S.GRANET
7677                                   "AXIS_THHS",       # RESP. : GRANET S.GRANET
7678                                   "AXIS_THH2S",      # RESP. : GRANET S.GRANET
7679                                   "AXIS_THVS",       # RESP. : GRANET S.GRANET
7680                                   "AXIS_THHMS",      # RESP. : GRANET S.GRANET
7681                                   "AXIS_THH2MS",     # RESP. : GRANET S.GRANET
7682                                   "AXIS_THMS",       # RESP. : GRANET S.GRANET
7683                                   "AXIS_HHD",        # RESP. : GRANET S.GRANET
7684                                   "AXIS_HHS",        # RESP. : GRANET S.GRANET
7685                                   "AXIS_HH2D",       # RESP. : GRANET S.GRANET
7686                                   "AXIS_HH2S",       # RESP. : GRANET S.GRANET
7687                                   "3D_HHM" ,         # RESP. : GRANET S.GRANET
7688                                   "3D_HM",           # RESP. : GRANET S.GRANET
7689                                   "3D_HM_SI",        # RESP. : GRANET S.GRANET
7690                                   "3D_THHM",         # RESP. : GRANET S.GRANET
7691                                   "3D_THM",          # RESP. : GRANET S.GRANET
7692                                   "3D_HHMD",         # RESP. : GRANET S.GRANET
7693                                   "3D_HMD",          # RESP. : GRANET S.GRANET
7694                                   "3D_THHD",         # RESP. : GRANET S.GRANET
7695                                   "3D_THVD",         # RESP. : GRANET S.GRANET
7696                                   "3D_THHMD",        # RESP. : GRANET S.GRANET
7697                                   "3D_THMD",         # RESP. : GRANET S.GRANET
7698                                   "3D_HHMS",         # RESP. : GRANET S.GRANET
7699                                   "3D_HMS",          # RESP. : GRANET S.GRANET
7700                                   "3D_THHS",         # RESP. : GRANET S.GRANET
7701                                   "3D_THVS",         # RESP. : GRANET S.GRANET
7702                                   "3D_THHMS",        # RESP. : GRANET S.GRANET
7703                                   "3D_THMS",         # RESP. : GRANET S.GRANET
7704                                   "3D_THH2MD",       # RESP. : GRANET S.GRANET
7705                                   "3D_THH2MS",       # RESP. : GRANET S.GRANET
7706                                   "3D_HH2MD",        # RESP. : GRANET S.GRANET
7707                                   "3D_HH2MS",        # RESP. : GRANET S.GRANET
7708                                   "3D_THH2S",        # RESP. : GRANET S.GRANET
7709                                   "3D_THH2D",        # RESP. : GRANET S.GRANET
7710                                   "3D_HS",           # RESP. : GRANET S.GRANET
7711                                   "3D_HHD",          # RESP. : GRANET S.GRANET
7712                                   "3D_HHS",          # RESP. : GRANET S.GRANET
7713                                   "3D_HH2D",         # RESP. : GRANET S.GRANET
7714                                   "3D_HH2S",         # RESP. : GRANET S.GRANET
7715                                   "VF1",             # RESP. : GRANET S.GRANET
7716                                   "3D_HH2SUDM",      # RESP. : GRANET S.GRANET
7717                                   "3D_HH2SUDA",      # RESP. : GRANET S.GRANET
7718                                   "3D_HH2SUC",       # RESP. : GRANET S.GRANET
7719                                   "D_PLAN_HH2SUDM",  # RESP. : GRANET S.GRANET
7720                                   "D_PLAN_HH2SUC",   # RESP. : GRANET S.GRANET
7721                                   "D_PLAN_HH2SUDA",  # RESP. : GRANET S.GRANET
7722                                   "PLAN_JHMS",
7723                                   "AXIS_JHMS",
7724                                                                       )  )  ),
7725
7726                 b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
7727                                         fr="modélisations thermiques",
7728                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
7729                                   "3D",              # RESP. : DURAND C.DURAND
7730                                   "3D_DIAG",         # RESP. : DURAND C.DURAND
7731                                   "AXIS",            # RESP. : DURAND C.DURAND
7732                                   "AXIS_DIAG",       # RESP. : DURAND C.DURAND
7733                                   "AXIS_FOURIER",    # RESP. : DESROCHES X.DESROCHES
7734                                   "COQUE",           # RESP. : DESROCHES X.DESROCHES
7735                                   "COQUE_AXIS",      # RESP. : DESROCHES X.DESROCHES
7736                                   "COQUE_PLAN",      # RESP. : DESROCHES X.DESROCHES
7737                                   "PLAN",            # RESP. : DURAND C.DURAND
7738                                   "PLAN_DIAG",       # RESP. : DURAND C.DURAND
7739                                                                       ),),),
7740
7741                 b_acoustique    =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
7742                                         fr="modélisations acoustiques",
7743                      MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
7744                                   "3D",              # RESP. : None
7745                                   "PLAN"             # RESP. : None
7746                                                                        ), ),),
7747
7748          ),
7749
7750          PARTITION         =FACT(statut='d',
7751              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="GROUP_ELEM",
7752                                    into=("MAIL_CONTIGU","MAIL_DISPERSE","CENTRALISE","GROUP_ELEM")),
7753              b_dist_maille          =BLOC(condition = "PARALLELISME in ('MAIL_DISPERSE','MAIL_CONTIGU')",
7754                  CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0,val_max=100),
7755              ),
7756          ),
7757
7758          VERI_JACOBIEN  =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',
7759                               fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",),
7760 ) ;
7761
7762 # ======================================================================
7763 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7764 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7765 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
7766 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
7767 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
7768 #                                                                       
7769 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7770 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7771 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7772 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7773 #                                                                       
7774 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7775 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7776 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7777 # ======================================================================
7778 # person_in_charge: jacques.pellet at edf.fr
7779
7780 def appl_cine_matr_prod(MATR_ASSE,**args):
7781   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
7782   if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
7783   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
7784   if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
7785   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
7786   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
7787   raise AsException("type de concept resultat non prevu")
7788
7789 APPL_CINE_MATR=OPER(nom="APPL_CINE_MATR",op=158,sd_prod=appl_cine_matr_prod,
7790                fr="Appliquer les C.L. cinématiques sur la matrice",
7791                reentrant='f', UIinfo={"groupes":("Résolution",)},
7792          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
7793                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
7794          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7795          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
7796 )  ;
7797
7798 # ======================================================================
7799 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7800 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7801 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
7802 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
7803 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
7804 #                                                                       
7805 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7806 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7807 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7808 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7809 #                                                                       
7810 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7811 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7812 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7813 # ======================================================================
7814 # person_in_charge: jacques.pellet at edf.fr
7815
7816 APPL_CINE_SCMB=OPER(nom="APPL_CINE_SCMB",op=159,sd_prod=cham_no_sdaster,reentrant='f',
7817                fr="Application des C.L. cinématiques au second membre",
7818                UIinfo={"groupes":("Résolution",)},
7819          CHAM_NO        =SIMP(statut='o',typ=cham_no_sdaster),
7820          MATR           =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
7821                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
7822          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
7823
7824          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7825          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
7826 )  ;
7827
7828 # ======================================================================
7829 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
7830 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7831 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7832 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7833 # (AT YOUR OPTION) ANY LATER VERSION.
7834 #
7835 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7836 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7837 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7838 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7839 #
7840 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7841 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7842 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7843 # ======================================================================
7844 # person_in_charge: harinaivo.andriambololona at edf.fr
7845
7846
7847 def asse_elem_ssd_prod(self,RESU_ASSE_SSD,**args):
7848     MTYPES = {
7849         'MODELE' : modele_gene,
7850         'NUME_DDL_GENE' : nume_ddl_gene,
7851         'RIGI_GENE' : matr_asse_gene_r,
7852         'MASS_GENE' : matr_asse_gene_r,
7853               }
7854     for res in RESU_ASSE_SSD:
7855         for mc, typ in MTYPES.items():
7856             if res[mc]:
7857                 self.type_sdprod(res[mc], typ)
7858     return None
7859
7860 ASSE_ELEM_SSD=MACRO(nom="ASSE_ELEM_SSD",
7861                     op=OPS('Macro.asse_elem_ssd_ops.asse_elem_ssd_ops'),
7862                     sd_prod=asse_elem_ssd_prod,
7863                     reentrant='n',
7864                     fr="Enchainer les commandes DEFI_MODELE_GENE, NUME_DDL_GENE et ASSE_MATR_GENE",
7865                     UIinfo={"groupes":("Matrices/vecteurs",)},
7866
7867 # pour les concepts de sortie
7868         RESU_ASSE_SSD = FACT( statut='o', max=1,
7869                           regles=(PRESENT_PRESENT('RIGI_GENE','NUME_DDL_GENE'),
7870                                   PRESENT_PRESENT('MASS_GENE','NUME_DDL_GENE'),),
7871                               MODELE=SIMP(statut='o',typ=CO,defaut=None),
7872                               NUME_DDL_GENE=SIMP(statut='f',typ=CO,defaut=None),
7873                               RIGI_GENE=SIMP(statut='f',typ=CO,defaut=None),
7874                               MASS_GENE=SIMP(statut='f',typ=CO,defaut=None),
7875                            ),
7876
7877         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
7878
7879 # pour DEFI_MODELE_GENE
7880         SOUS_STRUC      =FACT(statut='o',max='**',
7881            NOM             =SIMP(statut='o',typ='TXM' ),
7882            MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
7883            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
7884            TRANS           =SIMP(statut='f',typ='R',max=3),
7885          ),
7886         LIAISON         =FACT(statut='o',max='**',
7887            SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
7888            INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
7889            SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
7890            INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
7891            regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
7892                    EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
7893            GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7894            MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7895            GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7896            MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7897            OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
7898          ),
7899         VERIF           =FACT(statut='d',max=1,
7900            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7901            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
7902            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7903          ),
7904
7905
7906 # pour NUME_DDL_GENE
7907         METHODE      =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","ELIMINE") ),
7908         STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
7909
7910 )  ;
7911
7912 # ======================================================================
7913 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7914 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7915 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7916 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7917 # (AT YOUR OPTION) ANY LATER VERSION.
7918 #
7919 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7920 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7921 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7922 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7923 #
7924 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7925 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7926 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7927 # ======================================================================
7928 # person_in_charge: jacques.pellet at edf.fr
7929 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
7930                    fr="Assembler deux maillages pour en former un nouveau",
7931                    reentrant='n',
7932                    UIinfo={"groupes":("Maillage",)},
7933          MAILLAGE_1 =  SIMP(statut='o',typ=maillage_sdaster,),
7934          MAILLAGE_2 =  SIMP(statut='o',typ=maillage_sdaster,),
7935          OPERATION  =  SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),),
7936          b_collage  =  BLOC(condition = "OPERATION == 'COLLAGE'",
7937            COLLAGE  =  FACT(statut='o',
7938               GROUP_MA_1     =SIMP(statut='o',typ=grma),
7939               GROUP_MA_2     =SIMP(statut='o',typ=grma),
7940                              ),
7941                            ),
7942 )  ;
7943
7944 # ======================================================================
7945 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7946 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7947 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7948 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7949 # (AT YOUR OPTION) ANY LATER VERSION.
7950 #
7951 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7952 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7953 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7954 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7955 #
7956 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7957 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7958 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7959 # ======================================================================
7960 # person_in_charge: mathieu.corus at edf.fr
7961 def asse_matr_gene_prod(METHODE,**args):
7962     if   (METHODE=="INITIAL") : return matr_asse_gene_r
7963     elif (args['OPTION']=="RIGI_GENE_C") : return matr_asse_gene_c
7964     else : return matr_asse_gene_r
7965
7966 ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod,
7967                     fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée",
7968                     reentrant='n',
7969             UIinfo={"groupes":("Matrices et vecteurs",)},
7970          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
7971          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
7972          b_option     =BLOC(condition = "METHODE == 'CLASSIQUE'",
7973            OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ),
7974            ),
7975 )  ;
7976
7977 # ======================================================================
7978 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7979 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7980 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7981 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7982 # (AT YOUR OPTION) ANY LATER VERSION.
7983 #
7984 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7985 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7986 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7987 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7988 #
7989 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7990 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7991 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7992 # ======================================================================
7993 # person_in_charge: jacques.pellet at edf.fr
7994 def asse_matrice_prod(MATR_ELEM,**args):
7995   if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
7996   if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
7997   if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
7998   if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
7999   raise AsException("type de concept resultat non prevu")
8000
8001 ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
8002                   fr="Construction d'une matrice assemblée",reentrant='n',
8003             UIinfo={"groupes":("Matrices et vecteurs",)},
8004          MATR_ELEM       =SIMP(statut='o',
8005                                typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
8006          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster),
8007          SYME            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8008          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
8009          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
8010 )  ;
8011
8012 # ======================================================================
8013 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8014 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8015 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8016 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8017 # (AT YOUR OPTION) ANY LATER VERSION.
8018 #
8019 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8020 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8021 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8022 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8023 #
8024 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8025 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8026 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8027 # ======================================================================
8028 # person_in_charge: mathieu.corus at edf.fr
8029 ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
8030                     fr="Projection des chargements sur la base modale d'une sous structure",
8031                     reentrant='n',
8032             UIinfo={"groupes":("Matrices et vecteurs",)},
8033          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
8034          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
8035          b_nume     =BLOC(condition = "METHODE == 'CLASSIQUE'",
8036              CHAR_SOUS_STRUC =FACT(statut='o',max='**',
8037              SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
8038              VECT_ASSE       =SIMP(statut='o',typ=cham_no_sdaster ),
8039            ),
8040          ),
8041 )  ;
8042
8043 # ======================================================================
8044 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8045 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8046 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8047 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8048 # (AT YOUR OPTION) ANY LATER VERSION.
8049 #
8050 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8051 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8052 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8053 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8054 #
8055 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8056 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8057 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8058 # ======================================================================
8059 # person_in_charge: jacques.pellet at edf.fr
8060
8061 ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster,
8062                   fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n',
8063             UIinfo={"groupes":("Matrices et vecteurs",)},
8064          VECT_ELEM       =SIMP(statut='o',typ=vect_elem,max='**'),
8065          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
8066          INFO            =SIMP(statut='f',typ='I',into=(1,2,) ),
8067 )  ;
8068
8069 # ======================================================================
8070 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
8071 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8072 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8073 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8074 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8075 #                                                                       
8076 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8077 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8078 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8079 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8080 #                                                                       
8081 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8082 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8083 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8084 # ======================================================================
8085 # person_in_charge: albert.alarcon at edf.fr
8086
8087 def assemblage_prod(self,NUME_DDL,MATR_ASSE,VECT_ASSE,**args):
8088   if ((not MATR_ASSE) and (not VECT_ASSE)):  raise AsException("Aucun concept a assembler")
8089   if not NUME_DDL :  raise AsException("Impossible de typer les concepts resultats")
8090   if NUME_DDL.is_typco():
8091     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
8092
8093   if MATR_ASSE !=None: 
8094       for m in MATR_ASSE:
8095         opti=m['OPTION']
8096         if opti in ( "RIGI_MECA","RIGI_FLUI_STRU",
8097                      "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
8098                      "AMOR_MECA","IMPE_MECA","ONDE_FLUI","MASS_MECA_DIAG",
8099                      "MECA_GYRO","RIGI_GYRO" ) : t=matr_asse_depl_r
8100
8101         if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
8102
8103         if opti in ( "RIGI_THER","RIGI_THER_CONV" ,
8104                      "RIGI_THER_CONV_D",) : t=matr_asse_temp_r
8105
8106         if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
8107
8108         self.type_sdprod(m['MATRICE'],t)
8109
8110   if VECT_ASSE !=None:
8111       for v in VECT_ASSE:
8112         self.type_sdprod(v['VECTEUR'],cham_no_sdaster)
8113     
8114   return None
8115
8116 ASSEMBLAGE=MACRO(nom="ASSEMBLAGE",
8117                       op=OPS('Macro.assemblage_ops.assemblage_ops'),
8118                       UIinfo={"groupes":("Matrices et vecteurs",)},
8119                       sd_prod=assemblage_prod,
8120                       regles=(AU_MOINS_UN('MATR_ASSE','VECT_ASSE'),),
8121                       fr="Calcul des matrices et vecteurs assemblés ",
8122          MODELE          =SIMP(statut='o',typ=modele_sdaster),
8123          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
8124          INST            =SIMP(statut='f',typ='R',defaut=0.),
8125          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
8126          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
8127          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
8128          NUME_DDL        =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
8129          SOLVEUR         =FACT(statut='d',
8130            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
8131          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale",
8132            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
8133          ),
8134          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT",
8135            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
8136          ),
8137          b_mumps         =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
8138            RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
8139          ),
8140          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="Paramètres associés à la méthode gradient conjugué",
8141            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
8142          ),
8143          b_petsc         =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC",
8144            RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
8145          ),
8146          ),
8147
8148          MATR_ASSE       =FACT(statut='f',max='**',
8149              MATRICE         =SIMP(statut='o',typ=CO),         
8150              OPTION          =SIMP(statut='o',typ='TXM',
8151                                    into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
8152                                          "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
8153                                          "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
8154                                          "RIGI_ROTA","RIGI_GEOM","MECA_GYRO","RIGI_GYRO",
8155                                          "RIGI_THER","RIGI_ACOU","MASS_ACOU","AMOR_ACOU",)
8156                                    ),
8157
8158              b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
8159                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
8160              ),
8161
8162              b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
8163                SIEF_ELGA       =SIMP(statut='o',typ=cham_elem),
8164                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
8165              ),
8166
8167              b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'",
8168                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
8169              ),
8170 #
8171          ), # fin MATR_ASSE
8172 #          
8173          VECT_ASSE       =FACT(statut='f',max='**',
8174              VECTEUR         =SIMP(statut='o',typ=CO),             
8175              OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_ACOU","CHAR_THER") ),
8176            b_char_meca     =BLOC(condition = "OPTION == 'CHAR_MECA'", fr="chargement mécanique",
8177               CHARGE       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
8178               MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
8179               ),
8180            
8181            b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'", fr="chargement thermique",
8182               CHARGE           =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**'),
8183               ),
8184
8185            b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'", fr="chargement acoustique",
8186               CHARGE           =SIMP(statut='f',typ=char_acou,validators=NoRepeat(),max='**'),
8187               ),
8188 #
8189          ), # fin VECT_ASSE
8190 #
8191          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8192          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
8193 );
8194
8195 # ======================================================================
8196 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8197 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8198 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8199 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8200 # (AT YOUR OPTION) ANY LATER VERSION.
8201 #
8202 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8203 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8204 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8205 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8206 #
8207 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8208 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8209 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8210 # ======================================================================
8211 # person_in_charge: Georges-cc.devesa at edf.fr
8212 CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
8213                      fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
8214                      reentrant='n',
8215             UIinfo={"groupes":("Résolution","Dynamique",)},
8216        regles=(EXCLUS('AMOR_RAYLEIGH','ENER_SOL',),
8217                EXCLUS('AMOR_RAYLEIGH','AMOR_INTERNE',),
8218                EXCLUS('AMOR_RAYLEIGH','AMOR_SOL',),
8219                PRESENT_PRESENT('ENER_SOL','AMOR_INTERNE'),
8220                PRESENT_PRESENT('ENER_SOL','AMOR_SOL'),
8221                ),
8222          AMOR_RAYLEIGH   =FACT(statut='f',
8223            AMOR_ALPHA      =SIMP(statut='o',typ='R'),
8224            AMOR_BETA       =SIMP(statut='o',typ='R'),
8225            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
8226          ),
8227          ENER_SOL        =FACT(statut='f',
8228            regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
8229                    PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
8230 #  Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
8231                    PRESENT_PRESENT('KRX','KRY'),
8232                    PRESENT_PRESENT('KRX','KRZ'),
8233                    PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
8234                    PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
8235                    PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
8236            METHODE         =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
8237            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
8238            GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8239            GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8240            FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8241            COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
8242            KX              =SIMP(statut='o',typ='R' ),
8243            KY              =SIMP(statut='o',typ='R' ),
8244            KZ              =SIMP(statut='o',typ='R' ),
8245            KRX             =SIMP(statut='f',typ='R' ),
8246            KRY             =SIMP(statut='f',typ='R' ),
8247            KRZ             =SIMP(statut='f',typ='R' ),
8248            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
8249            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
8250            COOR_CENTRE     =SIMP(statut='f',typ='R',max=3),
8251          ),
8252          AMOR_INTERNE    =FACT(statut='f',
8253            ENER_POT        =SIMP(statut='o',typ=table_sdaster ),
8254            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
8255            AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
8256          ),
8257          AMOR_SOL        =FACT(statut='f',
8258            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
8259            FONC_AMOR_GEO   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
8260            HOMOGENE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
8261            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
8262          ),
8263 )  ;
8264
8265 # ======================================================================
8266 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
8267 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8268 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8269 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8270 # (AT YOUR OPTION) ANY LATER VERSION.
8271 #
8272 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8273 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8274 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8275 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8276 #
8277 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8278 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8279 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8280 # ======================================================================
8281 # person_in_charge: josselin.delmas at edf.fr
8282
8283 CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem,
8284                     fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés",
8285                     reentrant='n',
8286             UIinfo={"groupes":("Résultats et champs","Post-traitements",)},
8287          MODELE          =SIMP(statut='o',typ=modele_sdaster),
8288          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
8289
8290          regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),),
8291          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8292          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8293          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8294
8295          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
8296          ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
8297          MODE_FOURIER    =SIMP(statut='f',typ='I',),
8298
8299          OPTION          =SIMP(statut='o',typ='TXM',
8300                                into=("FLUX_ELGA","FLUX_ELNO",
8301                                                  "PRAC_ELNO",
8302                                      "COOR_ELGA"), ),
8303
8304          b_thermique  =BLOC(condition="OPTION in ('FLUX_ELNO','FLUX_ELGA',)",
8305            TEMP            =SIMP(statut='o',typ=(cham_no_sdaster,)),
8306            CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
8307          ),
8308
8309          b_acoustique  =BLOC(condition="OPTION in ('PRAC_ELNO',)",
8310            PRES            =SIMP(statut='o',typ=(cham_no_sdaster,)),
8311          ),
8312
8313 )  ;
8314
8315 # ======================================================================
8316 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
8317 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8318 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8319 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8320 # (AT YOUR OPTION) ANY LATER VERSION.
8321 #
8322 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8323 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8324 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8325 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8326 #
8327 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8328 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8329 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8330 # ======================================================================
8331 # person_in_charge: nicolas.sellenet at edf.fr
8332 def calc_champ_prod(RESULTAT,**args):
8333    if AsType(RESULTAT) != None : return AsType(RESULTAT)
8334    raise AsException("type de concept resultat non prevu : RESULTAT=%s (type %s)" \
8335         % (RESULTAT, type(RESULTAT)))
8336
8337 CALC_CHAMP=OPER(nom="CALC_CHAMP",op=52,sd_prod=calc_champ_prod,reentrant='f',
8338                 UIinfo={"groupes":("Post traitements",)},
8339                 fr="Completer ou creer un resultat en calculant des champs par elements ou aux noeuds",
8340      MODELE           = SIMP(statut='f',typ=modele_sdaster),
8341      CHAM_MATER       = SIMP(statut='f',typ=cham_mater),
8342      CARA_ELEM        = SIMP(statut='f',typ=cara_elem),
8343
8344      RESULTAT         = SIMP(statut='o',typ=resultat_sdaster,position='global',
8345                              fr="Resultat d'une commande globale"),
8346
8347      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
8348                     'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
8349              PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
8350              ),
8351      TOUT_ORDRE       = SIMP(statut='f',typ='TXM',into=("OUI",) ),
8352      NUME_ORDRE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8353      NUME_MODE        = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8354      NOEUD_CMP        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
8355      NOM_CAS          = SIMP(statut='f',typ='TXM' ),
8356      INST             = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8357      FREQ             = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8358      LIST_INST        = SIMP(statut='f',typ=listr8_sdaster),
8359      LIST_FREQ        = SIMP(statut='f',typ=listr8_sdaster),
8360      CRITERE          = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
8361      b_prec_rela = BLOC(condition="(CRITERE=='RELATIF')",
8362           PRECISION   = SIMP(statut='f',typ='R',defaut= 1.E-6),),
8363      b_prec_abso = BLOC(condition="(CRITERE=='ABSOLU')",
8364           PRECISION   = SIMP(statut='o',typ='R'),),
8365      LIST_ORDRE       = SIMP(statut='f',typ=listis_sdaster),
8366
8367      TOUT             = SIMP(statut='f',typ='TXM',into=("OUI",),
8368                              fr="le calcul sera effectue sur toutes les mailles"),
8369      GROUP_MA         = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
8370                              fr="le calcul ne sera effectue que sur ces groupes de mailles"),
8371      MAILLE           = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
8372                              fr="le calcul ne sera effectue que sur ces mailles"),
8373
8374      EXCIT       = FACT(statut='f',max='**',
8375                         fr="Charges contenant les temperatures, les efforts repartis pour les poutres...",
8376                         regles=(EXCLUS('FONC_MULT','COEF_MULT',),),
8377          CHARGE       = SIMP(statut='o',typ=(char_meca,char_cine_meca),),
8378          FONC_MULT    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),),
8379          COEF_MULT    = SIMP(statut='f',typ='R'),
8380          TYPE_CHARGE  = SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
8381
8382      # Bloc lineaire
8383      b_lineaire  = BLOC(condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\
8384                                                           comb_fourier,mult_elas,fourier_elas,mode_flamb)",
8385          CONTRAINTE   = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8386                              fr="Options pour le calcul de contraintes et efforts generalises",
8387                              into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),),
8388
8389          DEFORMATION  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8390                              fr="Options pour le calcul de deformations",
8391                              into=C_NOM_CHAM_INTO(phenomene='DEFORMATION',categorie='lin'),),
8392
8393          ENERGIE      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8394                              fr="Options pour le calcul d'energies",
8395                              into=C_NOM_CHAM_INTO(phenomene='ENERGIE',categorie='lin'),),
8396
8397          CRITERES     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8398                              fr="Options pour le calcul de criteres",
8399                              into=C_NOM_CHAM_INTO(phenomene='CRITERES',categorie='lin'),),
8400
8401          VARI_INTERNE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8402                              fr="Options pour le calcul de variables internes",
8403                              into=C_NOM_CHAM_INTO(phenomene='VARI_INTERNE',categorie='lin'),),
8404                      ),
8405
8406      # Bloc non-lineaire
8407      b_non_lin  = BLOC(condition = "AsType(RESULTAT) in (evol_noli,)",
8408          CONTRAINTE   = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8409                              fr="Options pour le calcul de contraintes et efforts generalises",
8410                              into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='nonlin'),),
8411
8412          DEFORMATION  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8413                              fr="Options pour le calcul de deformations",
8414                              into=C_NOM_CHAM_INTO(phenomene='DEFORMATION',categorie='nonlin'),),
8415
8416          ENERGIE      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8417                              fr="Options pour le calcul d'energies",
8418                              into=C_NOM_CHAM_INTO(phenomene='ENERGIE',categorie='nonlin'),),
8419
8420          CRITERES     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8421                              fr="Options pour le calcul de criteres",
8422                              into=C_NOM_CHAM_INTO(phenomene='CRITERES',categorie='nonlin'),),
8423
8424          VARI_INTERNE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8425                              fr="Options pour le calcul de variables internes",
8426                              into=C_NOM_CHAM_INTO(phenomene='VARI_INTERNE',categorie='nonlin'),),
8427
8428          b_nom_vari   = BLOC(condition = "au_moins_un(VARI_INTERNE, ('VAEX_ELNO','VAEX_ELGA','VAEX_NOEU'))",
8429              NOM_VARI = SIMP(statut='o',typ='TXM',min= 1,max='**',
8430                              fr="nom de la variable a extraire",
8431                              into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX",
8432                                    "GAMP","PCR","SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV",
8433                                    "X11","X22","X33","X12","X13","X23","DIST_DEV","DEV_SUR_CRIT","DIST_ISO",
8434                                    "NB_ITER","ARRET","NB_REDE","SIGNE","RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA",
8435                                    "IND_1","IND_2","IND_3","IND_4",
8436                                    ),
8437                              ),),
8438
8439          HYDRAULIQUE  = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8440                              fr="Options pour le calcul de flux hydraulique",
8441                              into=C_NOM_CHAM_INTO(phenomene='HYDRAULIQUE',categorie='nonlin'),),
8442                       ),
8443
8444      # Bloc Thermique
8445      b_ther = BLOC(condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,
8446          THERMIQUE    = SIMP(statut='f',typ='TXM',validators=NoRepeat(), max='**',
8447                              fr="Options pour le calcul de champs en thermique",
8448                              into=C_NOM_CHAM_INTO(phenomene='THERMIQUE',),),
8449                   ),
8450
8451      # Bloc acoustique
8452      b_acou = BLOC(condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,dyna_harmo)",
8453          ACOUSTIQUE   = SIMP(statut='f',typ='TXM',validators=NoRepeat(), max='**',
8454                              fr="Options pour le calcul de champs en acoustique",
8455                              into=C_NOM_CHAM_INTO(phenomene='ACOUSTIQUE',),),
8456                   ),
8457
8458      # Bloc FORC_NODA et REAC_NODA
8459      FORCE            = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8460                              fr="Options pour des forces nodales et des reactions nodales",
8461                              into=C_NOM_CHAM_INTO(phenomene='FORCE',),),
8462
8463      # Mot-cle facteur CHAMp UTILisateur
8464      CHAM_UTIL = FACT(statut='f', max='**',
8465           regles = (UN_PARMI('FORMULE', 'CRITERE', 'NORME'), ),
8466           NOM_CHAM = SIMP(statut='o', typ='TXM',
8467                           fr="Nom du champ utilisé en donnée",),
8468           FORMULE  = SIMP(statut='f', typ=formule, max='**',
8469                           fr="Formule permet d'obtenir le critère",),
8470           CRITERE  = SIMP(statut='f', typ='TXM', max=1,
8471                           into=('TRACE', 'VMIS', 'INVA_2'),
8472                           fr="Calcul d'un critère pré-défini",),
8473           NORME    = SIMP(statut='f', typ='TXM', max=1,
8474                           into=('L2', 'FROBENIUS', ),
8475                           fr="Calcul d'une norme pré-définie",),
8476           NUME_CHAM_RESU = SIMP(statut='o', typ='I', val_min=1, val_max=20,
8477                           fr="Numéro du champ produit. Exemple: 6 produit le champ UT06",),
8478      ),
8479
8480      INFO             = SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
8481
8482      TITRE            = SIMP(statut='f',typ='TXM',max='**'),
8483 );
8484
8485 # ======================================================================
8486 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8487 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8488 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8489 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8490 # (AT YOUR OPTION) ANY LATER VERSION.
8491 #
8492 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8493 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8494 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8495 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8496 #
8497 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8498 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8499 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8500 # ======================================================================
8501 # person_in_charge: jacques.pellet at edf.fr
8502
8503 CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster,
8504                     fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
8505                     reentrant='n',
8506             UIinfo={"groupes":("Matrices et vecteurs",)},
8507          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
8508          CHAR_CINE       =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ),
8509          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
8510          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
8511 )  ;
8512
8513 # ======================================================================
8514 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8515 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8516 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8517 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8518 # (AT YOUR OPTION) ANY LATER VERSION.
8519 #
8520 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8521 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8522 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8523 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8524 #
8525 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8526 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8527 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8528 # ======================================================================
8529 # person_in_charge: Georges-cc.devesa at edf.fr
8530 def calc_char_seisme_prod(MATR_MASS,**args ):
8531   if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster
8532   raise AsException("type de concept resultat non prevu")
8533
8534 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
8535                       reentrant='n',fr="Calcul du chargement sismique",
8536             UIinfo={"groupes":("Matrices et vecteurs",)},
8537          regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
8538          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
8539          DIRECTION       =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"),
8540          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8541          MODE_STAT       =SIMP(statut='f',typ=(mode_meca,) ),
8542          b_mode_stat     =BLOC ( condition = "MODE_STAT != None",
8543            regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
8544            NOEUD           =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
8545            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8546          ),
8547          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8548 )  ;
8549
8550 # ======================================================================
8551 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
8552 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8553 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8554 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8555 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8556 #                                                                       
8557 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8558 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8559 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8560 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8561 #                                                                       
8562 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8563 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8564 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8565 # ======================================================================
8566 # person_in_charge: mathieu.corus at edf.fr
8567 CALC_CORR_SSD=OPER(nom="CALC_CORR_SSD",op=  91,sd_prod=table_container,
8568                     fr="Qualite d'un modele reduit en dynamique",
8569                     reentrant='n',
8570             UIinfo={"groupes":("Dynamique",)},
8571          MODELE_GENE    =SIMP(statut='o',typ=modele_gene),
8572          RESU_GENE      =SIMP(statut='o',typ=mode_gene ),
8573          UNITE          =SIMP(statut='f',typ='I',defaut=6,),   
8574          SHIFT          =SIMP(statut='f',typ='R',defaut= 1. ),
8575          VERIF          =FACT(statut='f',max='**',
8576            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
8577            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
8578            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
8579          ),
8580          TITRE          =SIMP(statut='f',typ='TXM',max='**'),
8581 )  ;
8582
8583 # ======================================================================
8584 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
8585 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8586 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8587 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8588 # (AT YOUR OPTION) ANY LATER VERSION.
8589 #
8590 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8591 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8592 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8593 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8594 #
8595 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8596 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8597 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8598 # ======================================================================
8599 # person_in_charge: marina.bottoni at edf.fr
8600
8601
8602 def calc_ecrevisse_prod(self,CHARGE_MECA,CHARGE_THER1,CHARGE_THER2,TABLE,DEBIT,**args):
8603
8604   self.type_sdprod(CHARGE_MECA,char_meca)
8605   self.type_sdprod(CHARGE_THER1,char_ther)
8606   self.type_sdprod(CHARGE_THER2,char_ther)
8607   self.type_sdprod(TABLE,table_sdaster)
8608   self.type_sdprod(DEBIT,table_sdaster)
8609   return None
8610
8611
8612
8613 CALC_ECREVISSE=MACRO(nom="CALC_ECREVISSE",
8614                      op=OPS('Macro.calc_ecrevisse_ops.calc_ecrevisse_ops'),
8615                      sd_prod=calc_ecrevisse_prod,
8616                      reentrant='n',
8617                      UIinfo={"groupes":("Outils-métier",)},fr="Procedure de couplage avec Ecrevisse",
8618                      regles   = (UN_PARMI('LOGICIEL','VERSION'),),
8619
8620 #      CONCEPTS SORTANTS : 2 CHARGEMENTS THERMIQUE + 1 MECANIQUE + 2 TABLES POUR LE POST-TRAITEMENT
8621 #      ********************************************
8622          CHARGE_MECA        =SIMP(statut='o',typ=CO),
8623          CHARGE_THER1       =SIMP(statut='o',typ=CO),
8624          CHARGE_THER2       =SIMP(statut='o',typ=CO),
8625          TABLE              =SIMP(statut='o',typ=CO),
8626          DEBIT              =SIMP(statut='o',typ=CO),
8627
8628
8629 #      MODELES MECANIQUES
8630 #      ********************************************
8631          MODELE_MECA        =SIMP(statut='o',typ=modele_sdaster),
8632          MODELE_THER        =SIMP(statut='o',typ=modele_sdaster),
8633
8634
8635 #      DONNEES GEOMETRIQUES RELATIVES AUX RESULTATS
8636 #      ********************************************
8637          RESULTAT           =FACT(statut='o',min=1,max=1,
8638            MECANIQUE           =SIMP(statut='o',typ=resultat_sdaster),
8639            THERMIQUE           =SIMP(statut='o',typ=resultat_sdaster),
8640            regles=(EXCLUS('NUME_ORDRE','INST'),),
8641            NUME_ORDRE          =SIMP(statut='f',typ='I',validators=NoRepeat(),),
8642            INST                =SIMP(statut='f',typ='R',validators=NoRepeat(),),
8643          ),
8644
8645 #      DONNEES GEOMETRIQUES RELATIVES A LA FISSURE
8646 #      *******************************************
8647
8648          FISSURE            =FACT(statut='o',min=1,max='**',
8649            PREFIXE_FICHIER     =SIMP(statut='f',typ='TXM',validators=LongStr(1,8),),
8650            GROUP_MA            =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2,
8651                                      fr="Groupe(s) des noeuds definissant les levres de la fissure"),
8652            GROUP_NO_ORIG       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
8653            GROUP_NO_EXTR       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
8654            ZETA                =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ),
8655            RUGOSITE            =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ),
8656            OUVERT_REMANENTE    =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"),
8657            TORTUOSITE          =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0,
8658                                        fr="Coefficient de tortuosite de la fissure" ),
8659            SECTION             =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ),
8660            b_section_ellipse   =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique",
8661              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
8662                                        fr="Liste des cotes des points definissant le petit axe de la section",
8663                                        validators=NoRepeat() ),
8664              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
8665                                        fr="Liste des valeurs des points definissant le petit axe de la section", ),
8666            ),
8667            b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire",
8668              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
8669                                        fr="Liste des cotes des points definissant la largeur de la section",
8670                                        validators=NoRepeat() ),
8671              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
8672                                        fr="Liste des valeurs des points definissant la largeur de la section", ),
8673            ),
8674          ),
8675
8676
8677 #      DONNEES RELATIVES A L"ECOULEMENT
8678 #      ********************************
8679
8680          ECOULEMENT         =FACT(statut='o',min=1,max=1,
8681            PRES_ENTREE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ),
8682            PRES_SORTIE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ),
8683            FLUIDE_ENTREE       =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ),
8684            b_condition_1       =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee",
8685              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
8686            ),
8687            b_condition_2       =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique",
8688              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
8689            ),
8690            b_condition_3       =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee",
8691              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
8692            ),
8693            b_condition_4       =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee",
8694              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
8695              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
8696            ),
8697            b_condition_5       =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee",
8698              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
8699              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
8700            ),
8701            b_condition_6       =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul",
8702              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
8703            ),
8704          ),
8705
8706
8707 #      CHOIX DES MODELES
8708 #      *****************
8709
8710          MODELE_ECRE        =FACT(statut='o',min=1,max=1,
8711            IVENAC              =SIMP(statut='f', typ='I', into=(0,1), defaut=0,
8712                                      fr="Calcul ECREVISSE avec prise en compte de la vena contracta"),
8713            ECOULEMENT          =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"),
8714                                      fr="Type de modele d'ecoulement diphasique [imod]" ),
8715            b_ecou_gele         =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele",
8716              PRESS_EBULLITION    =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ),
8717            ),
8718            FROTTEMENT          =SIMP(statut='o',typ='I',into=(-4,-3,-2,-1,0,1,2,3,4,11,12,13,14),fr="Correlation de frottement [ifrot]" ),
8719            b_frottement        =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele",
8720              REYNOLDS_LIM        =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ),
8721              FROTTEMENT_LIM      =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ),
8722            ),
8723
8724            TRANSFERT_CHAL      =SIMP(statut='o',typ='I',into=(-12,-11,-2,-1,0,1,2,11,12),fr="Transfert de chaleur [ichal]" ),
8725            b_transchal         =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique",
8726              XMINCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"),
8727              XMAXCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"),
8728            ),
8729          ),
8730
8731
8732 #      DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE
8733 #      ********************************************
8734
8735          CONVERGENCE        =FACT(statut='o',min=1,max=1,
8736            KGTEST              =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0,
8737                                      fr="Parametre de l'algorithme iteratif [kgtest]" ),
8738            ITER_GLOB_MAXI      =SIMP(statut='f',typ='I',defaut= 400,
8739                                      fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ),
8740            CRIT_CONV_DEBI      =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5,
8741                                      fr="Critere de convergence en debit [precdb]" ),
8742          ),
8743
8744 #      GENERAL
8745 #      *******
8746
8747          COURBES            =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE",
8748                                   fr="Generation eventuelle des courbes" ),
8749          LOGICIEL           =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),),
8750          VERSION            =SIMP(statut='f',typ='TXM',into = ("3.2.1",) ),
8751          ENTETE             =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ),
8752          IMPRESSION         =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ),
8753          INFO               =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
8754
8755 )  ;
8756
8757 # ======================================================================
8758 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
8759 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8760 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8761 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8762 # (AT YOUR OPTION) ANY LATER VERSION.
8763 #
8764 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8765 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8766 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8767 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8768 #
8769 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8770 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8771 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8772 # ======================================================================
8773 # person_in_charge: josselin.delmas at edf.fr
8774 def calc_erreur_prod(RESULTAT,**args):
8775    if AsType(RESULTAT) != None : return AsType(RESULTAT)
8776    raise AsException("type de concept resultat non prevu")
8777
8778 CALC_ERREUR=OPER(nom="CALC_ERREUR",op=42,sd_prod=calc_erreur_prod,reentrant='f',
8779             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
8780             fr="Compléter ou créer un résultat en calculant des champs d'erreur",
8781      MODELE          =SIMP(statut='f',typ=modele_sdaster),
8782      CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
8783
8784      RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
8785                                       fr="Résultat d'une commande globale"),
8786
8787      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
8788                     'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
8789                     ),
8790      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8791      NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8792      NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8793      NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
8794      NOM_CAS         =SIMP(statut='f',typ='TXM' ),
8795      INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8796      FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8797      LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
8798      LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
8799      CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
8800      b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
8801          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6),),
8802      b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
8803          PRECISION       =SIMP(statut='o',typ='R'),),
8804      LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
8805      TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI"),
8806
8807 #-----------------------------------------------------------------------
8808 # pour conserver la compatibilité mais ne sert à rien
8809 #-----------------------------------------------------------------------
8810      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
8811      EXCIT           =FACT(statut='f',max='**',
8812                            fr="Charges contenant les températures, les efforts répartis pour les poutres...",
8813                            regles=(EXCLUS('FONC_MULT','COEF_MULT',),),
8814                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca),),
8815                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),),
8816                     COEF_MULT       =SIMP(statut='f',typ='R'),),
8817 #-----------------------------------------------------------------------
8818
8819      OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(phenomene='ERREUR',),),
8820
8821      b_erre_qi =BLOC(condition = "au_moins_un(OPTION, ('QIRE_ELEM','QIZ1_ELEM','QIZ2_ELEM','QIRE_ELNO','QIRE_NOEU'))",
8822                      RESU_DUAL=SIMP(statut='o',typ=resultat_sdaster,fr="Résultat du problème dual"),),
8823
8824      b_sing    =BLOC(condition= "au_moins_un(OPTION, 'SING_ELEM')",
8825                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
8826                                   fr="Précision demandée pour calculer la carte de taille des éléments"),
8827                     TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERME_ELEM","ERZ1_ELEM","ERZ2_ELEM",
8828                                                               "QIRE_ELEM","QIZ1_ELEM","QIZ2_ELEM",),
8829                                    fr="Choix de l'estimateur d'erreur"),),
8830
8831 #-------------------------------------------------------------------
8832 #    Catalogue commun SOLVEUR (utilisé actuellement pour estimateur d'erreur ZZ1)
8833      SOLVEUR         =C_SOLVEUR('CALC_ERREUR'),
8834 #-------------------------------------------------------------------
8835
8836      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8837      TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8838 ) ;
8839
8840 # ======================================================================
8841 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
8842 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8843 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8844 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8845 # (AT YOUR OPTION) ANY LATER VERSION.
8846 #
8847 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8848 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8849 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8850 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8851 #
8852 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8853 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8854 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8855 # ======================================================================
8856
8857 # person_in_charge: albert.alarcon at edf.fr
8858
8859
8860 def calc_essai_prod(self,RESU_IDENTIFICATION,
8861                     RESU_MODIFSTRU,
8862                     **args):
8863
8864     if RESU_IDENTIFICATION != None:
8865         for res in RESU_IDENTIFICATION:
8866             self.type_sdprod(res['TABLE'],interspectre)
8867
8868     MTYPES = {
8869         'MODELE'    : modele_sdaster,
8870         'MODE_MECA' : mode_meca,
8871         'NUME_DDL'  : nume_ddl_sdaster,
8872         'MAILLAGE'  : maillage_sdaster,
8873         'MASS_MECA' : matr_asse_depl_r,
8874         'RIGI_MECA' : matr_asse_depl_r,
8875         'AMOR_MECA' : matr_asse_depl_r,
8876         'MACR_ELEM' : macr_elem_stat,
8877         'PROJ_MESU' : mode_gene,
8878         'BASE_ES'   : mode_meca,
8879         'BASE_LMME' : mode_meca,
8880         'MODE_STA'  : mode_meca,
8881               }
8882     if RESU_MODIFSTRU != None:
8883         for res in RESU_MODIFSTRU:
8884             for mc, typ in MTYPES.items():
8885                 if res[mc]:
8886                     self.type_sdprod(res[mc], typ)
8887     return None
8888
8889
8890 CALC_ESSAI = MACRO(nom       = 'CALC_ESSAI',
8891                    op        = OPS('Macro.calc_essai_ops.calc_essai_ops'),
8892                    sd_prod   = calc_essai_prod,
8893                    reentrant = 'n',
8894                    UIinfo    = {"groupes":("Outils-métier","Dynamique",)},
8895                    fr        = "Outil de post-traitement interactif pour Meidee ",
8896                    INTERACTIF  = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
8897                    RESU_IDENTIFICATION = FACT( statut='f',max='**',
8898                                                TABLE = SIMP(statut='f', typ=CO),
8899                                              ),
8900                    RESU_MODIFSTRU = FACT( statut='f', max=1,
8901                                           MODELE=SIMP(statut='f',typ=CO,defaut=None),
8902                                           MODE_MECA=SIMP(statut='f',typ=CO,defaut=None),
8903                                           MAILLAGE=SIMP(statut='f',typ=CO,defaut=None),
8904                                           NUME_DDL=SIMP(statut='f',typ=CO,defaut=None),
8905                                           MASS_MECA=SIMP(statut='f',typ=CO,defaut=None),
8906                                           RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None),
8907                                           AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None),
8908                                           MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None),
8909                                           PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None),
8910                                           BASE_ES=SIMP(statut='f',typ=CO,defaut=None),
8911                                           BASE_LMME=SIMP(statut='f',typ=CO,defaut=None),
8912                                           MODE_STA=SIMP(statut='f',typ=CO,defaut=None),
8913                                          ),
8914
8915                    b_inter    = BLOC( condition="INTERACTIF=='NON'",
8916
8917                              EXPANSION        = FACT( statut='f',max='**',
8918                                                       CALCUL           = SIMP(statut='o',typ=mode_meca),
8919                                                       NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(),
8920                                                                               max='**',defaut=0),
8921                                                       MESURE           = SIMP(statut='o',typ=mode_meca),
8922                                                       NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(),
8923                                                                               max='**',defaut=0),
8924                                                       RESOLUTION       = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')),
8925                                                       b_reso           = BLOC(condition = "RESOLUTION=='SVD'",
8926                                                                               EPS = SIMP(statut='f',typ='R', defaut = 0.)
8927                                                                        )
8928                                                     ),
8929                              IDENTIFICATION   = FACT( statut='f',max='**',
8930                                                       ALPHA   = SIMP(statut='f',typ='R', defaut = 0.),
8931                                                       EPS     = SIMP(statut='f',typ='R', defaut = 0.),
8932                                                       OBSERVABILITE  = SIMP(statut='o',typ=mode_meca),
8933                                                       COMMANDABILITE = SIMP(statut='o',typ=mode_meca),
8934                                                       INTE_SPEC      = SIMP(statut='o',typ=interspectre),
8935                                                       RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
8936                                                       BASE           = SIMP(statut='o',typ=mode_meca),
8937                                                      ),
8938                              MODIFSTRUCT = FACT( statut='f', max=1,
8939                                                  MESURE = SIMP(statut='o', typ=mode_meca),
8940                                                  MODELE_SUP = SIMP(statut='o', typ=modele_sdaster),
8941                                                  MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r),
8942                                                  RESOLUTION = SIMP(statut='f', typ='TXM',
8943                                                                into=('ES', 'LMME'), defaut='ES'),
8944                                                  b_resol = BLOC( condition = "RESOLUTION=='LMME'",
8945                                                                  MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r),
8946                                                                 ),
8947                                                  NUME_MODE_MESU   = SIMP(statut='o', typ='I',max='**'),
8948                                                  NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'),
8949                                                  MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster),
8950                                                ),
8951                              # Si on realise une modification structurale, on donne les DDL capteurs et interface
8952                              b_modif   = BLOC( condition="MODIFSTRUCT!=None",
8953                                    GROUP_NO_CAPTEURS  = FACT( statut='f', max='**',
8954                                                               GROUP_NO = SIMP(statut='o',typ=grno,),
8955                                                               NOM_CMP  = SIMP(statut='o',typ='TXM', max='**'),
8956                                                             ),
8957                                    GROUP_NO_EXTERIEUR = FACT( statut='f', max='**',
8958                                                               GROUP_NO = SIMP(statut='o',typ=grno,),
8959                                                               NOM_CMP  = SIMP(statut='o',typ='TXM', max='**'),
8960                                                             ),
8961                                                ),
8962                                           ),
8963                         );
8964
8965 # ======================================================================
8966 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
8967 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8968 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8969 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8970 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8971 #                                                                       
8972 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8973 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8974 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8975 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8976 #                                                                       
8977 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8978 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8979 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8980 # ======================================================================
8981 # person_in_charge: sam.cuvilliez at edf.fr
8982
8983 def calc_essai_geomeca_prod(self,                            
8984                             ESSAI_TD,
8985                             ESSAI_TND,
8986                             ESSAI_CISA_C,
8987                             ESSAI_TND_C,
8988                             #ESSAI_XXX,
8989                             **args):
8990   List_essais = []
8991   if ESSAI_TD     != None : List_essais += ESSAI_TD.List_F()
8992   if ESSAI_TND    != None : List_essais += ESSAI_TND.List_F()
8993   if ESSAI_CISA_C != None : List_essais += ESSAI_CISA_C.List_F()
8994   if ESSAI_TND_C  != None : List_essais += ESSAI_TND_C.List_F()
8995   #if ESSAI_XXX    != None : List_essais += ESSAI_XXX.List_F()
8996   for DicoEssai in List_essais :
8997     if DicoEssai.has_key('TABLE_RESU'): 
8998       for Table in DicoEssai['TABLE_RESU']:
8999         self.type_sdprod(Table,table_sdaster)
9000   return None 
9001
9002
9003 CALC_ESSAI_GEOMECA = MACRO(nom="CALC_ESSAI_GEOMECA",
9004                      op=OPS('Macro.calc_essai_geomeca_ops.calc_essai_geomeca_ops'),
9005                      sd_prod=calc_essai_geomeca_prod,
9006                      UIinfo={"groupes":("",)},
9007                      reentrant='n',
9008                      fr="",
9009                      MATER       = SIMP(statut='o',typ=mater_sdaster),
9010                      COMPORTEMENT   = C_COMPORTEMENT(),
9011                      CONVERGENCE = C_CONVERGENCE(),
9012                      regles=(AU_MOINS_UN('COMPORTEMENT'), # car COMPORTEMENT est facultatif dans C_COMPORTEMENT
9013                              AU_MOINS_UN(
9014                                          'ESSAI_TD'    ,
9015                                          'ESSAI_TND'   ,
9016                                          'ESSAI_CISA_C',
9017                                          'ESSAI_TND_C' ,
9018                                          #'ESSAI_XXX'   ,
9019                                          ),),
9020                      # ---
9021                      # Essai Triaxial Monotone Draine ('TD')
9022                      # ---
9023                      ESSAI_TD = FACT(statut='f',max='**',
9024  
9025                           PRES_CONF   = SIMP(statut='o',typ='R',max='**',),
9026                           EPSI_IMPOSE = SIMP(statut='o',typ='R',max='**',),
9027                           NB_INST     = SIMP(statut='f',typ='I',val_min=100,defaut=100),
9028
9029                           TABLE_RESU  = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),),
9030                           GRAPHIQUE   = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
9031                                              into=  ('P-Q','EPS_AXI-Q','EPS_AXI-EPS_VOL',),
9032                                              defaut=('P-Q','EPS_AXI-Q','EPS_AXI-EPS_VOL',),),
9033                           TABLE_REF   = SIMP(statut='f',typ=table_sdaster,max='**',),
9034
9035                                       ),
9036
9037                      # ---
9038                      #  Essai Triaxial Monotone Non Draine ('TND')
9039                      # ---
9040                      ESSAI_TND = FACT(statut='f',max='**',
9041  
9042                           PRES_CONF   = SIMP(statut='o',typ='R',max='**',),
9043                           EPSI_IMPOSE = SIMP(statut='o',typ='R',max='**',),
9044                           BIOT_COEF   = SIMP(statut='f',typ='R',defaut=1.,),
9045                           NB_INST     = SIMP(statut='f',typ='I',val_min=100,defaut=100),
9046
9047                           TABLE_RESU  = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),),
9048                           GRAPHIQUE   = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
9049                                              into=  ('P-Q','EPS_AXI-Q','EPS_AXI-PRE_EAU',),
9050                                              defaut=('P-Q','EPS_AXI-Q','EPS_AXI-PRE_EAU',),),
9051                           TABLE_REF   = SIMP(statut='f',typ=table_sdaster,max='**',),
9052
9053                                       ),
9054
9055                      # ---
9056                      #  Essai de Cisaillement Cyclique Draine ('CISA_C')
9057                      # ---
9058                      ESSAI_CISA_C = FACT(statut='f',max='**',
9059  
9060                           PRES_CONF   = SIMP(statut='o',typ='R',max='**',),
9061                           EPSI_IMPOSE = SIMP(statut='o',typ='R',max='**',),
9062                           EPSI_ELAS   = SIMP(statut='f',typ='R',defaut=1.E-7,val_max=1.E-7),
9063                           NB_CYCLE    = SIMP(statut='o',typ='I',val_min=1),
9064                           NB_INST     = SIMP(statut='f',typ='I',val_min=25,defaut=25),
9065
9066                           TABLE_RESU  = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),),
9067                           GRAPHIQUE   = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
9068                                              into=  ('EPSXY-SIGXY','EPSXY-G','EPSXY-D',),
9069                                              defaut=('EPSXY-SIGXY','EPSXY-G','EPSXY-D',),),
9070                           TABLE_REF   = SIMP(statut='f',typ=table_sdaster,max='**',),
9071
9072                                       ),
9073
9074                      # ---
9075                      #  Essai Triaxial Non Draine Cyclique ('TND_C')
9076                      # ---
9077                      ESSAI_TND_C = FACT(statut='f',max='**',
9078  
9079                           PRES_CONF   = SIMP(statut='o',typ='R',max='**',),
9080                           SIGM_IMPOSE = SIMP(statut='o',typ='R',max='**',),
9081                           BIOT_COEF   = SIMP(statut='f',typ='R',defaut=1.,),
9082                           UN_SUR_K    = SIMP(statut='o',typ='R',),
9083                           NB_CYCLE    = SIMP(statut='o',typ='I',val_min=1),
9084                           NB_INST     = SIMP(statut='f',typ='I',val_min=25,defaut=25),
9085
9086                           TABLE_RESU  = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),),
9087                           GRAPHIQUE   = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
9088                                              into=  ('NCYCL-DSIGM','P-Q','SIG_AXI-PRE_EAU',),
9089                                              defaut=('NCYCL-DSIGM','P-Q','SIG_AXI-PRE_EAU',),),
9090                           TABLE_REF   = SIMP(statut='f',typ=table_sdaster,max='**',),
9091
9092                                       ),
9093
9094                      # ---
9095                      #  Essai ... ('XXX')
9096                      # ---
9097                      #ESSAI_XXX = FACT(statut='f',max='**',
9098                      #
9099                      #     PRES_CONF  = SIMP(statut='o',typ='R',max='**',),
9100                      #     ...
9101                      #
9102                      #     TABLE_RESU = SIMP(statut='f',typ=CO,max='**',validators=NoRepeat(),),
9103                      #     GRAPHIQUE  = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
9104                      #                        into=  ('XXX','XXX','XXX',),
9105                      #                        defaut=('XXX','XXX','XXX',),),
9106                      #     TABLE_REF  = SIMP(statut='f',typ=table_sdaster,max='**',),
9107                      #
9108                      #                 ),
9109
9110                     INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),)
9111
9112 # ======================================================================
9113 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
9114 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9115 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9116 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9117 # (AT YOUR OPTION) ANY LATER VERSION.
9118 #
9119 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9120 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9121 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9122 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9123 #
9124 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9125 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9126 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9127 # ======================================================================
9128 # person_in_charge: aimery.assire at edf.fr
9129
9130 def calc_europlexus_prod(self,COURBE=None,**args):
9131   if COURBE is not None:
9132       self.type_sdprod(args['TABLE_COURBE'],table_sdaster)
9133   return evol_noli
9134
9135 CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS",
9136                         op=OPS('Macro.calc_europlexus_ops.calc_europlexus_ops'),
9137                         sd_prod=calc_europlexus_prod,
9138                         reentrant='n',
9139                         UIinfo={"groupes":("Outils-métier","Dynamique",)},
9140                         fr="Chainage Code_Aster-Europlexus",
9141                         regles=(PRESENT_ABSENT('ETAT_INIT','MODELE'),
9142                                 PRESENT_ABSENT('ETAT_INIT','CARA_ELEM'),
9143                                 PRESENT_ABSENT('ETAT_INIT','CHAM_MATER'),
9144                                 EXCLUS('ETAT_INIT','FONC_PARASOL'),
9145                                 AU_MOINS_UN('COMPORTEMENT'),),
9146         LOGICIEL = SIMP(statut='f', typ='TXM', defaut='/home/europlex/EPXD/bin/europlexus'),
9147         LANCEMENT = SIMP(statut='f', typ='TXM', defaut='OUI',into=('OUI','NON')),
9148
9149         ETAT_INIT = FACT(statut='f',
9150            RESULTAT    = SIMP(statut='o',typ=evol_noli),
9151            CONTRAINTE = SIMP(statut='f', typ='TXM', defaut='NON',into=('OUI','NON')),
9152            EQUILIBRE  = SIMP(statut='f', typ='TXM', defaut='OUI',into=('OUI','NON')),
9153            b_niter          =BLOC(condition = "CONTRAINTE == 'NON' ",
9154                                  NITER = SIMP(statut='f',typ='I',defaut=1),
9155                                  ),
9156         ),
9157         MODELE     = SIMP(statut='f',typ=modele_sdaster),
9158         CARA_ELEM  = SIMP(statut='f',typ=cara_elem),
9159
9160         FONC_PARASOL = FACT(statut='f',
9161            regles=(PRESENT_PRESENT('NFKT','NFKR'),),
9162            NFKT       = SIMP(statut='f',typ=(fonction_sdaster,)),
9163            NFKR       = SIMP(statut='f',typ=(fonction_sdaster,)),
9164            NFAT       = SIMP(statut='f',typ=(fonction_sdaster,)),
9165            NFAR       = SIMP(statut='f',typ=(fonction_sdaster,)),
9166            GROUP_MA   = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9167            ),
9168
9169
9170         CHAM_MATER = SIMP(statut='f',typ=cham_mater),
9171         COMPORTEMENT  =C_COMPORTEMENT('CALC_EUROPLEXUS'),
9172
9173         EXCIT      = FACT(statut='o',max='**',
9174            CHARGE         = SIMP(statut='o',typ=(char_meca,)),
9175            FONC_MULT      = SIMP(statut='f',typ=(fonction_sdaster,)),
9176           ),
9177
9178         DIME = FACT(statut='f', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE',
9179                                                     'PT6L','ZONE','POUT','ECRO',
9180                                                     'APPU','BLOQ','PRESS','PMAT',
9181                                                     'DKT3','DEPL','FNOM','TABLE','FTAB',
9182                                                     'MTTI','NEPE','LIAI',), ),
9183            UNITE_DIME=SIMP(statut='f',typ='I'),
9184
9185            Q4GS  = SIMP(statut='f',typ='I'),
9186            FORCE = SIMP(statut='f',typ='I'),
9187            PT6L  = SIMP(statut='f',typ='I'),
9188            ZONE  = SIMP(statut='f',typ='I'),
9189            POUT  = SIMP(statut='f',typ='I'),
9190            ECRO  = SIMP(statut='f',typ='I'),
9191            APPU  = SIMP(statut='f',typ='I'),
9192            BLOQ  = SIMP(statut='f',typ='I'),
9193            PRESS = SIMP(statut='f',typ='I',min=2,max=2,),
9194            PMAT  = SIMP(statut='f',typ='I'),
9195            DKT3  = SIMP(statut='f',typ='I'),
9196            DEPL  = SIMP(statut='f',typ='I'),
9197            FNOM  = SIMP(statut='f',typ='I'),
9198            TABLE = SIMP(statut='f',typ='I',min=2,max=2,),
9199            FTAB  = SIMP(statut='f',typ='I'),
9200            MTTI  = SIMP(statut='f',typ='I'),
9201            NEPE  = SIMP(statut='f',typ='I'),
9202            LIAI  = SIMP(statut='f',typ='I'),
9203              ),
9204
9205         CALCUL = FACT(statut='o',
9206            TYPE_DISCRETISATION  = SIMP(statut='o',typ='TXM',defaut='AUTO',into=('AUTO','UTIL')),
9207            INST_FIN             = SIMP(statut='o',typ='R'),
9208            INST_INIT            = SIMP(statut='o',typ='R'),
9209            NMAX                 = SIMP(statut='f',typ='R'),
9210
9211            b_auto =BLOC( condition = "TYPE_DISCRETISATION=='AUTO'",
9212               CSTAB  = SIMP(statut='o',typ='R',defaut=0.3),
9213 #              DTMAX  = SIMP(statut='f',typ='R'),
9214                        ),
9215
9216            b_util =BLOC( condition = "TYPE_DISCRETISATION=='UTIL'",
9217               PASFIX   = SIMP(statut='o',typ='R'),
9218                        ),
9219            ),
9220
9221
9222         OBSERVATION     =FACT(statut='f',max='**',
9223            SUIVI_DDL       = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")),
9224         b_suivi          =BLOC(condition = "SUIVI_DDL == 'OUI' ",
9225                                regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',),
9226                                         EXCLUS('PAS_NBRE','PAS_INST',),
9227                                         EXCLUS('GROUP_NO','TOUT_GROUP_NO',),
9228                                         EXCLUS('GROUP_MA','TOUT_GROUP_MA',), ),
9229            NOM_CHAM        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut=('DEPL',),into=('DEPL'
9230                                          ,'VITE','ACCE','SIEF_ELGA','EPSI_ELGA','VARI_ELGA'),),
9231            PAS_INST        = SIMP(statut='f',typ='R'),
9232            PAS_NBRE        = SIMP(statut='f',typ='I'),
9233            GROUP_NO        = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9234            GROUP_MA        = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9235            TOUT_GROUP_NO   = SIMP(statut='f',typ='TXM',into=('OUI',),),
9236            TOUT_GROUP_MA   = SIMP(statut='f',typ='TXM',into=('OUI',),),
9237                              ),
9238         ),
9239
9240
9241         ARCHIVAGE        =FACT(statut='o', regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), EXCLUS('PAS_NBRE','PAS_INST',), ),
9242            PAS_INST     = SIMP(statut='f',typ='R'),
9243            PAS_NBRE     = SIMP(statut='f',typ='I'),
9244            CONT_GENER   = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")),
9245                              ),
9246         COURBE  =  FACT(statut='f',max='**', regles=(EXCLUS('GROUP_NO','GROUP_MA')),
9247            UNITE_ALIT = SIMP(statut='f',typ='I'),
9248             NOM_CHAM   = SIMP(statut='f',typ='TXM'),
9249             NOM_CMP    = SIMP(statut='f',typ='TXM'),
9250 #             NOEUD      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
9251 #             MAILLE     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
9252             GROUP_NO   = SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9253             GROUP_MA   = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
9254
9255             b_maille = BLOC(condition = "GROUP_MA != None", regles=(AU_MOINS_UN('NUM_GAUSS')),
9256               NUM_GAUSS = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),),
9257          ),
9258         b_courbe = BLOC(condition = "COURBE != None",
9259                         regles=(AU_MOINS_UN('PAS_NBRE_COURBE','PAS_INST_COURBE',),
9260                                 AU_MOINS_UN('TABLE_COURBE',)),
9261           PAS_INST_COURBE      = SIMP(statut='f',typ='R'),
9262           PAS_NBRE_COURBE       = SIMP(statut='f',typ='I'),
9263                   TABLE_COURBE      = SIMP(statut='f', typ=CO),
9264           ),
9265         DOMAINES = FACT(statut='f',max='**',
9266              GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9267              IDENTIFIANT =  SIMP(statut='f',typ='I'),),
9268         INTERFACES = FACT(statut='f',max='**',
9269              GROUP_MA_1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9270              GROUP_MA_2 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9271              TOLE        =  SIMP(statut='f',typ='R'),
9272              IDENT_DOMAINE_1  = SIMP(statut='f',typ='I'),
9273              IDENT_DOMAINE_2  = SIMP(statut='f',typ='I'),),
9274
9275          INFO            =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
9276         ) ;
9277
9278 # ======================================================================
9279 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
9280 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9281 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9282 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9283 # (AT YOUR OPTION) ANY LATER VERSION.
9284 #
9285 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9286 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9287 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9288 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9289 #
9290 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9291 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9292 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9293 # ======================================================================
9294 # person_in_charge: van-xuan.tran at edf.fr
9295 def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
9296   if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem
9297   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem
9298   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster
9299   if TYPE_CALCUL == "FATIGUE_VIBR" : return cham_elem
9300   raise AsException("type de calcul non prevu")
9301
9302 CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
9303                   fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique"
9304                       +" dans lequel le cisaillement est maximal.",
9305             UIinfo={"groupes":("Post-traitements","Rupture",)},
9306
9307          TYPE_CALCUL = SIMP(statut='o',typ='TXM',
9308                                into=("CUMUL_DOMMAGE","FATIGUE_MULTI","FATIGUE_VIBR") ),
9309
9310          b_cumul_domma   =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'",
9311                                fr="Calcul d un champ de dommage subi par une structure.",
9312            regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
9313            OPTION          =SIMP(statut='o',typ='TXM',
9314                                  into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
9315                                        "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
9316                                        "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
9317
9318              b_sigm   =BLOC(condition = "OPTION == 'DOMA_ELNO_SIGM' or OPTION == 'DOMA_ELGA_SIGM'",
9319                                fr="Calcul a partir d un champ de contraintes.",
9320                HISTOIRE        =FACT(statut='o',
9321                RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
9322                                                    evol_noli) ),
9323                EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
9324                                  into=("VMIS_SG",) ),
9325                                    ),
9326                            ),
9327              b_epsi   =BLOC(condition = "OPTION != 'DOMA_ELNO_SIGM' and OPTION != 'DOMA_ELGA_SIGM'",
9328                                fr="Calcul a partir d un champ de déformations.",
9329                HISTOIRE        =FACT(statut='o',
9330                RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
9331                                                    evol_noli) ),
9332                EQUI_GD         =SIMP(statut='o',typ='TXM',defaut="INVA_2_SG",
9333                                  into=("INVA_2_SG",) ),
9334                                     ),
9335                            ),
9336            DOMMAGE         =SIMP(statut='o',typ='TXM',
9337                                into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
9338                                      "TAHERI_MIXTE",) ),
9339            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
9340            TAHERI_NAPPE    =SIMP(statut='f',typ=(nappe_sdaster,formule) ),
9341            TAHERI_FONC     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
9342          ),
9343
9344          b_domma_moda   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_VIBR'",
9345                                fr="Calcul d un champ de dommage en dynamique vibratoire",
9346            regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
9347            OPTION          =SIMP(statut='o',typ='TXM',
9348                                  into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",) ),
9349            CORR_SIGM_MOYE = SIMP(statut='o',typ='TXM',into=("GOODMAN","GERBER")),
9350            HISTOIRE        =FACT(statut='o',
9351              RESULTAT  =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
9352              MODE_MECA        =SIMP(statut='o',typ=(mode_meca) ),
9353              NUME_MODE        =SIMP(statut='o',typ='I',min=1 ,max='**'),
9354              FACT_PARTICI        =SIMP(statut='o',typ='R',min=1, max='**',defaut=1. ),
9355              EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
9356                                  into=("VMIS_SG",) ),
9357            ),
9358            DOMMAGE         =SIMP(statut='o',typ='TXM',
9359                                into=("WOHLER",) ),
9360            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
9361          ),
9362
9363          b_fatigue_multi   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
9364                                  fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.",
9365            TYPE_CHARGE   =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ),
9366            OPTION        =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ),
9367            RESULTAT      =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
9368            CHAM_MATER    =SIMP(statut='f',typ=(cham_mater) ),
9369            MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster ),
9370            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
9371            GROUP_MA      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
9372            MAILLE        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**' ),
9373            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ),
9374            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**' ),
9375            COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0),
9376            b_period       =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'",
9377                CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC",
9378                                                               "DANG_VAN_MODI_AC","VMIS_TRESCA","FORMULE_CRITERE") ),
9379                b_fati_p  =BLOC(condition = "(CRITERE == 'MATAKE_MODI_AC' or CRITERE == 'DANG_VAN_MODI_AC')",
9380                    METHODE       =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
9381                ),
9382                
9383                b_fati_pf  =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')",
9384                    FORMULE_GRDEQ   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
9385                    COURBE_GRD_VIE  = SIMP(statut='o',typ='TXM',into=("WOHLER","MANSON_C","FORM_VIE") ),
9386                    FORMULE_CRITIQUE = SIMP(statut='f',typ=(fonction_sdaster,formule) ),
9387                    b_fati_pfvie  = BLOC(condition = "(COURBE_GRD_VIE == 'FORM_VIE')",
9388                         FORMULE_VIE   =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
9389                   ),
9390                ),
9391
9392                INST_INIT_CYCL =SIMP(statut='f',typ='R',min=1, max=1),
9393                INST_CRIT      =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU",) ),
9394                regles=(PRESENT_PRESENT('INST_INIT_CYCL','INST_CRIT', ),),
9395                   b_prec_rela=BLOC(condition="(INST_CRIT=='RELATIF')",
9396                         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6),),
9397                   b_prec_abso=BLOC(condition="(INST_CRIT=='ABSOLU')",
9398                         PRECISION       =SIMP(statut='o',typ='R'),),
9399            ),
9400            b_non_period   =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'",
9401                CRITERE       =SIMP(statut='o',typ='TXM',
9402                                    into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","FORMULE_CRITERE","VMIS_TRESCA") ),
9403                b_fati_np  =BLOC(condition =
9404                                "(CRITERE != 'VMIS_TRESCA')",
9405                    PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
9406                    DELTA_OSCI    =SIMP(statut='f',typ='R',defaut= 0.0E+0),
9407                ),
9408                b_fati_npf  =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')",
9409                    FORMULE_GRDEQ   =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
9410                    COURBE_GRD_VIE  = SIMP(statut='o',typ='TXM',into=("WOHLER","MANSON_C","FORM_VIE") ),
9411                    b_fati_npfvie  = BLOC(condition = "(COURBE_GRD_VIE == 'FORM_VIE')",
9412                         FORMULE_VIE   =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
9413                   ),
9414                ),
9415            ),
9416          ),
9417
9418          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
9419 )  ;
9420
9421 # ======================================================================
9422 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9423 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9424 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9425 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9426 # (AT YOUR OPTION) ANY LATER VERSION.
9427 #
9428 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9429 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9430 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9431 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9432 #
9433 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9434 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9435 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9436 # ======================================================================
9437 # person_in_charge: jacques.pellet at edf.fr
9438
9439 def calc_ferraillage_prod(RESULTAT,**args):
9440    if AsType(RESULTAT) != None : return AsType(RESULTAT)
9441    raise AsException("type de concept resultat non prevu")
9442
9443
9444 CALC_FERRAILLAGE=OPER(nom="CALC_FERRAILLAGE",op=175,sd_prod=calc_ferraillage_prod, reentrant='o',
9445             UIinfo={"groupes":("Post-traitements","Outils-métier",)},
9446                  fr="calcul de cartes de densité de ferraillage ",
9447
9448          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,) ),
9449
9450
9451 #====
9452 # Sélection des numéros d'ordre pour lesquels on fait le calcul :
9453 #====
9454          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9455          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
9456          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
9457          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
9458          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
9459          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
9460          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
9461
9462          b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
9463             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
9464             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9465                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9466             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9467                  PRECISION       =SIMP(statut='o',typ='R',),),
9468          ),
9469
9470
9471 #
9472 #====
9473 # Définition des grandeurs caractéristiques
9474 #====
9475 #
9476          TYPE_COMB    =SIMP(statut='o',typ='TXM',into=('ELU','ELS')),
9477
9478 #        mot clé facteur répétable pour assigner les caractéristiques locales par zones topologiques (GROUP_MA)
9479          AFFE  =FACT(statut='o',max='**',
9480            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
9481            TOUT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9482            GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9483            MAILLE     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
9484            ENROBG     =SIMP(statut='o',typ='R'), # enrobage
9485            CEQUI      =SIMP(statut='f',typ='R'), # coefficient d'équivalence acier/béton  (pour ELS)
9486            SIGM_ACIER =SIMP(statut='o',typ='R'), # contrainte admissible dans l'acier
9487            SIGM_BETON =SIMP(statut='o',typ='R'), # contrainte admissible dans le béton
9488            PIVA       =SIMP(statut='f',typ='R'), # valeur du pivot a  (pour ELU)
9489            PIVB       =SIMP(statut='f',typ='R'), # valeur du pivot b  (pour ELU)
9490            ES         =SIMP(statut='f',typ='R'), # valeur du Module d'Young de l'acier (pour ELU)
9491            ),
9492       )
9493
9494
9495 ##############################################################################################################
9496 # Remarques :
9497 #-----------
9498 #        l'épaisseur des coques sera récupérée automatiquement
9499 #        via le cara_elem sous-jacent au résultat
9500
9501 # Le résultat produit est un champ constant par éléments associé à la grandeur FER2_R
9502 # qui comporte les composantes :
9503 #
9504 #     DNSXI  densité d'acier longitudinal suivant X, peau inf
9505 #     DNSXS  densité d'acier longitudinal suivant X, peau sup
9506 #     DNSYI  densité d'acier longitudinal suivant Y, peau inf
9507 #     DNSYS  densité d'acier longitudinal suivant Y, peau sup
9508 #     DNST   densité d'acier transversal à l'ELU
9509 #     SIGMBE contrainte beton
9510 #     EPSIBE deformation béton
9511
9512 # arrêt en erreur si:
9513 # - EFGE_ELNO n'a pas été précédemment calculé et n'est donc pas présent dans la structure de données RESULTAT
9514 # - si aucun CARA_ELEM n'est récupérable via la structure de données RESULTAT
9515
9516 # ======================================================================
9517 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9518 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9519 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9520 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9521 # (AT YOUR OPTION) ANY LATER VERSION.
9522 #
9523 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9524 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9525 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9526 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9527 #
9528 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9529 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9530 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9531 # ======================================================================
9532 # person_in_charge: andre.adobes at edf.fr
9533 CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
9534                     reentrant='n',
9535                     fr="Calculer les paramètres modaux d'une structure soumise à un écoulement",
9536             UIinfo={"groupes":("Matrices et vecteurs",)},
9537          VITE_FLUI       =FACT(statut='f',
9538                                fr="Définir la plage de vitesse fluide étudiée",
9539            VITE_MIN        =SIMP(statut='f',typ='R' ),
9540            VITE_MAX        =SIMP(statut='f',typ='R' ),
9541            NB_POIN         =SIMP(statut='f',typ='I' ),
9542          ),
9543          BASE_MODALE     =FACT(statut='o',
9544
9545            regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),),
9546            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
9547            NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
9548            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
9549            AMOR_UNIF       =SIMP(statut='f',typ='R',val_min=0.E+00 ),
9550            AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
9551          ),
9552          TYPE_FLUI_STRU  =SIMP(statut='o',typ=type_flui_stru ),
9553          IMPRESSION      =FACT(statut='f',
9554                                fr="Choix des informations à imprimer dans le fichier RESULTAT",
9555            PARA_COUPLAGE   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
9556            DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
9557          ),
9558 )  ;
9559
9560 # ======================================================================
9561 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
9562 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9563 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9564 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9565 # (AT YOUR OPTION) ANY LATER VERSION.
9566 #
9567 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9568 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9569 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9570 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9571 #
9572 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9573 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9574 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9575 # ======================================================================
9576 # person_in_charge: mathieu.courtois at edf.fr
9577 def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args):
9578    if   AsType(FONCTION) == nappe_sdaster:
9579       return nappe_sdaster
9580    elif AsType(FONCTION) == fonction_sdaster:
9581       return fonction_sdaster
9582    elif AsType(FONCTION) == fonction_c:
9583       return fonction_c
9584    elif AsType(FONCTION) == formule_c:
9585       return fonction_c
9586    elif AsType(FONCTION) == formule:
9587       if NOM_PARA_FONC != None:
9588          return nappe_sdaster
9589       return fonction_sdaster
9590    raise AsException("type de concept resultat non prevu")
9591
9592 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod,
9593                       docu="U4.32.01",reentrant='n',
9594            fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables",
9595            UIinfo={"groupes":("Fonctions",)},
9596          regles=(UN_PARMI('VALE_PARA','LIST_PARA'),),
9597          FONCTION        =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ),
9598          VALE_PARA       =SIMP(statut='f',typ='R',max='**'),
9599          LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
9600          NOM_RESU        =SIMP(statut='f',typ='TXM'),
9601          NOM_PARA        =SIMP(statut='f',typ='TXM'),
9602          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
9603          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
9604          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
9605          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM'),
9606          b_eval_nappe    =BLOC(condition = "NOM_PARA_FONC != None",
9607             regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),),
9608             VALE_PARA_FONC  =SIMP(statut='f',typ='R',max='**'),
9609             LIST_PARA_FONC  =SIMP(statut='f',typ=listr8_sdaster ),
9610             INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")),
9611             PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
9612             PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
9613          ),
9614          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9615          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
9616 )  ;
9617
9618 # ======================================================================
9619 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
9620 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9621 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9622 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9623 # (AT YOUR OPTION) ANY LATER VERSION.
9624 #
9625 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9626 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9627 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9628 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9629 #
9630 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9631 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9632 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9633 # ======================================================================
9634 # person_in_charge: mathieu.courtois at edf.fr
9635 def calc_fonction_prod(self, DERIVE, EXTRACTION, INTEGRE, INVERSE, COMB, COMB_C, MULT,
9636                        ENVELOPPE, FRACTILE, SPEC_OSCI, ASSE, FFT, COMPOSE, CORR_ACCE,
9637                        PUISSANCE, LISS_ENVELOP, ABS, REGR_POLYNOMIALE, DSP, **args):
9638
9639    if (INTEGRE     != None): return fonction_sdaster
9640    if (DERIVE      != None): return fonction_sdaster
9641    if (INVERSE     != None): return fonction_sdaster
9642    if (COMB        != None):
9643       type_vale=AsType(COMB[0]['FONCTION'])
9644       for mcfact in COMB :
9645           if(AsType(mcfact['FONCTION'])!=type_vale):
9646              raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction")
9647       return type_vale
9648    if (COMB_C      != None):
9649       vale=COMB_C[0]['FONCTION']
9650       if(AsType(vale) == nappe_sdaster):
9651          for mcfact in COMB_C[1:] :
9652              if(AsType(mcfact['FONCTION'])!=nappe_sdaster):
9653                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
9654          return nappe_sdaster
9655       else:
9656          for mcfact in COMB_C :
9657              if(AsType(mcfact['FONCTION'])==nappe_sdaster):
9658                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
9659          return fonction_c
9660    if (ENVELOPPE   != None): return AsType(ENVELOPPE[0]['FONCTION'])
9661    if (FRACTILE    != None): return AsType(FRACTILE[0] ['FONCTION'])
9662    if (EXTRACTION  != None): return fonction_sdaster
9663    if (SPEC_OSCI   != None): return nappe_sdaster
9664    if (DSP         != None): return fonction_sdaster
9665    if (COMPOSE     != None): return fonction_sdaster
9666    if (ASSE        != None): return fonction_sdaster
9667    if (MULT        != None):
9668       type_vale = AsType(MULT[0]['FONCTION'])
9669       for mcfact in MULT:
9670           if(AsType(mcfact['FONCTION']) != type_vale):
9671              raise AsException("CALC_FONCTION/MULT : pas de types hétérogènes nappe/fonction")
9672       return type_vale
9673    if (FFT         != None):
9674       vale=FFT[0]['FONCTION']
9675       if (AsType(vale) == fonction_sdaster )  : return fonction_c
9676       if (AsType(vale) == fonction_c) : return fonction_sdaster
9677    if (CORR_ACCE   != None): return fonction_sdaster
9678    if (LISS_ENVELOP!= None): return nappe_sdaster
9679    if (REGR_POLYNOMIALE != None): return fonction_sdaster
9680    if (PUISSANCE   != None): return AsType(PUISSANCE[0]['FONCTION'])
9681    if (ABS         != None): return fonction_sdaster
9682    raise AsException("type de concept resultat non prevu")
9683
9684
9685 CALC_FONCTION=MACRO(nom="CALC_FONCTION",
9686                     op=OPS('Macro.calc_fonction_ops.calc_fonction_ops'),
9687                     sd_prod=calc_fonction_prod,
9688                     fr="Effectue des opérations mathématiques sur des concepts de type fonction",
9689                     reentrant='n',
9690                     UIinfo={"groupes":("Fonctions",)},
9691          regles=(UN_PARMI('DERIVE', 'INTEGRE', 'SPEC_OSCI', 'DSP', 'FFT', 'CORR_ACCE',
9692                           'COMB', 'COMB_C', 'MULT', 'ASSE', 'INVERSE', 'ABS',
9693                           'ENVELOPPE', 'COMPOSE', 'EXTRACTION', 'PUISSANCE', 
9694                           'LISS_ENVELOP', 'FRACTILE', 'REGR_POLYNOMIALE'),),
9695          FFT             =FACT(statut='f',fr="Transformée de Fourier ou de son inverse",
9696            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ),
9697            METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE","COMPLET") ),
9698            b_syme          =BLOC ( condition = " AsType(FONCTION)==fonction_c ",
9699              SYME           =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
9700            ),
9701          ),
9702          DERIVE          =FACT(statut='f',fr="Dérivée d une fonction",
9703            METHODE         =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
9704            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
9705          ),
9706          INTEGRE         =FACT(statut='f',fr="Intégrale d'une fonction",
9707            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
9708            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
9709            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
9710          ),
9711          LISS_ENVELOP    = FACT(statut='f',fr="Lissage d une enveloppe",
9712            NAPPE           =SIMP(statut='o',typ=nappe_sdaster ),
9713            FREQ_MIN        =SIMP(statut='f',typ='R',defaut =0.2),
9714            FREQ_MAX        =SIMP(statut='f',typ='R',defaut =35.5),
9715            ELARG           =SIMP(statut='f',typ='R',defaut =0.1 ),
9716            TOLE_LISS       =SIMP(statut='f',typ='R',defaut =0.25 ),
9717          ),
9718          REGR_POLYNOMIALE = FACT(statut='f',fr="Régression polynomiale d'une fonction",
9719            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
9720            DEGRE           =SIMP(statut='o',typ='I'),
9721          ),
9722         SPEC_OSCI       =FACT(statut='f',fr="Spectre d'oscillateur",
9723            METHODE         =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM","HARMO","RICE") ),
9724            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
9725            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
9726            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
9727            FREQ            =SIMP(statut='f',typ='R',  max='**'),
9728            NORME           =SIMP(statut='o',typ='R',fr="Valeur de la norme du spectre d oscillateur" ),
9729            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
9730            b_methode       =BLOC(condition = "METHODE !='RICE' ",
9731              NATURE_FONC     =SIMP(statut='f', typ='TXM', defaut="ACCE", into=("ACCE",),),),
9732            b_rice          =BLOC(condition = "METHODE =='RICE' ",
9733              DUREE           =SIMP(statut='o', typ='R', val_min=0.,
9734                                  fr="durée de la phase forte pour facteur de pic"),
9735              NATURE_FONC     =SIMP(statut='f', typ='TXM', defaut="DSP", into=("DSP",),),),
9736          ),
9737          DSP             =FACT(statut='f', fr="Densité spectrale",
9738            FONCTION        =SIMP(statut='o', typ=fonction_sdaster ),
9739            AMOR_REDUIT     =SIMP(statut='o', typ='R', val_min=0., val_max=1.),
9740            NORME           =SIMP(statut='o', typ='R'),
9741            LIST_FREQ       =SIMP(statut='f', typ=listr8_sdaster ),
9742            FREQ_PAS            =SIMP(statut='f', typ='R'),
9743                 regles=(UN_PARMI('FREQ_PAS','LIST_FREQ'),),
9744            FREQ_COUP       =SIMP(statut='o', typ='R', fr="fréquence de coupure" ),
9745            DUREE           =SIMP(statut='o', typ='R', val_min=0.,
9746                                  fr="durée de la phase forte pour facteur de peak"),
9747            FRACT           =SIMP(statut='o', typ='R', defaut=0.5, val_min=0., val_max=1., fr="fractile" ),
9748          ),
9749          ABS             =FACT(statut='f',fr="Valeur absolue d'une fonction",
9750            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,),
9751          ),
9752          COMB            =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions",
9753            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
9754            COEF            =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
9755          ),
9756          COMB_C          =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions",
9757            regles=(UN_PARMI('COEF_R','COEF_C'),),
9758            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ),
9759            COEF_R          =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
9760            COEF_C          =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
9761          ),
9762          MULT            =FACT(statut='f',max='**',fr="Produit de fonctions réelles",
9763            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ),
9764          ),
9765          b_comb          =BLOC ( condition = "COMB != None or COMB_C != None " \
9766                                              "or REGR_POLYNOMIALE != None or MULT != None",
9767              LIST_PARA      =SIMP(statut='f',typ=listr8_sdaster ),
9768          ),
9769          COMPOSE         =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)",
9770            FONC_RESU       =SIMP(statut='o',typ=fonction_sdaster),
9771            FONC_PARA       =SIMP(statut='o',typ=fonction_sdaster),
9772          ),
9773          EXTRACTION      =FACT(statut='f',fr="Extraction sur une fonction complexe",
9774            FONCTION        =SIMP(statut='o',typ=fonction_c),
9775            PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"),
9776          ),
9777          ENVELOPPE       =FACT(statut='f',fr="Enveloppe d une famille de fonctions",
9778            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
9779            CRITERE         =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
9780          ),
9781          FRACTILE        =FACT(statut='f',fr="Fractile d une famille de fonctions ou de nappes",
9782            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
9783            FRACT           =SIMP(statut='o',typ='R',defaut=1.,val_min=0.,val_max=1.,fr="Valeur du fractile" ),
9784          ),
9785          ASSE            =FACT(statut='f',fr="Concatenation de fonctions",
9786            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ),
9787            SURCHARGE       =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
9788          ),
9789          CORR_ACCE       =FACT(statut='f',fr="Correction d un accelerogramme reel",
9790             CORR_DEPL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
9791             FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
9792          ),
9793          PUISSANCE       =FACT(statut='f',fr="Fonction élevée à une puissance",
9794             FONCTION      =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ),
9795             EXPOSANT      =SIMP(statut='f', typ='I', defaut=1 ),
9796          ),
9797          INVERSE         =FACT(statut='f',fr="Inverse d'une fonction",
9798             FONCTION      =SIMP(statut='o', typ=fonction_sdaster),
9799          ),
9800          NOM_PARA        =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
9801          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
9802          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG"),
9803                                fr="Type d'interpolation pour les abscisses et les ordonnées de la " \
9804                                   "fonction ou bien pour le paramètre de la nappe."),
9805          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
9806          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
9807          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
9808          INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG"),
9809                                  fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"),
9810          PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
9811          PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
9812          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
9813 )
9814
9815 # ======================================================================
9816 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
9817 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9818 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9819 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9820 # (AT YOUR OPTION) ANY LATER VERSION.
9821 #
9822 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9823 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9824 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9825 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9826 #
9827 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9828 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9829 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9830 # ======================================================================
9831 # person_in_charge: nicolas.greffet at edf.fr
9832 CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
9833                    fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure"
9834                        +" en analyse sismique",
9835                    reentrant ='n',
9836             UIinfo={"groupes":("Matrices et vecteurs",)},
9837
9838         regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
9839                 PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
9840                 UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
9841                 UN_PARMI('MONO_APPUI','MODE_STAT')),
9842
9843          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
9844          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
9845          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
9846          CHARGE          =SIMP(statut='o',typ=char_ther ),
9847          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
9848          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
9849          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
9850          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
9851          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
9852          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
9853          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
9854          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
9855
9856          DIRECTION       =SIMP(statut='o',typ='R',max=3),
9857          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
9858          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9859          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9860          MODE_STAT       =SIMP(statut='f',typ=mode_meca,),
9861          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
9862 #-------------------------------------------------------------------
9863 #        Catalogue commun SOLVEUR
9864          SOLVEUR         =C_SOLVEUR('CALC_FORC_AJOU'),
9865 #-------------------------------------------------------------------
9866      ) ;
9867
9868 # ======================================================================
9869 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
9870 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
9871 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
9872 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
9873 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
9874 #                                                                       
9875 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
9876 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
9877 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
9878 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
9879 #                                                                       
9880 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
9881 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
9882 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
9883 # ======================================================================
9884 # person_in_charge: Georges-cc.devesa at edf.fr
9885
9886 CALC_FORC_NONL=OPER(nom="CALC_FORC_NONL",op= 183,sd_prod=dyna_trans,reentrant='n',
9887             fr="Créer un dyna_trans contenant des champs nommés 'DEPL' correspondant à 'FONL_NOEU' ",
9888             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
9889          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
9890
9891          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
9892                         'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
9893                  ),
9894          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9895          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
9896          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
9897          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
9898          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
9899          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9900          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9901          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
9902          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
9903          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
9904          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
9905          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9906              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9907          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9908              PRECISION       =SIMP(statut='o',typ='R',),),
9909          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, defaut="FONL_NOEU",
9910                                into=("FONL_NOEU",) ),
9911
9912          MODELE          =SIMP(statut='o',typ=modele_sdaster),
9913          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
9914          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
9915
9916          COMPORTEMENT       =C_COMPORTEMENT(),
9917 )  ;
9918
9919 # ======================================================================
9920 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
9921 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9922 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9923 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9924 # (AT YOUR OPTION) ANY LATER VERSION.
9925 #
9926 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9927 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9928 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9929 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9930 #
9931 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9932 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9933 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9934 # ======================================================================
9935 # person_in_charge: samuel.geniaut at edf.fr
9936 CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster,
9937             fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité"
9938                         +" et les facteurs d'intensité de contraintes.",
9939                     reentrant='f',
9940             UIinfo={"groupes":("Post-traitements","Rupture",)},
9941
9942          THETA          =FACT(statut='o',
9943            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),),
9944            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,max=1),
9945            FISSURE         =SIMP(statut='f',position='global',typ=fiss_xfem,max=1),
9946            NB_POINT_FOND   =SIMP(statut='f',typ='I',val_min=2),
9947            regles=(
9948                    EXCLUS('FOND_FISS','NB_POINT_FOND'),
9949                    UN_PARMI('THETA','FOND_FISS','FISSURE')
9950                    ),
9951           b_theta        =BLOC(condition="THETA == None",fr="calcul de theta",
9952             regles=(PRESENT_PRESENT('R_INF','R_SUP'),
9953                 PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
9954              NUME_FOND        =SIMP(statut='f',typ='I',defaut=1),
9955              R_INF           =SIMP(statut='f',typ='R'),
9956              R_SUP           =SIMP(statut='f',typ='R'),
9957              MODULE          =SIMP(statut='f',typ='R',defaut=1.),
9958              DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
9959              DIRECTION       =SIMP(statut='f',typ='R',max=3,min=3),
9960              R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9961              R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9962              MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9963              ),
9964            b_no_fond_fiss      =BLOC(condition="FOND_FISS== None",
9965              SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
9966              ),
9967             ),
9968
9969          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca,mult_elas),),
9970                     
9971          b_no_mult          =BLOC(condition="(AsType(RESULTAT) != mult_elas)",
9972          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
9973                   'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ'),),
9974
9975             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9976             NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
9977             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
9978             INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9979             LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
9980             TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9981             NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
9982             LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
9983             LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
9984             FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
9985
9986            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
9987               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9988                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
9989                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
9990                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
9991                       PRECISION       =SIMP(statut='o',typ='R'),),
9992             ),
9993          ),
9994
9995          b_mult_elas     =BLOC(condition="(AsType(RESULTAT) == mult_elas)",
9996             NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**' ),
9997          ),
9998
9999          b_no_mult_elas  =BLOC(condition="(AsType(RESULTAT) != mult_elas)",
10000             EXCIT           =FACT(statut='f',max='**',
10001                CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
10002                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10003                TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
10004                                  ),
10005          ),
10006
10007          COMPORTEMENT       =FACT(statut='f',
10008                RELATION  =SIMP( statut='o',typ='TXM',into=C_RELATION('CALC_G')),
10009                DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
10010              regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
10011                TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
10012                GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
10013                MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
10014                
10015                b_init          =BLOC(condition="RELATION=='ELAS'",),
10016                         SIGM_INIT=SIMP(statut='f', typ=(cham_no_sdaster,cham_elem)),
10017                         ),         
10018                         
10019 #         ETAT_INIT       =FACT(statut='f',
10020 #           SIGM            =SIMP(statut='f',typ=cham_elem),
10021 #           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
10022 #         ),
10023          LISSAGE         =FACT(statut='d',
10024            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
10025            LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE",
10026                                  "LAGRANGE_NO_NO","LAGRANGE_REGU"),),
10027                 b_legen    =BLOC(condition="(LISSAGE_THETA=='LEGENDRE') or (LISSAGE_G=='LEGENDRE')",
10028                   DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
10029                 ),
10030          ),
10031
10032          OPTION          =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G',
10033                                into=("CALC_G",
10034                                      "CALC_G_GLOB",
10035                                      "CALC_K_G",
10036                                      "G_MAX",
10037                                      "G_MAX_GLOB",
10038                                      "G_BILI",
10039                                      "G_BILI_GLOB",
10040                                      "CALC_K_MAX"),
10041                              ),
10042
10043          b_g_max    =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')",
10044            BORNES          =FACT(statut='o',max='**',
10045                 NUME_ORDRE     =SIMP(statut='o',typ='I'),
10046                 VALE_MIN       =SIMP(statut='o',typ='R'),
10047                 VALE_MAX       =SIMP(statut='o',typ='R'),
10048                                 ),
10049          ),
10050          b_k_max    =BLOC(condition="(OPTION=='CALC_K_MAX')",
10051            SIGNES          =FACT(statut='o',max=1,
10052                 CHARGE_S       =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
10053                 CHARGE_NS      =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
10054                                 ),
10055          ),
10056
10057         b_cal_contrainte =BLOC(condition="(COMPORTEMENT!=None and (OPTION=='CALC_G' or OPTION=='CALC_G_GLOB'))",
10058           CALCUL_CONTRAINTE =SIMP(statut='f',typ='TXM',into=("NON",),),
10059          ),
10060
10061
10062          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
10063          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
10064 );
10065
10066 # ======================================================================
10067 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
10068 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
10069 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
10070 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
10071 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
10072 #                                                                       
10073 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
10074 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
10075 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
10076 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
10077 #                                                                       
10078 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
10079 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
10080 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
10081 # ======================================================================
10082 # person_in_charge: renaud.bargellini at edf.fr
10083 #Quoi qu'il en soit, on sort la table GP
10084 #Si on est sans copeau et que l'utilisateur souhaite verifier
10085 #les copeaux automatiquement crees, il peut grace a CHAMP_COP
10086 def calc_gp_prod(self,TRANCHE_2D,GPMAX, **args):
10087   """Typage des sd_prod
10088   """
10089   if TRANCHE_2D!=None:
10090     if TRANCHE_2D['ZONE_MAIL']== "NON":
10091       for ss_cop in TRANCHE_2D:
10092         if ss_cop['CHAMP_VISU']!= None:
10093           self.type_sdprod(ss_cop['CHAMP_VISU'], cham_elem)
10094   if GPMAX !=None:
10095      self.type_sdprod(GPMAX, table_sdaster)
10096   return table_sdaster
10097
10098
10099 CALC_GP =MACRO(nom="CALC_GP",
10100                    op=OPS('Macro.calc_gp_ops.calc_gp_ops'),
10101                    sd_prod=calc_gp_prod,
10102 #                   sd_prod=table_sdaster,
10103                    UIinfo={"groupes":("Outils-métier","Rupture",)},
10104                    reentrant='n',
10105                    fr="calcul du parametre de clivage energetique Gp en 2D et en 3D",
10106                    regles=UN_PARMI('TRANCHE_2D','TRANCHE_3D'),
10107          RESULTAT    =SIMP(statut='o',typ=resultat_sdaster,
10108                                       fr="Resultat d'une commande globale STAT_NON_LINE"),
10109          LIST_INST   = SIMP(statut='o',typ=(listr8_sdaster) ),
10110          PRECISION   = SIMP(statut='f',typ='R',validators=NoRepeat(),val_min=0.,val_max=1E-3,defaut=1E-6),
10111          CRITERE     = SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU") ),                  
10112          TRANCHE_2D  = FACT(statut='f',max = 1,
10113                            ZONE_MAIL     = SIMP(statut='o',typ='TXM',into=("NON","OUI") ),
10114                            b_cop= BLOC(condition = "ZONE_MAIL=='OUI'",
10115                                        fr="Les copeaux sont mailles",
10116                                  GROUP_MA  = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'),
10117                                  TAILLE   =SIMP(statut='o',typ=listr8_sdaster),),
10118                            b_ss_cop = BLOC(condition="ZONE_MAIL=='NON'",
10119                                            fr="Les copeaux ne sont pas mailles",
10120                                  CENTRE           =SIMP(statut='o',typ='R',max=2),
10121                                  RAYON       =SIMP(statut='o',typ='R',max=1),
10122                                  ANGLE            =SIMP(statut='o',typ='R',max=1),
10123                                  TAILLE          =SIMP(statut='o',typ='R',max=1),
10124                                  NB_ZONE        =SIMP(statut='o',typ='I',),
10125                                  CHAMP_VISU        =SIMP(statut='f',typ=CO),),
10126                              ),
10127          TRANCHE_3D  = FACT(statut='f',max ='**',
10128                            GROUP_MA  = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'),
10129                              ),
10130          b_tranche_2d = BLOC(condition="TRANCHE_2D!=None",
10131                  SYME            =SIMP(statut='o',typ='TXM',into=("NON","OUI"),
10132                       fr="multiplication par 2 si SYME=OUI"),),
10133          b_tranche_3d = BLOC(condition="TRANCHE_3D!=None",
10134                  FOND_FISS       =SIMP(statut='o',typ=fond_fiss,max=1,),),
10135          GPMAX           = SIMP(statut='f',typ=CO,),
10136            )
10137
10138 # ======================================================================
10139 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
10140 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10141 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10142 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10143 # (AT YOUR OPTION) ANY LATER VERSION.
10144 #
10145 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10146 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10147 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10148 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10149 #
10150 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10151 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10152 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10153 # ======================================================================
10154 # person_in_charge: nicolas.greffet at edf.fr
10155 #
10156 # MACRO DE COUPLAGE IFS AVEC SATURNE VIA YACS
10157 #
10158 CALC_IFS_DNL= MACRO(nom='CALC_IFS_DNL',
10159                     op=OPS("Macro.calc_ifs_dnl_ops.calc_ifs_dnl_ops"),
10160                     sd_prod=evol_noli,
10161                     reentrant='f',
10162                     fr="Calcul de l'évolution dynamique d'une structure couplée à un "\
10163                        "domaine fluide (résolu avec le code Saturne) via YACS",
10164             UIinfo={"groupes":("Résolution","Dynamique",)},
10165
10166 #IFS
10167 #=>
10168          GROUP_MA_IFS     =SIMP(statut='o',typ=grma,max='**'),
10169          NOM_CMP_IFS      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
10170          UNITE_NOEUD      =SIMP(statut='f',typ='I',defaut= 81 ),
10171          UNITE_ELEM       =SIMP(statut='f',typ='I',defaut= 82 ),
10172          PAS_INIT         =SIMP(statut='o',typ='R' ),
10173 #<=
10174 #IFS
10175          MODELE          =SIMP(statut='o',typ=modele_sdaster),
10176          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
10177          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
10178          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
10179          MASS_DIAG       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
10180 #IFS
10181 #=>
10182 #(une charge force nodale est fournie par le couplage avec code_saturne
10183          EXCIT           =FACT(statut='f',max='**',
10184 #<=
10185 #IFS
10186            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
10187                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
10188                    ),
10189            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
10190                                  into=("FIXE_CSTE","SUIV","DIDI")),
10191 #IFS
10192 #=>
10193 #(une charge force nodale est fournie par le couplage avec code_saturne
10194 #           CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
10195            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
10196 #<=
10197 #IFS
10198            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10199            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10200            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10201            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10202            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
10203            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
10204            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
10205            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
10206          ),
10207          EXCIT_GENE      =FACT(statut='f',max='**',
10208            FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
10209            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
10210          ),
10211          CONTACT         =SIMP(statut='f',typ=char_contact),
10212          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
10213                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
10214                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
10215                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
10216                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
10217                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10218               ),
10219          AMOR_RAYL_RIGI = SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE"),),
10220          AMOR_MODAL      =FACT(statut='f',
10221            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
10222            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
10223            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
10224            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
10225            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
10226            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
10227          ),
10228          PROJ_MODAL      =FACT(statut='f',max='**',
10229            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
10230            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
10231            regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
10232            MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
10233            RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
10234            AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
10235            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
10236            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
10237            ACCE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
10238          ),
10239 #-------------------------------------------------------------------
10240          COMPORTEMENT       =C_COMPORTEMENT('DYNA_NON_LINE'),
10241 #-------------------------------------------------------------------
10242          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
10243          ETAT_INIT       =FACT(statut='o',
10244            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
10245                    EXCLUS('EVOL_NOLI','DEPL',),
10246                    EXCLUS('EVOL_NOLI','VITE'),
10247                    EXCLUS('EVOL_NOLI','ACCE'),
10248                    EXCLUS('EVOL_NOLI','SIGM',),
10249                    EXCLUS('EVOL_NOLI','VARI',),
10250                    EXCLUS('NUME_ORDRE','INST'), ),
10251            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
10252            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
10253            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
10254            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
10255            VARI            =SIMP(statut='f',typ=cham_elem),
10256            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
10257            NUME_ORDRE      =SIMP(statut='f',typ='I'),
10258            INST            =SIMP(statut='f',typ='R'),
10259            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
10260            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
10261                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
10262            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
10263                PRECISION       =SIMP(statut='o',typ='R',),),
10264            NUME_DIDI       =SIMP(statut='f',typ='I'),
10265            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
10266          ),),
10267          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
10268          ETAT_INIT       =FACT(statut='f',
10269            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
10270                    EXCLUS('EVOL_NOLI','DEPL',),
10271                    EXCLUS('EVOL_NOLI','VITE'),
10272                    EXCLUS('EVOL_NOLI','ACCE'),
10273                    EXCLUS('EVOL_NOLI','SIGM',),
10274                    EXCLUS('EVOL_NOLI','VARI',),
10275                    EXCLUS('NUME_ORDRE','INST'), ),
10276            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
10277            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
10278            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
10279            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
10280            VARI            =SIMP(statut='f',typ=cham_elem),
10281            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
10282            NUME_ORDRE      =SIMP(statut='f',typ='I'),
10283            INST            =SIMP(statut='f',typ='R'),
10284            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
10285            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
10286                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
10287            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
10288                PRECISION       =SIMP(statut='o',typ='R',),),
10289            NUME_DIDI       =SIMP(statut='f',typ='I'),
10290            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
10291          ),),
10292 #-------------------------------------------------------------------
10293 #IFS : pas besoin d'INCREMENT
10294 #         INCREMENT       =C_INCREMENT('MECANIQUE'),
10295 #-------------------------------------------------------------------
10296          SCHEMA_TEMPS     =FACT(statut='o',
10297             SCHEMA          =SIMP(statut='o',min=1,max=1,typ='TXM',
10298             into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE","KRENK"),),
10299             COEF_MASS_SHIFT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
10300             b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
10301                PHI          =SIMP(statut='f',typ='R',defaut= 1.05),),
10302
10303             b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
10304                BETA         =SIMP(statut='f',typ='R',defaut= 0.25),
10305                GAMMA        =SIMP(statut='f',typ='R',defaut= 0.5),),
10306
10307             b_hht     = BLOC(condition="SCHEMA=='HHT'",
10308                ALPHA        =SIMP(statut='f',typ='R',defaut= -0.3 ),
10309                MODI_EQUI    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
10310
10311             b_theta   = BLOC(condition="SCHEMA=='THETA_METHODE'",
10312                THETA         =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=100. ),),
10313
10314             b_krenk   = BLOC(condition="SCHEMA=='KRENK'",
10315                KAPPA         =SIMP(statut='f',typ='R',defaut= 1.0,val_min=1.0,val_max=100. ),),
10316
10317             b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
10318                STOP_CFL     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
10319                FORMULATION  =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
10320
10321             b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
10322                FORMULATION  =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),),
10323          ),
10324 #-------------------------------------------------------------------
10325          NEWTON          =C_NEWTON(),
10326 #-------------------------------------------------------------------
10327          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
10328 #-------------------------------------------------------------------
10329          CONVERGENCE     =C_CONVERGENCE(),
10330 #-------------------------------------------------------------------
10331          SOLVEUR         =C_SOLVEUR('CALC_IFS_DNL'),
10332 #-------------------------------------------------------------------
10333          OBSERVATION     =C_OBSERVATION(),
10334 #-------------------------------------------------------------------
10335          SUIVI_DDL       =C_SUIVI_DDL(),
10336 #-------------------------------------------------------------------
10337          AFFICHAGE       =C_AFFICHAGE(),
10338 #-------------------------------------------------------------------
10339          ARCHIVAGE       =C_ARCHIVAGE(),
10340 #-------------------------------------------------------------------
10341          CRIT_STAB      =FACT(statut='f',min=1,max=1,
10342            NB_FREQ         =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3),
10343            COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5),
10344            RIGI_GEOM     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
10345            b_char_crit=BLOC(condition="(RIGI_GEOM=='OUI')",
10346               CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,
10347                                     fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),),
10348            MODI_RIGI     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
10349            TYPE          =SIMP(statut='f',typ='TXM',defaut="FLAMBEMENT",into=("FLAMBEMENT","STABILITE")),
10350            PREC_INSTAB   =SIMP(statut='f',typ='R',defaut=1.E-6,max=1,),
10351            SIGNE         =SIMP(statut='f',typ='TXM',defaut=("POSITIF_NEGATIF"),into=("NEGATIF","POSITIF","POSITIF_NEGATIF"),max=1,),
10352            bloc_rigi_geom=BLOC(condition="(RIGI_GEOM=='NON'or MODI_RIGI=='OUI')",
10353               DDL_EXCLUS      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40,
10354                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
10355                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
10356                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
10357                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
10358                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
10359                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
10360                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
10361                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
10362                                           'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')),
10363            bloc_type_stab =BLOC(condition= "TYPE == 'STABILITE' and RIGI_GEOM == 'NON'",
10364               DDL_STAB        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=40,
10365                                        into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
10366                                              'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
10367                                              'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
10368                                              'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
10369                                              'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
10370                                              'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
10371                                              'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
10372                                              'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
10373                                              'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')),),
10374                             ),
10375            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
10376            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
10377            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
10378            PAS_CALC       = SIMP(statut='f',typ='I' ),
10379            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
10380               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
10381                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
10382               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
10383                  PRECISION       =SIMP(statut='o',typ='R',),),
10384          ),
10385          MODE_VIBR     =FACT(statut='f',min=1,max=1,
10386            MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ),
10387            NB_FREQ          =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3,
10388                             fr="Nombre de fréquences propres à calculer"),
10389            COEF_DIM_ESPACE  =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5),
10390            BANDE            =SIMP(statut='f',typ='R',min=2,max=2,
10391                             fr="Valeur des deux fréquences délimitant la bande de recherche",),
10392            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
10393            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
10394            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
10395            PAS_CALC       = SIMP(statut='f',typ='I' ),
10396            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
10397               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
10398                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
10399               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
10400                  PRECISION       =SIMP(statut='o',typ='R',),),
10401          ),
10402 #-------------------------------------------------------------------
10403
10404          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
10405          b_info=BLOC(condition="(INFO==2)",
10406                fr="filtre les messages émis dans le .mess selon le type de message demandé",
10407                INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
10408                                into=("CONTACT",
10409                                      "MECA_NON_LINE",
10410                                      "PILOTAGE",
10411                                      "FACTORISATION",
10412                                      "APPARIEMENT"),
10413                              ),
10414                     ),
10415          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
10416 )  ;
10417
10418 # ======================================================================
10419 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
10420 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10421 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10422 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10423 # (AT YOUR OPTION) ANY LATER VERSION.
10424 #
10425 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10426 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10427 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10428 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10429 #
10430 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10431 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10432 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10433 # ======================================================================
10434 # person_in_charge: irmela.zentner at edf.fr
10435 CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=interspectre,
10436                     fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps",
10437                     reentrant='n',
10438             UIinfo={"groupes":("Fonctions",)},
10439          INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10440          INST_FIN        =SIMP(statut='o',typ='R' ),
10441          DUREE_ANALYSE   =SIMP(statut='f',typ='R' ),
10442          DUREE_DECALAGE  =SIMP(statut='f',typ='R' ),
10443          NB_POIN         =SIMP(statut='o',typ='I' ),
10444          FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
10445          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
10446          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ),
10447 )  ;
10448
10449 # ======================================================================
10450 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
10451 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10452 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10453 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10454 # (AT YOUR OPTION) ANY LATER VERSION.
10455 #
10456 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10457 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10458 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10459 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10460 #
10461 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10462 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10463 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10464 # ======================================================================
10465 # person_in_charge: romeo.fernandes at edf.fr
10466
10467
10468 CALC_MAC3COEUR = MACRO(nom="CALC_MAC3COEUR",
10469                        op=OPS("Mac3coeur.calc_mac3coeur_ops.calc_mac3coeur_ops"),
10470                        sd_prod=evol_noli,
10471
10472          TYPE_COEUR   = SIMP(statut='o',typ='TXM',into=("MONO","TEST","900","1300","N4","EPR"),position='global' ),
10473          # TYPE DE COEUR A CONSIDERER
10474          TABLE_N      = SIMP(statut='o',typ=table_sdaster),         # TABLE INITIALE DES DAMAC A L INSTANT N
10475          MAILLAGE_N   = SIMP(statut='f',typ=maillage_sdaster),        # MAILLAGE EN ATTENDANT MIEUX ???
10476
10477          LAME = FACT(statut='f',max=1,
10478                      fr="Estimation des lames d'eau entre AC",
10479                TABLE_NP1    = SIMP(statut='o',typ=table_sdaster),         # TABLE INITIALE DES DAMAC A L INSTANT N+1
10480                MAILLAGE_NP1 = SIMP(statut='o',typ=maillage_sdaster),),        # MAILLAGE EN ATTENDANT MIEUX ???
10481
10482          DEFORMATION  = FACT(statut='f',max=1,
10483                       fr="Estimation des deformations des AC",
10484                RESU_INIT    = SIMP(statut='f',typ=resultat_sdaster),
10485                NIVE_FLUENCE = SIMP(statut='o',typ='R',validators=NoRepeat(),max=1), # FLUENCE MAXIMALE DANS LE COEUR
10486                UNITE_THYC      = SIMP(statut='o',typ='I', max=1),
10487                
10488                # choix du maintien dans le cas mono-assemblage
10489                b_maintien_mono = BLOC(condition = "TYPE_COEUR == 'MONO'",
10490
10491                     TYPE_MAINTIEN = SIMP(statut='o',typ='TXM',into=("FORCE","DEPL_PSC"), ),
10492                     
10493                     b_maintien_mono_force = BLOC(condition = "TYPE_MAINTIEN == 'FORCE'",
10494                                  fr="valeur de l'effort de maintien imposée",
10495                                  FORCE_MAINTIEN           =SIMP(statut='o',typ='R', max=1),),
10496                      
10497                                        ),
10498                 
10499                # choix du maintien dans le cas d'un coeur à plusieurs assemblages
10500                b_maintien_coeur = BLOC(condition = "TYPE_COEUR != 'MONO'",
10501
10502                     TYPE_MAINTIEN = SIMP(statut='f',typ='TXM',into=("DEPL_PSC",),defaut="DEPL_PSC" ),
10503                                        
10504                                        ),
10505                    
10506                                  ),
10507
10508 );
10509
10510 # ======================================================================
10511 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
10512 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10513 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10514 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10515 # (AT YOUR OPTION) ANY LATER VERSION.
10516 #
10517 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10518 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10519 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10520 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10521 #
10522 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10523 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10524 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10525 # ======================================================================
10526 # person_in_charge: nicolas.greffet at edf.fr
10527 CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
10528                     fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés",
10529                     reentrant='n',
10530             UIinfo={"groupes":("Matrices et vecteurs",)},
10531          regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
10532                  PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
10533                  PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
10534          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
10535          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
10536          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
10537          CHARGE          =SIMP(statut='o',typ=char_ther ),
10538          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
10539          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster ),
10540          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
10541          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
10542          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
10543          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
10544          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
10545          OPTION          =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ),
10546          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
10547          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
10548          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
10549 #-------------------------------------------------------------------
10550 #        Catalogue commun SOLVEUR
10551          SOLVEUR         =C_SOLVEUR('CALC_MATR_AJOU'),
10552 #-------------------------------------------------------------------
10553 )  ;
10554
10555 # ======================================================================
10556 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
10557 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10558 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10559 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10560 # (AT YOUR OPTION) ANY LATER VERSION.
10561 #
10562 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10563 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10564 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10565 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10566 #
10567 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10568 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10569 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10570 # ======================================================================
10571 # person_in_charge: jacques.pellet at edf.fr
10572 def calc_matr_elem_prod(OPTION,**args):
10573   if OPTION == "RIGI_MECA"        : return matr_elem_depl_r
10574   if OPTION == "RIGI_FLUI_STRU"   : return matr_elem_depl_r
10575   if OPTION == "MASS_MECA"        : return matr_elem_depl_r
10576   if OPTION == "MASS_FLUI_STRU"   : return matr_elem_depl_r
10577   if OPTION == "RIGI_GEOM"        : return matr_elem_depl_r
10578   if OPTION == "RIGI_ROTA"        : return matr_elem_depl_r
10579   if OPTION == "MECA_GYRO"        : return matr_elem_depl_r
10580   if OPTION == "RIGI_GYRO"        : return matr_elem_depl_r
10581   if OPTION == "AMOR_MECA"        : return matr_elem_depl_r
10582   if OPTION == "IMPE_MECA"        : return matr_elem_depl_r
10583   if OPTION == "ONDE_FLUI"        : return matr_elem_depl_r
10584   if OPTION == "AMOR_MECA_ABSO"   : return matr_elem_depl_r
10585   if OPTION == "RIGI_MECA_HYST"   : return matr_elem_depl_c
10586   if OPTION == "RIGI_THER"        : return matr_elem_temp_r
10587   if OPTION == "MASS_MECA_DIAG"   : return matr_elem_depl_r
10588   if OPTION == "RIGI_ACOU"        : return matr_elem_pres_c
10589   if OPTION == "MASS_ACOU"        : return matr_elem_pres_c
10590   if OPTION == "AMOR_ACOU"        : return matr_elem_pres_c
10591   raise AsException("type de concept resultat non prevu")
10592
10593 CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
10594                     ,fr="Calcul des matrices élémentaires",reentrant='n',
10595             UIinfo={"groupes":("Matrices et vecteurs",)},
10596
10597          OPTION          =SIMP(statut='o',typ='TXM',
10598                                into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
10599                                      "AMOR_MECA","RIGI_THER","IMPE_MECA",
10600                                      "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU",
10601                                      "RIGI_ROTA","MECA_GYRO","RIGI_GYRO","MASS_MECA_DIAG","RIGI_ACOU",
10602                                      "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ),
10603          MODELE            =SIMP(statut='o',typ=modele_sdaster ),
10604
10605          # mots clés facultatifs que l'on a du mal à mettre dans les blocs
10606          # sans gener MACRO_MATR_ASSE :
10607          #------------------------------------------------------------------
10608          INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10609
10610
10611          b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
10612            CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
10613            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
10614            MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
10615            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
10616          ),
10617
10618          b_mass_meca   =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
10619            CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
10620            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
10621            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
10622          ),
10623
10624          b_rigi_geom       =BLOC(condition = "OPTION=='RIGI_GEOM'",
10625            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
10626            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem ),
10627            STRX_ELGA         =SIMP(statut='f',typ=cham_elem ),
10628            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
10629          ),
10630
10631          b_rigi_rota       =BLOC(condition = "OPTION=='RIGI_ROTA'",
10632            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10633            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
10634            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
10635          ),
10636
10637          b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'",
10638            CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
10639            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
10640            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
10641          ),
10642
10643          b_rigi_gyro = BLOC( condition = "OPTION=='RIGI_GYRO'",
10644            CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
10645            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
10646            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
10647          ),
10648
10649          b_amor_meca       =BLOC(condition = "OPTION=='AMOR_MECA'",
10650            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
10651                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
10652            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
10653            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
10654            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
10655            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
10656            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
10657          ),
10658
10659          b_amor_meca_abso  =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'",
10660            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
10661                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
10662            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
10663            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10664            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
10665            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
10666            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
10667          ),
10668
10669          b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
10670            CHARGE            =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
10671            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
10672            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
10673            RIGI_MECA         =SIMP(statut='o',typ=matr_elem_depl_r ),
10674          ),
10675
10676          b_rigi_ther       =BLOC(condition = "OPTION=='RIGI_THER'",
10677            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10678            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
10679            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
10680            CHARGE            =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ),
10681          ),
10682
10683          b_rigi_acou       =BLOC(condition = "OPTION=='RIGI_ACOU'",
10684            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10685            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
10686          ),
10687
10688          b_mass_acou       =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
10689            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10690            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
10691          ),
10692
10693          b_rigi_flui       =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'",
10694            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
10695            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10696            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ),
10697          ),
10698
10699          b_mass_flui       =BLOC(condition = "OPTION=='MASS_FLUI_STRU'",
10700            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
10701            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10702            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'),
10703          ),
10704
10705          b_impe_meca       =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
10706            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
10707            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
10708          ),
10709 )  ;
10710
10711 # ======================================================================
10712 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
10713 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10714 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10715 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10716 # (AT YOUR OPTION) ANY LATER VERSION.
10717 #
10718 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10719 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10720 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10721 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10722 #
10723 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10724 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10725 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10726 # ======================================================================
10727 # person_in_charge: renaud.bargellini at edf.fr
10728 CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
10729             UIinfo={"groupes":("Post-traitements","Thermique",)},
10730                fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique",
10731
10732      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
10733
10734      MODELE          =SIMP(statut='f',typ=modele_sdaster ),
10735      CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
10736      RESULTAT        =SIMP(statut='o',typ=evol_ther ),
10737
10738      OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(phenomene='METALLURGIE',),),
10739
10740      TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
10741      GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
10742                            fr="le calcul ne sera effectué que sur ces mailles là"),
10743      MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
10744                            fr="le calcul ne sera effectué que sur ces mailles là"),
10745
10746      b_meta =BLOC(condition= "au_moins_un(OPTION, ('META_ELNO','META_NOEU'))",
10747        ETAT_INIT       =FACT(statut='o',
10748           regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),),
10749           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
10750           META_INIT_ELNO  =SIMP(statut='f',typ=carte_sdaster ),
10751           b_etat     =BLOC(condition="EVOL_THER != None",
10752              regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),),
10753              NUME_INIT       =SIMP(statut='f',typ='I'),
10754              INST_INIT       =SIMP(statut='f',typ='R'),
10755              b_inst     =BLOC(condition="INST_INIT != None",
10756                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
10757                 b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
10758                     PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
10759                 b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
10760                     PRECISION       =SIMP(statut='o',typ='R',),),
10761              ),
10762           ),
10763        ),
10764
10765        COMPORTEMENT      =FACT(statut='o',max=1,
10766          RELATION        =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
10767          ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
10768          ZIRC            =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
10769
10770          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
10771          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
10772          GROUP_MA        =SIMP(statut='f',typ=grma, validators=NoRepeat(), max='**'),
10773          MAILLE          =SIMP(statut='f',typ=ma, validators=NoRepeat(), max='**'),
10774                              ),
10775                  ),
10776 )  ;
10777
10778 # ======================================================================
10779 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
10780 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
10781 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
10782 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
10783 # (AT YOUR OPTION) ANY LATER VERSION.
10784 #
10785 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10786 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10787 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
10788 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
10789 #
10790 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
10791 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
10792 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
10793 # ======================================================================
10794 # person_in_charge: mathieu.courtois at edf.fr
10795
10796 def calc_miss_sdprod(self, TYPE_RESU, **kwargs):
10797     """Typage des structures de données produites"""
10798     if TYPE_RESU in ('TABLE', 'TABLE_CONTROL'):
10799         return table_sdaster
10800     elif TYPE_RESU == 'HARM_GENE':
10801         return harm_gene
10802     elif TYPE_RESU == 'TRAN_GENE':
10803         return tran_gene
10804     else:
10805         return None
10806
10807 CALC_MISS = MACRO(nom="CALC_MISS",
10808                   op=OPS('Macro.calc_miss_ops.calc_miss_ops'),
10809                   sd_prod=calc_miss_sdprod,
10810                   fr="Préparation des données, exécution du logiciel Miss3D, et post-traitement",
10811                   UIinfo={"groupes":("Résolution","Outils-métier",)},
10812
10813     TYPE_RESU   = SIMP(statut='o', typ='TXM',
10814                        into=('HARM_GENE', 'TRAN_GENE', 'TABLE', 'TABLE_CONTROL',
10815                              'FICHIER', 'FICHIER_TEMPS'),
10816                        fr="Type de résultat produit en post-traitement. FICHIER : pas de post-traitement"),
10817     PROJET      = SIMP(statut='f', typ='TXM', defaut='MODELE',
10818                        fr="Nom de l'étude Miss"),
10819     REPERTOIRE  = SIMP(statut='f', typ='TXM',
10820                        fr="Répertoire de travail de Miss"),
10821     VERSION     = SIMP(statut='f', typ='TXM', into=("V6.6","V6.5"), defaut="V6.6",
10822                        fr="Version de Miss utilisée"),
10823
10824     TABLE_SOL   = SIMP(statut='o', typ=table_sdaster,
10825                        fr="Table des propriétés du sol"),
10826
10827     # pas de post-traitement
10828     b_basic   = BLOC(condition="TYPE_RESU in ('FICHIER', 'TABLE_CONTROL')",
10829                        regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'),
10830                                ENSEMBLE('GROUP_MA_FLU_STR', 'GROUP_MA_FLU_SOL', 'GROUP_MA_SOL_SOL'),),
10831         MACR_ELEM_DYNA  = SIMP(statut='f', typ=macr_elem_dyna,
10832                                fr="Macro élément produit en amont"),
10833         BASE_MODALE     = SIMP(statut='f', typ=mode_meca,
10834                                fr="Base de modes"),
10835         b_base_modale = BLOC(condition="BASE_MODALE is not None",
10836             MATR_RIGI       = SIMP(statut='f', typ=(matr_asse_depl_r, matr_asse_depl_c),),
10837             MATR_MASS       = SIMP(statut='f', typ=matr_asse_depl_r ),
10838         ),
10839         AMOR_REDUIT     = SIMP(statut='f', typ='R', max='**'),
10840         GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**',
10841                                fr="Groupe de mailles de l'interface"),
10842         GROUP_MA_FLU_STR = SIMP(statut='f', typ=grma, max='**',
10843                                fr="Groupe de mailles fluide-structure"),
10844         GROUP_MA_FLU_SOL = SIMP(statut='f', typ=grma, max='**',
10845                                fr="Groupe de mailles fluide-sol"),
10846         GROUP_MA_SOL_SOL = SIMP(statut='f', typ=grma, max='**',
10847                                fr="Groupe de mailles sol-sol"),
10848         UNITE_IMPR_ASTER = SIMP(statut='f', typ='I',
10849                                 fr="Unité des résultats transmis par Code_Aster à Miss"),
10850         UNITE_RESU_IMPE  = SIMP(statut='f', typ='I',
10851                                 fr="Unité logique des impédances écrites par Miss"),
10852         UNITE_RESU_FORC  = SIMP(statut='f', typ='I',
10853                                 fr="Unité logique des forces sismiques écrites par Miss"),
10854     ),
10855     # post-traitement : passage du domaine de Laplace au domaine temporel
10856     b_fichier_temps   = BLOC(condition="TYPE_RESU == 'FICHIER_TEMPS'",
10857                        regles=(UN_PARMI('MACR_ELEM_DYNA', 'BASE_MODALE'),
10858                                AU_MOINS_UN('UNITE_RESU_RIGI','UNITE_RESU_AMOR','UNITE_RESU_MASS'),
10859                                PRESENT_PRESENT('UNITE_RESU_AMOR', 'MATR_GENE'),
10860                                PRESENT_PRESENT('UNITE_RESU_MASS', 'MATR_GENE'),),
10861         MACR_ELEM_DYNA  = SIMP(statut='f', typ=macr_elem_dyna,
10862                                fr="Macro élément produit en amont"),
10863         BASE_MODALE     = SIMP(statut='f', typ=mode_meca,
10864                                fr="Base de modes"),
10865         b_base_modale = BLOC(condition="BASE_MODALE is not None",
10866             MATR_RIGI       = SIMP(statut='f', typ=(matr_asse_depl_r, matr_asse_depl_c),),
10867             MATR_MASS       = SIMP(statut='f', typ=matr_asse_depl_r ),
10868         ),
10869         AMOR_REDUIT     = SIMP(statut='f', typ='R', max='**'),
10870         GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**',
10871                                fr="Groupe de mailles de l'interface"),
10872         UNITE_IMPR_ASTER = SIMP(statut='f', typ='I',
10873                                 fr="Unité des résultats transmis par Code_Aster à Miss"),
10874         UNITE_RESU_RIGI =SIMP(statut='f',typ='I'),
10875         UNITE_RESU_AMOR =SIMP(statut='f',typ='I'),
10876         UNITE_RESU_MASS =SIMP(statut='f',typ='I'),
10877         INST_FIN       = SIMP(statut='f', typ='R', fr="Instant final du calcul"),
10878         PAS_INST       = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"),
10879         PRECISION      = SIMP(statut='f',typ='R',defaut=0.000001),
10880         COEF_SURECH    = SIMP(statut='f',typ='I',defaut=1 ),
10881         MATR_GENE       =FACT(statut='f', max = 1,
10882                      DECOMP_IMPE= SIMP(statut='f',typ='TXM',defaut='PRODUIT',into=('PRODUIT','SANS_PRODUIT')),
10883                      AMOR_HYST  = SIMP(statut='o',typ='TXM',into=('DANS_IMPEDANCE','DANS_MATR_AMOR'),
10884                      fr="Indique comment l'amortissement hysteretique est pris en compte"),
10885                  b_amor_nohyst = BLOC(condition="AMOR_HYST == 'DANS_MATR_AMOR'",
10886                      MATR_MASS  = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_depl_r ) ),
10887                      MATR_RIGI  = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ),
10888                      MATR_AMOR  = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ),
10889                    ), 
10890                  b_amor_hyst = BLOC(condition="AMOR_HYST == 'DANS_IMPEDANCE'",
10891                     regles = (AU_MOINS_UN('MATR_MASS','MATR_RIGI','MATR_AMOR'),),
10892                      MATR_MASS  = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_depl_r ) ),
10893                      MATR_RIGI  = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ),
10894                      MATR_AMOR  = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c,matr_asse_depl_r ) ),
10895                    ), 
10896                                ),
10897         EXCIT_SOL       =FACT(statut='f', max = 1,
10898                           regles = (AU_MOINS_UN('CHAM_X','CHAM_Y','CHAM_Z'),),
10899                                UNITE_RESU_FORC  =SIMP(statut='o',typ='I',
10900                                                       fr="Unité logique des forces sismiques écrites par Miss"),
10901                                NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='DEPL',
10902                                                      into=('ACCE','VITE','DEPL') ),
10903                                CHAM_X    = SIMP(statut='f', typ=fonction_sdaster,),
10904                                CHAM_Y    = SIMP(statut='f', typ=fonction_sdaster,),
10905                                CHAM_Z    = SIMP(statut='f', typ=fonction_sdaster,),
10906                                ),
10907     ),    
10908     # si post-traitement
10909     b_donnees   = BLOC(condition="TYPE_RESU not in ('FICHIER', 'FICHIER_TEMPS', 'TABLE_CONTROL')",
10910                        regles=(ENSEMBLE('GROUP_MA_FLU_STR', 'GROUP_MA_FLU_SOL', 'GROUP_MA_SOL_SOL'),
10911                                UN_PARMI('MATR_AMOR', 'AMOR_REDUIT'),),
10912         MACR_ELEM_DYNA  = SIMP(statut='f', typ=macr_elem_dyna,
10913                                fr="Macro élément produit en amont"),
10914         BASE_MODALE     = SIMP(statut='o', typ=mode_meca,
10915                                fr="Base de modes"),
10916         MATR_RIGI       = SIMP(statut='o', typ=(matr_asse_depl_r, matr_asse_depl_c),),
10917         MATR_MASS       = SIMP(statut='o', typ=matr_asse_depl_r ),        
10918         MATR_AMOR       = SIMP(statut='f', typ=matr_asse_depl_r ),
10919         AMOR_REDUIT     = SIMP(statut='f', typ='R', max='**'),
10920         GROUP_MA_INTERF = SIMP(statut='o', typ=grma, max='**',
10921                                fr="Groupe de mailles de l'interface"),
10922         GROUP_MA_FLU_STR = SIMP(statut='f', typ=grma, max='**',
10923                                fr="Groupe de mailles fluide-structure"),
10924         GROUP_MA_FLU_SOL = SIMP(statut='f', typ=grma, max='**',
10925                                fr="Groupe de mailles fluide-sol"),
10926         GROUP_MA_SOL_SOL = SIMP(statut='f', typ=grma, max='**',
10927                                fr="Groupe de mailles sol-sol"),
10928         UNITE_IMPR_ASTER = SIMP(statut='f', typ='I',
10929                                 fr="Unité des résultats transmis par Code_Aster à Miss"),
10930         UNITE_RESU_IMPE  = SIMP(statut='f', typ='I',
10931                                 fr="Unité logique des impédances à relire."),
10932         UNITE_RESU_FORC  = SIMP(statut='f', typ='I',
10933                                 fr="Unité logique des forces sismiques à relire"),
10934     ),
10935     # Paramètres du calcul Miss
10936     PARAMETRE   = FACT(statut='o',
10937                        regles=(PRESENT_PRESENT('OFFSET_MAX', 'OFFSET_NB'),
10938                                PRESENT_PRESENT('FREQ_MIN', 'FREQ_MAX','FREQ_PAS'),
10939                                UN_PARMI('FREQ_MIN', 'LIST_FREQ', 'FREQ_IMAG'),
10940                                PRESENT_PRESENT('SPEC_MAX', 'SPEC_NB'),),
10941         FREQ_MIN       = SIMP(statut='f', typ='R'),
10942         FREQ_MAX       = SIMP(statut='f', typ='R'),
10943         FREQ_PAS       = SIMP(statut='f', typ='R'),
10944         LIST_FREQ      = SIMP(statut='f', typ='R', max='**'),
10945         FREQ_IMAG      = SIMP(statut='f', typ='R'),
10946         Z0             = SIMP(statut='f', typ='R', defaut=0.),
10947         SURF           = SIMP(statut='f', typ='TXM', into=("OUI","NON",), defaut="NON"),
10948         ISSF           = SIMP(statut='f', typ='TXM', into=("OUI","NON",), defaut="NON"),
10949         ALLU           = SIMP(statut='f', typ='R', defaut=0.),
10950         RFIC           = SIMP(statut='f', typ='R', defaut=0.),
10951
10952         ALGO           = SIMP(statut='f', typ='TXM', into=("DEPL","REGU")),
10953         DREF           = SIMP(statut='f', typ='R'),
10954         SPEC_MAX       = SIMP(statut='f', typ='R'),
10955         SPEC_NB        = SIMP(statut='f', typ='I'),
10956         OFFSET_MAX     = SIMP(statut='f', typ='R'),
10957         OFFSET_NB      = SIMP(statut='f', typ='I'),
10958         TYPE           = SIMP(statut='f', typ='TXM', into=("BINAIRE","ASCII",), defaut="ASCII"),
10959     ),
10960     # Post-traitement type 1 - tran_gene
10961     b_post_tran_gene = BLOC(condition="TYPE_RESU == 'TRAN_GENE'",
10962                        regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10963                                PRESENT_ABSENT('ACCE_X','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10964                                PRESENT_ABSENT('ACCE_Y','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10965                                PRESENT_ABSENT('ACCE_Z','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10966                               ),
10967         MODELE         = SIMP(statut='o', typ=(modele_sdaster),),
10968         GROUP_NO       = SIMP(statut='f', typ=grno, max='**',),
10969         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
10970         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
10971         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
10972         DEPL_X         = SIMP(statut='f', typ=fonction_sdaster,),
10973         DEPL_Y         = SIMP(statut='f', typ=fonction_sdaster,),
10974         DEPL_Z         = SIMP(statut='f', typ=fonction_sdaster,),
10975         INST_FIN       = SIMP(statut='o', typ='R', fr="Instant final du calcul"),
10976         PAS_INST       = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"),
10977     ),
10978     # Post-traitement type 1 - harm_gene
10979     b_post_harm_gene  = BLOC(condition="TYPE_RESU == 'HARM_GENE'",
10980                        regles=(#AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z',),
10981                                AU_MOINS_UN('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z','DEPL_X','DEPL_Y','DEPL_Z'),
10982                                PRESENT_ABSENT('EXCIT_HARMO', 'ACCE_X', 'ACCE_Y', 'ACCE_Z', 'INST_FIN'),
10983                                PRESENT_ABSENT('EXCIT_HARMO', 'DEPL_X', 'DEPL_Y', 'DEPL_Z'),
10984                                PRESENT_ABSENT('ACCE_X','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10985                                PRESENT_ABSENT('ACCE_Y','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10986                                PRESENT_ABSENT('ACCE_Z','DEPL_X', 'DEPL_Y', 'DEPL_Z',),
10987                                ENSEMBLE('INST_FIN', 'PAS_INST'),),
10988         MODELE         = SIMP(statut='o', typ=(modele_sdaster),),
10989         GROUP_NO       = SIMP(statut='f', typ=grno, max='**',),
10990         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
10991         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
10992         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
10993         DEPL_X         = SIMP(statut='f', typ=fonction_sdaster,),
10994         DEPL_Y         = SIMP(statut='f', typ=fonction_sdaster,),
10995         DEPL_Z         = SIMP(statut='f', typ=fonction_sdaster,),
10996         INST_FIN       = SIMP(statut='f', typ='R', fr="Instant final du calcul"),
10997         PAS_INST       = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"),
10998         # identique à EXCIT de DYNA_LINE_HARM au type attendu pour VECT_ASSE près
10999         EXCIT_HARMO    = FACT(statut='f', max='**',
11000                               regles=(UN_PARMI('VECT_ASSE', 'CHARGE'),
11001                                       UN_PARMI('FONC_MULT', 'FONC_MULT_C', 'COEF_MULT', 'COEF_MULT_C'),),
11002             VECT_ASSE     = SIMP(statut='f', typ=cham_no_sdaster,),
11003             CHARGE        = SIMP(statut='f', typ=char_meca),
11004             FONC_MULT_C   = SIMP(statut='f', typ=(fonction_c, formule_c),),
11005             COEF_MULT_C   = SIMP(statut='f', typ='C'),
11006             FONC_MULT     = SIMP(statut='f', typ=(fonction_sdaster, nappe_sdaster, formule) ),
11007             COEF_MULT     = SIMP(statut='f', typ='R'),
11008             PHAS_DEG      = SIMP(statut='f', typ='R', defaut=0.),
11009             PUIS_PULS     = SIMP(statut='f', typ='I', defaut=0),
11010         ),
11011     ),
11012     # Post-traitement type 2
11013     b_post_table = BLOC(condition="TYPE_RESU == 'TABLE'",
11014                         regles=(AU_MOINS_UN('ACCE_X', 'ACCE_Y', 'ACCE_Z'),),
11015         MODELE         = SIMP(statut='o', typ=(modele_sdaster),),
11016         GROUP_NO       = SIMP(statut='o', typ=grno, max='**',
11017                               fr="Liste des groupes de noeud de post-traitement"),
11018         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
11019         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
11020         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
11021         INST_FIN       = SIMP(statut='o', typ='R', fr="Instant final du calcul"),
11022         PAS_INST       = SIMP(statut='o', typ='R', fr="Pas de temps du calcul"),
11023         NORME          = SIMP(statut='o', typ='R',
11024                               fr="Valeur de la norme du spectre d'oscillateur" ),
11025         AMOR_SPEC_OSCI      = SIMP(statut='o', typ='R', max='**',
11026                                    fr="Amortissement du spectre d'oscillateur"),
11027         LIST_FREQ_SPEC_OSCI = SIMP(statut='f', typ=listr8_sdaster,
11028                                    fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"),
11029     ),
11030
11031     # Post-traitement type 3 - points de controle
11032     b_post_control = BLOC(condition="TYPE_RESU == 'TABLE_CONTROL'",
11033                           regles=(PRESENT_PRESENT('ACCE_X', 'INST_FIN'),
11034                                   PRESENT_PRESENT('ACCE_Y', 'INST_FIN'),
11035                                   PRESENT_PRESENT('ACCE_Z', 'INST_FIN'),
11036                                   ENSEMBLE('INST_FIN', 'PAS_INST', 'NORME', 'AMOR_SPEC_OSCI'),),
11037         GROUP_MA_CONTROL = SIMP(statut='f', typ=grma, max='**',
11038                                 fr="Groupe de mailles des points de contrôle"),
11039         ACCE_X         = SIMP(statut='f', typ=fonction_sdaster,),
11040         ACCE_Y         = SIMP(statut='f', typ=fonction_sdaster,),
11041         ACCE_Z         = SIMP(statut='f', typ=fonction_sdaster,),
11042         INST_FIN       = SIMP(statut='f', typ='R', fr="Instant final du calcul"),
11043         PAS_INST       = SIMP(statut='f', typ='R', fr="Pas de temps du calcul"),
11044         NORME          = SIMP(statut='f', typ='R',
11045                               fr="Valeur de la norme du spectre d'oscillateur" ),
11046         AMOR_SPEC_OSCI      = SIMP(statut='f', typ='R', max='**',
11047                                    fr="Amortissement du spectre d'oscillateur"),
11048         LIST_FREQ_SPEC_OSCI = SIMP(statut='f', typ=listr8_sdaster,
11049                                    fr="Fréquences utilisées pour le calcul du spectre d'oscillateur"),
11050     ),
11051
11052     INFO        = SIMP(statut='f', typ='I', defaut=1, into=(1,2)),
11053 )
11054
11055 # ======================================================================
11056 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
11057 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11058 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11059 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11060 # (AT YOUR OPTION) ANY LATER VERSION.
11061 #
11062 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11063 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11064 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11065 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11066 #
11067 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11068 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11069 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11070 # ======================================================================
11071 # person_in_charge: nicolas.brie at edf.fr
11072
11073
11074 def calc_modal_prod(self,AMORTISSEMENT,**args):
11075   if AMORTISSEMENT=="NON": return mode_meca
11076   if AMORTISSEMENT=="OUI": return mode_meca_c
11077   raise AsException("type de concept resultat non prevu")
11078
11079
11080 CALC_MODAL=MACRO(nom="CALC_MODAL",
11081                  op=OPS('Macro.calc_modal_ops.calc_modal_ops'),
11082                  UIinfo={"groupes":("Résolution","Dynamique",)},
11083                  sd_prod=calc_modal_prod,
11084                  fr="Calcul des modes propres reels ou complexes dans une seule commande",
11085          MODELE          =SIMP(statut='o',typ=modele_sdaster),
11086          AMORTISSEMENT    =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
11087          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
11088          INST            =SIMP(statut='f',typ='R',defaut=0.),
11089          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
11090          CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
11091          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
11092                                into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ),
11093          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
11094            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
11095            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
11096            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
11097            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
11098          ),
11099          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
11100            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
11101            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
11102            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
11103            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
11104          ),
11105          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
11106            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
11107            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
11108            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717),
11109          ),
11110          b_qz =BLOC(condition = "METHODE == 'QZ'",
11111            TYPE_QZ      =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ),
11112          ),
11113          MODE_RIGIDE          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
11114                                fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
11115          CALC_FREQ       =FACT(statut='d',min=0,
11116              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","PLUS_GRANDE","BANDE","CENTRE","TOUT"),
11117                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
11118              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites fréquences propres",
11119                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut=10,val_min=0 ),
11120              ),
11121              b_plus_grande =BLOC(condition = "OPTION == 'PLUS_GRANDE'",fr="Recherche des plus grandes fréquences propres",
11122                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut=1,val_min=0 ),
11123              ),
11124              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
11125                                   fr="Recherche des fréquences propres les plus proches d une valeur donnée",
11126                FREQ            =SIMP(statut='o',typ='R',
11127                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
11128                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
11129                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
11130              ),
11131              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
11132                                    fr="Recherche des fréquences propres dans une bande donnée",
11133                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
11134                                      fr="Valeurs des deux fréquences délimitant la bande de recherche"),
11135              ),
11136              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
11137                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
11138              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
11139              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
11140              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
11141              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0 ),
11142              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
11143              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
11144              STOP_BANDE_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11145            ),
11146
11147         VERI_MODE       =FACT(statut='d',min=0,
11148            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11149            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
11150            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
11151                                  fr="Valeur limite admise pour l ereur a posteriori des modes" ),
11152            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11153          ),
11154
11155          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
11156          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
11157 )  ;
11158
11159 # ======================================================================
11160 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
11161 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11162 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11163 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11164 # (AT YOUR OPTION) ANY LATER VERSION.
11165 #
11166 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11167 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11168 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11169 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11170 #
11171 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11172 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11173 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11174 # ======================================================================
11175 # person_in_charge: mohamed.torkhani at edf.fr
11176
11177
11178 CALC_MODE_ROTATION=MACRO(nom="CALC_MODE_ROTATION",
11179                          op=OPS('Macro.calc_mode_rotation_ops.calc_mode_rotation_ops'),
11180                          sd_prod=table_container,
11181                          reentrant='n',
11182                          fr="calculer les fréquences et modes d'un système en fonction des " \
11183                             "vitesses de rotation",
11184                          UIinfo={"groupes":("Résolution","Dynamique",)},
11185
11186                   MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
11187                   MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
11188                   MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
11189                   MATR_GYRO       =SIMP(statut='f',typ=matr_asse_depl_r ),
11190                   VITE_ROTA       =SIMP(statut='f',typ='R',max='**'),
11191
11192                   METHODE         =SIMP(statut='f',typ='TXM',defaut="QZ",
11193                                         into=("QZ","SORENSEN",) ),
11194
11195                   CALC_FREQ       =FACT(statut='d',min=0,
11196                          OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","CENTRE",),
11197                                            fr="Choix de l option et par conséquent du shift du problème modal" ),
11198                   b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
11199                               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
11200                               ),
11201                   b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
11202                                 fr="Recherche des valeurs propres les plus proches d une valeur donnée",
11203                               FREQ            =SIMP(statut='o',typ='R',
11204                                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
11205                               AMOR_REDUIT     =SIMP(statut='f',typ='R',),
11206                               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
11207                               ),
11208                              ),
11209
11210                   VERI_MODE       =FACT(statut='d',min=0,
11211                   STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
11212                   SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
11213                   PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
11214                   STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),),
11215 );
11216
11217 # ======================================================================
11218 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
11219 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11220 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11221 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11222 # (AT YOUR OPTION) ANY LATER VERSION.
11223 #
11224 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11225 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11226 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11227 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11228 #
11229 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11230 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11231 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11232 # ======================================================================
11233 # person_in_charge: jean-michel.proix at edf.fr
11234 CALC_POINT_MAT=OPER(nom="CALC_POINT_MAT",op=33,sd_prod=table_sdaster,reentrant='f',
11235             UIinfo={"groupes":("Résolution",)},
11236             fr="Intégrer une loi de comportement",
11237      MATER           =SIMP(statut='o',typ=mater_sdaster,max=1),
11238      COMPORTEMENT    =C_COMPORTEMENT('CALC_POINT_MAT'),
11239      INCREMENT       =C_INCREMENT('MECANIQUE'),
11240      NEWTON          =C_NEWTON(),
11241      CONVERGENCE     =C_CONVERGENCE(),
11242
11243     # --MASSIF : orientation du materiau (monocristal, orthotropie)
11244      MASSIF          =FACT(statut='f',max='**',
11245                     regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
11246          ANGL_REP        =SIMP(statut='f',typ='R',min=1,max=3),
11247          ANGL_EULER      =SIMP(statut='f',typ='R',min=1,max=3),
11248       ),
11249     ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées.
11250      ANGLE      =SIMP(statut='f',typ='R',max=1, defaut=0.),
11251      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2)),
11252
11253      regles=(
11254              EXCLUS('SIXX','EPXX',),
11255              EXCLUS('SIYY','EPYY',),
11256              EXCLUS('SIZZ','EPZZ',),
11257              EXCLUS('SIXY','EPXY',),
11258              EXCLUS('SIXZ','EPXZ',),
11259              EXCLUS('SIYZ','EPYZ',),
11260
11261              ENSEMBLE('F11','F12','F13','F21','F22','F23','F31','F32','F33',),),
11262
11263      SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11264      SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11265      SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11266      SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11267      SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11268      SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11269
11270      EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11271      EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11272      EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11273      EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11274      EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11275      EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11276
11277      F11 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11278      F12 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11279      F13 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11280      F21 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11281      F22 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11282      F23 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11283      F31 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11284      F32 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11285      F33 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
11286
11287      MATR_C1=FACT(statut='f',max='**',
11288            VALE          =SIMP(statut='o',typ='R',max=1, ),
11289            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
11290            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
11291                               ),
11292      MATR_C2=FACT(statut='f',max='**',
11293            VALE          =SIMP(statut='o',typ='R',max=1, ),
11294            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
11295            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
11296                               ),
11297      VECT_IMPO=FACT(statut='f',max=6,
11298            VALE          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max=1, ),
11299            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
11300                               ),
11301      SIGM_INIT=FACT(statut='f',
11302             SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
11303             SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
11304             SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
11305             SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
11306             SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
11307             SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
11308                        ),
11309      EPSI_INIT=FACT(statut='f',
11310             EPXX = SIMP(statut='o',typ='R',max=1),
11311             EPYY = SIMP(statut='o',typ='R',max=1),
11312             EPZZ = SIMP(statut='o',typ='R',max=1),
11313             EPXY = SIMP(statut='o',typ='R',max=1),
11314             EPXZ = SIMP(statut='o',typ='R',max=1),
11315             EPYZ = SIMP(statut='o',typ='R',max=1),
11316                        ),
11317      VARI_INIT=FACT(statut='f',
11318             VALE = SIMP(statut='o',typ='R',max='**'),
11319                        ),
11320      FORMAT_TABLE    =SIMP(statut='f',typ='TXM',max=1,into=("CMP_COLONNE","CMP_LIGNE",),defaut=("CMP_COLONNE"),),
11321
11322      NB_VARI_TABLE  =SIMP(statut='f',typ='I',max=1,),
11323
11324      OPER_TANGENT  =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON",),defaut="NON",),
11325
11326      ARCHIVAGE       =FACT(statut='f',
11327        LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
11328        INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
11329        PAS_ARCH        =SIMP(statut='f',typ='I' ),
11330        PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-6),
11331                            ),
11332
11333
11334      # on permet certaines variables de commandes scalaires, définies par une fonction du temps
11335      # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
11336      LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA",
11337                                                            "M_ACIER","M_ZIRC","NEUT1","NEUT2")),
11338
11339      AFFE_VARC    = FACT(statut='f',max='**',
11340       NOM_VARC        =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC",
11341                                                         "EPSA","NEUT1","NEUT2")),
11342       VALE_FONC   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
11343
11344       # VALE_REF est nécessaire pour certaines VARC :
11345       B_VALE_REF          =BLOC(condition="NOM_VARC in ('TEMP', 'SECH')",
11346            VALE_REF          =SIMP(statut='o',typ='R'),
11347       ),
11348       ),
11349
11350
11351
11352      );
11353
11354 # ======================================================================
11355 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
11356 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11357 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11358 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11359 # (AT YOUR OPTION) ANY LATER VERSION.
11360 #
11361 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11362 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11363 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11364 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11365 #
11366 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11367 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11368 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11369 # ======================================================================
11370 # person_in_charge: sylvie.michel-ponnelle at edf.fr
11371
11372
11373 CALC_PRECONT=MACRO(nom="CALC_PRECONT",
11374                    op=OPS('Macro.calc_precont_ops.calc_precont_ops'),
11375                    sd_prod=evol_noli,
11376                    fr="Imposer la tension définie par le BPEL dans les cables",
11377                    reentrant='f',UIinfo={"groupes":("Modélisation",)},
11378          reuse =SIMP(statut='f',typ='evol_noli'),
11379          MODELE           =SIMP(statut='o',typ=modele_sdaster),
11380          CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
11381          CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
11382          CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
11383          CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
11384          INCREMENT        =C_INCREMENT('MECANIQUE'),
11385          RECH_LINEAIRE    =C_RECH_LINEAIRE(),
11386          CONVERGENCE      =C_CONVERGENCE(),
11387          ETAT_INIT       =FACT(statut='f',
11388             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
11389                     EXCLUS('EVOL_NOLI','DEPL',),
11390                     EXCLUS('EVOL_NOLI','SIGM',),
11391                     EXCLUS('EVOL_NOLI','VARI',),
11392                     EXCLUS('NUME_ORDRE','INST'), ),
11393             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
11394             SIGM            =SIMP(statut='f',typ=(carte_sdaster,cham_elem)),
11395             VARI            =SIMP(statut='f',typ=cham_elem),
11396             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
11397             NUME_ORDRE      =SIMP(statut='f',typ='I'),
11398             INST            =SIMP(statut='f',typ='R'),
11399             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
11400             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
11401                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
11402             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
11403                 PRECISION       =SIMP(statut='o',typ='R',),),
11404             NUME_DIDI       =SIMP(statut='f',typ='I'),
11405             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
11406           ),
11407          METHODE = SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPLEX")),
11408          b_meth_newton = BLOC(condition = "METHODE == 'NEWTON'",
11409                            NEWTON = C_NEWTON(),
11410                         ),
11411          ENERGIE         =FACT(statut='f',max=1,
11412            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
11413          ),
11414 #-------------------------------------------------------------------
11415 #        Catalogue commun SOLVEUR
11416          SOLVEUR         =C_SOLVEUR('CALC_PRECONT'),
11417 #-------------------------------------------------------------------
11418          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
11419          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
11420
11421          EXCIT           =FACT(statut='o',max='**',
11422            CHARGE          =SIMP(statut='o',typ=char_meca),
11423          ),
11424
11425          COMPORTEMENT       =C_COMPORTEMENT(),
11426   )  ;
11427
11428 # ======================================================================
11429 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
11430 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11431 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11432 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11433 # (AT YOUR OPTION) ANY LATER VERSION.
11434 #
11435 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11436 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11437 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11438 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11439 #
11440 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11441 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11442 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11443 # ======================================================================
11444
11445 # person_in_charge: mathieu.corus at edf.fr
11446
11447
11448 CALC_SPEC=MACRO(nom="CALC_SPEC",
11449                 op=OPS('Macro.calc_spec_ops.calc_spec_ops'),
11450                 sd_prod=interspectre,
11451                 reentrant='n',
11452                 fr="Calcule une matrice interspectrale ou des fonctions de transferts",
11453                 UIinfo={"groupes":("Fonctions",)},
11454          TAB_ECHANT      =FACT(statut='f',
11455            NOM_TAB                  =SIMP(statut='o',typ=table_sdaster),
11456            LONGUEUR_DUREE           =SIMP(statut='f',typ='R'),
11457            LONGUEUR_POURCENT        =SIMP(statut='f',typ='R'),
11458            LONGUEUR_NB_PTS          =SIMP(statut='f',typ='I'),
11459            RECOUVREMENT_DUREE       =SIMP(statut='f',typ='R'),
11460            RECOUVREMENT_POURCENT    =SIMP(statut='f',typ='R'),
11461            RECOUVREMENT_NB_PTS      =SIMP(statut='f',typ='I'),
11462                               ),
11463          ECHANT          =FACT(statut='f',max='**',
11464            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
11465            NUME_MES        =SIMP(statut='o',typ='I' ),
11466            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
11467                               ),
11468 #-- Cas de la matrice interspectrale --#
11469          INTERSPE        =FACT(statut='f',
11470            FENETRE         =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)),
11471            BLOC_DEFI_FENE  =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ",
11472              DEFI_FENE       =SIMP(statut='f',typ='R',max='**'),
11473                                  ),
11474                               ),
11475 #-- Cas des transferts - estimateurs H1 / H2 / Hv + Coherence --#
11476          TRANSFERT       =FACT(statut='f',
11477            ESTIM           =SIMP(statut='f',typ='TXM',defaut="H1",into=("H1","H2","CO",)),
11478            REFER           =SIMP(statut='o',typ='I',max='**'),
11479            FENETRE         =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)),
11480 #           DEFI_FENE       =SIMP(statut='f',typ='R',max='**'),
11481            BLOC_DEFI_FENE  =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ",
11482              DEFI_FENE       =SIMP(statut='f',typ='R',max='**'),
11483                                  ),
11484                               ),
11485          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
11486          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
11487 );
11488
11489 # ======================================================================
11490 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
11491 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
11492 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
11493 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
11494 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
11495 #                                                                       
11496 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
11497 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
11498 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
11499 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
11500 #                                                                       
11501 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
11502 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
11503 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
11504 # ======================================================================
11505 CALC_STABILITE=MACRO(nom="CALC_STABILITE",sd_prod=table_container,
11506                op=OPS('Macro.calc_stabilite_ops.calc_stabilite_ops'),
11507                fr="post-traitement modes non-linéaires : filtre resultats et calcul de stabilité",
11508                reentrant='f',
11509                UIinfo={"groupes":("Résolution","Dynamique",)},
11510
11511                reuse =SIMP(statut='f',typ='table_container'),
11512
11513                MODE_NON_LINE = SIMP(statut='o',typ=table_container,max=1),
11514                SCHEMA_TEMPS = FACT(statut='d',max=1,
11515                                    SCHEMA = SIMP(statut='f',typ='TXM',into=('NEWMARK',),defaut='NEWMARK'),
11516                                    b_newmark= BLOC(condition="SCHEMA=='NEWMARK'",
11517                                                 NB_INST = SIMP(statut='f',typ='I',defaut= 1000 ),
11518                                                 ),
11519                                   ),
11520                TOLERANCE  = SIMP(statut='f',typ='R',defaut= 1.E-2 ),
11521
11522                FILTRE = FACT(statut='f',max=1,regles=(UN_PARMI('NUME_ORDRE','FREQ_MIN',),),
11523                              NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
11524                              FREQ_MIN = SIMP(statut='f',typ='R' ),
11525                              b_freq_min = BLOC(condition = "FREQ_MIN != None",
11526                                                FREQ_MAX = SIMP(statut='o',typ='R' ),
11527                                                PRECISION = SIMP(statut='f',typ='R',defaut= 1.E-3 ),
11528                                                ),
11529                              ),
11530
11531                INFO = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
11532
11533 )  ;
11534
11535
11536
11537
11538 # ======================================================================
11539 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
11540 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11541 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11542 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11543 # (AT YOUR OPTION) ANY LATER VERSION.
11544 #
11545 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11546 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11547 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11548 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11549 #
11550 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11551 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11552 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11553 # ======================================================================
11554 # person_in_charge: mathieu.courtois at edf.fr
11555 def calc_table_prod(self, TABLE, ACTION, **kargs):
11556    """Typage du concept produit.
11557    """
11558    l_typ = [AsType(TABLE),]
11559    for mcf in ACTION:
11560       dmc = mcf.cree_dict_valeurs(mcf.mc_liste)
11561       if dmc.get('TABLE') != None:
11562          l_typ.append(AsType(dmc['TABLE']))
11563    # une table_fonction étant une table
11564    if table_fonction in l_typ:
11565       return table_fonction
11566    elif table_container in l_typ:
11567       return table_container
11568    else:
11569       return table_sdaster
11570
11571 CALC_TABLE=MACRO(nom="CALC_TABLE",
11572                  op=OPS('Macro.calc_table_ops.calc_table_ops'),
11573                  sd_prod=calc_table_prod,
11574                  fr="Opérations sur une table",
11575                  UIinfo={"groupes":("Tables",)},
11576                  reentrant='f',
11577    TABLE  = SIMP(statut='o',typ=table_sdaster),
11578    ACTION = FACT(statut='o', max='**',
11579                     fr = "Suite des opérations à effectuer sur la table",
11580       OPERATION = SIMP(statut='o', typ='TXM',
11581                   into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'AJOUT_LIGNE',
11582                         'OPER', 'SUPPRIME', 'AJOUT_COLONNE')),
11583
11584       b_filtre = BLOC(condition="OPERATION == 'FILTRE'",
11585                       fr="Sélectionne les lignes de la table vérifiant un critère",
11586          NOM_PARA  = SIMP(statut='o',typ='TXM'),
11587          CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ",
11588                           into=('EQ','NE','GT','LT','GE','LE','REGEXP',
11589                                 'VIDE','NON_VIDE','MAXI','MAXI_ABS','MINI','MINI_ABS'),),
11590          b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
11591             regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
11592             VALE   = SIMP(statut='f',typ='R',max='**'),
11593             VALE_I = SIMP(statut='f',typ='I',max='**'),
11594             VALE_C = SIMP(statut='f',typ='C',max='**'),
11595             VALE_K = SIMP(statut='f',typ='TXM',max='**'),
11596          ),
11597          b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'",
11598             VALE_K = SIMP(statut='o',typ='TXM',),
11599          ),
11600          b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')",
11601             CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
11602             PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
11603          ),
11604       ),
11605
11606       b_extr = BLOC(condition="OPERATION ==  'EXTR'",
11607                     fr="Extrait une ou plusieurs colonnes de la table",
11608          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
11609                          fr="Noms des colonnes à extraire"),
11610       ),
11611
11612       b_suppr = BLOC(condition="OPERATION ==  'SUPPRIME'",
11613                     fr="Supprime une ou plusieurs colonnes de la table",
11614          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
11615                          fr="Noms des colonnes à supprimer"),
11616       ),
11617
11618       b_renomme = BLOC(condition="OPERATION == 'RENOMME'",
11619                        fr="Renomme un ou plusieurs paramètres de la table",
11620          NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2,
11621                          fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
11622       ),
11623
11624       b_tri = BLOC(condition="OPERATION == 'TRI'",
11625                    fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
11626          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
11627          ORDRE    = SIMP(statut='f',typ='TXM',defaut="CROISSANT",
11628                          into=("CROISSANT","DECROISSANT") ),
11629       ),
11630
11631       b_comb = BLOC(condition="OPERATION == 'COMB'",
11632                     fr="Combine deux tables ayant éventuellement des paramètres communs",
11633          TABLE    = SIMP(statut='o',typ=table_sdaster,
11634                          fr="Table dont les colonnes vont venir surcharger la table initiale"),
11635          NOM_PARA = SIMP(statut='f',typ='TXM',max='**',
11636                          fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
11637                             "pour que les colonnes soient combinées"),
11638          RESTREINT = SIMP(statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON',
11639                           fr="Restreint la fusion uniquement aux lignes où les NOM_PARA sont communs"),
11640          FORMAT_R       =SIMP(statut='f',typ='TXM'),
11641       ),
11642
11643       b_ajout_lig = BLOC(condition="OPERATION == 'AJOUT_LIGNE'",
11644                     fr="Ajoute une ligne à la table initiale",
11645          NOM_PARA = SIMP(statut='o',typ='TXM',max='**',
11646                          fr="Noms des paramètres dont les valeurs sont fournies sous VALE"),
11647          VALE     = SIMP(statut='o',typ=not_checked,max='**', fr='Valeurs des paramètres'),
11648       ),
11649
11650       b_ajout_col = BLOC(condition="OPERATION == 'AJOUT_COLONNE'",
11651                     fr="Ajoute une colonne constante à la table initiale",
11652          NOM_PARA = SIMP(statut='o',typ='TXM',max='**',
11653                          fr="Noms des paramètres des colonnes à ajouter"),
11654          VALE   = SIMP(statut='o', typ=not_checked, max='**',
11655                        fr="Valeur constante pour chaque colonne"),
11656       ),
11657
11658       b_oper = BLOC(condition="OPERATION == 'OPER'",
11659                     fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
11660          FORMULE  = SIMP(statut='o',typ=formule,
11661                          fr="Formule à appliquer aux colonnes de la table"),
11662          NOM_PARA = SIMP(statut='o',typ='TXM',
11663                          fr="Nom de la nouvelle colonne"),
11664          NOM_COLONNE = SIMP(statut='f',typ='TXM', max='**',
11665                          fr="Nom des colonnes à utiliser en tant que paramètres de la formule"),
11666       ),
11667    ),
11668
11669    TITRE = SIMP(statut='f',typ='TXM',max='**',
11670                 fr="Titre de la table produite"),
11671    INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
11672 )
11673
11674 # ======================================================================
11675 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
11676 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11677 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11678 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11679 # (AT YOUR OPTION) ANY LATER VERSION.
11680 #
11681 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11682 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11683 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11684 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11685 #
11686 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11687 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11688 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11689 # ======================================================================
11690 # person_in_charge: samuel.geniaut at edf.fr
11691
11692 CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
11693             UIinfo={"groupes":("Post-traitements","Rupture",)},
11694                 fr="Définir un champ theta pour le calcul du taux de restitution d'énergie"
11695                     +" ou des facteurs d'intensité de contraintes",
11696          regles=(UN_PARMI('THETA_2D','THETA_3D'),
11697                  PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
11698                  EXCLUS('DIRECTION','DIRE_THETA'),),
11699          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
11700          THETA_3D        =FACT(statut='f',max='**',
11701            regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
11702                    UN_PARMI('MODULE','MODULE_FO'),
11703                    ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
11704            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
11705            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11706            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11707            MODULE          =SIMP(statut='f',typ='R'),
11708            R_INF           =SIMP(statut='f',typ='R'),
11709            R_SUP           =SIMP(statut='f',typ='R'),
11710            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11711            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11712            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11713                          ),
11714          b_theta_3d     =BLOC(condition="THETA_3D != None",
11715            FOND_FISS       =SIMP(statut='o',typ=fond_fiss),),
11716          DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
11717          DIRECTION       =SIMP(statut='f',typ='R',max='**'),
11718          THETA_2D        =FACT(statut='f',max='**',
11719            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
11720            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
11721            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
11722            MODULE          =SIMP(statut='o',typ='R'),
11723            R_INF           =SIMP(statut='o',typ='R'),
11724            R_SUP           =SIMP(statut='o',typ='R'),
11725          ),
11726          IMPRESSION      =FACT(statut='f',
11727            UNITE           =SIMP(statut='f',typ='I',defaut=8),
11728            FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
11729          ),
11730 )  ;
11731
11732 # ======================================================================
11733 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11734 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11735 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11736 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11737 # (AT YOUR OPTION) ANY LATER VERSION.
11738 #
11739 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11740 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11741 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11742 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11743 #
11744 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11745 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11746 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11747 # ======================================================================
11748 # person_in_charge: jacques.pellet at edf.fr
11749 def calc_vect_elem_prod(OPTION,**args):
11750   if OPTION == "CHAR_MECA" :      return vect_elem_depl_r
11751   if OPTION == "CHAR_THER" :      return vect_elem_temp_r
11752   if OPTION == "CHAR_ACOU" :      return vect_elem_pres_c
11753   raise AsException("type de concept resultat non prevu")
11754
11755 CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n',
11756             UIinfo={"groupes":("Matrices et vecteurs",)},
11757                     fr="Calcul des seconds membres élémentaires",
11758          OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU") ),
11759          b_char_meca     =BLOC(condition = "OPTION=='CHAR_MECA'",
11760            regles=(AU_MOINS_UN('CHARGE','MODELE'),),
11761            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
11762            MODELE          =SIMP(statut='f',typ=modele_sdaster),
11763            b_charge     =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
11764               CHAM_MATER   =SIMP(statut='f',typ=cham_mater),
11765               CARA_ELEM    =SIMP(statut='f',typ=cara_elem),
11766               INST         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
11767               MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
11768            ),
11769            b_modele     =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
11770               SOUS_STRUC      =FACT(statut='o',min=01,
11771                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
11772                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
11773                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
11774                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
11775               ),
11776            ),
11777          ),
11778          b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'",
11779            CARA_ELEM        =SIMP(statut='f',typ=cara_elem),
11780            CHARGE           =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'),
11781            INST             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
11782          ),
11783
11784          b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'",
11785            CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
11786            CHARGE            =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'),
11787          ),
11788 ) ;
11789
11790 # ======================================================================
11791 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
11792 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11793 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11794 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11795 # (AT YOUR OPTION) ANY LATER VERSION.
11796 #
11797 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11798 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11799 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11800 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11801 #
11802 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11803 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11804 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11805 # ======================================================================
11806 # person_in_charge: mickael.abbas at edf.fr
11807
11808 CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f',
11809             UIinfo={"groupes":("Résolution",)},
11810             fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...",
11811      OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT",
11812                            into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INTE_ELEM","FORC_NODA_ELEM"),),
11813      MODELE          =SIMP(statut='o',typ=modele_sdaster),
11814      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
11815      CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
11816      TABLE           =SIMP(statut='f',typ=table_container),
11817      EXCIT           =FACT(statut='o',max='**',
11818        CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
11819        FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11820        TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
11821                                  into=("FIXE_CSTE",)),
11822
11823      ),
11824      DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
11825      INCR_DEPL       =SIMP(statut='o',typ=cham_no_sdaster ),
11826      SIGM            =SIMP(statut='o',typ=cham_elem),
11827      VARI            =SIMP(statut='o',typ=cham_elem),
11828      INCREMENT       =FACT(statut='o',
11829           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
11830           NUME_ORDRE      =SIMP(statut='o',typ='I'),),
11831      COMPORTEMENT       =C_COMPORTEMENT('CALCUL'),
11832      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
11833 ) ;
11834
11835 # ======================================================================
11836 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
11837 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
11838 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
11839 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
11840 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
11841 #                                                                       
11842 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
11843 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
11844 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
11845 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
11846 #                                                                       
11847 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
11848 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
11849 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
11850 # ======================================================================
11851 # person_in_charge: sylvie.granet at edf.fr
11852 #from Macro.chainage_thm_ops import chainage_thm_ops
11853
11854 def chainage_thm_prod(self,TYPE_CHAINAGE,TYPE_RESU = None,**args) :
11855
11856   if TYPE_CHAINAGE == "MECA_HYDR" : return evol_varc
11857
11858   if TYPE_CHAINAGE == "HYDR_MECA" :
11859     if TYPE_RESU == "CHAM_NO" :
11860       return cham_no_sdaster
11861     elif TYPE_RESU == "EVOL_VARC" :
11862       return evol_varc
11863
11864   if TYPE_CHAINAGE == "INIT" :
11865     matr_mh  = args['MATR_MH']
11866     matr_hm1 = args['MATR_HM1']
11867     matr_hm2 = args['MATR_HM2']
11868
11869     self.type_sdprod(matr_mh,corresp_2_mailla)
11870     self.type_sdprod(matr_hm1,corresp_2_mailla)
11871     self.type_sdprod(matr_hm2,corresp_2_mailla)
11872     return None
11873
11874   raise AsException("type de chainage THM non prevu")
11875
11876 CHAINAGE_THM=MACRO(nom="CHAINAGE_THM",
11877                    op=OPS('Macro.chainage_thm_ops.chainage_thm_ops'),
11878                    sd_prod=chainage_thm_prod,
11879                    reentrant='n',
11880                    UIinfo={"groupes":("Résultats et champs",)},
11881                    docu="Ux.xx.xx",
11882                    fr="Calcul des variables de commande pour le chaînage THM",
11883
11884          TYPE_CHAINAGE  = SIMP(statut='o',typ='TXM',
11885                                into=("HYDR_MECA","MECA_HYDR","INIT",),
11886                                fr="Sens du chaînage ou initialisation des matrices de projection"),
11887
11888          # Cas HYDR_MECA :
11889
11890          b_hydr_meca    = BLOC(condition = "TYPE_CHAINAGE == 'HYDR_MECA'",fr="Chaînage hydraulique vers mécanique",
11891
11892              RESU_HYDR       = SIMP(statut='o',typ=resultat_sdaster,fr="Résultat hydraulique à chaîner" ),
11893              MODELE_MECA     = SIMP(statut='o',typ=modele_sdaster  ,fr="Modèle d'arrivée mécanique"),
11894              TYPE_RESU       = SIMP(statut='f',typ='TXM',into=("EVOL_VARC","CHAM_NO"),defaut="EVOL_VARC", ),
11895              MATR_HM1        = SIMP(statut='o',typ=corresp_2_mailla,),
11896              MATR_HM2        = SIMP(statut='o',typ=corresp_2_mailla,),
11897
11898              b_type_resu     = BLOC(condition = "TYPE_RESU == 'EVOL_VARC'",fr="Instant obligatoire si TYPE_RESU=EVOL_VARC",
11899                                    INST = SIMP(statut='o',typ='R',validators=NoRepeat(),min=1,max=1),
11900
11901            ),),
11902
11903          # Cas MECA_HYDR :
11904
11905          b_meca_hydr    = BLOC(condition = "TYPE_CHAINAGE == 'MECA_HYDR'",fr="Chaînage mécanique vers hydraulique",
11906
11907              RESU_MECA       = SIMP(statut='o',typ=resultat_sdaster,fr="Résultat mécanique à chaîner" ),
11908              MODELE_HYDR     = SIMP(statut='o',typ=modele_sdaster  ,fr="Modèle d'arrivée hydraulique"),
11909
11910              MATR_MH         = SIMP(statut='o',typ=corresp_2_mailla,),
11911              INST            = SIMP(statut='o',typ='R',validators=NoRepeat(),min=1,max=1),
11912            ),
11913
11914          # Cas INIT :
11915
11916          b_init    = BLOC(condition = "TYPE_CHAINAGE == 'INIT'",fr="Calcul des matrices de projection",
11917
11918              MODELE_MECA     = SIMP(statut='o',typ=modele_sdaster  ,fr="Modèle mécanique"),
11919              MODELE_HYDR     = SIMP(statut='o',typ=modele_sdaster  ,fr="Modèle hydraulique"),
11920
11921              MATR_MH         = SIMP(statut='o',typ=CO,),
11922              MATR_HM1        = SIMP(statut='o',typ=CO,),
11923              MATR_HM2        = SIMP(statut='o',typ=CO,),
11924            ),
11925
11926          INFO     = SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
11927
11928 ) ;
11929
11930 # ======================================================================
11931 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
11932 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11933 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11934 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11935 # (AT YOUR OPTION) ANY LATER VERSION.
11936 #
11937 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11938 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11939 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11940 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11941 #
11942 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11943 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11944 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11945 # ======================================================================
11946 # person_in_charge: xavier.desroches at edf.fr
11947 COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
11948                   reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières",
11949             UIinfo={"groupes":("Post-traitements",)},
11950          RESULTAT        =SIMP(statut='o',typ=(fourier_elas,fourier_ther),),
11951          ANGLE           =SIMP(statut='o',typ='R',max='**'),
11952          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6,into=("DEPL","REAC_NODA",
11953                                "SIEF_ELGA","EPSI_ELNO","SIGM_ELNO","TEMP","FLUX_ELNO"),),
11954 ) ;
11955
11956 # ======================================================================
11957 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
11958 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
11959 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
11960 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
11961 # (AT YOUR OPTION) ANY LATER VERSION.
11962 #
11963 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11964 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11965 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11966 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
11967 #
11968 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
11969 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
11970 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
11971 # ======================================================================
11972 # person_in_charge: nicolas.sellenet at edf.fr
11973 def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
11974   if COMB_C != None:
11975     type_mat = AsType(COMB_C[0]['MATR_ASSE'])
11976     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
11977     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
11978     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
11979     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
11980   elif COMB_R != None:
11981     type_mat = AsType(COMB_R[0]['MATR_ASSE'])
11982     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
11983     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
11984     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
11985     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
11986   elif CALC_AMOR_GENE != None: return matr_asse_gene_r
11987   raise AsException("type de concept resultat non prevu")
11988
11989 COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
11990                     fr="Effectuer la combinaison linéaire de matrices assemblées",
11991                     reentrant='f',
11992             UIinfo={"groupes":("Matrices et vecteurs",)},
11993          regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
11994          COMB_R          =FACT(statut='f',max='**',
11995            PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
11996            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
11997                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
11998            COEF_R          =SIMP(statut='o',typ='R' ),
11999          ),
12000          COMB_C          =FACT(statut='f',max='**',
12001            regles=(UN_PARMI('COEF_R','COEF_C' ),),
12002            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
12003                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
12004            COEF_R          =SIMP(statut='f',typ='R' ),
12005            COEF_C          =SIMP(statut='f',typ='C' ),
12006          ),
12007          CALC_AMOR_GENE   =FACT(statut='f',
12008            RIGI_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
12009            MASS_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
12010            regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),),
12011            AMOR_REDUIT  = SIMP(statut='f',typ='R',max='**'),
12012            LIST_AMOR    = SIMP(statut='f',typ=listr8_sdaster ),
12013          ),
12014          SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
12015 )  ;
12016
12017 # ======================================================================
12018 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
12019 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12020 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12021 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12022 # (AT YOUR OPTION) ANY LATER VERSION.
12023 #
12024 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12025 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12026 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12027 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12028 #
12029 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12030 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12031 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12032 # ======================================================================
12033 # person_in_charge: sylvie.audebert at edf.fr
12034 COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_meca,
12035                      fr="Réponse sismique par recombinaison modale par une méthode spectrale",
12036                      reentrant='n',
12037             UIinfo={"groupes":("Post-traitements","Dynamique",)},
12038          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
12039                  UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),
12040                  UN_PARMI('MONO_APPUI','MULTI_APPUI' ),),
12041          MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
12042          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12043          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
12044          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
12045          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
12046          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
12047          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
12048          b_freq          =BLOC(condition = "FREQ != None or LIST_FREQ != None",
12049            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12050            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12051          ),
12052          MODE_CORR       =SIMP(statut='f',typ=mode_meca ),
12053          FREQ_COUP = SIMP(statut='f',typ='R',min=1,max=1),
12054
12055          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
12056          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
12057          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
12058
12059          MASS_INER       =SIMP(statut='f',typ=table_sdaster ),
12060          CORR_FREQ       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
12061
12062          EXCIT           =FACT(statut='o',max='**',
12063            regles=(UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),),
12064            AXE             =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",),
12065            TRI_AXE         =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",),
12066            TRI_SPEC        =SIMP(statut='f',typ='TXM',into=("OUI",),
12067                                  fr="Excitation suivant les trois axes  avec trois spectres"),
12068            b_axe           =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
12069              SPEC_OSCI       =SIMP(statut='o',typ=(nappe_sdaster,formule),),
12070              ECHELLE         =SIMP(statut='f',typ='R',),
12071            ),
12072            b_tri_axe       =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre",
12073              SPEC_OSCI       =SIMP(statut='o',typ=(nappe_sdaster,formule),),
12074              ECHELLE         =SIMP(statut='f',typ='R',),
12075            ),
12076            b_tri_spec      =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes  avec trois spectres",
12077              SPEC_OSCI       =SIMP(statut='o',typ=(nappe_sdaster,formule),min=3,max=3 ),
12078              ECHELLE         =SIMP(statut='f',typ='R',min=3,max=3),
12079            ),
12080            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
12081            b_mult_appui    =BLOC(condition = "(MULTI_APPUI != None)",
12082                                  regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
12083            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12084            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),)
12085          ),
12086          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),
12087                                  fr="excitation imposée unique" ),
12088          MULTI_APPUI      =SIMP(statut='f',typ='TXM',position='global',into=("DECORRELE","CORRELE"),
12089                                  fr="excitation imposée unique" ),
12090          b_decorrele     =BLOC(condition = "MULTI_APPUI == 'DECORRELE' ",
12091            GROUP_APPUI     =FACT(statut='f',max='**',
12092            regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
12093            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12094            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
12095
12096          ),
12097          b_correle =BLOC(condition = "MULTI_APPUI == 'CORRELE' ",
12098            COMB_MULT_APPUI =FACT(statut='f',max='**',
12099            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
12100            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12101            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12102            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
12103            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),),
12104          ),
12105
12106          COMB_MODE       =FACT(statut='o',
12107            TYPE            =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC","GUPTA") ),
12108            DUREE           =SIMP(statut='f',typ='R' ),
12109          b_gupta =BLOC(condition = "TYPE == 'GUPTA' ",
12110            FREQ_1      =SIMP(statut='o',typ='R',),
12111            FREQ_2      =SIMP(statut='o',typ='R',),
12112          ),      
12113          ),
12114          COMB_DIRECTION  =FACT(statut='f',
12115            TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
12116          ),
12117          COMB_DEPL_APPUI=FACT(statut='f',max='**',
12118            regles=(UN_PARMI('TOUT','LIST_CAS'),),
12119            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
12120            LIST_CAS       =SIMP(statut='f',typ='I',max='**'),
12121            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
12122          ),
12123          DEPL_MULT_APPUI =FACT(statut='f',max='**',
12124            regles=(UN_PARMI('NOEUD','GROUP_NO'),
12125                    AU_MOINS_UN('DX','DY','DZ' ),),
12126            NOM_CAS         =SIMP(statut='o',typ='TXM',max='**'),
12127            NUME_CAS        =SIMP(statut='o',typ='I',max='**'),
12128            MODE_STAT       =SIMP(statut='o',typ=mode_meca, ),
12129            NOEUD_REFE      =SIMP(statut='f',typ=no),
12130            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12131            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
12132            DX              =SIMP(statut='f',typ='R' ),
12133            DY              =SIMP(statut='f',typ='R' ),
12134            DZ              =SIMP(statut='f',typ='R' ),
12135          ),
12136          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9,
12137                                into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO","SIEF_ELGA",
12138                                      "EFGE_ELNO","REAC_NODA","FORC_NODA",
12139                                      "SIPO_ELNO") ),
12140          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
12141          IMPRESSION      =FACT(statut='f',max='**',
12142            regles=(EXCLUS('TOUT','NIVEAU'),),
12143            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12144            NIVEAU          =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ),
12145          ),
12146          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12147 )  ;
12148
12149 # ======================================================================
12150 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
12151 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12152 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12153 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12154 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12155 #                                                                       
12156 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12157 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12158 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12159 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12160 #                                                                       
12161 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12162 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12163 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12164 # ======================================================================
12165 # person_in_charge: jacques.pellet at edf.fr
12166
12167 def copier_prod(CONCEPT,**args):
12168    return AsType(CONCEPT)
12169
12170 # liste des types de concept acceptes par la commande :
12171 copier_ltyp=(
12172   cabl_precont,
12173   listr8_sdaster,
12174   listis_sdaster,
12175   fonction_sdaster,
12176   nappe_sdaster,
12177   table_sdaster,
12178   maillage_sdaster,
12179   modele_sdaster,
12180   evol_elas,
12181   evol_noli,
12182   evol_ther,
12183 )
12184
12185 COPIER=OPER(nom="COPIER",op= 185,sd_prod=copier_prod,reentrant='f',
12186             UIinfo={"groupes":("Gestion du travail",)},
12187             fr="Copier un concept utilisateur sous un autre nom",
12188
12189             CONCEPT = SIMP(statut='o',typ=copier_ltyp,),
12190             INFO   = SIMP(statut='f', typ='I', into=(1, 2), defaut=1, ),
12191 )
12192
12193 # ======================================================================
12194 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
12195 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12196 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12197 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12198 # (AT YOUR OPTION) ANY LATER VERSION.
12199 #
12200 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12201 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12202 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12203 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12204 #
12205 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12206 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12207 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12208 # ======================================================================
12209 # person_in_charge: jacques.pellet at edf.fr
12210
12211 def crea_champ_prod(TYPE_CHAM,**args):
12212   if TYPE_CHAM[0:5] == "CART_" :
12213      return carte_sdaster
12214   elif TYPE_CHAM[0:5] == "NOEU_" :
12215      return cham_no_sdaster
12216   elif TYPE_CHAM[0:2] == "EL"    :
12217      return cham_elem
12218   else :
12219      raise AsException("type de concept resultat_sdaster non prevu")
12220
12221
12222 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
12223                 fr="Création d'un champ ",reentrant='f',
12224             UIinfo={"groupes":("Résultats et champs",)},
12225
12226        # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx
12227        # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs
12228          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
12229
12230 #        SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
12231 #        ------------------------------------------------------------------
12232          regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
12233          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
12234          CHAM_NO         =SIMP(statut='f',typ=(cham_no_sdaster) ),
12235
12236
12237 #        AUTORISE-T-ON LE PROLONGEMENT DU CHAMP PAR ZERO ?
12238 #        ------------------------------------------------------------------
12239 #        CE MOT CLE N'A DE SENS QUE DANS 2 CAS DE FIGURE :
12240 #          - POUR LES CHAM_ELEM (AVEC LE MOT CLE MODELE)
12241 #          - POUR LES CHAM_NO SI ON IMPOSE LEUR NUMEROTATION
12242          b_prol_zero  =BLOC(condition = "NUME_DDL != None or CHAM_NO != None or (TYPE_CHAM != None and TYPE_CHAM[0:2] == 'EL')",
12243                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",)),),
12244
12245
12246 #        SI CREATION D'UN CHAM_ELEM, POUR POUVOIR AIDER A L'ALLOCATION DU CHAMP :
12247 #        (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM)
12248 #        ------------------------------------------------------------------
12249          OPTION         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),),
12250
12251
12252 #        Si creation d'un cham_elem avec sous-points, pour que tous les sous-points
12253 #        soient affectes : on duplique la valeur sur tous les sous-points
12254 #        ------------------------------------------------------------------
12255          AFFE_SP         =FACT(statut='f',max=1,
12256              CARA_ELEM          =SIMP(statut='o',typ=cara_elem,min=1,max=1),
12257                              ),
12258
12259
12260 #        LE MOT-CLE OPERATION EST OBLIGATOIRE. IL PERMET LE BON AIGUILLAGE.
12261 #        ------------------------------------------------------------------
12262          OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R","COMB") ),
12263
12264 #        ------------------------------------------------------------------
12265          b_norm          =BLOC(condition = "OPERATION == 'NORMALE'",
12266                                regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
12267              MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
12268              GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
12269              MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
12270                              ),
12271 #        ------------------------------------------------------------------
12272          b_affe          =BLOC(condition = "OPERATION == 'AFFE'",
12273              regles=(UN_PARMI('MAILLAGE','MODELE'),),
12274              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
12275              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
12276              AFFE            =FACT(statut='o',max='**',
12277                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
12278                         UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),),
12279                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12280                 GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
12281                 MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
12282                 GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
12283                 NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
12284                 NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
12285                 VALE            =SIMP(statut='f',typ='R',max='**' ),
12286                 VALE_I          =SIMP(statut='f',typ='I',max='**' ),
12287                 VALE_C          =SIMP(statut='f',typ='C',max='**' ),
12288                 VALE_F          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
12289                                    ),
12290                              ),
12291 #        ------------------------------------------------------------------
12292          b_asse          =BLOC(condition = "OPERATION == 'ASSE'",
12293              regles=(UN_PARMI('MAILLAGE','MODELE'),),
12294              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
12295              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
12296              ASSE            =FACT(statut='o',max='**',
12297                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
12298                 PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
12299                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12300                 GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12301                 GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
12302                 MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12303                 NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12304                 CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
12305                 NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
12306                 NOM_CMP_RESU    =SIMP(statut='f',typ='TXM',max='**' ),
12307                 CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
12308                 COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
12309                 COEF_C          =SIMP(statut='f',typ='C',max=1),
12310                                     ),
12311                              ),
12312 #        ------------------------------------------------------------------
12313          b_comb          =BLOC(condition = "OPERATION == 'COMB'",
12314                                fr="Pour faire une combinaison linéaire de cham_no ayant meme profil",
12315              COMB            =FACT(statut='o',max='**',
12316                 CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
12317                 COEF_R          =SIMP(statut='o',typ='R'),
12318                                    ),
12319                              ),
12320 #        ------------------------------------------------------------------
12321          b_eval          =BLOC(condition = "OPERATION == 'EVAL'",
12322              CHAM_F          =SIMP(statut='o',typ=cham_gd_sdaster),
12323              CHAM_PARA       =SIMP(statut='o',typ=cham_gd_sdaster,max='**'),
12324                              ),
12325 #        ------------------------------------------------------------------
12326          b_r2c           =BLOC(condition = "OPERATION == 'R2C'",
12327              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
12328                              ),
12329 #        ------------------------------------------------------------------
12330          b_c2r           =BLOC(condition = "OPERATION == 'C2R'",
12331              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
12332              PARTIE           =SIMP(statut='o',typ='TXM',into=('REEL','IMAG','MODULE','PHASE'),),
12333                              ),
12334 #        ------------------------------------------------------------------
12335          b_disc          =BLOC(condition = "OPERATION == 'DISC'",
12336              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
12337              CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
12338                              ),
12339 #        ------------------------------------------------------------------
12340          b_extr          =BLOC(condition = "OPERATION == 'EXTR'",
12341              regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE','CARA_ELEM','CHARGE'),
12342                      PRESENT_ABSENT('MAILLAGE','FISSURE','RESULTAT','CARA_ELEM','CHARGE'),
12343                      PRESENT_ABSENT('FISSURE','MAILLAGE','RESULTAT','TABLE','CARA_ELEM','CHARGE'),
12344                      PRESENT_ABSENT('RESULTAT','FISSURE','MAILLAGE','TABLE','CARA_ELEM','CHARGE'),
12345                      PRESENT_ABSENT('TABLE','RESULTAT','FISSURE','CARA_ELEM','CHARGE'),
12346                      PRESENT_ABSENT('CARA_ELEM','MAILLAGE','TABLE','RESULTAT','FISSURE','CHARGE'),
12347                      PRESENT_ABSENT('CHARGE','MAILLAGE','TABLE','RESULTAT','FISSURE','CARA_ELEM'),
12348                      ),
12349              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
12350              FISSURE         =SIMP(statut='f',typ=(fiss_xfem) ),
12351              RESULTAT        =SIMP(statut='f',typ=(resultat_sdaster) ),
12352              TABLE           =SIMP(statut='f',typ=(table_sdaster),min=1,max=1),
12353              CARA_ELEM       =SIMP(statut='f',typ=(cara_elem),min=1,max=1),
12354              CHARGE          =SIMP(statut='f',typ=(char_meca),min=1,max=1),
12355              b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None",
12356                  NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("GEOMETRIE",)),
12357              ),
12358
12359              b_extr_cara_elem =BLOC(condition = "CARA_ELEM != None",
12360                  NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),
12361                  into=('.CARGENBA', '.CARMASSI', '.CARCABLE', '.CARCOQUE', '.CARGEOBA', '.CARDISCK',
12362                        '.CARARCPO', '.CARGENPO', '.CARDISCM', '.CARORIEN', '.CARDISCA', '.CVENTCXF',
12363                        '.CARPOUFL', '.CARGEOPO', '.CARDNSCK', '.CARDNSCM', '.CARDNSCA', '.CARDINFO',
12364                        '.CAFIBR',   '.CANBSP',)),
12365              ),
12366
12367              b_extr_charge =BLOC(condition = "CHARGE != None",
12368                  NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),
12369                  into=('.CHME.EPSIN', '.CHME.F1D1D', '.CHME.F1D2D', '.CHME.F1D3D', '.CHME.F2D2D',
12370                        '.CHME.F2D3D', '.CHME.F3D3D', '.CHME.FCO2D', '.CHME.FCO3D', '.CHME.FELEC',
12371                        '.CHME.FL101', '.CHME.FL102', '.CHME.FLUX',  '.CHME.FORNO', '.CHME.IMPE',
12372                        '.CHME.ONDE',  '.CHME.ONDPL', '.CHME.ONDPR', '.CHME.PESAN', '.CHME.PRESS',
12373                        '.CHME.ROTAT', '.CHME.SIGIN', '.CHME.SIINT', '.CHME.VNOR',)),
12374              ),
12375
12376              b_extr_fissure  = BLOC(condition = "FISSURE != None",
12377                  NOM_CHAM=SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("LTNO","LNNO",
12378                                "GRLTNO","GRLNNO","STNO","STNOR","BASLOC","GRI.LNNO","GRI.LTNO","GRI.GRLNNO","GRI.GRLTNO")),
12379
12380              ),
12381
12382              b_extr_table    =BLOC(condition = "TABLE != None",
12383                       MODELE          =SIMP(statut='f',typ=(modele_sdaster),),
12384                  ),
12385              b_extr_resultat =BLOC(condition = "RESULTAT != None",
12386                  NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
12387                  TYPE_MAXI       =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
12388
12389                  # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre :
12390                  b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
12391                       TYPE_RESU       =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
12392
12393                       regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST',
12394                                       'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGLE'),),
12395                       TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12396                       LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
12397                       LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
12398                       NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
12399                       INST            =SIMP(statut='f',typ='R',max='**'),
12400                       FREQ            =SIMP(statut='f',typ='R',max='**'),
12401                       NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
12402                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
12403                       NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
12404                       ANGLE           =SIMP(statut='f',typ='R',max='**'),
12405                  ),
12406
12407                  # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre :
12408                  b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None",
12409                       regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGLE'),),
12410                       NUME_ORDRE      =SIMP(statut='f',typ='I'),
12411                       INST            =SIMP(statut='f',typ='R'),
12412                       FREQ            =SIMP(statut='f',typ='R'),
12413                       NUME_MODE       =SIMP(statut='f',typ='I'),
12414                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max=2),
12415                       NOM_CAS         =SIMP(statut='f',typ='TXM'),
12416                       ANGLE           =SIMP(statut='f',typ='R'),
12417
12418                       INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
12419                  ),
12420
12421                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
12422                  b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
12423                      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
12424                  b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
12425                      PRECISION       =SIMP(statut='o',typ='R',),),
12426
12427          ),  # fin bloc b_extr
12428
12429
12430                ),
12431 # FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT :
12432 #-----------------------------------------------------
12433          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
12434          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
12435 )  ;
12436
12437 # ======================================================================
12438 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
12439 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12440 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12441 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12442 # (AT YOUR OPTION) ANY LATER VERSION.
12443 #
12444 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12445 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12446 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12447 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12448 #
12449 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12450 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12451 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12452 # ======================================================================
12453 # person_in_charge: harinaivo.andriambololona at edf.fr
12454
12455 def crea_elem_ssd_prod(self,NUME_DDL,**args):
12456     if NUME_DDL:
12457         self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
12458     return macr_elem_dyna
12459
12460 CREA_ELEM_SSD=MACRO(nom="CREA_ELEM_SSD",
12461                     op=OPS('Macro.crea_elem_ssd_ops.crea_elem_ssd_ops'),
12462                     sd_prod=crea_elem_ssd_prod,
12463                     reentrant='n',
12464                     fr="Creation de macro-element dynamique en enchainant les commandes : "\
12465                        "CALC_MATR_ELEM, NUME_DDL, ASSE_MATRICE, MODE_ITER_SIMULT, "\
12466                        "DEFI_INTERF_DYNA, DEFI_BASE_MODALE et MACR_ELEM_DYNA",
12467                     UIinfo={"groupes":("Matrices/vecteurs",)},
12468
12469 # pour CAL_MATR_ELEM + NUME_DDL + ASSE_MATRICE + MODE_ITER_SIMULT + MODE_STATIQUE
12470          MODELE          =SIMP(statut='o',typ=modele_sdaster),
12471          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
12472          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
12473          NUME_DDL        =SIMP(statut='f',typ=CO,defaut=None),
12474          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
12475
12476 # pour DEFI_INTERF_DYNA
12477          INTERFACE       =FACT(statut='o',max='**',
12478            regles=(ENSEMBLE('NOM','TYPE'),
12479                    UN_PARMI('NOEUD','GROUP_NO'),),
12480            NOM             =SIMP(statut='f',typ='TXM' ),
12481            TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO",) ),
12482            NOEUD           =SIMP(statut='f',typ=no,max='**'),
12483            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
12484            FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
12485          ),
12486
12487 # pour DEFI_BASE_MODALE
12488          BASE_MODALE = FACT(statut='o',max = 1,
12489            TYPE   =SIMP(statut='o',typ='TXM',max=1,into=('CLASSIQUE','RITZ',),),
12490            b_ritz = BLOC(condition = "TYPE == 'RITZ' ",fr="Base de type Ritz",
12491              TYPE_MODE  = SIMP(statut='f',typ='TXM',into=('STATIQUE','INTERFACE',),defaut='INTERFACE',),
12492              b_intf = BLOC(condition = "TYPE_MODE == 'INTERFACE' ",
12493                       NMAX_MODE_INTF  =SIMP(statut='f',typ='I',defaut=10,val_min=1),),
12494            ),
12495          ),
12496
12497          INFO          =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
12498
12499 #-------------------------------------------------------------------
12500 # Catalogue commun SOLVEUR (pour MODE_ITER_SIMULT, MODE_STATIQUE, DEFI_BASE_MODALE)
12501          SOLVEUR         =C_SOLVEUR('CREA_ELEM_SSD'),
12502 #-------------------------------------------------------------------
12503
12504 # pour le calcul modal
12505          CALC_FREQ       =FACT(statut='d',min=0,
12506              STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
12507              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","SANS"),
12508                                    fr="Choix de l option et par consequent du shift du probleme modal" ),
12509              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
12510                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
12511              ),
12512              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
12513                                   fr="Recherche des valeurs propres les plus proches d une valeur donnee",
12514                FREQ            =SIMP(statut='o',typ='R',
12515                                      fr="Frequence autour de laquelle on cherche les frequences propres"),
12516                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
12517                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
12518              ),
12519              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
12520                                    fr="Recherche des valeurs propres dans une bande donnee",
12521                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 9999,val_min=0 ),
12522                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max='**',
12523                                      fr="Valeurs des frequences delimitant les bandes de recherche"),
12524              ),
12525              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
12526                                    fr="Choix du pseudo-produit scalaire pour la resolution du probleme quadratique" ),
12527              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
12528            ),
12529
12530
12531 )  ;
12532
12533 # ======================================================================
12534 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
12535 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12536 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12537 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12538 # (AT YOUR OPTION) ANY LATER VERSION.
12539 #
12540 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12541 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12542 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12543 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12544 #
12545 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12546 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12547 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12548 # ======================================================================
12549 # person_in_charge: jacques.pellet at edf.fr
12550 CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
12551             reentrant='n',fr="Crée un maillage à partir d'un maillage existant",
12552             UIinfo={"groupes":("Maillage",)},
12553          regles=(UN_PARMI('COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
12554                         'DETR_GROUP_MA', 'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE',
12555                         'QUAD_LINE', 'REPERE','RESTREINT','PENTA15_18','GEOM_FIBRE'),),
12556
12557
12558
12559          # le MAILLAGE est inutile si ECLA_PG et GEOM_FIBRE
12560          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
12561          GEOM_FIBRE           = SIMP(statut='f',max=1,typ=gfibre_sdaster),
12562
12563          CREA_POI1       =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds",
12564            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),),
12565            NOM_GROUP_MA    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12566            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12567            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12568            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12569            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
12570            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12571          ),
12572          CREA_MAILLE     =FACT(statut='f',max='**',fr="Duplication de mailles",
12573            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),),
12574            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12575            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12576            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12577            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
12578            PREF_NUME       =SIMP(statut='f',typ='I' ),
12579          ),
12580          CREA_GROUP_MA   =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles",
12581            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
12582            NOM             =SIMP(statut='o',typ='TXM'),
12583            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12584            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12585            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12586            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
12587            PREF_NUME       =SIMP(statut='f',typ='I' ),
12588          ),
12589          DETR_GROUP_MA   =FACT(statut='f',fr="Destruction de groupes de mailles",
12590            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12591            NB_MAILLE       =SIMP(statut='f',typ='I',defaut= 0,
12592                                  fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit",  ),
12593          ),
12594          RESTREINT   =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1,
12595            regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
12596            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12597            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
12598            TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
12599            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
12600            TOUT_GROUP_NO   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
12601          ),
12602          COQU_VOLU   =FACT(statut='f',
12603                            fr="Creation de mailles volumiques à partir de mailles surfaciques",
12604            NOM             =SIMP(statut='o',typ='TXM'),
12605            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'),
12606            EPAIS           =SIMP(statut='o',typ='R' ),
12607            PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
12608            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS" ),
12609            PREF_NUME       =SIMP(statut='f',typ='I'  ,defaut=1 ),
12610            PLAN            =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")),
12611            b_MOY =BLOC(condition = "PLAN == 'MOY'",
12612              TRANSLATION   =SIMP(statut='o',typ='TXM',into=("SUP","INF") ),
12613            ),
12614          ),
12615          MODI_MAILLE     =FACT(statut='f',max='**',fr="Modification du type de mailles",
12616            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
12617            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12618            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
12619            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
12620            OPTION          =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),validators=NoRepeat(),
12621                                  fr="Choix de la transformation" ),
12622            b_NOS =BLOC(condition = "OPTION == 'TRIA6_7'  or  OPTION == 'QUAD8_9'  or  OPTION == 'SEG3_4'",
12623              PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
12624              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
12625            ),
12626            b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'",
12627              PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
12628              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
12629            ),
12630          ),
12631          CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc",
12632            NOM             =SIMP(statut='o',typ='TXM'),
12633            GROUP_NO_1      =SIMP(statut='o',typ=grno),
12634            GROUP_NO_2      =SIMP(statut='o',typ=grno),
12635            PREF_MAILLE     =SIMP(statut='o',typ='TXM'),
12636            PREF_NUME       =SIMP(statut='f',typ='I',defaut=1 ),
12637          ),
12638          LINE_QUAD     =FACT(statut='f',fr="Passage linéaire -> quadratique",
12639            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
12640            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12641            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
12642            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
12643            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
12644            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
12645          ),
12646          HEXA20_27     =FACT(statut='f',fr="Passage HEXA20 -> HEXA27",
12647            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
12648            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12649            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
12650            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
12651            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
12652            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
12653          ),
12654          PENTA15_18     =FACT(statut='f',fr="Passage PENTA15 -> PENTA18",
12655            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
12656            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12657            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
12658            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
12659            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
12660            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
12661          ),
12662          QUAD_LINE     =FACT(statut='f',fr="Passage quadratique -> linéaire",
12663            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
12664            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12665            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
12666            GROUP_MA        =SIMP(statut='f',typ=grma  ,validators=NoRepeat(),max='**'),
12667          ),
12668          REPERE          =FACT(statut='f',max='**',
12669                                fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
12670            TABLE           =SIMP(statut='o',typ=table_sdaster,
12671                                  fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
12672            NOM_ORIG        =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
12673            NOM_ROTA        =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére"  ),
12674            b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
12675              GROUP_MA        =SIMP(statut='f',typ=grma,
12676                                    fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
12677            ),
12678          ),
12679          ECLA_PG         =FACT(statut='f',
12680                                fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
12681            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
12682            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12683            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12684            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12685            SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
12686            TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
12687            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO('ELGA'),),
12688          ),
12689          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12690 #
12691          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
12692 )  ;
12693
12694 # ======================================================================
12695 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
12696 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12697 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12698 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12699 # (AT YOUR OPTION) ANY LATER VERSION.
12700 #
12701 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12702 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12703 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12704 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12705 #
12706 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12707 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12708 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12709 # ======================================================================
12710 # person_in_charge: j-pierre.lefebvre at edf.fr
12711 def crea_resu_prod(TYPE_RESU,**args):
12712   if TYPE_RESU == "EVOL_ELAS"    : return evol_elas
12713   if TYPE_RESU == "EVOL_NOLI"    : return evol_noli
12714   if TYPE_RESU == "EVOL_THER"    : return evol_ther
12715   if TYPE_RESU == "MULT_ELAS"    : return mult_elas
12716   if TYPE_RESU == "MODE_MECA"    : return mode_meca
12717   if TYPE_RESU == "DYNA_TRANS"   : return dyna_trans
12718   if TYPE_RESU == "DYNA_HARMO"   : return dyna_harmo
12719   if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
12720   if TYPE_RESU == "FOURIER_THER" : return fourier_ther
12721   if TYPE_RESU == "EVOL_VARC"    : return evol_varc
12722   if TYPE_RESU == "EVOL_CHAR"    : return evol_char
12723   raise AsException("type de concept resultat non prevu")
12724
12725 CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
12726             UIinfo={"groupes":("Resultats et champs",)},
12727                fr="Creer ou enrichir une structure de donnees resultat a partir de champs aux noeuds",
12728
12729          OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","ECLA_PG","PERM_CHAM","PROL_RTZ","PREP_VRC1","PREP_VRC2",),
12730                          fr="choix de la fonction a activer",),
12731                          
12732          TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',
12733                             into=(
12734                                   # pour bloc AFFE                         
12735                                     "MODE_MECA","MULT_ELAS","EVOL_ELAS","EVOL_NOLI","DYNA_HARMO","DYNA_TRANS",
12736                                     "FOURIER_ELAS","EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER"
12737                                   # pour bloc ASSE 
12738                                   # "EVOL_THER "
12739                                   # pour bloc ECLA_PG
12740                                   # "EVOL_ELAS","EVOL_NOLI","EVOL_THER" 
12741                                   # pour bloc PERM_CHAM
12742                                   # "EVOL_NOLI"
12743                                   # pour bloc PROL_RTZ
12744                                   # "EVOL_THER"
12745                                   # pour bloc PREP_VRC1
12746                                   # "EVOL_THER"
12747                                   # pour bloc PREP_VRC2
12748                                   # "EVOL_THER"
12749                                   ),
12750                            ),
12751
12752
12753          # Creation par affectation de champs :
12754          #-------------------------------------
12755          b_affe       =BLOC(condition = "OPERATION == 'AFFE'",
12756
12757            b_type_resu    =BLOC(condition = "TYPE_RESU == 'EVOL_CHAR'",
12758              NOM_CHAM     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("PRES",
12759                                     "FSUR_2D","FSUR_3D","FVOL_2D","FVOL_3D","VITE_VENT")),
12760            ),
12761
12762            b_evol_char    =BLOC(condition = "TYPE_RESU != 'EVOL_CHAR'",
12763              NOM_CHAM     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
12764            ),
12765
12766            b_mode       =BLOC(condition = "au_moins_un(TYPE_RESU, ('MODE_MECA', 'DYNA_HARMO', 'DYNA_TRANS'))",
12767              MATR_RIGI     =SIMP(statut='f',typ=matr_asse_depl_r,),
12768              MATR_MASS     =SIMP(statut='f',typ=matr_asse_depl_r,),
12769            ),          
12770 #
12771 #  pour ajouter un comportement dans la SD
12772 #                
12773            COMPORTEMENT     =C_COMPORTEMENT(),
12774 #
12775 #  pour ajouter une charge dans la SD
12776 #     
12777            b_evol_elas  = BLOC(condition="TYPE_RESU=='EVOL_ELAS'",
12778            EXCIT           =FACT(statut='f',max='**',
12779              CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
12780              FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12781              TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),),
12782             ),
12783       
12784            b_evol_ther  = BLOC(condition="TYPE_RESU=='EVOL_THER'",
12785            EXCIT           =FACT(statut='f',max='**',
12786              CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
12787              FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
12788             ),
12789       
12790            b_evol_noli  = BLOC(condition="TYPE_RESU=='EVOL_NOLI'",
12791            EXCIT           =FACT(statut='f',max='**',
12792             CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
12793             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12794             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
12795                                   into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
12796             DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12797             ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12798             VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12799             MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
12800             DIRECTION       =SIMP(statut='f',typ='R',max='**'),
12801             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
12802             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
12803            ),
12804
12805
12806            AFFE         =FACT(statut='o',max='**',
12807              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)),
12808              MODELE        =SIMP(statut='f',typ=modele_sdaster),
12809              CHAM_MATER    =SIMP(statut='f',typ=cham_mater),
12810              CARA_ELEM     =SIMP(statut='f',typ=cara_elem),
12811
12812 #
12813              b_mult_elas     =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ",
12814                 NOM_CAS         =SIMP(statut='f',typ='TXM' ),
12815                 CHARGE          =SIMP(statut='f',typ=(char_meca),max='**'),
12816              ),
12817              b_evol          =BLOC(condition = "au_moins_un(TYPE_RESU, ('EVOL_ELAS', 'EVOL_NOLI', \
12818                                         'EVOL_THER', 'EVOL_VARC', 'EVOL_CHAR', 'DYNA_TRANS'))",
12819                 regles=(UN_PARMI('INST','LIST_INST'),),
12820                 INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
12821                 LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
12822                 NUME_INIT       =SIMP(statut='f',typ='I', val_min=1),
12823                 NUME_FIN        =SIMP(statut='f',typ='I', val_min=1),
12824                 PRECISION       =SIMP(statut='f',typ='R',defaut= 0.0 ),
12825                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12826              ),
12827              b_fourier_elas  =BLOC(condition = "(TYPE_RESU == 'FOURIER_ELAS') ",
12828                 NUME_MODE       =SIMP(statut='f',typ='I'),
12829                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
12830                 CHARGE          =SIMP(statut='f',typ=(char_meca),max='**'),
12831              ),
12832              b_fourier_ther  =BLOC(condition = "(TYPE_RESU == 'FOURIER_THER') ",
12833                 NUME_MODE       =SIMP(statut='f',typ='I'),
12834                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
12835              ),
12836              b_mode       =BLOC(condition = "TYPE_RESU == 'MODE_MECA'",
12837                 NUME_MODE       =SIMP(statut='f',typ='I'),
12838                 FREQ            =SIMP(statut='f',typ='R'),
12839              ),
12840              b_dyna_harmo       =BLOC(condition = "TYPE_RESU == 'DYNA_HARMO'",
12841                 regles=(UN_PARMI('FREQ','LIST_FREQ',),),
12842                 FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
12843                 LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
12844                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12845                 PRECISION       =SIMP(statut='f',typ='R',defaut=0.0),
12846              ),
12847            ),
12848          ),
12849
12850
12851          # Creation par assemblage d'evol_ther :
12852          #-----------------------------------------
12853          b_asse       =BLOC(condition = "OPERATION == 'ASSE'",
12854            ASSE         =FACT(statut='o',max='**',
12855              RESULTAT       =SIMP(statut='o',typ=evol_ther),
12856              TRANSLATION    =SIMP(statut='f',typ='R',defaut= 0. ),
12857            ),
12858          ),
12859
12860
12861          b_ecla_pg    =BLOC(condition = "OPERATION == 'ECLA_PG'",
12862
12863            ECLA_PG         =FACT(statut='o',
12864              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
12865              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO('ELGA'),),
12866              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster),
12867              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12868              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12869              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12870              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster),
12871              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
12872              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12873              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
12874              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
12875              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
12876              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
12877              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
12878              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
12879                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
12880              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
12881                  PRECISION       =SIMP(statut='o',typ='R',),),
12882            ),
12883          ),
12884
12885
12886          b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'",
12887
12888            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA","STRX_ELGA"),
12889                                  validators=NoRepeat(),max='**'),
12890            RESU_INIT       =SIMP(statut='o',typ=evol_noli),
12891            INST_INIT       =SIMP(statut='f',typ='R'),
12892            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
12893            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
12894                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
12895            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
12896                PRECISION       =SIMP(statut='o',typ='R',),),
12897            MAILLAGE_INIT   =SIMP(statut='o',typ=maillage_sdaster,),
12898            RESU_FINAL      =SIMP(statut='o',typ=evol_noli,),
12899            MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
12900            PERM_CHAM       =FACT(statut='o',max='**',
12901               GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
12902               GROUP_MA_INIT  =SIMP(statut='o',typ=grma),
12903               TRAN           =SIMP(statut='o',typ='R',min=3,max=3),
12904               PRECISION      =SIMP(statut='f',typ='R',defaut=1.0E-3),
12905            ),
12906          ),
12907
12908          b_prol_rtz   =BLOC(condition = "OPERATION == 'PROL_RTZ'",
12909
12910            PROL_RTZ        =FACT(statut='o',
12911               regles=(EXCLUS('INST','LIST_INST'),),
12912               MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
12913               TABLE           =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"),
12914               INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
12915               LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
12916               b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
12917                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
12918                  b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
12919                      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
12920                  b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
12921                      PRECISION       =SIMP(statut='o',typ='R',),),
12922               ),
12923               PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
12924               PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
12925               REPERE          =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),),
12926               ORIGINE         =SIMP(statut='o',typ='R',min=3,max=3),
12927               AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3),
12928            ),
12929          ),
12930
12931          b_prep_vrc1      =BLOC(condition = "OPERATION == 'PREP_VRC1'",
12932            # calculer la temperature dans les couches des coques multicouche a partir d'un champ de fonctions
12933            # de fonctions du temps et de l'espace (epaisseur)
12934
12935            PREP_VRC1        =FACT(statut='o',max=1,
12936              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'epaisseur
12937              MODELE        =SIMP(statut='o',typ=modele_sdaster),    # modele mecanique contenant les coques multicouche
12938              CARA_ELEM     =SIMP(statut='o',typ=cara_elem),         # CARA_ELEM pour connaitre EPAIS et COQU_NCOU
12939              INST          =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'),
12940            ),
12941          ),
12942
12943          b_prep_vrc2      =BLOC(condition = "OPERATION == 'PREP_VRC2'",
12944            # calculer la temperature dans les couches des coques multicouche a partir d'un evol_ther "coque"
12945            # contenant TEMP_MIL/TEMP_INF/TEMP_SUP
12946
12947            PREP_VRC2        =FACT(statut='o',max=1,
12948              EVOL_THER     =SIMP(statut='o',typ=(evol_ther)),       # evol_ther de type "coque" (TEMP_MIL/TEMP_INF/TEMP_SUP)
12949              MODELE        =SIMP(statut='o',typ=modele_sdaster),    # modele mecanique contenant les coques multicouche
12950              CARA_ELEM     =SIMP(statut='o',typ=cara_elem),         # CARA_ELEM pour connaitre EPAIS et COQU_NCOU
12951
12952              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12953              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12954              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12955
12956            ),
12957          ),
12958 )  ;
12959
12960 # ======================================================================
12961 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
12962 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12963 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12964 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
12965 # (AT YOUR OPTION) ANY LATER VERSION.
12966 #
12967 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12968 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12969 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12970 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12971 #
12972 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
12973 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
12974 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
12975 # ======================================================================
12976 # person_in_charge: mathieu.courtois at edf.fr
12977
12978 def crea_table_prod(TYPE_TABLE, **args):
12979    """Typage du concept résultat
12980    """
12981    if TYPE_TABLE == 'TABLE_FONCTION':
12982       return table_fonction
12983    elif TYPE_TABLE == 'TABLE_CONTENEUR':
12984       return table_container
12985    else:
12986       return table_sdaster
12987
12988 CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod,
12989                 fr="Création d'une table à partir d'une fonction ou de deux listes",
12990                 reentrant='f',
12991                 UIinfo={"groupes":("Tables",)},
12992
12993            regles=(EXCLUS('FONCTION','LISTE','RESU'),),
12994
12995            LISTE=FACT(statut='f',max='**',
12996                  fr="Creation d'une table a partir de listes",
12997                  regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')),
12998                         PARA     =SIMP(statut='o',typ='TXM'),
12999                         TYPE_K   =SIMP(statut='f',typ='TXM',defaut='K8',
13000                                     into=('K8','K16','K24')),
13001                         NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
13002                         LISTE_I  =SIMP(statut='f',typ='I',max='**'),
13003                         LISTE_R  =SIMP(statut='f',typ='R',max='**'),
13004                         LISTE_K  =SIMP(statut='f',typ='TXM', max='**'),
13005            ),
13006            FONCTION=FACT(statut='f',
13007                     fr="Creation d'une table a partir d'une fonction",
13008                         FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)),
13009                         PARA=SIMP(statut='f',typ='TXM',min=2,max=2),
13010            ),
13011            RESU=FACT(statut='f',max=1,
13012                 fr="Creation d'une table a partir d'un resultat ou d'un champ",
13013                 regles=(UN_PARMI('CHAM_GD','RESULTAT'),
13014                         UN_PARMI('TOUT_CMP','NOM_CMP'),
13015                         PRESENT_ABSENT('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
13016                         AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
13017                         ),
13018                         CHAM_GD  =SIMP(statut='f',typ=cham_gd_sdaster),
13019                         RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ),
13020                         b_resultat   =BLOC(condition = "RESULTAT != None",
13021                                regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
13022                                               'MODE','LIST_MODE','FREQ','LIST_FREQ'),),
13023                                NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
13024                                TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13025                                NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
13026                                LIST_ORDRE      =SIMP(statut='f',typ=(listis_sdaster) ),
13027                                INST            =SIMP(statut='f',typ='R',max='**'),
13028                                LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
13029                                MODE            =SIMP(statut='f',typ='I',max='**'),
13030                                LIST_MODE       =SIMP(statut='f',typ=(listis_sdaster) ),
13031                                FREQ            =SIMP(statut='f',typ='R',max='**'),
13032                                LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
13033                                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
13034                                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
13035                                        PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
13036                                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
13037                                        PRECISION       =SIMP(statut='o',typ='R',),),
13038                             ),
13039                         b_cham_gd   =BLOC(condition = "CHAM_GD != None",
13040                                CARA_ELEM       =SIMP(statut='f',typ=cara_elem),),
13041                       TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13042                       NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
13043                       TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13044                       GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
13045                       GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13046                       MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13047                       NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13048                       ),
13049
13050            TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE",
13051                              into=('TABLE', 'TABLE_FONCTION', 'TABLE_CONTENEUR'),),
13052
13053            TITRE=SIMP(statut='f',typ='TXM',max='**'),
13054 )  ;
13055
13056 # ======================================================================
13057 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
13058 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13059 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13060 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13061 # (AT YOUR OPTION) ANY LATER VERSION.
13062 #
13063 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13064 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13065 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13066 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13067 #
13068 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13069 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13070 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13071 # ======================================================================
13072 # person_in_charge: j-pierre.lefebvre at edf.fr
13073
13074 DEBUG=PROC(nom="DEBUG",op=137,
13075             UIinfo={"groupes":("Utilitaires",)},
13076                fr="Permettre de changer entre 2 commandes quelques variables globales de debug",
13077
13078      SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
13079                            statut='f',typ='TXM',into=('OUI','NON')),
13080      JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
13081                            statut='f',typ='TXM',into=('OUI','NON')),
13082      JEVEUX          =SIMP(fr="force les déchargement sur disque",
13083                            statut='f',typ='TXM',into=('OUI','NON')),
13084      IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
13085                            statut='f',typ='TXM',into=("OUI","NON")),
13086  );
13087
13088 # ======================================================================
13089 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
13090 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13091 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13092 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13093 # (AT YOUR OPTION) ANY LATER VERSION.
13094 #
13095 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13096 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13097 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13098 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13099 #
13100 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13101 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13102 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13103 # ======================================================================
13104 # person_in_charge: j-pierre.lefebvre at edf.fr
13105 DEBUT=MACRO(nom="DEBUT",
13106             op=OPS("Cata.ops.build_debut"),
13107             repetable='n',
13108             UIinfo={"groupes":("Gestion du travail",)},
13109             fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
13110             sd_prod=ops.DEBUT,
13111
13112          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
13113                            into=("OUI","NON"),defaut="OUI"),
13114          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
13115                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
13116 #         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
13117 #                               typ='TXM',defaut="NON",into=("OUI","NON",) ),
13118          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
13119                                statut='f',min=1,max=2,
13120            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
13121                                  into=('GLOBALE','VOLATILE'),),
13122            TITRE           =SIMP(statut='f',typ='TXM'),
13123            CAS             =SIMP(statut='f',typ='TXM'),
13124            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
13125            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
13126            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
13127          ),
13128
13129          CATALOGUE       =FACT(statut='f',min=1,max=10,
13130            FICHIER         =SIMP(statut='o',typ='TXM'),
13131            UNITE           =SIMP(statut='f',typ='I'),
13132          ),
13133
13134          CODE            =FACT(fr="paramètres réservés aux cas-tests",
13135                                statut='f',min=1,max=1,
13136            NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
13137            VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
13138          ),
13139
13140          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
13141            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),),
13142          ),
13143
13144          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
13145                                statut='f',min=1,max=1,
13146            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
13147                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
13148            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
13149                                  statut='f',typ='TXM',into=('OUI','NON')),
13150            JEVEUX          =SIMP(fr="force les déchargement sur disque",
13151                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
13152            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
13153                                  statut='f',typ='TXM',into=('TEST',)),
13154            HIST_ETAPE = SIMP(fr="permet de conserver toutes les étapes du jeu de commandes",
13155                              statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON'),
13156          ),
13157
13158          MESURE_TEMPS     =FACT(fr="Pour afficher le temps des principales étapes de calcul",
13159                                statut='d',min=1,max=1,
13160            NIVE_DETAIL      =SIMP(fr="niveau de détail des impressions",
13161                                  statut='f',typ='I',into=(0,1,2,3),defaut=1),
13162                                  # 0 : rien
13163                                  # 1 : impression en fin de commande des mesures principales
13164                                  # 2 : impression en fin de commande des mesures principales et secondaires
13165                                  # 3 : impression des mesures principales et secondaires pour chaque pas de temps
13166            MOYENNE     =SIMP(fr="affichage des moyennes et écart-types en parallèle",
13167                                   statut='f',typ='TXM',into=('OUI','NON',),defaut='NON'),
13168          ),
13169
13170          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1,
13171            TAILLE_BLOC       =SIMP(statut='f',typ='R',defaut=800.),
13172            TAILLE_GROUP_ELEM =SIMP(statut='f',typ='I',defaut=1000),
13173          ),
13174
13175          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
13176            regles=(EXCLUS('VALE','POURCENTAGE'),),
13177 #          par défaut VALE fixée à 10. dans le FORTRAN si CODE présent
13178            VALE            =SIMP(statut='f',typ='I',val_min=0,),
13179 #          par défaut 10% dans le FORTRAN
13180            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
13181 #          valeur en secondes de la réserve maximum bornée à 900 secondes
13182            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=900),),
13183
13184          IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
13185
13186          LANG = SIMP(statut='f', typ='TXM',
13187                      fr="Permet de choisir la langue utilisée pour les messages (si disponible)",
13188                      ang="Allows to choose the language used for messages (if available)"),
13189
13190          INFO     = SIMP(statut='f', typ='I', defaut=1, into=(1,2),),
13191 );
13192
13193 # ======================================================================
13194 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
13195 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13196 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13197 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13198 # (AT YOUR OPTION) ANY LATER VERSION.
13199 #
13200 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13201 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13202 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13203 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13204 #
13205 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13206 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13207 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13208 # ======================================================================
13209 # person_in_charge: nicolas.brie at edf.fr
13210 DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=mode_meca,
13211                      reentrant='f',
13212                      fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale",
13213             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
13214          regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),),
13215          CLASSIQUE       =FACT(statut='f',
13216            INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
13217            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
13218            NMAX_MODE       =SIMP(statut='f',typ='I',defaut=10,max='**' ),
13219          ),
13220          RITZ            =FACT(statut='f',max='**',
13221            regles=(UN_PARMI('MODE_MECA','BASE_MODALE','MODE_INTF'),),
13222            MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
13223            NMAX_MODE       =SIMP(statut='f',typ='I',max='**'),
13224            BASE_MODALE     =SIMP(statut='f',typ=mode_meca ),
13225            MODE_INTF       =SIMP(statut='f',typ=(mode_meca,mult_elas), ),
13226          ),
13227          b_ritz          =BLOC(condition = "RITZ != None",
13228            INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
13229            NUME_REF        =SIMP(statut='f',typ=nume_ddl_sdaster ),
13230            ORTHO           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
13231                                fr="Reorthonormalisation de la base de Ritz" ),
13232            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
13233            b_ortho          =BLOC(condition = "ORTHO == 'OUI' ",
13234              MATRICE          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
13235                ),
13236          ),
13237         DIAG_MASS        =FACT(statut='f',max='**',
13238            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**'  ),
13239            MODE_STAT       =SIMP(statut='o',typ=mode_meca ),
13240          ),
13241         ORTHO_BASE        =FACT(statut='f',max='**',
13242            BASE       =SIMP(statut='o',typ=(mode_meca,mult_elas)),
13243            MATRICE    =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
13244          ),
13245
13246 #-------------------------------------------------------------------
13247 #       Catalogue commun SOLVEUR
13248         SOLVEUR         =C_SOLVEUR('DEFI_BASE_MODALE'),
13249 #-------------------------------------------------------------------
13250
13251
13252
13253         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13254         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
13255 )  ;
13256
13257 # ======================================================================
13258 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
13259 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13260 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13261 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13262 # (AT YOUR OPTION) ANY LATER VERSION.
13263 #
13264 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13265 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13266 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13267 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13268 #
13269 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13270 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13271 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13272 # ======================================================================
13273 # person_in_charge: sylvie.michel-ponnelle at edf.fr
13274
13275
13276 DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",
13277                     op=OPS('Macro.defi_cable_bp_ops.defi_cable_bp_ops'),
13278                     sd_prod=cabl_precont,
13279                     fr="Calculer les profils initiaux de tension le long des cables " \
13280                        "de précontrainte d'une structure en béton",
13281                     reentrant='n',UIinfo={"groupes":("Modélisation",)},
13282          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
13283          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
13284          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
13285          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
13286          DEFI_CABLE      =FACT(statut='o',max='**',
13287            regles=(UN_PARMI('MAILLE','GROUP_MA'),
13288                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
13289            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
13290            GROUP_MA        =SIMP(statut='f',typ=grma),
13291            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
13292            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
13293            TENSION_CT      =SIMP(statut='f',typ=table_sdaster),
13294          ),
13295          ADHERENT        =SIMP(statut='o',typ='TXM',defaut='OUI',into=("OUI","NON") ),
13296          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
13297          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13298          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13299          b_adherent=BLOC(condition="(ADHERENT=='OUI')",
13300             TYPE_RELAX      =SIMP(statut='o',typ='TXM',into=("SANS","BPEL","ETCC_DIRECT","ETCC_REPRISE"),defaut="SANS",),
13301                 b_relax_bpel  =BLOC(condition = "TYPE_RELAX =='BPEL'",
13302                        R_J   =SIMP(statut='o',typ='R',val_min=0.E+0),
13303                                                 ),
13304                 b_relax_etcc  =BLOC(condition = "((TYPE_RELAX=='ETCC_DIRECT') or (TYPE_RELAX=='ETCC_REPRISE'))",
13305                       NBH_RELAX   =SIMP(statut='o',typ='R',val_min=0.E+0),
13306                        ),
13307 #         PERT_ELAS       =SIMP(statut='o',typ='TXM',into=("OUI","NON"),defaut="NON"),
13308 #           b_pert_elas   =BLOC(condition = "PERT_ELAS=='OUI'",
13309 #                  EP_BETON  = SIMP(statut='o',typ='R',val_min=0.E+0),
13310 #                  ESP_CABLE = SIMP(statut='o',typ='R',val_min=0.E+0)
13311 #                  ) ,
13312             CONE            =FACT(statut='f',
13313                 RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13314                 LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13315                 PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
13316               ),
13317             ),
13318          b_non_adherent=BLOC(condition="(ADHERENT=='NON')",
13319             TYPE_RELAX      =SIMP(statut='c',typ='TXM',into=("SANS",),defaut="SANS",),
13320             ),
13321          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
13322          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
13323 )  ;
13324
13325 # ======================================================================
13326 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
13327 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13328 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13329 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13330 # (AT YOUR OPTION) ANY LATER VERSION.
13331 #
13332 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13333 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13334 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13335 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13336 #
13337 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13338 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13339 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13340 # ======================================================================
13341 # person_in_charge: sylvie.michel-ponnelle at edf.fr
13342
13343 DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n',
13344             fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte"
13345                +" (utilisée par la macro DEFI_CABLE_BP)",
13346             UIinfo={"groupes":("Modélisation",)},
13347          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
13348          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
13349          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
13350          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
13351          DEFI_CABLE      =FACT(statut='o',max='**',
13352            regles=(UN_PARMI('MAILLE','GROUP_MA'),
13353                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
13354            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
13355            GROUP_MA        =SIMP(statut='f',typ=grma),
13356            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
13357            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
13358            GROUP_NO_FUT    =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
13359            TENSION_CT      =SIMP(statut='f',typ=table_sdaster),
13360          ),
13361          ADHERENT        =SIMP(statut='o',typ='TXM',defaut='OUI',into=("OUI","NON") ),
13362          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
13363          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13364          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13365          TYPE_RELAX      =SIMP(statut='o',typ='TXM',into=("SANS","BPEL","ETCC_DIRECT","ETCC_REPRISE"),defaut="SANS",),
13366          R_J             =SIMP(statut='f',typ='R',val_min=0.E+0),
13367          NBH_RELAX       =SIMP(statut='f',typ='R',val_min=0.E+0),
13368 #         PERT_ELAS       =SIMP(statut='o',typ='TXM',into=("OUI","NON"),defaut="NON"),
13369 #         EP_BETON        =SIMP(statut='f',typ='R',val_min=0.E+0),
13370 #         ESP_CABLE       =SIMP(statut='f',typ='R',val_min=0.E+0),
13371          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
13372          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
13373          CONE            =FACT(statut='f',min=0,
13374            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13375            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ),
13376            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
13377          ),
13378 )  ;
13379
13380 # ======================================================================
13381 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
13382 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13383 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13384 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13385 # (AT YOUR OPTION) ANY LATER VERSION.
13386 #
13387 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13388 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13389 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13390 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13391 #
13392 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13393 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13394 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13395 # ======================================================================
13396 # person_in_charge: jean-michel.proix at edf.fr
13397 DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
13398                    fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres",
13399                    reentrant='n',
13400             UIinfo={"groupes":("Modélisation",)},
13401 # on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas
13402                   regles=(UN_PARMI('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'),
13403                  PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'),
13404                          ),
13405           MONOCRISTAL    =FACT(statut='f', max=5,
13406              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
13407              ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
13408                    into=('MONO_VISC1', 'MONO_VISC2', 'MONO_DD_KR', 'MONO_DD_CFC', 'MONO_DD_CFC_IRRA',
13409                          'MONO_DD_CC', 'MONO_DD_CC_IRRA', 'MONO_DD_FAT',),
13410                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
13411              ELAS            =SIMP(statut='f', typ='TXM', max=1,
13412                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
13413              b_non_dd =BLOC(condition="ECOULEMENT=='MONO_VISC1' or ECOULEMENT=='MONO_VISC2'",
13414                    ECRO_ISOT       =SIMP(statut='o', typ='TXM', max=1,
13415                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
13416                    ECRO_CINE       =SIMP(statut='o', typ='TXM', max=1,
13417                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
13418                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
13419                                 into=('OCTAEDRIQUE','BCC24','CUBIQUE1','CUBIQUE2','ZIRCONIUM','UNIAXIAL','UTILISATEUR'),
13420                                 ),
13421                    b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ",
13422                           TABL_SYST_GLIS =SIMP(statut='f', typ=table_sdaster, max=1,),
13423                            ),
13424                                 ),
13425              b_dd_kr =BLOC(condition="ECOULEMENT=='MONO_DD_KR' ",
13426                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
13427                                 into=('BCC24','UTILISATEUR'),defaut=('BCC24',),),
13428                    b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ",
13429                           TABL_SYST_GLIS =SIMP(statut='f', typ=table_sdaster, max=1,),
13430                            ),
13431                                 ),
13432              b_ecp_cfc =BLOC(condition="ECOULEMENT=='MONO_DD_FAT' ",
13433                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
13434                                 into=('OCTAEDRIQUE','UTILISATEUR',),defaut=('OCTAEDRIQUE',),),
13435                                 ),
13436              b_dd_cfc =BLOC(condition="ECOULEMENT=='MONO_DD_CFC'  or ECOULEMENT=='MONO_DD_CFC_IRRA'",
13437                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
13438                                 into=('OCTAEDRIQUE','UTILISATEUR',),defaut=('OCTAEDRIQUE',),),
13439                    b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ",
13440                           TABL_SYST_GLIS =SIMP(statut='f', typ=table_sdaster, max=1,),
13441                            ),
13442                                 ),
13443              b_dd_cc =BLOC(condition="ECOULEMENT=='MONO_DD_CC' or ECOULEMENT=='MONO_DD_CC_IRRA' ",
13444                    FAMI_SYST_GLIS  =SIMP(statut='f',typ='TXM', max=1,
13445                                 into=('CUBIQUE1','UTILISATEUR',),defaut=('CUBIQUE1',),),
13446                    b_util =BLOC(condition="FAMI_SYST_GLIS=='UTILISATEUR' ",
13447                           TABL_SYST_GLIS =SIMP(statut='f', typ=table_sdaster, max=1,),
13448                            ),
13449                                 ),
13450                                 ),
13451
13452           MATR_INTER =SIMP(statut='f', typ=table_sdaster, max=1,),
13453
13454           ROTA_RESEAU =SIMP(statut='f', typ='TXM', max=1,into=('NON','POST','CALC'),defaut='NON',
13455                    fr="rotation de reseau : NON, POST, CALC"),
13456
13457           POLYCRISTAL    =FACT(statut='f', max='**',
13458            regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
13459              MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
13460              FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
13461              ANGL_REP  =SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles nautiques en degrés"),
13462              ANGL_EULER=SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler   en degrés"),
13463                                 ),
13464
13465
13466           b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
13467           LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
13468                 fr="Donner le nom de la règle de localisation"),
13469
13470            b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
13471              DL            =SIMP(statut='o',typ='R',max=1),
13472              DA            =SIMP(statut='o',typ='R',max=1),
13473              ),
13474              ),
13475
13476 #####################################################################################
13477           GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster,
13478                    fr="Donner le nom du concept regroupant tous les groupes de fibres (issu de DEFI_GEOM_FIBRE)"),
13479           MATER_SECT = SIMP(statut='f',max=1,typ=mater_sdaster,
13480                    fr="Donner le nom du materiau pour les caracteristiques homogeneisees sur la section"),
13481           MULTIFIBRE    = FACT(statut='f',max='**',
13482           GROUP_FIBRE        =SIMP(statut='o', typ='TXM', max='**'),
13483              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1,
13484                                    fr="Donner le nom du materiau pour le groupe de fibres"),
13485              RELATION        =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS",into=C_RELATION('DEFI_COMPOR'),
13486                                   fr="Donner le nom de la relation incrementale pour le groupe de fibres",
13487                                   ),
13488            RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
13489                                  into=(
13490 # MECA KIT_DDI
13491                                        "VMIS_ISOT_TRAC",
13492                                        "VMIS_ISOT_LINE",
13493                                        "VMIS_ISOT_PUIS",
13494                                        "GRANGER_FP",
13495                                        "GRANGER_FP_INDT",
13496                                        "GRANGER_FP_V",
13497                                        "BETON_UMLV_FP",
13498                                        "ROUSS_PR",
13499                                        "BETON_DOUBLE_DP",
13500                                        ),),
13501 # on pourrait ajouter TOUT_GROUP_FIBRE
13502
13503                                 ) );
13504
13505 # ======================================================================
13506 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
13507 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
13508 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
13509 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
13510 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
13511 #                                                                       
13512 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
13513 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
13514 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
13515 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
13516 #                                                                       
13517 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
13518 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
13519 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
13520 # ======================================================================
13521 # person_in_charge: xavier.desroches at edf.fr
13522 DEFI_COMPOSITE=OPER(nom="DEFI_COMPOSITE",op=56,sd_prod=mater_sdaster,reentrant='n',
13523             UIinfo={"groupes":("Modélisation",)},
13524                     fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir"
13525                         +" des caractéristiques de chaque couche",
13526          COUCHE          =FACT(statut='o',max='**',
13527            EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
13528            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
13529            ORIENTATION     =SIMP(statut='f',typ='R',defaut= 0.E+0,
13530                                  val_min=-90.E+0,val_max=90.E+0   ),
13531          ),
13532          IMPRESSION      =FACT(statut='f',
13533            UNITE           =SIMP(statut='f',typ='I',defaut=8),
13534          ),
13535 )  ;
13536
13537 # ======================================================================
13538 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13539 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13540 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13541 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13542 # (AT YOUR OPTION) ANY LATER VERSION.
13543 #
13544 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13545 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13546 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13547 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13548 #
13549 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13550 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13551 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13552 # ======================================================================
13553 # person_in_charge: mathieu.courtois at edf.fr
13554 DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
13555                     fr="Définir la valeur d'une grandeur invariante",
13556                     reentrant='n',
13557             UIinfo={"groupes":("Fonctions",)},
13558          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
13559          VALE            =SIMP(statut='o',typ='R',),
13560          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13561 )  ;
13562
13563 # ======================================================================
13564 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
13565 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13566 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13567 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13568 # (AT YOUR OPTION) ANY LATER VERSION.
13569 #
13570 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13571 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13572 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13573 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13574 #
13575 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13576 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13577 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13578 # ======================================================================
13579 # person_in_charge: mickael.abbas at edf.fr
13580 #
13581 DEFI_CONTACT=OPER(nom       = "DEFI_CONTACT",
13582                   op        = 30,
13583                   sd_prod   = char_contact,
13584                   fr        = "Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
13585                   #en        = "Allows the definition of contact surfaces as well as unilateral conditions",
13586                   reentrant = 'n',
13587                   UIinfo    = {"groupes":("Modélisation",)},
13588
13589 # MODELE
13590
13591          MODELE          =SIMP(statut='o',typ=modele_sdaster,),
13592          INFO            =SIMP(statut='f',typ='I',into=(1,2),),
13593
13594 # FORMULATION (UNIQUE PAR OCCURRENCE DE DEFI_CONTACT)
13595
13596          FORMULATION     =SIMP(statut='o',
13597                                position='global',
13598                                typ='TXM',
13599                                fr="Choix d'une formulation de contact ou de liaisons unilatérales",
13600                                defaut="DISCRETE",
13601                                into=("DISCRETE","CONTINUE","XFEM","LIAISON_UNIL",),),
13602
13603 # PARAMETRE GENERAL : FROTTEMENT
13604
13605          FROTTEMENT      =SIMP(statut='f',
13606                                position='global',
13607                                typ='TXM',
13608                                fr="Choix d'un modèle de frottement (uniquement pour les formulations de contact)",
13609                                defaut="SANS",
13610                                into=("COULOMB","SANS",)),
13611
13612 ### PARAMETRES GENERAUX (UNIQUEMENT POUR LE CONTACT MAILLE, NE DEPENDENT PAS DE LA ZONE DE CONTACT)
13613
13614          b_contact_mail=BLOC(condition = "((FORMULATION == 'CONTINUE') or (FORMULATION == 'DISCRETE'))",
13615 #          ARRET DU CALCUL POUR LE MODE SANS RESOLUTION DU CONTACT
13616            STOP_INTERP   = SIMP(statut='f',
13617                                 typ='TXM',
13618                                 fr="Arrête le calcul dès qu'une interpénétration est détectée en mode RESOLUTION='NON'",
13619                                 defaut="NON",
13620                                 into=("OUI","NON")),
13621 #          LISSAGE DES NORMALES PAR MOYENNATION AUX NOEUDS
13622            LISSAGE       = SIMP(statut='f',
13623                                 typ='TXM',
13624                                 fr="Lissage des normales par moyennation aux noeuds",
13625                                 defaut="NON",
13626                                 into=("OUI","NON")),
13627 #          VERIFICATION DE L'ORIENTATION ET DE LA COHERENCE DES NORMALES
13628            VERI_NORM       =SIMP(statut='f',
13629                                  typ='TXM',
13630                                  fr="Vérification de l'orientation (sortante) des normales aux surfaces",
13631                                  defaut="OUI",
13632                                  into=("OUI","NON"),),
13633            ),
13634
13635 ### PARAMETRES GENERAUX (UNIQUEMENT POUR LE CONTACT, NE DEPENDENT PAS DE LA ZONE DE CONTACT)
13636
13637          b_contact=BLOC(condition = "FORMULATION != 'LIAISON_UNIL' ",
13638
13639 # PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - Cas discret
13640
13641            b_bouc_geom_maild=BLOC(condition = "FORMULATION == 'DISCRETE'",
13642                                   ALGO_RESO_GEOM = SIMP(statut='f',
13643                                                         typ='TXM',
13644                                                         into=("POINT_FIXE",),
13645                                                         defaut="POINT_FIXE"),
13646                                   REAC_GEOM = SIMP(statut='f',
13647                                                    typ='TXM',
13648                                                    into=("AUTOMATIQUE","CONTROLE","SANS",),
13649                                                    defaut="AUTOMATIQUE"),
13650                                   b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
13651                                        ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10),
13652                                        RESI_GEOM      = SIMP(statut='f',typ='R',defaut=0.01)),
13653                                   b_controle    = BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
13654                                        NB_ITER_GEOM   = SIMP(statut='f',typ='I',defaut = 2)),
13655                                   )),
13656
13657 # PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - Cas continu
13658
13659            b_bouc_geom_mailc=BLOC(condition = "FORMULATION == 'CONTINUE'",
13660                                   ALGO_RESO_GEOM = SIMP(statut='f',
13661                                                         typ='TXM',
13662                                                         into=("POINT_FIXE","NEWTON",),
13663                                                         defaut="POINT_FIXE"),
13664                                   b_algo_reso_geomNE = BLOC(condition = "ALGO_RESO_GEOM=='NEWTON'",
13665                                     RESI_GEOM      = SIMP(statut='f',typ='R',defaut=0.000001),),
13666
13667                                   b_algo_reso_geomPF = BLOC(condition = "ALGO_RESO_GEOM=='POINT_FIXE'",
13668                                      REAC_GEOM = SIMP(statut='f',
13669                                                    typ='TXM',
13670                                                    into=("AUTOMATIQUE","CONTROLE","SANS",),
13671                                                    defaut="AUTOMATIQUE"),
13672                                     b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
13673                                        ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10),
13674                                        RESI_GEOM      = SIMP(statut='f',typ='R',defaut=0.01)),
13675                                     b_controle    = BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
13676                                        NB_ITER_GEOM   = SIMP(statut='f',typ='I',defaut = 2)))
13677                                    ),
13678
13679 # PARAMETRE GENERAL : BOUCLE DE GEOMETRIE - Cas XFEM
13680
13681            b_bouc_geom_xfem=BLOC(condition = "FORMULATION == 'XFEM' ",
13682                                  ALGO_RESO_GEOM = SIMP(statut='f',
13683                                                         typ='TXM',
13684                                                         into=("POINT_FIXE",),
13685                                                         defaut="POINT_FIXE"),
13686                                  REAC_GEOM =SIMP(statut='f',
13687                                                  typ='TXM',
13688                                                  into=("AUTOMATIQUE","CONTROLE","SANS",),
13689                                                  defaut="SANS",
13690                                                  ),
13691                                  b_automatique = BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
13692                                    ITER_GEOM_MAXI = SIMP(statut='f',typ='I',defaut=10),
13693                                    RESI_GEOM      = SIMP(statut='f',typ='R',defaut=0.0001),
13694                                    ),
13695                                  b_controle    = BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
13696                                    NB_ITER_GEOM   = SIMP(statut='f',typ='I',defaut = 2),
13697                                    ),
13698                                  ),
13699
13700
13701 # PARAMETRE GENERAL : BOUCLE DE CONTACT
13702
13703            b_bouc_cont_disc=BLOC(condition = "FORMULATION == 'DISCRETE' ",
13704                                  ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4),
13705                                  ),
13706
13707
13708            b_bouc_cont_cont=BLOC(condition = "FORMULATION == 'CONTINUE' ",
13709                                  ALGO_RESO_CONT = SIMP(statut='f',typ='TXM',defaut="NEWTON",
13710                                                       into=("POINT_FIXE","NEWTON")),
13711                                  b_algo_reso_contPF = BLOC(condition = "ALGO_RESO_CONT=='POINT_FIXE'",
13712                                    ITER_CONT_TYPE = SIMP(statut='f',typ='TXM',defaut="MAXI",
13713                                                       into=("MULT","MAXI")),
13714                                    b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'",
13715                                      ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4),
13716                                      ),
13717                                    b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'",
13718                                      ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30),
13719                                      ),
13720                                    )
13721                                  ),
13722
13723            b_bouc_cont_xfem=BLOC(condition = "FORMULATION == 'XFEM' ",
13724                                  ITER_CONT_TYPE= SIMP(statut='f',typ='TXM',defaut="MAXI",
13725                                                       into=("MULT","MAXI")),
13726                                  b_bouc_cont_mult = BLOC(condition = "ITER_CONT_TYPE=='MULT'",
13727                                                          ITER_CONT_MULT = SIMP(statut='f',typ='I',defaut = 4),
13728                                    ),
13729                                  b_bouc_cont_maxi = BLOC(condition = "ITER_CONT_TYPE=='MAXI'",
13730                                                          ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut = 30),
13731                                    ),
13732                                  ),
13733
13734 # PARAMETRE GENERAL : BOUCLE DE FROTTEMENT - Cas continu
13735
13736            b_bouc_frot_cont= BLOC(condition = "FROTTEMENT=='COULOMB' and FORMULATION == 'CONTINUE' ",
13737                                   ALGO_RESO_FROT = SIMP(statut='f',
13738                                                         typ='TXM',
13739                                                         into=("POINT_FIXE","NEWTON",),
13740                                                         defaut="NEWTON"),
13741                                   b_algo_reso_frotPF = BLOC(condition = "ALGO_RESO_FROT=='POINT_FIXE'",
13742                                     ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10),
13743                                     RESI_FROT      = SIMP(statut='f',typ='R',defaut=0.0001),
13744                                   ),
13745                                   b_algo_reso_frotNE = BLOC(condition = "ALGO_RESO_FROT=='NEWTON'",
13746
13747                                     RESI_FROT      = SIMP(statut='f',typ='R',defaut=0.0001),
13748                                     ADAPT_COEF     = SIMP(statut='f',
13749                                                           typ='TXM',
13750                                                           defaut="NON",
13751                                                           into=("OUI","NON")),
13752                                   ),
13753                               ),
13754
13755
13756 # PARAMETRE GENERAL : BOUCLE DE FROTTEMENT - Cas XFEM
13757
13758            b_bouc_frot_xfem= BLOC(condition = "FROTTEMENT=='COULOMB' and FORMULATION == 'XFEM' ",
13759                                   ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=10),
13760                                   RESI_FROT      = SIMP(statut='f',typ='R',defaut=0.0001),
13761                                   ),
13762
13763 # PARAMETRES GENERAUX : METHODES DISCRETES
13764
13765            b_para_discret  = BLOC(condition = "FORMULATION == 'DISCRETE' ",
13766 #                                 ## METHODES DE DUALISATION ##
13767                                   STOP_SINGULIER= SIMP(statut='f',
13768                                                        typ='TXM',
13769                                                        fr="Tient compte de la singularité de la matrice de contact",
13770                                                        defaut="OUI",
13771                                                        into=("OUI","NON"),),
13772                                   NB_RESOL      = SIMP(statut='f',
13773                                                        typ='I',
13774                                                 fr="Nombre de résolutions simultanées pour la construction du complément de Schur",
13775                                                        defaut=10,),
13776 #                                 ## GCP ##
13777                                   RESI_ABSO     = SIMP(statut='f',
13778                                                        typ='R',
13779                                                   fr="Critère de convergence (niveau d'interpénétration autorisé pour 'GCP')",),
13780                                   ITER_GCP_MAXI = SIMP(statut='f',
13781                                                        typ='I',
13782                                                        fr="Nombre d'itérations maximal ('GCP')",
13783                                                        defaut=0,),
13784                                   RECH_LINEAIRE = SIMP(statut='f',
13785                                                        typ='TXM',
13786                                                   fr="Autorisation de sortie du domaine admissible lors de la recherche linéaire",
13787                                                        defaut="ADMISSIBLE",
13788                                                        into=("ADMISSIBLE","NON_ADMISSIBLE"),),
13789                                   PRE_COND      = SIMP(statut='f',
13790                                                        typ='TXM',
13791                                                        fr="Choix d'un préconditionneur (accélère la convergence de 'GCP')",
13792                                                        defaut="SANS",
13793                                                        into=("DIRICHLET","SANS"),),
13794                                   b_dirichlet   = BLOC (condition = "PRE_COND == 'DIRICHLET'",
13795                                      COEF_RESI     = SIMP(statut='f',
13796                                                           typ='R',
13797                                                    fr="Activation du préconditionneur quand le résidu a été divisé par COEF_RESI",
13798                                                           defaut = -1.0,),
13799                                      ITER_PRE_MAXI = SIMP(statut='f',
13800                                                           typ='I',
13801                                                           fr="Nombre d'itérations maximal pour le préconditionneur ('GCP')",
13802                                                           defaut=0,),
13803                                   ),
13804                                   ),
13805
13806 ## AFFECTATIONS (ZONES PAR ZONES)
13807
13808 # AFFECTATION - CAS LIAISON_UNILATERALE
13809
13810          b_affe_unil     = BLOC(condition = "FORMULATION == 'LIAISON_UNIL'",
13811                                 ZONE=FACT(statut='o',
13812                                           max='**',
13813 # -- Liaison unilatérale
13814                                           regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
13815                                           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
13816                                           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13817                                           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
13818                                           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
13819 #
13820                                           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
13821                                           COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
13822                                           COEF_MULT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
13823 # -- Incompatibilité avec CL
13824                                           SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
13825                                           SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
13826
13827
13828                                           ),
13829                                 ),
13830
13831 # AFFECTATION - CAS DISCRET
13832
13833          b_affe_discret  = BLOC(condition = "FORMULATION == 'DISCRETE'",
13834                                 ZONE=FACT(statut='o',
13835                                           max='**',
13836 # -- Appariement
13837                                           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
13838                                                                 into=("NODAL","MAIT_ESCL"),),
13839 #
13840                                           regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),
13841                                                   UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),),
13842                                           GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
13843                                           MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13844                                           GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
13845                                           MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13846 #
13847                                           NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
13848                                                                 into=("MAIT","MAIT_ESCL","ESCL"),),
13849 #
13850                                           VECT_MAIT       =SIMP(statut='f',typ='TXM',defaut="AUTO",
13851                                                                 into=("AUTO","FIXE","VECT_Y")),
13852
13853                                           b_nmait_fixe=BLOC(condition = "VECT_MAIT == 'FIXE'",
13854                                             MAIT_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
13855                                             ),
13856
13857                                           b_nmait_vecty=BLOC(condition = "VECT_MAIT == 'VECT_Y'",
13858                                             MAIT_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
13859                                             ),
13860 #
13861                                           VECT_ESCL       =SIMP(statut='f',typ='TXM',defaut="AUTO",
13862                                                                 into=("AUTO","FIXE","VECT_Y")),
13863
13864                                           b_nescl_fixe=BLOC(condition = "VECT_ESCL == 'FIXE'",
13865                                             ESCL_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
13866                                             ),
13867
13868                                           b_nescl_vecty=BLOC(condition = "VECT_ESCL == 'VECT_Y'",
13869                                             ESCL_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
13870                                             ),
13871 #
13872                                           TYPE_APPA       =SIMP(statut='f',typ='TXM',defaut="PROCHE",
13873                                                            into  =("PROCHE","FIXE")),
13874
13875                                           b_appa_fixe     =BLOC(condition = "TYPE_APPA == 'FIXE'",
13876                                             DIRE_APPA     =SIMP(statut='f',typ='R',min=3,max=3),
13877                                             ),
13878 #
13879                                           DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
13880                                           DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
13881                                           b_cara=BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
13882                                             CARA_ELEM     =SIMP(statut='o',typ=(cara_elem) ),
13883                                             ),
13884
13885                                           DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13886                                           DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13887 #
13888                                           TOLE_APPA       =SIMP(statut='f',typ='R'  ,defaut=-1.0),
13889                                           TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
13890 # -- Incompatibilité avec CL
13891                                           SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
13892                                           SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
13893                                           SANS_MAILLE     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13894                                           SANS_GROUP_MA   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
13895 # -- Mode sans calcul
13896                                           RESOLUTION      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13897                                           b_verif=BLOC(condition = "RESOLUTION == 'NON' ",
13898                                             TOLE_INTERP   = SIMP(statut='f',typ='R',defaut = 0.),
13899                                             ),
13900 # -- Résolution
13901                                           ALGO_CONT       =SIMP(statut='o',typ='TXM',defaut="CONTRAINTE",
13902                                                                 into=("CONTRAINTE","LAGRANGIEN","PENALISATION","GCP"),),
13903
13904                                           b_active=BLOC(condition = "ALGO_CONT == 'CONTRAINTE' ",
13905                                                         fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
13906                                                         GLISSIERE=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
13907                                                         b_glissiere=BLOC(condition = "GLISSIERE == 'OUI' ",
13908                                                                          ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
13909                                                                         ),
13910                                                         ),
13911 #
13912                                           b_penal_contact=BLOC(condition = "ALGO_CONT == 'PENALISATION' ",
13913                                                                fr="Paramètres de la méthode pénalisée (contact)",
13914                                                                E_N=SIMP(statut='o',typ='R'),
13915                                                                ),
13916 #
13917                                           b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' ",
13918                                                             fr="Paramètres du frottement de Coulomb",
13919                                                             COULOMB       =SIMP(statut='o',typ='R',),
13920                                                             COEF_MATR_FROT=SIMP(statut='f',typ='R',defaut=0.E+0),
13921                                                             ALGO_FROT     =SIMP(statut='o',typ='TXM',defaut="PENALISATION",
13922                                                                                 into=("PENALISATION","LAGRANGIEN"),),
13923 #
13924                                                             b_penal_frot=BLOC(condition = "ALGO_FROT == 'PENALISATION' ",
13925                                                                               fr="Paramètres de la méthode pénalisée (frottement)",
13926                                                                               E_T=SIMP(statut='o',typ='R'),
13927                                                                               ),
13928                                                            ),
13929                                           ), #fin mot-clé facteur ZONE
13930                                 ), #fin bloc b_affe_discret
13931
13932 # AFFECTATION - CAS CONTINUE
13933
13934          b_affe_continue = BLOC(condition = "FORMULATION == 'CONTINUE'",
13935                                 ZONE=FACT(statut='o',
13936                                           max='**',
13937 # -- Appariement
13938                                           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
13939                                                                 into=("MAIT_ESCL",)),
13940
13941
13942 #
13943                                           regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),
13944                                                   UN_PARMI('GROUP_MA_MAIT','MAILLE_MAIT'),),
13945                                           GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
13946                                           MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13947                                           GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max=1),
13948                                           MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13949 #
13950                                           NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
13951                                                                 into=("MAIT","MAIT_ESCL","ESCL"),),
13952 #
13953                                           VECT_MAIT       =SIMP(statut='f',typ='TXM',defaut="AUTO",
13954                                                                 into=("AUTO","FIXE","VECT_Y")),
13955
13956                                           b_nmait_fixe=BLOC(condition = "VECT_MAIT == 'FIXE'",
13957                                             MAIT_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
13958                                             ),
13959
13960                                           b_nmait_vecty=BLOC(condition = "VECT_MAIT == 'VECT_Y'",
13961                                             MAIT_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
13962                                             ),
13963 #
13964                                           VECT_ESCL       =SIMP(statut='f',typ='TXM',defaut="AUTO",
13965                                                                 into=("AUTO","FIXE","VECT_Y")),
13966
13967                                           b_nescl_fixe=BLOC(condition = "VECT_ESCL == 'FIXE'",
13968                                             ESCL_FIXE     =SIMP(statut='o',typ='R',min=3,max=3),
13969                                             ),
13970
13971                                           b_nescl_vecty=BLOC(condition = "VECT_ESCL == 'VECT_Y'",
13972                                             ESCL_VECT_Y   =SIMP(statut='o',typ='R',min=3,max=3),
13973                                             ),
13974 #
13975                                           TYPE_APPA       =SIMP(statut='f',typ='TXM',defaut="PROCHE",
13976                                                            into  =("PROCHE","FIXE")),
13977
13978                                           b_appa_fixe=BLOC(condition = "TYPE_APPA == 'FIXE'",
13979                                             DIRE_APPA     =SIMP(statut='f',typ='R',min=3,max=3),
13980                                             ),
13981 #
13982                                           DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
13983                                           DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
13984                                           b_cara=BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
13985                                             CARA_ELEM     =SIMP(statut='o',typ=(cara_elem) ),
13986                                             ),
13987
13988                                           DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13989                                           DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13990 #
13991                                           TOLE_APPA       =SIMP(statut='f',typ='R'  ,defaut=-1.0),
13992                                           TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
13993 # -- Incompatibilité avec CL
13994                                           SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
13995                                           SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
13996                                           SANS_MAILLE     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13997                                           SANS_GROUP_MA   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
13998 # -- Mode sans calcul
13999                                           RESOLUTION       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
14000                                           b_verif=BLOC(condition = "RESOLUTION == 'NON' ",
14001                                                        TOLE_INTERP   = SIMP(statut='f',typ='R',defaut = 0.),
14002                                                        ),
14003 # -- Fonctionnalités spécifiques 'CONTINUE'
14004
14005                                           INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="AUTO",
14006                                           into=("AUTO","GAUSS","SIMPSON","NCOTES",),),
14007                                           b_gauss   =BLOC(condition = "INTEGRATION == 'GAUSS' ",
14008                                                           fr="Degré du polynôme de Legendre donnant les points de Gauss",
14009                                                           ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,val_min=1,val_max=6),
14010                                             ),
14011                                           b_simpson =BLOC(condition = "INTEGRATION == 'SIMPSON' ",
14012                                                           fr="Nombre de subdivisions du domaine",
14013                                                           ORDRE_INT = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max=4),
14014                                             ),
14015                                           b_ncotes  =BLOC(condition = "INTEGRATION == 'NCOTES' ",
14016                                                           fr="Degré du polynôme interpolateur",
14017                                                           ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,val_min=3,val_max=8),
14018                                             ),
14019 #
14020                                           CONTACT_INIT    =SIMP(statut='f',typ='TXM',defaut="INTERPENETRE",
14021                                                                 into=("OUI","INTERPENETRE","NON"),),
14022 #
14023                                           GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
14024 #
14025                                           ALGO_CONT       =SIMP(statut='f',typ='TXM',defaut="STANDARD",
14026                                                                 into=("STANDARD","PENALISATION"),),
14027
14028                                           b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD' ",
14029                                                           fr="Paramètres de la formulation Lagrangienne",
14030                                                           COEF_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
14031                                                           ),
14032                                           b_cont_pena=BLOC(condition = "ALGO_CONT == 'PENALISATION' ",
14033                                                             fr="Paramètres de la méthode pénalisée",
14034                                                             COEF_PENA_CONT  =SIMP(statut='o',typ='R'),
14035                                                             ),
14036 #
14037                                           b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' ",
14038                                                             fr="Paramètres du frottement de Coulomb",
14039                                                             COULOMB    = SIMP(statut='o',typ='R',),
14040                                                             SEUIL_INIT = SIMP(statut='f',typ='R',defaut=0.E+0),
14041 #
14042                                           regles=(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),),
14043                                                   SANS_NOEUD_FR    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
14044                                                   SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
14045                                                             b_sans_group_no_frot=BLOC(condition = " SANS_GROUP_NO_FR != None or \
14046                                                                                                     SANS_NOEUD_FR != None ",
14047                                                             fr="Direction de frottement à exclure (uniquement dans le cas 3D)",
14048                                                             DIRE_EXCL_FROT=SIMP(statut='f',typ='R',min=3,max=3),
14049                                                             ),
14050
14051                                             ALGO_FROT       =SIMP(statut='f',typ='TXM',defaut="STANDARD",
14052                                                                   into=("STANDARD","PENALISATION"),),
14053                                             b_frot_std      =BLOC(condition = "ALGO_FROT == 'STANDARD' ",
14054                                                                   fr="Paramètres de la formulation Lagrangienne",
14055                                                                   COEF_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
14056                                                                   ),
14057
14058                                             b_frot_pena     =BLOC(condition = "ALGO_FROT == 'PENALISATION' ",
14059                                                                   fr="Paramètres de la méthode pénalisée",
14060                                                                   COEF_PENA_FROT  =SIMP(statut='o',typ='R'),
14061                                                                   ),
14062
14063                                             ), #fin bloc b_frottement
14064                                           ), #fin mot-clé facteur ZONE
14065                                 ), #fin bloc b_affe_continue
14066
14067
14068 # AFFECTATION - CAS XFEM
14069
14070            b_affe_xfem =BLOC(condition = "FORMULATION == 'XFEM'",
14071                              ZONE=FACT(statut='o',
14072                                        max='**',
14073 # -- Fissure
14074                                        FISS_MAIT      = SIMP(statut='o',typ=fiss_xfem,max=1),
14075                                        TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
14076
14077 # -- Fonctionnalités spécifiques 'XFEM'
14078                                        INTEGRATION    = SIMP(statut='f',
14079                                                              typ='TXM',
14080                                                              defaut="GAUSS",
14081
14082                                           into=("NOEUD","GAUSS","SIMPSON","NCOTES",),),
14083                                           b_gauss   =BLOC(condition = "INTEGRATION == 'GAUSS' ",
14084                                                           fr="Dégré du polynôme de Legendre donnant les points de Gauss",
14085                                                           ORDRE_INT = SIMP(statut='f',typ='I',defaut=6,val_min=1,val_max=6),
14086                                             ),
14087                                           b_simpson =BLOC(condition = "INTEGRATION == 'SIMPSON' ",
14088                                                           fr="Nombre de subdivisions du domaine",
14089                                                           ORDRE_INT = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max=4),
14090                                             ),
14091                                           b_ncotes  =BLOC(condition = "INTEGRATION == 'NCOTES' ",
14092                                                           fr="Dégré du polynôme interpolateur",
14093                                                           ORDRE_INT = SIMP(statut='f',typ='I',defaut=3,val_min=3,val_max=8),
14094                                             ),
14095
14096                                        ALGO_LAGR      = SIMP(statut='f',typ='TXM',defaut="VERSION1",
14097                                                              into=("NON","VERSION1","VERSION2"),),
14098
14099                                        ALGO_CONT      = SIMP(statut='f',typ='TXM',defaut="STANDARD",
14100                                                                   into=("STANDARD","PENALISATION","CZM"),),
14101
14102                                        b_cont_nczm =BLOC(condition = "ALGO_CONT!='CZM'",
14103                                                 CONTACT_INIT   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
14104                                                 GLISSIERE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
14105                                                 ),
14106
14107                                        b_cont_std=BLOC(condition = "ALGO_CONT == 'STANDARD'",
14108                                                 fr="Parametres de la formulation Lagrangienne",
14109                                                 COEF_CONT    =SIMP(statut='f',typ='R',defaut=100.E+0),
14110                                                 ),
14111
14112                                        b_cont_pen=BLOC(condition = "ALGO_CONT == 'PENALISATION' ",
14113                                                  fr="Paramètre de la méthode pénalisée",
14114                                                  COEF_PENA_CONT =SIMP(statut='o',typ='R'),
14115                                                  ),
14116
14117                                        b_cont_czm=BLOC(condition = "ALGO_CONT == 'CZM'",
14118                                                 fr="Parametres de la formulation cohesive",
14119                                                 RELATION       = SIMP(statut='o',typ='TXM',
14120                                                                  into=("CZM_EXP_REG","CZM_LIN_REG","CZM_TAC_MIX","CZM_OUV_MIX"),)
14121                                                 ),
14122
14123                                        b_frottement=BLOC(condition = "FROTTEMENT == 'COULOMB' and  ALGO_CONT != 'CZM' ",
14124                                                  fr="Paramètres du frottement",
14125                                                  COULOMB      =SIMP(statut='o',typ='R',),
14126                                                  SEUIL_INIT   =SIMP(statut='f',typ='R',defaut=0.E+0),
14127                                                  ALGO_FROT    =SIMP(statut='f',typ='TXM',defaut="STANDARD",
14128                                                                             into=("STANDARD","PENALISATION"),),
14129
14130                                                  b_frot_std=BLOC(condition = "ALGO_FROT == 'STANDARD' ",
14131                                                                   fr="Parametres de la formulation Lagrangienne",
14132                                                                   COEF_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
14133                                                                   ),
14134                                                  b_frot_pen=BLOC(condition = "ALGO_FROT == 'PENALISATION' ",
14135                                                                   fr="Paramètre de la méthode pénalisée",
14136                                                                   COEF_PENA_FROT  =SIMP(statut='o',typ='R'),
14137                                                                   ),
14138                                                         ), #fin bloc b_frottement
14139                                        ), #fin mot-clé facteur ZONE
14140                              ), #fin bloc b_affe_xfem
14141
14142                   ) #fin OPER
14143
14144 # ======================================================================
14145 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
14146 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14147 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14148 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14149 # (AT YOUR OPTION) ANY LATER VERSION.
14150 #
14151 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14152 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14153 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14154 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14155 #
14156 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14157 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14158 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14159 # ======================================================================
14160 # person_in_charge: j-pierre.lefebvre at edf.fr
14161 def DEFIC_prod(self,ACTION,UNITE,**args):
14162   if ACTION == "ASSOCIER" or ACTION == "RESERVER":
14163     if UNITE != None :
14164       return
14165     else :
14166       return entier
14167   elif ACTION == "LIBERER"  :
14168     return
14169   else :
14170     raise AsException("ACTION non prevue : %s" % ACTION)
14171
14172 DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",
14173                    op=OPS("Cata.ops.build_DEFI_FICHIER"),
14174                    sd_prod=DEFIC_prod,
14175                    reentrant='n',
14176                    UIinfo={"groupes":("Gestion du travail",)},
14177                    fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique",
14178
14179             ACTION        =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"),
14180
14181             b_associer    =BLOC(condition = "ACTION == 'ASSOCIER'",
14182                                 fr="Paramètres pour l'ouverture du fichier",
14183                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
14184                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
14185                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
14186                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
14187
14188                b_type_ascii  =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII",
14189                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
14190                ),
14191                b_type_autre  =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE",
14192                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"),
14193                ),
14194             ),
14195
14196             b_reserver    =BLOC(condition = "ACTION == 'RESERVER'",
14197                                 fr="Paramètres pour la réservation de l'unité du fichier",
14198                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
14199                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
14200                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
14201                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"),
14202                ACCES      =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"),
14203             ),
14204
14205             b_liberer    =BLOC(condition = "ACTION == 'LIBERER'",
14206                                fr="Paramètres pour la fermeture du fichier",
14207                                regles=(UN_PARMI('FICHIER','UNITE'),),
14208                   UNITE         =SIMP(statut='f',typ='I' ,val_min=1),
14209                   FICHIER   =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
14210            ),
14211
14212            INFO          =SIMP(statut='f',typ='I',into=(1,2) ),
14213            )
14214
14215 # ======================================================================
14216 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
14217 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14218 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14219 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14220 # (AT YOUR OPTION) ANY LATER VERSION.
14221 #
14222 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14223 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14224 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14225 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14226 #
14227 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14228 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14229 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14230 # ======================================================================
14231 # person_in_charge: samuel.geniaut at edf.fr
14232
14233 DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='n',
14234             UIinfo={"groupes":("Modélisation",)},
14235                fr="Définition des caratéristiques d'une fissure ou d'une interface avec X-FEM",
14236             regles = EXCLUS('MODELE_GRILLE','FISS_GRILLE'),
14237
14238 # ------------------------------------------------------------------------------------------------------------------------
14239 #                       modele sous-jacent
14240 # ------------------------------------------------------------------------------------------------------------------------
14241
14242     MODELE                =SIMP(statut='o',typ=modele_sdaster),
14243
14244 # ------------------------------------------------------------------------------------------------------------------------
14245 #                       grille auxiliaire
14246 # ------------------------------------------------------------------------------------------------------------------------
14247
14248     MODELE_GRILLE         =SIMP(statut='f',typ=modele_sdaster,max=1,position='global'),
14249     FISS_GRILLE           =SIMP(statut='f',typ=fiss_xfem,max=1),
14250
14251 # ------------------------------------------------------------------------------------------------------------------------
14252 #                       fissure/interface
14253 # ------------------------------------------------------------------------------------------------------------------------
14254
14255       TYPE_DISCONTINUITE  =SIMP(statut='f',typ='TXM',into=("FISSURE","INTERFACE",) ,defaut="FISSURE",position='global'),
14256
14257 # ------------------------------------------------------------------------------------------------------------------------
14258 #                       caracteristiques de la fissure/interface
14259 # ------------------------------------------------------------------------------------------------------------------------
14260
14261     DEFI_FISS             =FACT(statut='o',max=1,
14262
14263       regles              =UN_PARMI('GROUP_MA_FISS','FONC_LN','FORM_FISS','CHAM_NO_LSN'),
14264
14265 # impossible de faire des regles dans des blocs condition, dommage
14266 #       b_fissure           =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ",fr="Regles pour les fissures",
14267 #                 regles    =(ENSEMBLE('FONC_LN','FONC_LT'),
14268 #                             ENSEMBLE('CHAM_NO_LSN','CHAM_NO_LST'),
14269 #                             ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
14270 #                                ),
14271
14272 #       b_interface           =BLOC(condition = "TYPE_DISCONTINUITE == 'INTERFACE' ",fr="Regles pour les interfaces",
14273 #                 regles    =(PRESENT_ABSENT('FONC_LN','FONC_LT'),
14274 #                             PRESENT_ABSENT('CHAM_NO_LSN','CHAM_NO_LST'),
14275 #                             PRESENT_ABSENT('GROUP_MA_FISS','GROUP_MA_FOND')),
14276 #                                ),
14277
14278       FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
14279       FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
14280       CHAM_NO_LSN         =SIMP(statut='f',typ=cham_no_sdaster,min=1,max=1),
14281       CHAM_NO_LST         =SIMP(statut='f',typ=cham_no_sdaster,min=1,max=1),
14282       GROUP_MA_FISS       =SIMP(statut='f',typ=grma,min=1,max=1),
14283       GROUP_MA_FOND       =SIMP(statut='f',typ=grma,min=1,max=1),
14284       FORM_FISS   =SIMP(statut='f',typ='TXM',into=("ELLIPSE","RECTANGLE","CYLINDRE","DEMI_PLAN",
14285                                                    "SEGMENT","DEMI_DROITE","DROITE","ENTAILLE") ),
14286       b_ellipse           =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure/interface elliptique",
14287            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
14288            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
14289            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
14290            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
14291            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
14292            COTE_FISS      =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ),    ),
14293       b_rectangle         =BLOC(condition = "FORM_FISS == 'RECTANGLE' ",fr="Paramètres de la fissure/interface rectangulaire",
14294            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
14295            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
14296            RAYON_CONGE    =SIMP(statut='f',typ='R',val_min=0.,defaut=0.),
14297            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
14298            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
14299            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
14300            COTE_FISS      =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ),    ),
14301       b_entaille          =BLOC(condition = "FORM_FISS == 'ENTAILLE' ",fr="Paramètres de l'interface entaille",
14302            DEMI_LONGUEUR  =SIMP(statut='o',typ='R',val_min=0.),
14303            RAYON_CONGE    =SIMP(statut='o',typ='R',val_min=0.),
14304            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
14305            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),  
14306            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),  ),
14307       b_cylindre          =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique",
14308            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.),
14309            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.),
14310            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
14311            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
14312            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),),
14313       b_demiplan          =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit",
14314            PFON           =SIMP(statut='o',typ='R',min=3,max=3),
14315            NORMALE        =SIMP(statut='o',typ='R',min=3,max=3),
14316            DTAN           =SIMP(statut='o',typ='R',min=3,max=3),),
14317       b_segment           =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment",
14318            PFON_ORIG      =SIMP(statut='o',typ='R',min=3,max=3),
14319            PFON_EXTR      =SIMP(statut='o',typ='R',min=3,max=3),),
14320       b_demidroite         =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite",
14321            PFON           =SIMP(statut='o',typ='R',min=3,max=3),
14322            DTAN           =SIMP(statut='o',typ='R',min=3,max=3),),
14323       b_droite            =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)",
14324            POINT          =SIMP(statut='o',typ='R',min=3,max=3),
14325            DTAN           =SIMP(statut='o',typ='R',min=3,max=3),),
14326                             ),
14327
14328 # ------------------------------------------------------------------------------------------------------------------------
14329 #                       partie du maillage potentiellement enrichie
14330 # ------------------------------------------------------------------------------------------------------------------------
14331
14332     GROUP_MA_ENRI         =SIMP(statut='f',typ=grma,max=01),
14333
14334 # ------------------------------------------------------------------------------------------------------------------------
14335 #                       types d'enrichissement 
14336 # ------------------------------------------------------------------------------------------------------------------------
14337
14338     b_enri_inte           =BLOC(condition = "TYPE_DISCONTINUITE == 'INTERFACE' ",
14339
14340       CHAM_DISCONTINUITE  =SIMP(statut='f',typ='TXM',into=("DEPL","SIGM"),defaut="DEPL" ),
14341
14342                           ),
14343
14344
14345     b_enri_fiss           =BLOC(condition = "TYPE_DISCONTINUITE == 'FISSURE' ",
14346
14347       CHAM_DISCONTINUITE  =SIMP(statut='f',typ='TXM',into=("DEPL",),defaut="DEPL" ),
14348       TYPE_ENRI_FOND      =SIMP(statut='f',typ='TXM',into=("TOPOLOGIQUE","GEOMETRIQUE"),defaut="TOPOLOGIQUE" ),
14349
14350         b_enri_geom       =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique",
14351            RAYON_ENRI     =SIMP(statut='f',typ='R',val_min=0.E+0),
14352
14353           b_enri_couches  =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches",
14354            NB_COUCHES     =SIMP(statut='f',typ='I',defaut=4,val_min=1),
14355
14356                                ),
14357                              ),                        
14358                           ),
14359
14360 # ------------------------------------------------------------------------------------------------------------------------
14361 #                       branchement
14362 # ------------------------------------------------------------------------------------------------------------------------
14363
14364     b_jonction            =BLOC(condition = "(MODELE_GRILLE == None) and (FISS_GRILLE == None)",
14365         JONCTION              =FACT(statut='f',max=1,
14366           FISSURE             =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
14367           POINT               =SIMP(statut='o',typ='R',max=3,),
14368                                    ),
14369                                ),
14370 # ------------------------------------------------------------------------------------------------------------------------
14371 #                       info
14372 # ------------------------------------------------------------------------------------------------------------------------
14373
14374     INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
14375
14376 )  ;
14377
14378 # ======================================================================
14379 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14380 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14381 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14382 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14383 # (AT YOUR OPTION) ANY LATER VERSION.
14384 #
14385 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14386 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14387 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14388 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14389 #
14390 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14391 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14392 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14393 # ======================================================================
14394 # person_in_charge: andre.adobes at edf.fr
14395 DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
14396                     reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
14397             UIinfo={"groupes":("Modélisation",)},
14398          regles=(  UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
14399          FAISCEAU_TRANS  =FACT(statut='f',max='**',
14400            regles=(  ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),),
14401            COUPLAGE        =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14402            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
14403            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14404            PROF_RHO_F_INT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14405            PROF_RHO_F_EXT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14406            NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
14407            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
14408            TYPE_PAS        =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
14409            TYPE_RESEAU     =SIMP(statut='f',typ='I' ),
14410            UNITE_CD        =SIMP(statut='f',typ='I',defaut=70),
14411            UNITE_CK        =SIMP(statut='f',typ='I',defaut=71),
14412            PAS             =SIMP(statut='f',typ='R' ),
14413            CSTE_CONNORS    =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00),
14414            NB_CONNORS      =SIMP(statut='f',typ='I',val_min=2,),
14415            RHO_TUBE        =SIMP(statut='f',typ='R' ),
14416          ),
14417          GRAPPE          =FACT(statut='f',
14418            regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
14419                    PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
14420 #  peut on créer un bloc a partir de la valeur de couplage
14421            COUPLAGE        =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
14422            GRAPPE_2        =SIMP(statut='f',typ='TXM',
14423                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
14424            NOEUD           =SIMP(statut='f',typ=no),
14425            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
14426            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
14427            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
14428            RHO_FLUI        =SIMP(statut='f',typ='R' ),
14429            UNITE_CA        =SIMP(statut='f',typ='I',defaut=70),
14430            UNITE_KA        =SIMP(statut='f',typ='I',defaut=71),
14431          ),
14432          FAISCEAU_AXIAL  =FACT(statut='f',max='**',
14433            regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
14434                    UN_PARMI('CARA_ELEM','RAYON_TUBE'),
14435                    ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
14436                    PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
14437                    ENSEMBLE('CARA_PAROI','VALE_PAROI'),
14438                    ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
14439                             'COOR_GRILLE','TYPE_GRILLE', ),),
14440 #  on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire
14441            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
14442            TRI_GROUP_MA    =SIMP(statut='f',typ='TXM' ),
14443            VECT_X          =SIMP(statut='f',typ='R',max=3),
14444            PROF_RHO_FLUI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14445            PROF_VISC_CINE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14446            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
14447            RAYON_TUBE      =SIMP(statut='f',typ='R' ),
14448            COOR_TUBE       =SIMP(statut='f',typ='R',max='**'),
14449            PESANTEUR       =SIMP(statut='f',typ='R',min=4,max=4),
14450            RUGO_TUBE       =SIMP(statut='f',typ='R' ),
14451            CARA_PAROI      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5,
14452                                  into=("YC","ZC","R","HY","HZ") ),
14453            VALE_PAROI      =SIMP(statut='f',typ='R',max=5),
14454            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
14455            LONG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
14456            LARG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
14457            EPAI_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
14458            RUGO_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
14459            COEF_TRAI_TYPG  =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
14460            COEF_DPOR_TYPG  =SIMP(statut='f',typ='R',max='**'),
14461            COOR_GRILLE     =SIMP(statut='f',typ='R',max='**'),
14462            TYPE_GRILLE     =SIMP(statut='f',typ='I',max='**'),
14463          ),
14464          COQUE_COAX      =FACT(statut='f',
14465            MASS_AJOU       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
14466            GROUP_MA_INT    =SIMP(statut='o',typ=grma),
14467            GROUP_MA_EXT    =SIMP(statut='o',typ=grma),
14468            VECT_X          =SIMP(statut='o',typ='R',max='**'),
14469            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
14470            MATER_INT       =SIMP(statut='o',typ=mater_sdaster ),
14471            MATER_EXT       =SIMP(statut='o',typ=mater_sdaster ),
14472            RHO_FLUI        =SIMP(statut='o',typ='R' ),
14473            VISC_CINE       =SIMP(statut='o',typ='R' ),
14474            RUGOSITE        =SIMP(statut='o',typ='R' ),
14475            PDC_MOY_1       =SIMP(statut='o',typ='R' ),
14476            PDC_DYN_1       =SIMP(statut='o',typ='R' ),
14477            PDC_MOY_2       =SIMP(statut='o',typ='R' ),
14478            PDC_DYN_2       =SIMP(statut='o',typ='R' ),
14479          ),
14480          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
14481 )  ;
14482
14483 # ======================================================================
14484 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
14485 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14486 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14487 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14488 # (AT YOUR OPTION) ANY LATER VERSION.
14489 #
14490 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14491 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14492 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14493 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14494 #
14495 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14496 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14497 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14498 # ======================================================================
14499 # person_in_charge: nicolas.relun at edf.fr
14500
14501
14502 DEFI_FONC_ELEC=MACRO(nom="DEFI_FONC_ELEC",
14503                      op=OPS('Macro.defi_fonc_elec_ops.defi_fonc_elec_ops'),
14504                      sd_prod=fonction_sdaster,
14505                      reentrant='n',
14506                      UIinfo={"groupes":("Outils-métier",)},
14507                      fr="Définir une fonction du temps intervenant dans le calcul des " \
14508                         "forces de LAPLACE",
14509          regles=(UN_PARMI('COUR_PRIN','COUR'),
14510                  EXCLUS('COUR','COUR_SECO'), ),
14511          FREQ            =SIMP(statut='f',typ='R',defaut= 50.),
14512          SIGNAL          =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
14513          COUR            =FACT(statut='f',max='**',
14514            fr="Définition du courant de court-circuit",
14515            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
14516                    UN_PARMI('PHI_CC_2','INTC_CC_2'),),
14517            INTE_CC_1       =SIMP(statut='o',typ='R'),
14518            TAU_CC_1        =SIMP(statut='o',typ='R'),
14519            PHI_CC_1        =SIMP(statut='f',typ='R'),
14520            INTC_CC_1       =SIMP(statut='f',typ='R'),
14521            INTE_CC_2       =SIMP(statut='o',typ='R'),
14522            TAU_CC_2        =SIMP(statut='o',typ='R'),
14523            PHI_CC_2        =SIMP(statut='f',typ='R'),
14524            INTC_CC_2       =SIMP(statut='f',typ='R'),
14525            INST_CC_INIT    =SIMP(statut='o',typ='R'),
14526            INST_CC_FIN     =SIMP(statut='o',typ='R'),
14527          ),
14528          COUR_PRIN       =FACT(statut='f',
14529          fr="Définition du courant de court-circuit avec réenclenchement",
14530            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
14531            INTE_CC_1       =SIMP(statut='o',typ='R'),
14532            TAU_CC_1        =SIMP(statut='o',typ='R'),
14533            PHI_CC_1        =SIMP(statut='f',typ='R'),
14534            INTC_CC_1       =SIMP(statut='f',typ='R'),
14535            INTE_RENC_1     =SIMP(statut='f',typ='R'),
14536            TAU_RENC_1      =SIMP(statut='f',typ='R'),
14537            PHI_RENC_1      =SIMP(statut='f',typ='R'),
14538            INST_CC_INIT    =SIMP(statut='o',typ='R'),
14539            INST_CC_FIN     =SIMP(statut='o',typ='R'),
14540            INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
14541            INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 0.0E+0),
14542          ),
14543          COUR_SECO       =FACT(statut='f',max='**',
14544          fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
14545            regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
14546            INTE_CC_2       =SIMP(statut='o',typ='R'),
14547            TAU_CC_2        =SIMP(statut='o',typ='R'),
14548            PHI_CC_2        =SIMP(statut='f',typ='R'),
14549            INTC_CC_2       =SIMP(statut='f',typ='R'),
14550            INTE_RENC_2     =SIMP(statut='f',typ='R'),
14551            TAU_RENC_2      =SIMP(statut='f',typ='R'),
14552            PHI_RENC_2      =SIMP(statut='f',typ='R'),
14553            DIST            =SIMP(statut='f',typ='R',defaut=1.0E+0),
14554          ),
14555          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
14556 )
14557
14558 # ======================================================================
14559 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14560 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14561 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14562 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14563 # (AT YOUR OPTION) ANY LATER VERSION.
14564 #
14565 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14566 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14567 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14568 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14569 #
14570 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14571 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14572 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14573 # ======================================================================
14574 # person_in_charge: andre.adobes at edf.fr
14575 DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster,
14576                     reentrant='n',
14577             fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre",
14578             UIinfo={"groupes":("Modélisation","Fonctions",)},
14579          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
14580          NOEUD_INIT      =SIMP(statut='o',typ=no),
14581          NOEUD_FIN       =SIMP(statut='o',typ=no),
14582          VITE            =FACT(statut='o',
14583            VALE            =SIMP(statut='f',typ='R',defaut= 1. ),
14584            PROFIL          =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
14585            NB_BAV          =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
14586          ),
14587          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
14588                                into=("NON","LIN","LOG") ),
14589          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",
14590                                into=("CONSTANT","LINEAIRE","EXCLU") ),
14591          PROL_GAUCHE     =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
14592                                into=("CONSTANT","LINEAIRE","EXCLU") ),
14593          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
14594          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14595 )  ;
14596
14597 # ======================================================================
14598 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
14599 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14600 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14601 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14602 # (AT YOUR OPTION) ANY LATER VERSION.
14603 #
14604 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14605 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14606 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14607 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14608 #
14609 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14610 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14611 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14612 # ======================================================================
14613 # person_in_charge: mathieu.courtois at edf.fr
14614 def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args):
14615   if VALE       != None  : return fonction_sdaster
14616   if VALE_C     != None  : return fonction_c
14617   if VALE_PARA  != None  : return fonction_sdaster
14618   if ABSCISSE   != None  : return fonction_sdaster
14619   if NOEUD_PARA != None  : return fonction_sdaster
14620   raise AsException("type de concept resultat non prevu")
14621
14622 DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
14623                     ,fr="Définit une fonction réelle ou complexe d'une variable réelle",
14624                      reentrant='n',
14625             UIinfo={"groupes":("Fonctions",)},
14626          regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA','ABSCISSE'),),
14627          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
14628          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
14629          VALE            =SIMP(statut='f',typ='R',min=2,max='**',
14630                                fr ="Fonction réelle définie par une liste de couples "
14631                                    "(abscisse,ordonnée)"),
14632          ABSCISSE        =SIMP(statut='f',typ='R',min=2,max='**',
14633                                fr ="Liste d abscisses d une fonction réelle"),
14634          VALE_C          =SIMP(statut='f',typ='R',min=2,max='**',
14635                                fr ="Fonction complexe définie par une liste de triplets "
14636                                    "(absc, partie réelle, partie imaginaire)"),
14637          VALE_PARA       =SIMP(statut='f',typ=listr8_sdaster,
14638                                fr ="Fonction réelle définie par deux concepts de type listr8" ),
14639          b_vale_para     =BLOC(condition = "VALE_PARA != None",
14640            VALE_FONC       =SIMP(statut='o',typ=listr8_sdaster ),
14641          ),
14642          b_abscisse      =BLOC(condition = "ABSCISSE != None",
14643            ORDONNEE        =SIMP(statut='o',typ='R',min=2,max='**',
14644                                fr ="Liste d ordonnées d une fonction réelle"),
14645          ),
14646          NOEUD_PARA      =SIMP(statut='f',typ=no,max='**',
14647                                fr ="Fonction réelle définie par une liste de noeuds et un maillage"),
14648          b_noeud_para    =BLOC(condition = "NOEUD_PARA != None",
14649            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
14650            VALE_Y          =SIMP(statut='o',typ='R',max='**'),
14651          ),
14652
14653          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
14654          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
14655          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
14656          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
14657          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
14658          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14659 )  ;
14660
14661 # ======================================================================
14662 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
14663 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14664 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14665 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14666 # (AT YOUR OPTION) ANY LATER VERSION.
14667 #
14668 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14669 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14670 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14671 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14672 #
14673 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14674 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14675 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14676 # ======================================================================
14677 # person_in_charge: samuel.geniaut at edf.fr
14678
14679 DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",
14680                     op=55,
14681                     sd_prod=fond_fiss,
14682                     reentrant='n',
14683                     UIinfo={"groupes":("Modélisation",)},fr="Définition de lèvres et d'un fond de fissure",
14684
14685     MAILLAGE  = SIMP(statut='o',typ=maillage_sdaster ),
14686     INFO      =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
14687
14688     # definition du fond de fissure
14689     FOND_FISS = FACT(statut='o',max=2,
14690     
14691                      TYPE_FOND = SIMP(statut='f',typ='TXM',into=("OUVERT","FERME","INF","SUP"),defaut="OUVERT"),
14692
14693                      NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
14694                      GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1   ),
14695                      GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1   ),
14696                      MAILLE   = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
14697                      regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
14698
14699                      # possibilite d'ordonnencement automatique du fond si groupe de mailles
14700                      b_grma = BLOC(condition = "(GROUP_MA != None or MAILLE != None) and TYPE_FOND != 'FERME'",
14701                                    NOEUD_ORIG    =SIMP(statut='f',typ=no,  max=1),
14702                                    GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
14703                                    regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
14704
14705                                    # si ordo 
14706                                    b_ordo = BLOC(condition = "NOEUD_ORIG != None or GROUP_NO_ORIG != None",
14707                                                  NOEUD_EXTR    = SIMP(statut='f',typ=no,  max=1),
14708                                                  GROUP_NO_EXTR = SIMP(statut='f',typ=grno,max=1),
14709                                                  regles=(EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
14710                                                 ),
14711                                   ),
14712                      # possibilite d'ordonnencement automatique du fond si groupe de mailles
14713                      b_grma_ferme= BLOC(condition = "(GROUP_MA != None or MAILLE != None) and TYPE_FOND == 'FERME'",
14714                                         NOEUD_ORIG    =SIMP(statut='f',typ=no,  max=1),
14715                                         GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1),
14716                                         regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
14717
14718                                         # si ordo 
14719                                         b_ordo_ferme = BLOC(condition = "NOEUD_ORIG != None or GROUP_NO_ORIG != None",
14720                                                             MAILLE_ORIG   = SIMP(statut='f',typ=ma,  max=1),
14721                                                             GROUP_MA_ORIG = SIMP(statut='f',typ=grma,  max=1),
14722                                                             regles=(UN_PARMI('MAILLE_ORIG','GROUP_MA_ORIG'),),
14723                                                            ),
14724                                        ),
14725                     # definition des directions des tangentes aux bords (uniquement pour les fonds non fermes)
14726                     b_dtan = BLOC(condition = "TYPE_FOND != 'FERME'",
14727                                   DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
14728                                   DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
14729                                   VECT_GRNO_ORIG  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
14730                                   VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
14731                                   regles=(EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
14732                                              EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR'),),
14733                                  ),
14734                     ),
14735
14736     CONFIG_INIT  = SIMP(statut='f',typ='TXM',into=("COLLEE","DECOLLEE"), defaut="COLLEE",position='global'),
14737
14738     SYME         = SIMP(statut='f',typ='TXM',into=("OUI","NON"),         defaut="NON",   position='global'),
14739
14740 #   remarque : dans le cas symetrique, il faut soit LEVRE_SUP, soit DTAN_ORIG
14741 #   mais impossible de faire une regle.
14742
14743     LEVRE_SUP =FACT(statut='f',max=1,
14744                     regles=(UN_PARMI('GROUP_MA','MAILLE'),),
14745                     GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
14746                     MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
14747                     ),
14748     
14749     b_levre_inf  = BLOC(condition = "LEVRE_SUP != None and SYME == 'NON'",
14750
14751                         LEVRE_INF =FACT(statut='o',max=1,
14752                                         regles=(UN_PARMI('GROUP_MA','MAILLE'),),
14753                                         GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
14754                                         MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
14755                                         ),
14756                         ),  
14757
14758     # dans le cas decolle
14759     b_decolle    = BLOC(condition = "CONFIG_INIT == 'DECOLLEE'",
14760                      NORMALE   =SIMP(statut='o',typ='R',max=3),),
14761
14762     PREC_NORM    = SIMP(statut='f',typ='R',defaut=0.1),
14763
14764 )  
14765
14766 # ======================================================================
14767 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
14768 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14769 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14770 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14771 # (AT YOUR OPTION) ANY LATER VERSION.
14772 #
14773 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14774 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14775 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14776 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14777 #
14778 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14779 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14780 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14781 # ======================================================================
14782 # person_in_charge: jean-luc.flejou at edf.fr
14783 #
14784 DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op=  119, sd_prod=gfibre_sdaster,
14785                     fr="Definition des groupes de fibres pour les elements multifibres",
14786                     reentrant='n',
14787             UIinfo={"groupes":("Modélisation",)},
14788          regles=(AU_MOINS_UN('SECTION','FIBRE'),),
14789
14790          INFO       =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
14791 #============================================================================
14792          SECTION     =FACT(statut='f',max='**',
14793               regles=(AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
14794                       PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
14795
14796               GROUP_FIBRE       =SIMP(statut='o',typ='TXM',min=1,max=1),
14797               TOUT_SECT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14798               GROUP_MA_SECT     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
14799               MAILLE_SECT       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
14800
14801               MAILLAGE_SECT     =SIMP(statut='o',typ=maillage_sdaster),
14802               COOR_AXE_POUTRE   =SIMP(statut='o',typ='R',min=2,max=2),
14803          ),
14804
14805
14806 #============================================================================
14807          FIBRE     =FACT(statut='f',max='**',
14808               GROUP_FIBRE       =SIMP(statut='o',typ='TXM',min=1,max=1),
14809               CARA              =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
14810               VALE              =SIMP(statut='o',typ='R',max='**'),
14811               COOR_AXE_POUTRE   =SIMP(statut='o',typ='R',min=2,max=2),
14812           ),
14813
14814
14815 ) ;
14816
14817 # ======================================================================
14818 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
14819 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14820 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14821 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14822 # (AT YOUR OPTION) ANY LATER VERSION.
14823 #
14824 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14825 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14826 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14827 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14828 #
14829 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14830 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14831 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14832 # ======================================================================
14833 # person_in_charge: sebastien.fayolle at edf.fr
14834 DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f',
14835                UIinfo={"groupes":("Modélisation",)},
14836                fr="Déterminer les caractéristiques homogenéisées du béton armé à partir des propriétés du béton et des  "
14837                         +" armatures",
14838                reuse = SIMP(statut='f',typ=mater_sdaster),
14839                RELATION = SIMP(statut='o',typ='TXM',defaut="GLRC_DAMAGE",
14840                           into=("GLRC_DM","GLRC_DAMAGE"),),
14841
14842                b_glrc_dm=BLOC(condition = "RELATION == 'GLRC_DM'",
14843                               fr="Paramètres de la loi GLRC_DM",
14844                               BETON = FACT(statut='o',max=1,
14845                                 MATER = SIMP(statut='o',typ=(mater_sdaster),),
14846                                 EPAIS = SIMP(statut='o',typ='R',val_min=0.E+0 ),),
14847                               NAPPE = FACT(statut='o',max=1,
14848                                 MATER = SIMP(statut='o',typ=(mater_sdaster),),
14849                                 OMY   = SIMP(statut='o',typ='R',val_min=0.E+0,),
14850                                 OMX   = SIMP(statut='o',typ='R',val_min=0.E+0,),
14851                                 RY    = SIMP(statut='o',typ='R',val_min=-1.0E+0,val_max=1.0E+0,),
14852                                 RX    = SIMP(statut='o',typ='R',val_min=-1.0E+0,val_max=1.0E+0),),
14853                               RHO = SIMP(statut='f',typ='R',val_min=0.E+0,),
14854                               AMOR_ALPHA = SIMP(statut='f',typ='R',val_min=0.E+0,),
14855                               AMOR_BETA = SIMP(statut='f',typ='R',val_min=0.E+0,),
14856                               AMOR_HYST = SIMP(statut='f',typ='R',val_min=0.E+0,),
14857                               COMPR = SIMP(statut='o',typ='TXM',defaut="GAMMA",
14858                                            into=("GAMMA","SEUIL")),
14859                    b_gamma=BLOC(condition = "COMPR == 'GAMMA'",
14860                                 fr="Paramètre d'endommagement en compression ",
14861                                 GAMMA_C = SIMP(statut='o',typ='R',defaut=1.0E+0,val_min=0.0E+0, val_max=1.0E+0),),
14862                    b_seuil=BLOC(condition = "COMPR == 'SEUIL'",
14863                                 fr="Seuil d'endommagement en compression ",
14864                                 NYC = SIMP(statut='o',typ='R'),),
14865                    PENTE = SIMP(statut='o',typ='TXM',defaut="RIGI_ACIER",
14866                                 into=("PLAS_ACIER","UTIL","RIGI_ACIER")),
14867                    b_util = BLOC(condition = "PENTE == 'UTIL'",
14868                                  fr="Valeur de la déformation maximale de l'élément",
14869                                   EPSI_MEMB = SIMP(statut='o',typ='R',defaut=0.E+0),
14870                                   KAPPA_FLEX = SIMP(statut='o',typ='R',defaut=0.E+0),),
14871                    CISAIL = SIMP(statut='o',typ='TXM',defaut="NON",
14872                                  into=("OUI","NON"),),
14873                    METHODE_ENDO = SIMP(statut='o',typ='TXM',defaut="ENDO_INTER",
14874                                   into=("ENDO_NAISS","ENDO_LIM","ENDO_INTER"),),
14875                    INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2),),
14876                            ),
14877            b_glrc_damage=BLOC(condition = "RELATION == 'GLRC_DAMAGE'",
14878                             fr="Paramètres de la loi GLRC_DAMAGE",
14879                    CISAIL_NL          =FACT(statut='f',max=1,
14880                      BTD1            =SIMP(statut='o',typ='R'),
14881                      BTD2            =SIMP(statut='o',typ='R'),
14882                      TSD             =SIMP(statut='o',typ='R'),
14883                                          ),
14884                    BETON            =FACT(statut='o',max=1,
14885                    regles=(ENSEMBLE('MP1X', 'MP1Y', 'MP2X', 'MP2Y'),
14886                            ENSEMBLE('MP1X_FO', 'MP1Y_FO', 'MP2X_FO', 'MP2Y_FO'),
14887                            PRESENT_ABSENT('MP1X', 'MP1X_FO', 'MP1Y_FO', 'MP2X_FO', 'MP2Y_FO'),
14888                            ENSEMBLE('OMT', 'EAT'),
14889                            ENSEMBLE('BT1','BT2'),),
14890                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
14891                      EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
14892                      GAMMA           =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
14893                      QP1             =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
14894                      QP2             =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
14895
14896                      C1N1            =SIMP(statut='o',typ='R',val_min=0.E+0),
14897                      C1N2            =SIMP(statut='o',typ='R',val_min=0.E+0),
14898                      C1N3            =SIMP(statut='o',typ='R',val_min=0.E+0),
14899                      C2N1            =SIMP(statut='o',typ='R',val_min=0.E+0),
14900                      C2N2            =SIMP(statut='o',typ='R',val_min=0.E+0),
14901                      C2N3            =SIMP(statut='o',typ='R',val_min=0.E+0),
14902                      C1M1            =SIMP(statut='o',typ='R',val_min=0.E+0),
14903                      C1M2            =SIMP(statut='o',typ='R',val_min=0.E+0),
14904                      C1M3            =SIMP(statut='o',typ='R',val_min=0.E+0),
14905                      C2M1            =SIMP(statut='o',typ='R',val_min=0.E+0),
14906                      C2M2            =SIMP(statut='o',typ='R',val_min=0.E+0),
14907                      C2M3            =SIMP(statut='o',typ='R',val_min=0.E+0),
14908
14909                      OMT             =SIMP(statut='f',typ='R',val_min=0.E+0),
14910                      EAT             =SIMP(statut='f',typ='R',val_min=0.E+0),
14911                      BT1             =SIMP(statut='f',typ='R',val_min=0.E+0),
14912                      BT2             =SIMP(statut='f',typ='R',val_min=0.E+0),
14913
14914                      MP1X            =SIMP(statut='f',typ='R'),
14915                      MP2X            =SIMP(statut='f',typ='R'),
14916                      MP1Y            =SIMP(statut='f',typ='R'),
14917                      MP2Y            =SIMP(statut='f',typ='R'),
14918
14919                      MP1X_FO         =SIMP(statut='f',typ=fonction_sdaster),
14920                      MP2X_FO         =SIMP(statut='f',typ=fonction_sdaster),
14921                      MP1Y_FO         =SIMP(statut='f',typ=fonction_sdaster),
14922                      MP2Y_FO         =SIMP(statut='f',typ=fonction_sdaster),
14923          ),
14924                    NAPPE     =FACT(statut='o',max=10,
14925                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
14926                      OMX             =SIMP(statut='o',typ='R',val_min=0.E+0),
14927                      OMY             =SIMP(statut='o',typ='R',val_min=0.E+0),
14928                      RX              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
14929                      RY              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
14930          ),
14931                    CABLE_PREC   =FACT(statut='f',max=1,
14932                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
14933                      OMX             =SIMP(statut='o',typ='R',val_min=0.E+0),
14934                      OMY             =SIMP(statut='o',typ='R',val_min=0.E+0),
14935                      RX              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
14936                      RY              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
14937                      PREX            =SIMP(statut='o',typ='R'),
14938                      PREY            =SIMP(statut='o',typ='R'),
14939          ),
14940                    LINER           =FACT(statut='f',max=10,
14941                      MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
14942                      OML             =SIMP(statut='o',typ='R',val_min=0.E+0),
14943                      RLR             =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
14944          ),
14945                    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2),),
14946          ),
14947 )  ;
14948
14949 # ======================================================================
14950 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
14951 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14952 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14953 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14954 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14955 #                                                                       
14956 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14957 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14958 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14959 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14960 #                                                                       
14961 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14962 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14963 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14964 # ======================================================================
14965 # person_in_charge: samuel.geniaut at edf.fr
14966 DEFI_GRILLE=OPER(nom="DEFI_GRILLE",op=82,sd_prod=grille_sdaster,reentrant='n',
14967                 UIinfo={"groupes":("Modélisation",)},
14968                 fr="Définition d'une grille",
14969     
14970     MAILLAGE       = SIMP(statut='o',typ=maillage_sdaster),
14971
14972     INFO           = SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ),
14973 )  ;
14974
14975 # ======================================================================
14976 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
14977 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14978 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14979 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14980 # (AT YOUR OPTION) ANY LATER VERSION.
14981 #
14982 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14983 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14984 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14985 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14986 #
14987 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14988 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14989 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14990 # ======================================================================
14991 # person_in_charge: jacques.pellet at edf.fr
14992 def defi_group_prod(MAILLAGE,GRILLE,**args):
14993   if ( MAILLAGE != None ) :
14994      if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster
14995      if AsType(MAILLAGE) == squelette : return squelette
14996   if ( GRILLE != None ) :
14997      return grille_sdaster
14998   raise AsException("type de concept resultat non prevu")
14999
15000 DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
15001                 fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
15002                 reentrant='o',
15003             UIinfo={"groupes":("Maillage",)},
15004          regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),
15005                  UN_PARMI('MAILLAGE','GRILLE'),),
15006          MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster,squelette) ),
15007          GRILLE          =SIMP(statut='f',typ=(grille_sdaster) ),
15008          DETR_GROUP_MA   =FACT(statut='f',max='**',
15009            NOM             =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),),
15010          DETR_GROUP_NO   =FACT(statut='f',max='**',
15011            NOM             =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
15012
15013
15014          CREA_GROUP_MA   =FACT(statut='f',max='**',
15015               regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
15016             NOM             =SIMP(statut='o',typ=grma),
15017             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15018             GROUP_MA        =SIMP(statut='f',typ=grma),
15019             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15020             INTERSEC        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15021             UNION           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15022             DIFFE           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15023             TYPE_MAILLE     =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","1D","2D","3D",
15024                                   "POI1","SEG2","SEG3","SEG4","TRIA3","TRIA6","TRIA7",
15025                                   "QUAD4","QUAD8","QUAD9","TETRA4","TETRA10",
15026                                   "PENTA6","PENTA15","PENTA18","HEXA8","HEXA20","HEXA27",
15027                                   "PYRAM5","PYRAM13",),max=1 ),
15028
15029             OPTION         =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE",
15030                                                               "BANDE","APPUI_LACHE","APPUI","FISS_XFEM") ),
15031                 b_group_ma      =BLOC(condition = "GROUP_MA != None",
15032                   regles=(EXCLUS('POSITION','NUME_INIT'),),
15033                   NUME_INIT       =SIMP(statut='f',typ='I'),
15034                   POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
15035                   b_nume_init   =BLOC(condition = "NUME_INIT != None",
15036                     NUME_FIN        =SIMP(statut='f',typ='I' ),
15037                   ),
15038                 ),
15039                 b_face_normale  =BLOC(condition = "OPTION == 'FACE_NORMALE'",
15040                   regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
15041                   ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
15042                   VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
15043                   ANGL_PREC       =SIMP(statut='f',typ='R',defaut= 0.5 ),
15044                   VERI_SIGNE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15045                 ),
15046                 b_sphere        =BLOC(condition = "OPTION == 'SPHERE'",
15047                   regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
15048                   POINT           =SIMP(statut='f',typ='R',max=3),
15049                   NOEUD_CENTRE    =SIMP(statut='f',typ=no),
15050                   GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
15051                   RAYON           =SIMP(statut='o',typ='R' ),
15052                   CRIT_NOEUD      = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN",
15053                                   into=("TOUS","AU_MOINS_UN","MAJORITE"),),
15054                 ),
15055                 b_cylindre      =BLOC(condition = "OPTION == 'CYLINDRE'",
15056                   regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
15057                           UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
15058                   POINT           =SIMP(statut='f',typ='R',max=3),
15059                   NOEUD_CENTRE    =SIMP(statut='f',typ=no),
15060                   GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
15061                   RAYON           =SIMP(statut='o',typ='R' ),
15062                   ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
15063                   VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
15064                   CRIT_NOEUD      = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN",
15065                                   into=("TOUS","AU_MOINS_UN","MAJORITE"),),
15066                 ),
15067                 b_bande         =BLOC(condition = "OPTION == 'BANDE'",
15068                   regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
15069                           UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
15070                   POINT           =SIMP(statut='f',typ='R' ,max=3),
15071                   NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
15072                   GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
15073                   DIST            =SIMP(statut='o',typ='R' ),
15074                   ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
15075                   VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
15076                   CRIT_NOEUD      = SIMP(statut='f',typ='TXM',defaut="AU_MOINS_UN",
15077                                   into=("TOUS","AU_MOINS_UN","MAJORITE"),),
15078                 ),
15079                 b_app_lache         =BLOC(condition = "OPTION == 'APPUI_LACHE'",
15080                   regles=(UN_PARMI('NOEUD','GROUP_NO'),),
15081                   NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
15082                   GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15083                 ),
15084                 b_appui            =BLOC(condition = "OPTION == 'APPUI'",
15085                   regles=(UN_PARMI('NOEUD','GROUP_NO'),),
15086                   NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
15087                   GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15088                   TYPE_APPUI      =SIMP(statut='o',typ='TXM',max=1, into=('AU_MOINS_UN','TOUT','SOMMET','MAJORITE')),
15089                 ),
15090                 b_fiss_xfem       =BLOC(condition = "OPTION == 'FISS_XFEM'",
15091                   TYPE_GROUP      =SIMP(statut='o',typ='TXM',max=1,defaut='XFEM',
15092                                           into=('HEAVISIDE','CRACKTIP','MIXTE','FISSUREE','XFEM',),),
15093                   FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'),
15094                 ),
15095          ),
15096
15097
15098          CREA_GROUP_NO   =FACT(statut='f',max='**',
15099            OPTION          =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
15100                                                "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL",
15101                                                "INCLUSION","FISS_XFEM","INTERVALLE_VALE") ),
15102
15103            b_option =BLOC(condition = "OPTION == None" ,
15104                           regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD',
15105                                                            'INTERSEC','UNION','DIFFE'),),
15106               TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15107               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15108               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15109               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
15110               INTERSEC        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15111               UNION           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15112               DIFFE           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15113
15114               b_nom_group_ma  =BLOC(condition = "GROUP_MA != None",
15115                 NOM           = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15116                 CRIT_NOEUD    = SIMP(statut='f',typ='TXM',defaut="TOUS",
15117                                   into=("TOUS","SOMMET","MILIEU","CENTRE"),),
15118               ),
15119               b_group_no      =BLOC(condition = "GROUP_NO != None",
15120                                     regles=(EXCLUS('POSITION','NUME_INIT'),),
15121                 NUME_INIT       =SIMP(statut='f',typ='I'),
15122                 POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
15123                 b_nume_init     =BLOC(condition = "NUME_INIT != None",
15124                   NUME_FIN        =SIMP(statut='f',typ='I' ),
15125                 ),
15126               ),
15127               b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
15128                 NOM             =SIMP(statut='o',typ=grma),
15129               ),
15130            ),
15131
15132            b_env_sphere    =BLOC(condition = "OPTION == 'ENV_SPHERE'",
15133              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
15134              NOM             =SIMP(statut='o',typ=grno),
15135              POINT           =SIMP(statut='f',typ='R' ,max=3),
15136              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
15137              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
15138              RAYON           =SIMP(statut='o',typ='R' ),
15139              PRECISION       =SIMP(statut='o',typ='R' ),
15140            ),
15141            b_env_cylindre  =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
15142              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
15143                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
15144              NOM             =SIMP(statut='o',typ=grno),
15145              POINT           =SIMP(statut='f',typ='R' ,max=3),
15146              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
15147              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
15148              RAYON           =SIMP(statut='o',typ='R' ),
15149              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
15150              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
15151              PRECISION       =SIMP(statut='o',typ='R' ),
15152            ),
15153            b_env_plan      =BLOC(condition = "OPTION == 'PLAN'",
15154              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
15155                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
15156              NOM             =SIMP(statut='o',typ=grno),
15157              POINT           =SIMP(statut='f',typ='R' ,max=3),
15158              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
15159              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
15160              ANGL_NAUT       =SIMP(statut='f',typ='R' ,max=3),
15161              VECT_NORMALE    =SIMP(statut='f',typ='R' ,max=3),
15162              PRECISION       =SIMP(statut='o',typ='R' ),
15163            ),
15164            b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
15165              regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),
15166                      UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
15167                      UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
15168              NOM             =SIMP(statut='o',typ=grno),
15169              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
15170              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15171              NOEUD_ORIG      =SIMP(statut='f',typ=no),
15172              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
15173              NOEUD_EXTR      =SIMP(statut='f',typ=no),
15174              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
15175              PRECISION       =SIMP(statut='o',typ='R' ),
15176              CRITERE         =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ),
15177            ),
15178            b_noeud_ordo    =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
15179              regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
15180                      EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
15181              NOM             =SIMP(statut='o',typ=grno),
15182              GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
15183              # si le groupe de mailles forme une ligne ouverte, on peut choisir le sens de parcours en choissant l'origine:
15184              # si le groupe de mailles forme une ligne fermée, il FAUT choisir l'origine et l'extrémité (= origine):
15185              NOEUD_ORIG      =SIMP(statut='f',typ=no),
15186              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
15187              NOEUD_EXTR      =SIMP(statut='f',typ=no),
15188              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
15189              # si le groupe de mailles forme une ligne fermée, on peut choisir le sens de parcours :
15190              VECT_ORIE       =SIMP(statut='f',typ='R',max=3),  # utilisé seulement si NOEUD_ORIG=NOEUD_EXTR
15191
15192            ),
15193            b_tunnel    =BLOC(condition = "OPTION == 'TUNNEL'",
15194              regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'),
15195                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
15196                      AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),),
15197              NOM             =SIMP(statut='o',typ=grma),
15198              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15199              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15200              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15201              GROUP_MA_AXE    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15202              MAILLE_AXE      =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15203              NOEUD_ORIG      =SIMP(statut='f',typ=no),
15204              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
15205              RAYON           =SIMP(statut='o',typ='R'),
15206              LONGUEUR        =SIMP(statut='f',typ='R'),
15207            ),
15208            b_inclusion         =BLOC(condition = "OPTION == 'INCLUSION'",
15209              fr="""crée le groupe des noeuds des mailles de GROUP_MA inclus géométriquement
15210                    dans les mailles de GROUP_MA_INCL""",
15211              NOM             =SIMP(statut='o',typ=grma),
15212              CAS_FIGURE      =SIMP(statut='o',typ='TXM',into=("2D","3D","2.5D",)),
15213              DISTANCE_MAX    =SIMP(statut='f',typ='R',),
15214              GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
15215              GROUP_MA_INCL   =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
15216              MAILLAGE_INCL   =SIMP(statut='f',typ=maillage_sdaster),
15217            ),
15218            b_fiss_xfem            =BLOC(condition = "OPTION == 'FISS_XFEM'",
15219                   NOM             =SIMP(statut='o',typ=grma),
15220                   TYPE_GROUP      =SIMP(statut='o',typ='TXM',max=1,into=('HEAVISIDE','CRACKTIP','MIXTE','XFEM','ZONE_MAJ','TORE')),
15221                   FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'),
15222                   b_rayon         =BLOC(condition = "TYPE_GROUP == 'TORE'",
15223                         RAYON_TORE     =SIMP(statut='o',typ='R',max=1,val_min=0.0),
15224                   ),
15225            ),
15226            b_intervalle_vale      =BLOC(condition = "OPTION == 'INTERVALLE_VALE'",
15227                   NOM             =SIMP(statut='o',typ=grma),
15228                   CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
15229                   NOM_CMP         =SIMP(statut='o',typ='TXM',max=1),
15230                   VALE            =SIMP(statut='o',typ='R',min=2,max=2),
15231            ),
15232           ),
15233          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15234          INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
15235 )  ;
15236
15237 # ======================================================================
15238 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
15239 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15240 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15241 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15242 # (AT YOUR OPTION) ANY LATER VERSION.
15243 #
15244 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15245 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15246 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15247 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15248 #
15249 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15250 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15251 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15252 # ======================================================================
15253 # person_in_charge: irmela.zentner at edf.fr
15254
15255 DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,
15256                     sd_prod=interspectre,
15257                     reentrant='n',
15258                     fr="Définit une matrice interspectrale",
15259                     UIinfo={"groupes":("Fonctions",)},
15260
15261          DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),
15262
15263          regles=(UN_PARMI('PAR_FONCTION','KANAI_TAJIMI','CONSTANT'),),
15264
15265          PAR_FONCTION    =FACT(statut='f',max='**',
15266            regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
15267            NOEUD_I         =SIMP(statut='f',typ=no,max=1,),
15268            NUME_ORDRE_I    =SIMP(statut='f',typ='I',max=1),
15269            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
15270              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max=1),
15271            ),
15272            b_noeud_i = BLOC (condition = "NOEUD_I != None",
15273              NOEUD_J         =SIMP(statut='o',typ=no,max=1,),
15274              NOM_CMP_I       =SIMP(statut='o',typ='TXM',max=1,),
15275              NOM_CMP_J       =SIMP(statut='o',typ='TXM',max=1,),
15276            ),
15277            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c ),max=1),
15278          ),
15279
15280          KANAI_TAJIMI    =FACT(statut='f',max='**',
15281            regles=(EXCLUS('VALE_R','VALE_C'),
15282                    UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
15283            NUME_ORDRE_I    =SIMP(statut='f',typ='I',max=1),
15284            NOEUD_I         =SIMP(statut='f',typ=no,max=1,),
15285            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
15286              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max=1),
15287            ),
15288            b_noeud_i = BLOC (condition = "NOEUD_I != None",
15289              NOEUD_J         =SIMP(statut='o',typ=no,max=1,),
15290              NOM_CMP_I       =SIMP(statut='o',typ='TXM',max=1,),
15291              NOM_CMP_J       =SIMP(statut='o',typ='TXM',max=1,),
15292            ),
15293            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
15294            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
15295            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
15296            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.6 ),
15297            FREQ_MOY        =SIMP(statut='f',typ='R',defaut= 5. ),
15298            VALE_R          =SIMP(statut='f',typ='R' ),
15299            VALE_C          =SIMP(statut='f',typ='C' ),
15300            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
15301            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15302            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15303          ),
15304          CONSTANT        =FACT(statut='f',max='**',
15305            regles=(EXCLUS('VALE_R','VALE_C'),
15306                    UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
15307            NUME_ORDRE_I    =SIMP(statut='f',typ='I',max=1),
15308            NOEUD_I         =SIMP(statut='f',typ=no,max=1,),
15309            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
15310              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max=1),
15311            ),
15312            b_noeud_i = BLOC (condition = "NOEUD_I != None",
15313              NOEUD_J         =SIMP(statut='o',typ=no,max=1,),
15314              NOM_CMP_I       =SIMP(statut='o',typ='TXM',max=1,),
15315              NOM_CMP_J       =SIMP(statut='o',typ='TXM',max=1,),
15316            ),
15317            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
15318            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
15319            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
15320            VALE_R          =SIMP(statut='f',typ='R' ),
15321            VALE_C          =SIMP(statut='f',typ='C' ),
15322            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
15323            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15324            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15325          ),
15326          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15327          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
15328 )  ;
15329
15330 # ======================================================================
15331 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
15332 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15333 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15334 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15335 # (AT YOUR OPTION) ANY LATER VERSION.
15336 #
15337 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15338 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15339 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15340 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15341 #
15342 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15343 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15344 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15345 # ======================================================================
15346 # person_in_charge: mathieu.corus at edf.fr
15347
15348 DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
15349                       reentrant='n',
15350             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
15351             fr="Définir les interfaces d'une structure et leur affecter un type",
15352          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
15353          INTERFACE       =FACT(statut='o',max='**',
15354            regles=(ENSEMBLE('NOM','TYPE'),
15355 #  erreur doc U sur la condition qui suit
15356                    UN_PARMI('NOEUD','GROUP_NO'),),
15357            NOM             =SIMP(statut='f',typ='TXM' ),
15358            TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
15359            NOEUD           =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
15360            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
15361 #           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),
15362            MASQUE          =SIMP(statut='f',typ='TXM',max='**'),
15363          ),
15364          FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
15365          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
15366 )  ;
15367
15368 # ======================================================================
15369 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15370 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15371 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15372 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15373 # (AT YOUR OPTION) ANY LATER VERSION.
15374 #
15375 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15376 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15377 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15378 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15379 #
15380 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15381 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15382 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15383 # ======================================================================
15384 # person_in_charge: mathieu.courtois at edf.fr
15385 DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
15386                     fr="Définir une liste d'entiers strictement croissante",
15387                     reentrant='n',
15388             UIinfo={"groupes":("Fonctions",)},
15389
15390          OPERATION    =SIMP(statut='o',typ='TXM',defaut='DEFI',into=('DEFI','NUME_ORDRE',)),
15391
15392
15393          # définition d'une liste d'entiers
15394          #----------------------------------
15395          b_defi       =BLOC(condition = "OPERATION == 'DEFI'",
15396              regles=(UN_PARMI('VALE','DEBUT'),
15397                      EXCLUS('VALE','INTERVALLE'),),
15398              VALE            =SIMP(statut='f',typ='I',max='**'),
15399              DEBUT           =SIMP(statut='f',typ='I'),
15400              INTERVALLE      =FACT(statut='f',max='**',
15401                  regles=(UN_PARMI('NOMBRE','PAS'),),
15402                  JUSQU_A         =SIMP(statut='o',typ='I'),
15403                  NOMBRE          =SIMP(statut='f',typ='I',val_min=1,),
15404                  PAS             =SIMP(statut='f',typ='I',val_min=1,),
15405              ),
15406          ),
15407
15408
15409          # extraction d'une liste de nume_ordre dans une sd_resultat :
15410          #------------------------------------------------------------
15411          b_extr       =BLOC(condition = "OPERATION == 'NUME_ORDRE'",
15412              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
15413              PARAMETRE       =SIMP(statut='o',typ='TXM',),
15414              INTERV_R        =SIMP(statut='o',typ='R',min=2,max=2),
15415          ),
15416
15417
15418          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15419          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15420 )  ;
15421
15422 # ======================================================================
15423 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15424 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15425 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15426 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15427 # (AT YOUR OPTION) ANY LATER VERSION.
15428 #
15429 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15430 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15431 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15432 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15433 #
15434 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15435 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15436 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15437 # ======================================================================
15438 # person_in_charge: nicolas.brie at edf.fr
15439 DEFI_LIST_FREQ=MACRO(nom="DEFI_LIST_FREQ",
15440                     op=OPS('Macro.defi_list_freq_ops.defi_list_freq_ops'),
15441                     sd_prod=listr8_sdaster,
15442                     fr="Définir une liste de fréquences strictement croissante",
15443                     reentrant='n',
15444             UIinfo={"groupes":("Fonctions",)},
15445          regles=(UN_PARMI('VALE','DEBUT',),
15446                  EXCLUS('VALE','INTERVALLE'),
15447                  ENSEMBLE('DEBUT','INTERVALLE')),
15448          VALE            =SIMP(statut='f',typ='R',max='**'),
15449          DEBUT           =SIMP(statut='f',typ='R'),
15450          INTERVALLE      =FACT(statut='f',max='**',
15451            regles=(UN_PARMI('NOMBRE','PAS'),),
15452            JUSQU_A         =SIMP(statut='o',typ='R'),
15453            NOMBRE          =SIMP(statut='f',typ='I'),
15454            PAS             =SIMP(statut='f',typ='R'),
15455          ),
15456          RAFFINEMENT      =FACT(statut='f',
15457            LIST_RAFFINE    =SIMP(statut='o',typ='R',max='**'),
15458            NB_POINTS       =SIMP(statut='f',typ='I',defaut=5),
15459            PAS_MINI        =SIMP(statut='f',typ='R',defaut=0.001),
15460            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU","LARGEUR_3DB")),
15461               b_crit_rela_abs=BLOC(condition="(CRITERE=='RELATIF' or CRITERE=='ABSOLU')",
15462                  DISPERSION      =SIMP(statut='f',typ='R',defaut=0.01),),
15463               b_crit_larg=BLOC(condition="(CRITERE=='LARGEUR_3DB')",
15464                  AMOR_MODAL      =FACT(statut='o',
15465                     regles = UN_PARMI('AMOR_REDUIT','LIST_AMOR'),
15466                     AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
15467                     LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),),),
15468              ),
15469          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15470          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15471 )  ;
15472
15473 # ======================================================================
15474 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
15475 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15476 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15477 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15478 # (AT YOUR OPTION) ANY LATER VERSION.
15479 #
15480 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15481 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15482 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15483 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15484 #
15485 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15486 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15487 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15488 # ======================================================================
15489 # person_in_charge: samuel.geniaut at edf.fr
15490
15491
15492
15493 # Bloc pour decoupe automatique
15494 bloc_auto   =BLOC(fr                = "Subdivision de type automatique",
15495                   condition         = "SUBD_METHODE == 'AUTO'",
15496                   SUBD_PAS_MINI     = SIMP(fr                = "Pas de temps en dessous duquel on ne subdivise plus",
15497                                            statut            = 'f',
15498                                            typ               = 'R',
15499                                            val_min           = 0.0,
15500                                            max               = 1,
15501                                            defaut            = 0.,
15502                                            ),
15503                   )
15504
15505 # Bloc pour decoupe manuel
15506 bloc_manu   =BLOC(fr                = "Subdivision de type manuel",
15507                   condition         = "SUBD_METHODE == 'MANUEL'",
15508                   regles            = (AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
15509                   SUBD_PAS          = SIMP(fr                = "Nombre de subdivision d'un pas de temps",
15510                                            statut            = 'f',
15511                                            typ               = 'I',
15512                                            val_min           = 2,
15513                                            max               = 1,
15514                                            defaut            = 4,
15515                                            ),
15516
15517                   SUBD_NIVEAU       = SIMP(fr                = "Nombre maximum de niveau de subdivision d'un pas de temps",
15518                                            statut            = 'f',
15519                                            typ               = 'I',
15520                                            val_min           = 2,
15521                                            max               = 1,
15522                                            defaut            = 3,
15523                                            ),
15524                   SUBD_PAS_MINI     = SIMP(fr                = "Pas de temps en dessous duquel on ne subdivise plus",
15525                                            statut            = 'f',
15526                                            typ               = 'R',
15527                                            val_min           = 0.0,
15528                                            max               = 1,
15529                                            defaut            = 0.,
15530                                            ),
15531                  )
15532
15533 # Bloc pour decoupe automatique - Cas de la collision
15534 bloc_auto2  =BLOC(fr                = "Subdivision de type automatique",
15535                   condition         = "SUBD_METHODE == 'AUTO'",
15536                   SUBD_INST         = SIMP(fr                = "Parametre de decoupe fine du pas de temps",
15537                                            statut            = 'o',
15538                                            typ               = 'R',
15539                                            val_min           = 0.0,
15540                                            max               = 1,
15541                                            ),
15542                   SUBD_DUREE        = SIMP(fr                = "Duree de decoupe apres collision",
15543                                            statut            = 'o',
15544                                            typ               = 'R',
15545                                            val_min           = 0.0,
15546                                            max               = 1,
15547                                            ),
15548                   )
15549
15550 # Bloc pour decoupe du pas de temps
15551 bloc_deco   =BLOC(fr                = "Action de decoupe du pas temps",
15552                   condition         = "ACTION == 'DECOUPE' or ACTION == 'REAC_PRECOND' or ACTION == 'AUTRE_PILOTAGE'",
15553                   SUBD_METHODE      = SIMP(fr                = "Méthode de subdivision des pas de temps en cas de divergence",
15554                                            statut            = 'f',
15555                                            typ               = 'TXM',
15556                                            max               = 1,
15557                                            into              = ("MANUEL","AUTO"),
15558                                            defaut            = "MANUEL",
15559                                            ),
15560                   b_deco_manu       = bloc_manu,
15561                   b_deco_auto       = bloc_auto,
15562                  )
15563
15564
15565 # Bloc pour decoupe du pas de temps - special pour collision
15566 bloc_deco2  =BLOC(fr                = "Action de decoupe du pas temps",
15567                   condition         = "ACTION == 'DECOUPE'",
15568                   SUBD_METHODE      = SIMP(fr                = "Méthode de subdivision des pas de temps en cas de collision",
15569                                            statut            = 'f',
15570                                            typ               = 'TXM',
15571                                            max               = 1,
15572                                            into              = ("MANUEL","AUTO"),
15573                                            defaut            = "AUTO",
15574                                            ),
15575
15576
15577
15578                   b_deco_manu       = bloc_manu,
15579                   b_deco_auto       = bloc_auto2,
15580                  )
15581
15582 # Bloc pour extrapolation du nombre d'iterations de Newton
15583 bloc_supp   =BLOC(fr                = "Action d'extrapolation du nombre d'iterations de Newton",
15584                   condition         = "ACTION == 'ITER_SUPPL'",
15585                   PCENT_ITER_PLUS   = SIMP(fr                = "Pourcentage d'itérations autorisées en plus",
15586                                            statut            = 'f',
15587                                            typ               = 'I',
15588                                            val_min           = 20,
15589                                            max               = 1,
15590                                            defaut            = 50,
15591                                            ),
15592                   SUBD_METHODE      = SIMP(fr                = "Méthode de subdivision des pas de temps en cas de divergence",
15593                                            statut            = 'f',
15594                                            typ               = 'TXM',
15595                                            max               = 1,
15596                                            into              = ("MANUEL","AUTO"),
15597                                            defaut            = "MANUEL",
15598                                            ),
15599                   b_deco_manu       = bloc_manu,
15600                   b_deco_auto       = bloc_auto,
15601                  )
15602
15603 # Bloc pour adaptation du coefficient de penalisation
15604 bloc_pene   =BLOC(fr                = "Action d' adaptation du coefficient de penalisation",
15605                   condition         = "ACTION == 'ADAPT_COEF_PENA'",
15606                   COEF_MAXI         = SIMP(fr                = "Coefficient multiplicateur maximum du coefficient de penalisation",
15607                                            statut            = 'f',
15608                                            typ               = 'R',
15609                                            val_min           = 1.,
15610                                            max               = 1,
15611                                            defaut            = 1E12,
15612                                            ),
15613                  )
15614
15615 DEFI_LIST_INST = OPER(nom="DEFI_LIST_INST",op=  28,sd_prod=list_inst,reentrant='n',
15616                       UIinfo={"groupes":("Fonctions",)},
15617                       fr="Définition de la gestion de la liste d'instants",
15618
15619 # ----------------------------------------------------------------------------------------------------------------------------------
15620 # mot-cle pour la definition a priori de la liste d'instant
15621 # ----------------------------------------------------------------------------------------------------------------------------------
15622
15623 DEFI_LIST   =FACT(fr                = "Definition a priori de la liste d'instants",
15624                   statut            = 'o',
15625                   max               = 1,
15626                   METHODE           = SIMP(fr                = "Methode de definition de la liste d'instants",
15627                                            statut            = 'o',
15628                                            typ               = 'TXM',
15629                                            max               = 1,
15630                                            position          = 'global',
15631                                            into              = ("MANUEL","AUTO",),
15632                                            defaut            = "MANUEL",
15633                                            ),
15634                   b_manuel          = BLOC(fr                = "Liste d'instants donnée par l'utilisateur",
15635                                            condition         = "METHODE == 'MANUEL' ",
15636                                            regles=(UN_PARMI('LIST_INST','VALE','RESULTAT'),
15637                                                    PRESENT_PRESENT('RESULTAT','SUBD_PAS'),),
15638                                            VALE              = SIMP(statut          = 'f',
15639                                                                     typ             = 'R',
15640                                                                     max             = '**'),
15641                                            LIST_INST         = SIMP(statut          = 'f',
15642                                                                     typ             = listr8_sdaster,
15643                                                                     ),
15644                                            RESULTAT          = SIMP(statut          = 'f',
15645                                                                     typ             = resultat_sdaster,
15646                                                                     ),
15647                                            SUBD_PAS          = SIMP(statut          = 'f',
15648                                                                     typ             = 'I',
15649                                                                     max             = 1,
15650                                                                     val_min         = 1,
15651                                                                     ),
15652
15653                                            ),
15654                   b_auto            = BLOC(fr                = "Gestion automatique de la liste d'instants",
15655                                            condition         = "(METHODE == 'AUTO') ",
15656                                            regles=(UN_PARMI('LIST_INST','VALE',),),
15657                                            VALE              = SIMP(statut          = 'f',
15658                                                                     typ             = 'R',
15659                                                                     max             = '**'),
15660                                            LIST_INST         = SIMP(statut          = 'f',
15661                                                                     typ             = listr8_sdaster,
15662                                                                     ),
15663                                            PAS_MINI          = SIMP(statut          = 'f',
15664                                                                     typ             = 'R',
15665                                                                     max             = 1,
15666                                                                     val_min         = 1.e-12,
15667                                                                     ),
15668                                            PAS_MAXI          = SIMP(statut          = 'f',
15669                                                                     typ             = 'R',
15670                                                                     max             = 1,
15671                                                                     ),
15672                                            NB_PAS_MAXI       = SIMP(statut          = 'f',
15673                                                                     typ             = 'I',
15674                                                                     max             = 1,
15675                                                                     val_max         = 1000000,
15676                                                                     defaut          = 1000000,
15677                                                                     ),
15678                                            ),
15679                  ),
15680 # ----------------------------------------------------------------------------------------------------------------------------------
15681 # mot-cle pour le comportement en cas d'echec (on doit recommencer le meme instant)
15682 # ----------------------------------------------------------------------------------------------------------------------------------
15683
15684 ECHEC       =FACT(fr                = "Comportement en cas d'echec",
15685                   statut            = 'd',
15686                   max               = '**',
15687                   EVENEMENT         = SIMP(fr                = "Type de l'evenement",
15688                                            statut            = 'f',
15689                                            typ               = 'TXM',
15690                                            max               = 1,
15691                                            into              = ("ERREUR","DELTA_GRANDEUR","COLLISION",
15692                                                                 "INTERPENETRATION","DIVE_RESI","INSTABILITE"),
15693                                            defaut            = "ERREUR",
15694                                            ),
15695                   b_erreur          = BLOC(fr                = "Event: erreur ou iter_maxi",
15696                                            condition         = "EVENEMENT == 'ERREUR' ",
15697                                            ACTION            = SIMP(fr              = "Actions possibles",
15698                                                                     statut          = 'f',
15699                                                                     max             = 1,
15700                                                                     typ             = 'TXM',
15701                                                                     into            = ("ARRET","DECOUPE","REAC_PRECOND",
15702                                                                                        "ITER_SUPPL","AUTRE_PILOTAGE"),
15703                                                                     defaut          = "DECOUPE",
15704                                                                     ),
15705                                            b_deco            = bloc_deco,
15706                                            b_supp            = bloc_supp,
15707                                            ),
15708                   b_edelta          = BLOC(fr                = "Event: l'increment d'une composante d'un champ depasse le seuil",
15709                                            condition         = "EVENEMENT == 'DELTA_GRANDEUR' ",
15710                                            VALE_REF          = SIMP(fr              = "Valeur du seuil",
15711                                                                     statut          = 'o',
15712                                                                     typ             = 'R',
15713                                                                     max             = 1,
15714                                                                     ),
15715                                            NOM_CHAM          = SIMP(fr              = "Nom du champ",
15716                                                                     statut          = 'o',
15717                                                                     typ             = 'TXM',
15718                                                                     max             = 1,
15719                                                                     into            = ("DEPL","VARI_ELGA","SIEF_ELGA",),
15720                                                                     ),
15721                                            NOM_CMP           = SIMP(fr              = "Nom de la composante",
15722                                                                     statut          = 'o',
15723                                                                     typ             = 'TXM',
15724                                                                     max             = 1,
15725                                                                     ),
15726                                            ACTION            = SIMP(fr              = "Actions possibles",
15727                                                                     statut          = 'f',
15728                                                                     max             = 1,
15729                                                                     typ             = 'TXM',
15730                                                                     into            = ("ARRET","DECOUPE",),
15731                                                                     defaut          = "DECOUPE",
15732                                                                     ),
15733                                            b_deco            = bloc_deco,
15734                                            ),
15735                   b_colli           = BLOC(fr                = "Event: collision",
15736                                            condition         = "EVENEMENT == 'COLLISION' ",
15737                                            ACTION            = SIMP(fr              = "Actions possibles",
15738                                                                     statut          = 'f',
15739                                                                     max             = 1,
15740                                                                     typ             = 'TXM',
15741                                                                     into            = ("ARRET","DECOUPE",),
15742                                                                     defaut          = "DECOUPE",
15743                                                                     ),
15744                                            b_deco2           = bloc_deco2,
15745                                            ),
15746                   b_penetration     = BLOC(fr                = "Event: interpenetration des surfaces en contact",
15747                                            condition         = "EVENEMENT == 'INTERPENETRATION' ",
15748                                            PENE_MAXI         = SIMP(fr              = "Valeur maxi de l'interpenetration",
15749                                                                     statut          = 'o',
15750                                                                     typ             = 'R',
15751                                                                     max             = 1,
15752                                                                     ),
15753
15754
15755                                            ACTION            = SIMP(fr              = "Actions possibles",
15756                                                                     statut          = 'f',
15757                                                                     max             = 1,
15758                                                                     typ             = 'TXM',
15759                                                                     into            = ("ARRET","ADAPT_COEF_PENA",),
15760                                                                     defaut          = "ADAPT_COEF_PENA",
15761                                                                     ),
15762                                            b_pene            = bloc_pene,
15763                                            ),
15764                   b_dive_resi       = BLOC(fr                = "Event: divergence du residu",
15765                                            condition         = "EVENEMENT == 'DIVE_RESI' ",
15766                                            ACTION            = SIMP(fr              = "Actions possibles",
15767                                                                     statut          = 'f',
15768                                                                     max             = 1,
15769                                                                     typ             = 'TXM',
15770                                                                     into            = ("DECOUPE",),
15771                                                                     defaut          = "DECOUPE",
15772                                                                     ),
15773                                            b_deco            = bloc_deco,
15774                                            ),
15775                   b_instabilite     = BLOC(fr                = "Event: instabilite",
15776                                            condition         = "EVENEMENT == 'INSTABILITE' ",
15777                                            ACTION            = SIMP(fr              = "Actions possibles",
15778                                                                     statut          = 'f',
15779                                                                     max             = 1,
15780                                                                     typ             = 'TXM',
15781                                                                     into            = ("ARRET","CONTINUE",),
15782                                                                     defaut          = "CONTINUE",
15783                                                                     ),
15784                                            ),
15785
15786                  ),
15787
15788 # ----------------------------------------------------------------------------------------------------------------------------------
15789 # Mot-cle pour le comportement en cas de succes (on a bien converge)
15790 # ----------------------------------------------------------------------------------------------------------------------------------
15791
15792 b_adap  =   BLOC(condition="METHODE == 'AUTO'",
15793
15794 ADAPTATION  =FACT(fr                = "Parametres de l'evenement declencheur de l'adaptation du pas de temps",
15795                   statut            = 'd',
15796                   max               = '**',
15797                   EVENEMENT         = SIMP(fr                = "Nom de l'evenement declencheur de l'adaptation",
15798                                            statut            = 'f',
15799                                            max               = 1,
15800                                            typ               = 'TXM',
15801                                            into              = ("SEUIL","TOUT_INST","AUCUN"),
15802                                            defaut            = "SEUIL",
15803                                            ),
15804                   b_adap_seuil      = BLOC(fr                = "Seuil d'adaptation",
15805                                            condition         = "EVENEMENT == 'SEUIL' ",
15806                                            regles            = (PRESENT_PRESENT('NB_INCR_SEUIL','NOM_PARA',),
15807                                                                 PRESENT_PRESENT('NB_INCR_SEUIL','CRIT_COMP',),
15808                                                                 PRESENT_PRESENT('NB_INCR_SEUIL','CRIT_COMP',),),
15809                                            NB_INCR_SEUIL     = SIMP(statut          = 'f',
15810                                                                     typ             = 'I',
15811                                                                     defaut          =  2,
15812                                                                    ),
15813                                            NOM_PARA          = SIMP(statut          = 'f',
15814                                                                     typ             = 'TXM',
15815                                                                     into            = ("NB_ITER_NEWTON",),
15816                                                                     defaut          = "NB_ITER_NEWTON",
15817                                                                     ),
15818                                            CRIT_COMP         = SIMP(statut          = 'f',
15819                                                                     typ             = 'TXM',
15820                                                                     into            = ("LT","GT","LE","GE"),
15821                                                                     defaut          = "LE",
15822                                                                     ),
15823                                            b_vale_I          = BLOC(fr              = "Valeur entiere",
15824                                                                     condition       = "NOM_PARA == 'NB_ITER_NEWTON' ",
15825                                                                     VALE_I          = SIMP(statut='f',typ='I',),
15826                                                                     ),
15827                                            ),
15828
15829
15830 #
15831 #  Parametres du mode de calcul de dt+
15832 #      dans le cas FIXE            :(deltaT+) = (deltaT-)x(1+PCENT_AUGM/100)
15833 #      dans le cas DELTA_GRANDEUR : (deltaT+) = (deltaT-)x(VALREF/deltaVAL) : l'acceleration est inversement proportionnelle
15834 #                                                                             a la variation de la grandeur
15835 #      dans le cas ITER_NEWTON    : (deltaT+) = (deltaT-) x sqrt(VALREF/N)  : l'acceleration est inversement proportionnelle
15836 #                                                                             au nombre d'iterations de Newton precedent
15837
15838                   MODE_CALCUL_TPLUS = SIMP(fr                = "Parametres du mode de calcul de dt+",
15839                                            statut            = 'f',
15840                                            max               = 1,
15841                                            typ               = 'TXM',
15842                                            into              = ("FIXE","DELTA_GRANDEUR","ITER_NEWTON","IMPLEX"),
15843                                            defaut            = 'FIXE',
15844                                            ),
15845
15846                   b_mfixe           = BLOC(fr                = "Mode de calcul de dt+: fixe",
15847                                            condition         = "MODE_CALCUL_TPLUS == 'FIXE' ",
15848                                            PCENT_AUGM        = SIMP(statut          = 'f',
15849                                                                     max             = 1,
15850                                                                     typ             = 'R',
15851                                                                     defaut          = 100.,
15852                                                                     val_min         = -100.,
15853                                                                     ),
15854                                            ),
15855                   b_mdelta          = BLOC(fr                = "Mode de calcul de dt+: increment d'une grandeur",
15856                                            condition         = "MODE_CALCUL_TPLUS == 'DELTA_GRANDEUR' ",
15857                                            VALE_REF          = SIMP(statut          = 'o',
15858                                                                     max             = 1,
15859                                                                     typ             = 'R',
15860                                                                     ),
15861                                            NOM_CHAM          = SIMP(statut          = 'o',
15862                                                                     max             = 1,
15863                                                                     typ             = 'TXM',
15864                                                                     into            = ("DEPL","VARI_ELGA","SIEF_ELGA",),
15865                                                                     ),
15866                                            NOM_CMP           = SIMP(statut          = 'o',
15867                                                                     max             = 1,
15868                                                                     typ             = 'TXM',),
15869                                            ),
15870                   b_mitnew          = BLOC(fr                = "Mode de calcul de dt+: nb iterations de Newton",
15871                                            condition         = "MODE_CALCUL_TPLUS == 'ITER_NEWTON' ",
15872                                            NB_ITER_NEWTON_REF= SIMP(statut          = 'o',
15873                                                                     max             = 1,
15874                                                                     typ             = 'I',
15875                                                                     ),
15876                                            ),
15877 # les schemas pre-definis :
15878 #  abaqus :
15879 #      EVENEMENT       ='SEUIL'
15880 #      NB_INCR_SEUIL     = 2
15881 #      NOM_PARA          ='NB_ITER_NEWTON'
15882 #      CRIT_COMP         ='LE'
15883 #      VALE_I            = 5
15884 #      MODE_CALCUL_TPLUS ='FIXE'
15885 #      PCENT_AUGM        = 50.
15886 #  Zebulon 1 :
15887 #      EVENEMENT       ='TOUT_INST'
15888 #      MODE_CALCUL_TPLUS ='DELTA_GRANDEUR'
15889 #      VALE_REF          = valref
15890 #      NOM_CHAM          ='VARI_ELGA'
15891 #      NOM_CMP           ='V1'
15892 #  Zebulon 2 :
15893 #      EVENEMENT       ='TOUT_INST'
15894 #      MODE_CALCUL_TPLUS ='ITER_NEWTON'
15895 #      NB_ITER_NEWTON_REF= nc
15896 #  Tough2 :
15897 #      EVENEMENT       ='SEUIL'
15898 #      NB_INCR_SEUIL     = 1
15899 #      NOM_PARA          ='NB_ITER_NEWTON'
15900 #      CRIT_COMP         ='LE'
15901 #      VALE_I            = n
15902 #      MODE_CALCUL_TPLUS ='FIXE'
15903 #      PCENT_AUGM        = 100.
15904 #  Oliver :
15905 #      EVENEMENT       ='TOUT_INST'
15906 #      MODE_CALCUL_TPLUS ='FORMULE'
15907 #      NOM_SCHEMA        ='OLIVER'
15908
15909              ),
15910       ),
15911 # ----------------------------------------------------------------------------------------------------------------------------------
15912
15913     INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
15914
15915 )  ;
15916
15917 # ======================================================================
15918 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15919 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15920 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15921 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15922 # (AT YOUR OPTION) ANY LATER VERSION.
15923 #
15924 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15925 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15926 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15927 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15928 #
15929 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15930 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15931 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15932 # ======================================================================
15933 # person_in_charge: mathieu.courtois at edf.fr
15934 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
15935                     fr="Définir une liste de réels strictement croissante",
15936                     reentrant='n',
15937             UIinfo={"groupes":("Fonctions",)},
15938          regles=(UN_PARMI('VALE','DEBUT',),
15939                  EXCLUS('VALE','INTERVALLE'),
15940                  ENSEMBLE('DEBUT','INTERVALLE')),
15941          VALE            =SIMP(statut='f',typ='R',max='**'),
15942          DEBUT           =SIMP(statut='f',typ='R'),
15943          INTERVALLE      =FACT(statut='f',max='**',
15944            regles=(UN_PARMI('NOMBRE','PAS'),),
15945            JUSQU_A         =SIMP(statut='o',typ='R'),
15946            NOMBRE          =SIMP(statut='f',typ='I'),
15947            PAS             =SIMP(statut='f',typ='R'),
15948          ),
15949          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15950          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15951 )  ;
15952
15953 # ======================================================================
15954 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15955 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15956 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15957 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15958 # (AT YOUR OPTION) ANY LATER VERSION.
15959 #
15960 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15961 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15962 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15963 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15964 #
15965 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15966 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15967 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15968 # ======================================================================
15969 # person_in_charge: jacques.pellet at edf.fr
15970 DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
15971                    fr="Définition d'un nouveau maillage à partir de macro-éléments",
15972                    reentrant='n',
15973             UIinfo={"groupes":("Maillage",)},
15974          DEFI_SUPER_MAILLE =FACT(statut='o',max='**',
15975            MACR_ELEM       =SIMP(statut='o',typ=(macr_elem_stat,macr_elem_dyna),max='**' ),
15976            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
15977            TRAN            =SIMP(statut='f',typ='R',max=3),
15978            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
15979            b_angl_naut     =BLOC(condition = "ANGL_NAUT != None",
15980              CENTRE          =SIMP(statut='f',typ='R',max=3),
15981            ),
15982          ),
15983          RECO_GLOBAL     =FACT(statut='f',max='**',
15984            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
15985            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15986            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
15987            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15988            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
15989          ),
15990          RECO_SUPER_MAILLE =FACT(statut='f',max='**',
15991            SUPER_MAILLE    =SIMP(statut='o',typ=ma,max='**'),
15992            GROUP_NO        =SIMP(statut='o',typ=grno,max='**'),
15993            OPTION          =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
15994            geometrique     =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
15995              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15996              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
15997            ),
15998          ),
15999          DEFI_NOEUD      =FACT(statut='f',max='**',
16000            regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
16001            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
16002                                  fr="Renommage de tous les noeuds" ),
16003            NOEUD_INIT      =SIMP(statut='f',typ=no,
16004                                  fr="Renommage d un seul noeud"),
16005            b_tout          =BLOC(condition = "TOUT != None",
16006              PREFIXE         =SIMP(statut='f',typ='TXM' ),
16007              INDEX           =SIMP(statut='o',typ='I',max='**'),
16008            ),
16009            b_noeud_init    =BLOC(condition = "NOEUD_INIT != None",
16010              SUPER_MAILLE    =SIMP(statut='o',typ=ma),
16011              NOEUD_FIN       =SIMP(statut='o',typ=no),
16012            ),
16013          ),
16014          DEFI_GROUP_NO   =FACT(statut='f',max='**',
16015            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),
16016                 AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
16017                    ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
16018 #  la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U
16019            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
16020                                  fr="Création de plusieurs groupes de noeuds" ),
16021            SUPER_MAILLE    =SIMP(statut='f',typ=ma,
16022                                  fr="Création de plusieurs groupes de noeuds"),
16023            GROUP_NO_INIT   =SIMP(statut='f',typ=grno,
16024                                  fr="Création d un seul groupe de noeuds"),
16025            PREFIXE         =SIMP(statut='f',typ='TXM' ),
16026            INDEX           =SIMP(statut='f',typ='I',max='**'),
16027            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
16028          ),
16029 )  ;
16030
16031 # ======================================================================
16032 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
16033 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16034 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16035 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16036 # (AT YOUR OPTION) ANY LATER VERSION.
16037 #
16038 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16039 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16040 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16041 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16042 #
16043 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16044 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16045 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16046 # ======================================================================
16047 # person_in_charge: jean-luc.flejou at edf.fr
16048
16049 DEFI_MATER_GC=MACRO(nom="DEFI_MATER_GC",
16050    op=OPS('Macro.defi_mater_gc_ops.defi_mater_gc_ops'),
16051    sd_prod=mater_sdaster,
16052    reentrant='n',
16053    UIinfo={"groupes":("Modélisation",) },
16054    fr="Définir des lois matériaux spécifique au Génie Civil",
16055    #
16056    regles = (UN_PARMI('MAZARS','ACIER','ENDO_FISS_EXP'), ),
16057    #
16058    REGLE =SIMP(statut='f',typ='TXM',     into=('EC2',),     defaut='EC2'),
16059    # ============================================================================
16060    MAZARS      =FACT(statut= 'f',max= 1,
16061       fr="Paramètres matériaux de MAZARS unilatéral en 1D à partir des caractéristiques du béton",
16062       UNITE_LONGUEUR =SIMP(statut='o',typ='TXM',   into=("M","MM"),
16063                            fr="Unité de longueur du problème [M|MM]"),
16064       FCJ            =SIMP(statut='o',typ='R',     val_min=0.0E+0,
16065                            fr="Contrainte au pic en compression [Unité]"),
16066       EIJ            =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16067                            fr="Module d'Young [Unité]"),
16068       EPSI_C         =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16069                            fr="Déformation au pic en compression"),
16070       FTJ            =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16071                            fr="Contrainte au pic en traction [Unité]"),
16072       NU             =SIMP(statut='f',typ='R',     val_min=0.0E+0, val_max=0.5E+0,
16073                            fr="Coefficient de poisson"),
16074       EPSD0          =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16075                            fr="Déformation, seuil d'endommagement"),
16076       K              =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16077                            fr="Asymptote en cisaillement pur"),
16078       AC             =SIMP(statut='f',typ='R',     val_min=0.E+0,
16079                            fr="Paramètre de décroissance post-pic en compression"),
16080       BC             =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16081                            fr="Paramètre de décroissance post-pic en compression"),
16082       AT             =SIMP(statut='f',typ='R',     val_min=0.0E+0, val_max=1.0E+0,
16083                            fr="Paramètre de décroissance post-pic en traction"),
16084       BT             =SIMP(statut='f',typ='R',     val_min=0.0E+0,
16085                            fr="Paramètre de décroissance post-pic en traction"),
16086       # Pour post-traitement ELS et ELU
16087       SIGM_LIM       =SIMP(statut='f',typ='R',  fr="Contrainte limite, post-traitement"),
16088       EPSI_LIM       =SIMP(statut='f',typ='R',  fr="Déformation limite, post-traitement"),
16089    ),
16090    # ============================================================================
16091    ACIER       =FACT(statut= 'f',max= 1,
16092       fr="Définir les paramètres matériaux de l'acier pour le Génie Civil",
16093       E              =SIMP(statut='o',typ='R',  val_min=0.0E+0,                     fr="Module d'Young"),
16094       SY             =SIMP(statut='o',typ='R',                                      fr="Limite élastique"),
16095       NU             =SIMP(statut='f',typ='R',  val_min=0.0E+0, val_max=0.5E+0,     fr="Coefficient de poisson"),
16096       D_SIGM_EPSI    =SIMP(statut='f',typ='R',                                      fr="Module plastique"),
16097       # Pour post-traitement ELS et ELU
16098       SIGM_LIM       =SIMP(statut='f',typ='R',  fr="Contrainte limite, post-traitement"),
16099       EPSI_LIM       =SIMP(statut='f',typ='R',  fr="Déformation limite, post-traitement"),
16100    ),
16101    # ============================================================================
16102    ENDO_FISS_EXP       =FACT(statut= 'f',max= 1,
16103       fr="Définir les paramètres matériaux du béton pour la loi ENDO_FISS_EXP",
16104       regles = (
16105         UN_PARMI('FT','FT_FENDAGE'),
16106         UN_PARMI('P','DSIG_DU'),
16107         EXCLUS('Q','Q_REL'),
16108         ),
16109       E              =SIMP(statut='o',typ='R',  val_min=0.0E+0,                     fr="Module d'Young"),
16110       NU             =SIMP(statut='o',typ='R',  val_min=0.0E+0, val_max=0.5E+0,     fr="Coefficient de poisson"),
16111       FT             =SIMP(statut='f',typ='R',  val_min=0.0E+0                ,     fr="Limite en traction simple"),
16112       FT_FENDAGE     =SIMP(statut='f',typ='R',  val_min=0.0E+0                ,     fr="Limite en traction obtenue via un essai brésilien"),
16113       FC             =SIMP(statut='o',typ='R',  val_min=0.0E+0                ,     fr="Limite en compression simple"),
16114       GF             =SIMP(statut='o',typ='R',  val_min=0.0E+0                ,     fr="Energie de fissuration"),
16115       P              =SIMP(statut='f',typ='R',  val_min=1.0E+0                ,     fr="Parametre dominant de la loi cohésive asymptotique"),
16116       DSIG_DU        =SIMP(statut='f',typ='R',  val_min=1.102658              ,     fr="Pente initiale (au signe pres) de la loi cohesive asymptotique"),
16117       Q              =SIMP(statut='f',typ='R',  val_min=0.0E+0                ,     fr="Parametre secondaire de la loi cohesive asymptotique"),
16118       Q_REL          =SIMP(statut='f',typ='R',  val_min=0.0E+0, val_max=1.0   ,     fr="Parametre Q exprime de maniere relative par rapport a Qmax(P)"),
16119       LARG_BANDE     =SIMP(statut='o',typ='R',  val_min=0.0E+0                ,     fr="Largeur de bande d'endommagement (2*D)"),
16120       COEF_RIGI_MINI =SIMP(statut='f',typ='R',  val_min=0.0, defaut = 0.0     ,     fr="Rigidite minimale dans la matrice tangente"),
16121    ),
16122    # ============================================================================
16123    INFO        =SIMP(statut='f',typ='I',     into=(1,2,),     defaut=1),
16124    RHO         =SIMP(statut='f',typ='R',     fr="Masse volumique"),
16125    ALPHA       =SIMP(statut='f',typ='R',     fr="Coefficient de dilatation"),
16126    AMOR_ALPHA  =SIMP(statut='f',typ='R'),
16127    AMOR_BETA   =SIMP(statut='f',typ='R'),
16128    AMOR_HYST   =SIMP(statut='f',typ='R'),
16129 )
16130
16131
16132 # ======================================================================
16133 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
16134 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16135 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16136 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16137 # (AT YOUR OPTION) ANY LATER VERSION.
16138 #
16139 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16140 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16141 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16142 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16143 #
16144 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16145 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16146 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16147 # ======================================================================
16148 # person_in_charge: j-pierre.lefebvre at edf.fr
16149 DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
16150                    fr="Définition des paramètres décrivant le comportement d un matériau",
16151                    reentrant='f',
16152             UIinfo={"groupes":("Modélisation",)},
16153        regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH',
16154                       'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO',
16155                       'ELAS_HYPER','ELAS_2NDG','ELAS_GLRC'),
16156                EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
16157                EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS','ECRO_COOK','ECRO_COOK_FO',),
16158                EXCLUS('ENDO_HETEROGENE'),
16159                EXCLUS('TAHERI','TAHERI_FO'),
16160                EXCLUS('ENDO_SCALAIRE','ENDO_SCALAIRE_FO'),
16161                EXCLUS('ENDO_FISS_EXP','ENDO_FISS_EXP_FO'),
16162                EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
16163                EXCLUS('VISC_SINH','VISC_SINH_FO'),
16164                PRESENT_PRESENT('ROUSSELIER','TRACTION'),
16165                PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
16166                EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
16167                EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
16168                EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
16169                EXCLUS('LEMAITRE','LEMAITRE_FO','VISC_IRRA_LOG',
16170                'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',),
16171                EXCLUS('META_LEMA_ANI','META_LEMA_ANI_FO'),
16172                EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
16173                EXCLUS('VISC_ENDO','VISC_ENDO_FO'),
16174                PRESENT_PRESENT('BPEL_ACIER','ELAS'),
16175                PRESENT_PRESENT('ETCC_ACIER','ELAS'),
16176                EXCLUS('ETCC_ACIER','BPEL_ACIER'),
16177                EXCLUS('ETCC_BETON','BPEL_BETON'),
16178
16179                EXCLUS('RCCM','RCCM_FO'),
16180                EXCLUS('WEIBULL','WEIBULL_FO'),
16181                PRESENT_PRESENT('DHRC','DHRC_SEUILS'),
16182                PRESENT_PRESENT('LAIGLE','ELAS'),
16183                PRESENT_PRESENT('LETK','ELAS'),
16184                PRESENT_PRESENT('DRUCK_PRAGER','ELAS'),
16185                PRESENT_PRESENT('VISC_DRUC_PRAG','ELAS'),
16186                PRESENT_PRESENT('ELAS_GONF','ELAS'),
16187                PRESENT_PRESENT('HOEK_BROWN','ELAS'),
16188                EXCLUS('MAZARS','MAZARS_FO'),
16189                PRESENT_PRESENT('JOINT_BA','ELAS'),
16190                PRESENT_PRESENT('CABLE','ELAS'),
16191                PRESENT_PRESENT('MOHR_COULOMB','ELAS'),
16192                PRESENT_PRESENT('ELAS_GLRC','GLRC_DM'),
16193                ),
16194            MATER      =SIMP(statut='f',typ=mater_sdaster),
16195 #
16196 # comportement élastique
16197 #
16198            ELAS            =FACT(statut='f',
16199              E               =SIMP(statut='o',typ='R',val_min=0.E+0),
16200              NU              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0),
16201              RHO             =SIMP(statut='f',typ='R'),
16202              ALPHA           =SIMP(statut='f',typ='R'),
16203              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
16204              AMOR_BETA       =SIMP(statut='f',typ='R'),
16205              AMOR_HYST       =SIMP(statut='f',typ='R'),
16206            ),
16207            ELAS_FO         =FACT(statut='f',
16208              regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
16209              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16210              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16211              RHO             =SIMP(statut='f',typ='R'),
16212              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
16213              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
16214              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16215              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16216              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16217              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16218              K_DESSIC        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16219              B_ENDOGE        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16220              FONC_DESORP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16221            ),
16222            ELAS_FLUI       =FACT(statut='f',
16223              E               =SIMP(statut='o',typ='R'),
16224              NU              =SIMP(statut='o',typ='R'),
16225              RHO             =SIMP(statut='o',typ='R'),
16226              PROF_RHO_F_INT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16227              PROF_RHO_F_EXT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16228              COEF_MASS_AJOU  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16229            ),
16230            ELAS_ISTR       =FACT(statut='f',
16231              E_L             =SIMP(statut='o',typ='R'),
16232              E_N             =SIMP(statut='o',typ='R'),
16233              NU_LT           =SIMP(statut='o',typ='R'),
16234              NU_LN           =SIMP(statut='o',typ='R'),
16235              G_LN            =SIMP(statut='o',typ='R'),
16236              RHO             =SIMP(statut='f',typ='R'),
16237              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16238              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16239            ),
16240            ELAS_ISTR_FO    =FACT(statut='f',
16241              regles=(
16242                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
16243                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
16244                     ),
16245              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16246              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16247              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16248              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16249              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16250              RHO             =SIMP(statut='f',typ='R'),
16251              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
16252              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
16253              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16254              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16255            ),
16256            ELAS_ORTH       =FACT(statut='f',
16257              E_L             =SIMP(statut='o',typ='R'),
16258              E_T             =SIMP(statut='o',typ='R'),
16259              E_N             =SIMP(statut='f',typ='R'),
16260              NU_LT           =SIMP(statut='o',typ='R'),
16261              NU_LN           =SIMP(statut='f',typ='R'),
16262              NU_TN           =SIMP(statut='f',typ='R'),
16263              G_LT            =SIMP(statut='o',typ='R'),
16264              G_LN            =SIMP(statut='f',typ='R'),
16265              G_TN            =SIMP(statut='f',typ='R'),
16266              RHO             =SIMP(statut='f',typ='R'),
16267              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16268              ALPHA_T         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16269              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16270              XT              =SIMP(statut='f',typ='R',defaut= 1. ),
16271              XC              =SIMP(statut='f',typ='R',defaut= 1. ),
16272              YT              =SIMP(statut='f',typ='R',defaut= 1. ),
16273              YC              =SIMP(statut='f',typ='R',defaut= 1. ),
16274              S_LT            =SIMP(statut='f',typ='R',defaut= 1. ),
16275              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
16276              AMOR_BETA       =SIMP(statut='f',typ='R'),
16277              AMOR_HYST       =SIMP(statut='f',typ='R'),
16278            ),
16279            ELAS_ORTH_FO    =FACT(statut='f',
16280              regles=(
16281                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
16282                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
16283                       PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'),
16284                     ),
16285              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16286              E_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16287              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16288              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16289              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16290              NU_TN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16291              G_LT            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16292              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16293              G_TN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16294              RHO             =SIMP(statut='f',typ='R'),
16295              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
16296              PRECISION       =SIMP(statut='f',typ='R',defaut= 1. ),
16297              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16298              ALPHA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16299              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16300              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16301              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16302              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16303            ),
16304            ELAS_HYPER      =FACT(statut='f',
16305                                  regles=(UN_PARMI('K','NU'),),
16306              C10             =SIMP(statut='o',typ='R',
16307                                    fr="Si C10 est le seul coefficient fourni, alors le matériau est Néo-Hookéen."),
16308              C01             =SIMP(statut='f',typ='R',defaut=0.0,
16309                                    fr="Si l'on fournit C01 en plus de C10, on obtient un matériau de type Mooney-Rivlin."),
16310              C20             =SIMP(statut='f',typ='R',defaut=0.0,
16311                                    fr="Si l'on fournit C20 en plus de C10 et C01, on obtient un matériau de type Signorini."),
16312              K               =SIMP(statut='f',typ='R',fr="Module de compressibilité."),
16313              NU              =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0,fr="Coefficient de Poisson."),
16314              RHO             =SIMP(statut='f',typ='R',defaut=0.0,fr="Masse volumique."),
16315            ),
16316            ELAS_COQUE      =FACT(statut='f',
16317              regles=(EXCLUS('MEMB_L','M_LLLL',),
16318                      PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
16319                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
16320                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
16321                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
16322                                      'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
16323                                      'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
16324                                      'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
16325                                      'C_LZTZ','C_TZTZ'),),
16326              MEMB_L          =SIMP(statut='f',typ='R'),
16327              MEMB_LT         =SIMP(statut='f',typ='R'),
16328              MEMB_T          =SIMP(statut='f',typ='R'),
16329              MEMB_G_LT       =SIMP(statut='f',typ='R'),
16330              FLEX_L          =SIMP(statut='f',typ='R'),
16331              FLEX_LT         =SIMP(statut='f',typ='R'),
16332              FLEX_T          =SIMP(statut='f',typ='R'),
16333              FLEX_G_LT       =SIMP(statut='f',typ='R'),
16334              CISA_L          =SIMP(statut='f',typ='R'),
16335              CISA_T          =SIMP(statut='f',typ='R'),
16336              M_LLLL          =SIMP(statut='f',typ='R'),
16337              M_LLTT          =SIMP(statut='f',typ='R'),
16338              M_LLLT          =SIMP(statut='f',typ='R'),
16339              M_TTTT          =SIMP(statut='f',typ='R'),
16340              M_TTLT          =SIMP(statut='f',typ='R'),
16341              M_LTLT          =SIMP(statut='f',typ='R'),
16342              F_LLLL          =SIMP(statut='f',typ='R'),
16343              F_LLTT          =SIMP(statut='f',typ='R'),
16344              F_LLLT          =SIMP(statut='f',typ='R'),
16345              F_TTTT          =SIMP(statut='f',typ='R'),
16346              F_TTLT          =SIMP(statut='f',typ='R'),
16347              F_LTLT          =SIMP(statut='f',typ='R'),
16348              MF_LLLL         =SIMP(statut='f',typ='R'),
16349              MF_LLTT         =SIMP(statut='f',typ='R'),
16350              MF_LLLT         =SIMP(statut='f',typ='R'),
16351              MF_TTTT         =SIMP(statut='f',typ='R'),
16352              MF_TTLT         =SIMP(statut='f',typ='R'),
16353              MF_LTLT         =SIMP(statut='f',typ='R'),
16354              MC_LLLZ         =SIMP(statut='f',typ='R'),
16355              MC_LLTZ         =SIMP(statut='f',typ='R'),
16356              MC_TTLZ         =SIMP(statut='f',typ='R'),
16357              MC_TTTZ         =SIMP(statut='f',typ='R'),
16358              MC_LTLZ         =SIMP(statut='f',typ='R'),
16359              MC_LTTZ         =SIMP(statut='f',typ='R'),
16360              FC_LLLZ         =SIMP(statut='f',typ='R'),
16361              FC_LLTZ         =SIMP(statut='f',typ='R'),
16362              FC_TTLZ         =SIMP(statut='f',typ='R'),
16363              FC_TTTZ         =SIMP(statut='f',typ='R'),
16364              FC_LTLZ         =SIMP(statut='f',typ='R'),
16365              FC_LTTZ         =SIMP(statut='f',typ='R'),
16366              C_LZLZ          =SIMP(statut='f',typ='R'),
16367              C_LZTZ          =SIMP(statut='f',typ='R'),
16368              C_TZTZ          =SIMP(statut='f',typ='R'),
16369              RHO             =SIMP(statut='f',typ='R'),
16370              ALPHA           =SIMP(statut='f',typ='R'),
16371            ),
16372            ELAS_COQUE_FO   =FACT(statut='f',
16373              regles=(EXCLUS('MEMB_L','M_LLLL',),
16374                      PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
16375                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
16376                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
16377                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
16378                                      'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
16379                                      'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
16380                                      'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
16381              MEMB_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16382              MEMB_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16383              MEMB_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16384              MEMB_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16385              FLEX_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16386              FLEX_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16387              FLEX_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16388              FLEX_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16389              CISA_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16390              CISA_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16391              M_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16392              M_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16393              M_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16394              M_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16395              M_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16396              M_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16397              F_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16398              F_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16399              F_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16400              F_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16401              F_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16402              F_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16403              MF_LLLL         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16404              MF_LLTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16405              MF_LLLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16406              MF_TTTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16407              MF_TTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16408              MF_LTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16409              MC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16410              MC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16411              MC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16412              MC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16413              MC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16414              MC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16415              FC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16416              FC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16417              FC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16418              FC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16419              FC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16420              FC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16421              C_LZLZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16422              C_LZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16423              C_TZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16424              RHO             =SIMP(statut='f',typ='R'),
16425              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16426            ),
16427            ELAS_MEMBRANE     =FACT(statut='f',
16428              M_LLLL          =SIMP(statut='o',typ='R'),
16429              M_LLTT          =SIMP(statut='o',typ='R'),
16430              M_LLLT          =SIMP(statut='o',typ='R'),
16431              M_TTTT          =SIMP(statut='o',typ='R'),
16432              M_TTLT          =SIMP(statut='o',typ='R'),
16433              M_LTLT          =SIMP(statut='o',typ='R'),
16434              RHO             =SIMP(statut='f',typ='R'),
16435              ALPHA           =SIMP(statut='f',typ='R'),
16436            ),
16437            ELAS_2NDG        =FACT(statut='f',
16438              A1              =SIMP(statut='o',typ='R'),
16439              A2              =SIMP(statut='f',typ='R'),
16440              A3              =SIMP(statut='f',typ='R'),
16441              A4              =SIMP(statut='f',typ='R'),
16442              A5              =SIMP(statut='f',typ='R'),
16443            ),
16444            ELAS_GLRC        =FACT(statut='f',
16445              regles=(PRESENT_PRESENT('BT1','BT2'),),
16446              E_M             =SIMP(statut='o',typ='R',val_min=0.E+0),
16447              NU_M            =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=0.5+0),
16448              E_F             =SIMP(statut='f',typ='R',val_min=0.E+0),
16449              NU_F            =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0),
16450              BT1             =SIMP(statut='f',typ='R',val_min=0.E+0),
16451              BT2             =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0),
16452              RHO             =SIMP(statut='f',typ='R',val_min=0.E+0),
16453              ALPHA           =SIMP(statut='f',typ='R'),
16454              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
16455              AMOR_BETA       =SIMP(statut='f',typ='R'),
16456              AMOR_HYST       =SIMP(statut='f',typ='R'),
16457            ),
16458            ELAS_GLRC_FO     =FACT(statut='f',
16459              regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),
16460                      PRESENT_PRESENT('BT1','BT2'),),
16461              E_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16462              NU_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16463              E_F             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16464              NU_F            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16465              BT1             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16466              BT2             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16467              RHO             =SIMP(statut='f',typ='R'),
16468              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
16469              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16470              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16471              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16472              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16473            ),
16474            CABLE           =FACT(statut='f',
16475              EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
16476            ),
16477 #
16478 # comportements mécanique non linéaire
16479 # vérification du domaine de validité
16480            VERI_BORNE      =FACT(statut='f',
16481              regles=(ENSEMBLE('TEMP_MAXI','TEMP_MINI'),
16482                      ),
16483              EPSI_MAXI       =SIMP(statut='f',typ='R'),
16484              TEMP_MAXI       =SIMP(statut='f',typ='R'),
16485              TEMP_MINI       =SIMP(statut='f',typ='R'),
16486              VEPS_MAXI       =SIMP(statut='f',typ='R'),
16487            ),
16488            TRACTION        =FACT(statut='f',
16489              SIGM            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16490
16491            ),
16492            ECRO_LINE       =FACT(statut='f',
16493              D_SIGM_EPSI     =SIMP(statut='o',typ='R',),
16494              SY              =SIMP(statut='o',typ='R',),
16495              SIGM_LIM        =SIMP(statut='f',typ='R'),
16496              EPSI_LIM        =SIMP(statut='f',typ='R'),
16497            ),
16498            ENDO_HETEROGENE   =FACT(statut='f',
16499              WEIBULL         =SIMP(statut='o',typ='R',),
16500              SY              =SIMP(statut='o',typ='R',),
16501              KI              =SIMP(statut='o',typ='R',),
16502              EPAI            =SIMP(statut='o',typ='R',),
16503              GR              =SIMP(statut='f',typ='R',defaut= 1.0),
16504            ),
16505            ECRO_LINE_FO    =FACT(statut='f',
16506              D_SIGM_EPSI     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16507              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16508            ),
16509            ECRO_PUIS       =FACT(statut='f',
16510              SY              =SIMP(statut='o',typ='R',),
16511              A_PUIS          =SIMP(statut='o',typ='R',val_min=0.0),
16512              N_PUIS          =SIMP(statut='o',typ='R',val_min=1.E-6),
16513            ),
16514            ECRO_PUIS_FO    =FACT(statut='f',
16515              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16516              A_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16517              N_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16518            ),
16519            ECRO_COOK       =FACT(statut='f',
16520              regles=(PRESENT_PRESENT('C','EPSP0'),
16521                      PRESENT_PRESENT('TROOM','TMELT','M_PUIS'),),
16522              A               =SIMP(statut='o',typ='R',val_min=0.0),
16523              B               =SIMP(statut='o',typ='R',val_min=0.0),
16524              C               =SIMP(statut='f',typ='R',val_min=0.0),
16525              N_PUIS          =SIMP(statut='o',typ='R',val_min=0.0),
16526              M_PUIS          =SIMP(statut='f',typ='R',val_min=0.0),
16527              EPSP0           =SIMP(statut='f',typ='R',val_min=1.E-6),
16528              TROOM           =SIMP(statut='f',typ='R',val_min=0.0),
16529              TMELT           =SIMP(statut='f',typ='R',val_min=0.0),
16530            ),
16531            ECRO_COOK_FO       =FACT(statut='f',
16532              regles=(PRESENT_PRESENT('C','EPSP0'),
16533                      PRESENT_PRESENT('TROOM','TMELT','M_PUIS'),),
16534              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16535              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16536              C               =SIMP(statut='f',typ='R',val_min=0.0),
16537              N_PUIS          =SIMP(statut='o',typ='R',val_min=0.0),
16538              M_PUIS          =SIMP(statut='f',typ='R',val_min=0.0),
16539              EPSP0           =SIMP(statut='f',typ='R',val_min=1.E-6),
16540              TROOM           =SIMP(statut='f',typ='R',val_min=0.0),
16541              TMELT           =SIMP(statut='f',typ='R',val_min=0.0),
16542            ),
16543            BETON_ECRO_LINE =FACT(statut='f',
16544              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
16545              SYT             =SIMP(statut='o',typ='R'),
16546              SYC             =SIMP(statut='f',typ='R'),
16547            ),
16548            BETON_REGLE_PR =FACT(statut='f',
16549              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
16550              SYT             =SIMP(statut='o',typ='R'),
16551              SYC             =SIMP(statut='f',typ='R'),
16552              EPSC            =SIMP(statut='f',typ='R'),
16553              N               =SIMP(statut='f',typ='R'),
16554            ),
16555            ENDO_ORTH_BETON  =FACT(statut='f',
16556              ALPHA            =SIMP(statut='f',typ='R',defaut=0.9),
16557              K0               =SIMP(statut='o',typ='R'),
16558              K1               =SIMP(statut='o',typ='R'),
16559              K2               =SIMP(statut='f',typ='R',defaut=7.E-4),
16560              ECROB            =SIMP(statut='o',typ='R'),
16561              ECROD            =SIMP(statut='o',typ='R'),
16562            ),
16563            PRAGER          =FACT(statut='f',
16564              C               =SIMP(statut='o',typ='R'),
16565            ),
16566            PRAGER_FO       =FACT(statut='f',
16567              C               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16568            ),
16569            TAHERI          =FACT(statut='f',
16570              R_0             =SIMP(statut='o',typ='R'),
16571              ALPHA           =SIMP(statut='o',typ='R'),
16572              M               =SIMP(statut='o',typ='R'),
16573              A               =SIMP(statut='o',typ='R'),
16574              B               =SIMP(statut='o',typ='R'),
16575              C1              =SIMP(statut='o',typ='R'),
16576              C_INF           =SIMP(statut='o',typ='R'),
16577              S               =SIMP(statut='o',typ='R'),
16578            ),
16579            TAHERI_FO       =FACT(statut='f',
16580              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16581              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16582              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16583              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16584              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16585              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16586              C_INF           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16587              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16588            ),
16589            ROUSSELIER      =FACT(statut='f',
16590              D               =SIMP(statut='o',typ='R'),
16591              SIGM_1          =SIMP(statut='o',typ='R'),
16592              PORO_INIT       =SIMP(statut='o',typ='R'),
16593              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
16594              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
16595              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
16596              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
16597              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
16598              DP_MAXI         =SIMP(statut='f',typ='R',defaut= 0.1),
16599              BETA            =SIMP(statut='f',typ='R',defaut=0.85),
16600            ),
16601            ROUSSELIER_FO   =FACT(statut='f',
16602              D               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16603              SIGM_1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16604              PORO_INIT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16605              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
16606              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
16607              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
16608              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
16609              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
16610              DP_MAXI         =SIMP(statut='f',typ='R',defaut= 0.1),
16611              BETA            =SIMP(statut='f',typ='R',defaut=0.85),
16612            ),
16613            VISC_SINH      =FACT(statut='f',
16614              SIGM_0          =SIMP(statut='o',typ='R'),
16615              EPSI_0          =SIMP(statut='o',typ='R'),
16616              M               =SIMP(statut='o',typ='R'),
16617            ),
16618            VISC_SINH_FO      =FACT(statut='f',
16619              SIGM_0          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16620              EPSI_0          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16621              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16622            ),
16623            CIN1_CHAB  =FACT(statut='f',
16624              R_0             =SIMP(statut='o',typ='R'),
16625              R_I             =SIMP(statut='f',typ='R'),
16626              B               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
16627              C_I             =SIMP(statut='o',typ='R'),
16628              K               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
16629              W               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
16630              G_0             =SIMP(statut='o',typ='R'),
16631              A_I             =SIMP(statut='f',typ='R',defaut= 1.0E+0),
16632            ),
16633            CIN1_CHAB_FO  =FACT(statut='f',
16634              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16635              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16636              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16637              C_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16638              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16639              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16640              G_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16641              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16642            ),
16643            CIN2_CHAB  =FACT(statut='f',
16644              R_0             =SIMP(statut='o',typ='R'),
16645              R_I             =SIMP(statut='f',typ='R'),
16646              B               =SIMP(statut='f',typ='R',defaut= 0.E+0),
16647              C1_I            =SIMP(statut='o',typ='R'),
16648              C2_I            =SIMP(statut='o',typ='R'),
16649              K               =SIMP(statut='f',typ='R',defaut= 1.),
16650              W               =SIMP(statut='f',typ='R',defaut= 0.E+0),
16651              G1_0            =SIMP(statut='o',typ='R'),
16652              G2_0            =SIMP(statut='o',typ='R'),
16653              A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16654            ),
16655            CIN2_CHAB_FO  =FACT(statut='f',
16656              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16657              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16658              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16659              C1_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16660              C2_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16661              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16662              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16663              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16664              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16665              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16666            ),
16667            CIN2_NRAD  =FACT(statut='f',
16668              DELTA1          =SIMP(statut='f',typ='R',defaut= 1.E+0,val_min=0.E+0, val_max=1.E+0),
16669              DELTA2          =SIMP(statut='f',typ='R',defaut= 1.E+0,val_min=0.E+0, val_max=1.E+0),
16670            ),
16671            MEMO_ECRO       =FACT(statut='f',
16672              MU              =SIMP(statut='o',typ='R'),
16673              Q_M             =SIMP(statut='o',typ='R'),
16674              Q_0             =SIMP(statut='o',typ='R'),
16675              ETA             =SIMP(statut='f',typ='R',defaut= 0.5E+0 ),
16676            ),
16677            MEMO_ECRO_FO        =FACT(statut='f',
16678              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16679              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16680              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16681              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16682            ),
16683            VISCOCHAB       =FACT(statut='f',
16684              K_0             =SIMP(statut='o',typ='R'),
16685              A_K             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16686              A_R             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16687              K               =SIMP(statut='o',typ='R'),
16688              N               =SIMP(statut='o',typ='R'),
16689              ALP             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16690              B               =SIMP(statut='f',typ='R'),
16691              M_R             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16692              G_R             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16693              MU              =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
16694              Q_M             =SIMP(statut='o',typ='R'),
16695              Q_0             =SIMP(statut='o',typ='R'),
16696              QR_0            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16697              ETA             =SIMP(statut='f',typ='R',defaut= 0.5E+0 ),
16698              C1              =SIMP(statut='o',typ='R'),
16699              M_1             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16700              D1              =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16701              G_X1            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16702              G1_0            =SIMP(statut='o',typ='R'),
16703              C2              =SIMP(statut='o',typ='R'),
16704              M_2             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16705              D2              =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16706              G_X2            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16707              G2_0            =SIMP(statut='o',typ='R'),
16708              A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
16709            ),
16710            VISCOCHAB_FO    =FACT(statut='f',
16711              K_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16712              A_K             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16713              A_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16714              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16715              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16716              ALP             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16717              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16718              M_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16719              G_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16720              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16721              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16722              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16723              QR_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16724              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16725              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16726              M_1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16727              D1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16728              G_X1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16729              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16730              C2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16731              M_2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16732              D2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16733              G_X2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16734              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16735              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16736            ),
16737            LEMAITRE        =FACT(statut='f',
16738              N               =SIMP(statut='o',typ='R'),
16739              UN_SUR_K        =SIMP(statut='o',typ='R'),
16740              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16741            ),
16742            LEMAITRE_IRRA    =FACT(statut='f',
16743              N               =SIMP(statut='o',typ='R'),
16744              UN_SUR_K        =SIMP(statut='o',typ='R'),
16745              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16746              QSR_K           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16747              BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16748              PHI_ZERO        =SIMP(statut='f',typ='R',defaut= 1.E+20),
16749              L               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16750              GRAN_FO         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16751            ),
16752            LMARC_IRRA       =FACT(statut='f',
16753              DE_0            =SIMP(statut='o',typ='R'),
16754              R_0             =SIMP(statut='o',typ='R'),
16755              N               =SIMP(statut='o',typ='R'),
16756              K               =SIMP(statut='o',typ='R'),
16757              Y_I             =SIMP(statut='o',typ='R'),
16758              Y_0             =SIMP(statut='o',typ='R'),
16759              B               =SIMP(statut='o',typ='R'),
16760              A_0             =SIMP(statut='o',typ='R'),
16761              RM              =SIMP(statut='o',typ='R'),
16762              M               =SIMP(statut='o',typ='R'),
16763              P               =SIMP(statut='o',typ='R'),
16764              P1              =SIMP(statut='o',typ='R'),
16765              P2              =SIMP(statut='o',typ='R'),
16766              M11             =SIMP(statut='o',typ='R'),
16767              M22             =SIMP(statut='o',typ='R'),
16768              M33             =SIMP(statut='o',typ='R'),
16769              M66             =SIMP(statut='o',typ='R'),
16770              N11             =SIMP(statut='o',typ='R'),
16771              N22             =SIMP(statut='o',typ='R'),
16772              N33             =SIMP(statut='o',typ='R'),
16773              N66             =SIMP(statut='o',typ='R'),
16774              Q11             =SIMP(statut='o',typ='R'),
16775              Q22             =SIMP(statut='o',typ='R'),
16776              Q33             =SIMP(statut='o',typ='R'),
16777              Q66             =SIMP(statut='o',typ='R'),
16778              R11             =SIMP(statut='o',typ='R'),
16779              R22             =SIMP(statut='o',typ='R'),
16780              R33             =SIMP(statut='o',typ='R'),
16781              R66             =SIMP(statut='o',typ='R'),
16782              GRAN_FO         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16783            ),
16784           VISC_IRRA_LOG    =FACT(statut='f',
16785              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
16786              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
16787              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
16788              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
16789              FLUX_PHI        =SIMP(statut='o',typ='R',),
16790            ),
16791           GRAN_IRRA_LOG    =FACT(statut='f',
16792              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
16793              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
16794              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
16795              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
16796              FLUX_PHI        =SIMP(statut='o',typ='R',),
16797              GRAN_FO         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16798            ),
16799           LEMA_SEUIL   =FACT(statut='f',
16800              A               =SIMP(statut='o',typ='R',),
16801              S               =SIMP(statut='o',typ='R',),
16802            ),
16803           LEMA_SEUIL_FO=FACT(statut='f',
16804              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16805              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16806            ),
16807          IRRAD3M=FACT(statut='f',
16808                R02      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16809                EPSI_U   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16810                RM       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16811                AI0      =SIMP(statut='o',typ='R',val_min=0.0),
16812                ZETA_F   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16813                ETAI_S   =SIMP(statut='o',typ='R',val_min=0.0),
16814                RG0      =SIMP(statut='o',typ='R',val_min=0.0),
16815                ALPHA    =SIMP(statut='o',typ='R',val_min=0.0),
16816                PHI0     =SIMP(statut='o',typ='R',val_min=0.0),
16817                KAPPA    =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.8,val_max=1.0),
16818                ZETA_G   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16819                TOLER_ET =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.15 ),
16820          ),
16821            LEMAITRE_FO     =FACT(statut='f',
16822              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16823              UN_SUR_K        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16824              UN_SUR_M        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16825            ),
16826              META_LEMA_ANI     =FACT(statut='f',
16827              F1_A            =SIMP(statut='o',typ='R'),
16828              F2_A            =SIMP(statut='o',typ='R'),
16829              C_A             =SIMP(statut='o',typ='R'),
16830              F1_M            =SIMP(statut='o',typ='R'),
16831              F2_M            =SIMP(statut='o',typ='R'),
16832              C_M             =SIMP(statut='o',typ='R'),
16833              F1_N            =SIMP(statut='o',typ='R'),
16834              F2_N            =SIMP(statut='o',typ='R'),
16835              C_N             =SIMP(statut='o',typ='R'),
16836              F1_Q            =SIMP(statut='o',typ='R'),
16837              F2_Q            =SIMP(statut='o',typ='R'),
16838              C_Q             =SIMP(statut='o',typ='R'),
16839              F_MRR_RR        =SIMP(statut='o',typ='R'),
16840              C_MRR_RR        =SIMP(statut='o',typ='R'),
16841              F_MTT_TT        =SIMP(statut='o',typ='R'),
16842              C_MTT_TT        =SIMP(statut='o',typ='R'),
16843              F_MZZ_ZZ        =SIMP(statut='o',typ='R'),
16844              C_MZZ_ZZ        =SIMP(statut='o',typ='R'),
16845              F_MRT_RT        =SIMP(statut='o',typ='R'),
16846              C_MRT_RT        =SIMP(statut='o',typ='R'),
16847              F_MRZ_RZ        =SIMP(statut='o',typ='R'),
16848              C_MRZ_RZ        =SIMP(statut='o',typ='R'),
16849              F_MTZ_TZ        =SIMP(statut='o',typ='R'),
16850              C_MTZ_TZ        =SIMP(statut='o',typ='R'),
16851            ),
16852              META_LEMA_ANI_FO  =FACT(statut='f',
16853              F1_A            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16854              F2_A            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16855              C_A             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16856              F1_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16857              F2_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16858              C_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16859              F1_N            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16860              F2_N            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16861              C_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16862              F1_Q            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16863              F2_Q            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16864              C_Q             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16865              F_MRR_RR        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16866              C_MRR_RR        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16867              F_MTT_TT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16868              C_MTT_TT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16869              F_MZZ_ZZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16870              C_MZZ_ZZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16871              F_MRT_RT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16872              C_MRT_RT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16873              F_MRZ_RZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16874              C_MRZ_RZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16875              F_MTZ_TZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16876              C_MTZ_TZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16877            ),
16878            ARME            =FACT(statut='f',
16879              KYE             =SIMP(statut='o',typ='R'),
16880              DLE             =SIMP(statut='o',typ='R'),
16881              KYP             =SIMP(statut='o',typ='R'),
16882              DLP             =SIMP(statut='o',typ='R'),
16883              KYG             =SIMP(statut='o',typ='R'),
16884            ),
16885            ASSE_CORN       =FACT(statut='f',
16886              NU_1            =SIMP(statut='o',typ='R'),
16887              MU_1            =SIMP(statut='o',typ='R'),
16888              DXU_1           =SIMP(statut='o',typ='R'),
16889              DRYU_1          =SIMP(statut='o',typ='R'),
16890              C_1             =SIMP(statut='o',typ='R'),
16891              NU_2            =SIMP(statut='o',typ='R'),
16892              MU_2            =SIMP(statut='o',typ='R'),
16893              DXU_2           =SIMP(statut='o',typ='R'),
16894              DRYU_2          =SIMP(statut='o',typ='R'),
16895              C_2             =SIMP(statut='o',typ='R'),
16896              KY              =SIMP(statut='o',typ='R'),
16897              KZ              =SIMP(statut='o',typ='R'),
16898              KRX             =SIMP(statut='o',typ='R'),
16899              KRZ             =SIMP(statut='o',typ='R'),
16900              R_P0            =SIMP(statut='f',typ='R',defaut= 1.E+4 ),
16901            ),
16902            DIS_CONTACT     =FACT(statut='f',
16903              RIGI_NOR        =SIMP(statut='f',typ='R' ),
16904              RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16905              AMOR_NOR        =SIMP(statut='f',typ='R' ),
16906              AMOR_TAN        =SIMP(statut='f',typ='R' ),
16907              COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16908              DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16909              DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16910              JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
16911            ),
16912            ENDO_SCALAIRE   =FACT(statut='f',
16913              K               =SIMP(statut='o',typ='R',val_min=0.0),
16914              P               =SIMP(statut='o',typ='R',val_min=1.0),
16915              Q               =SIMP(statut='f',typ='R',defaut=0.0),
16916              M               =SIMP(statut='o',typ='R',),
16917              C_COMP          =SIMP(statut='f',typ='R',defaut=0.0),
16918              C_VOLU          =SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0),
16919              COEF_RIGI_MINI  =SIMP(statut='f',typ='R',defaut=1.E-5),
16920            ),
16921            ENDO_SCALAIRE_FO =FACT(statut='f',
16922              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16923              P               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16924              Q               =SIMP(statut='f',typ='R',defaut=0.0),
16925              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16926              C_COMP          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16927              C_VOLU          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16928              COEF_RIGI_MINI  =SIMP(statut='f',typ='R',defaut=1.E-5),
16929            ),
16930            ENDO_FISS_EXP    =FACT(statut='f',
16931              K               =SIMP(statut='o',typ='R',val_min=0.0),
16932              P               =SIMP(statut='o',typ='R',val_min=1.0),
16933              Q               =SIMP(statut='f',typ='R',defaut=0.0),
16934              M               =SIMP(statut='o',typ='R',),
16935              TAU             =SIMP(statut='o',typ='R'),
16936              SIG0            =SIMP(statut='o',typ='R'),
16937              BETA            =SIMP(statut='f',typ='R',defaut=0.1),
16938              COEF_RIGI_MINI  =SIMP(statut='f',typ='R',defaut=1.E-5),
16939            ),
16940            ENDO_FISS_EXP_FO =FACT(statut='f',
16941              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16942              P               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16943              Q               =SIMP(statut='f',typ='R',defaut=0.0),
16944              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16945              TAU             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16946              SIG0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16947              BETA            =SIMP(statut='f',typ='R',defaut=0.1),
16948              COEF_RIGI_MINI  =SIMP(statut='f',typ='R',defaut=1.E-5),
16949            ),
16950            DIS_GRICRA    =FACT(statut='f',
16951              KN_AX       =SIMP(statut='o',typ='R' ),
16952              KT_AX       =SIMP(statut='o',typ='R' ),
16953              COUL_AX     =SIMP(statut='o',typ='R' ),
16954              F_SER       =SIMP(statut='f',typ='R' ),
16955              F_SER_FO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16956              ET_AX       =SIMP(statut='f',typ='R',defaut=1.e-7 ),
16957              ET_ROT      =SIMP(statut='f',typ='R',defaut=1.e-7 ),
16958              ANG1        =SIMP(statut='f',typ='R' ),
16959              ANG2        =SIMP(statut='f',typ='R' ),
16960              PEN1        =SIMP(statut='f',typ='R' ),
16961              PEN2        =SIMP(statut='f',typ='R' ),
16962              PEN3        =SIMP(statut='f',typ='R' ),
16963              ANG1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16964              ANG2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16965              PEN1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16966              PEN2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16967              PEN3_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16968              regles=(EXCLUS('ANG1','ANG1_FO',),
16969                      UN_PARMI('ANG1','ANG1_FO',),
16970                      EXCLUS('F_SER','F_SER_FO',),
16971                      UN_PARMI('F_SER','F_SER_FO',),
16972                      PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',),
16973                      PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',),
16974                                      ),
16975            ),
16976            BETON_DOUBLE_DP =FACT(statut='f',
16977              F_C             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16978              F_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16979              COEF_BIAX       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16980              ENER_COMP_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16981              ENER_TRAC_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
16982              COEF_ELAS_COMP  =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=100.E+0),
16983              LONG_CARA       =SIMP(statut='f',typ='R',val_min=0.E+0),
16984              ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
16985              ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
16986            ),
16987          MAZARS=FACT(statut='f',min=0 ,
16988              EPSD0           =SIMP(statut='o',typ='R'),
16989              K               =SIMP(statut='o',typ='R'),
16990              AC              =SIMP(statut='o',typ='R'),
16991              BC              =SIMP(statut='o',typ='R'),
16992              AT              =SIMP(statut='o',typ='R'),
16993              BT              =SIMP(statut='o',typ='R'),
16994              CHI             =SIMP(statut='f',typ='R',val_min=0.0E+0,val_max=1.0E+0),
16995              SIGM_LIM        =SIMP(statut='f',typ='R'),
16996              EPSI_LIM        =SIMP(statut='f',typ='R'),
16997            ),
16998          MAZARS_FO=FACT(statut='f',min=0 ,
16999              EPSD0           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17000              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17001              AC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17002              BC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17003              AT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17004              BT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17005              CHI             =SIMP(statut='f',typ='R'),
17006            ),
17007          JOINT_BA=FACT(statut='f',min=0 ,max=1,
17008              HPEN            =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0),
17009              GTT             =SIMP(statut='o',typ='R',val_min=0.E+0),
17010              GAMD0           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1),
17011              AD1             =SIMP(statut='o',typ='R',val_min=0.E+0),
17012              BD1             =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1),
17013              GAMD2           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
17014              AD2             =SIMP(statut='o',typ='R',val_min=0.E+0),
17015              BD2             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
17016              VIFROT          =SIMP(statut='o',typ='R',val_min=0.E+0),
17017              FA              =SIMP(statut='o',typ='R',val_min=0.E+0),
17018              FC              =SIMP(statut='o',typ='R',val_min=0.E+0),
17019              EPSTR0          =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
17020              ADN             =SIMP(statut='o',typ='R',val_min=0.E+0),
17021              BDN             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
17022            ),
17023           VENDOCHAB       =FACT(statut='f',
17024              SY              =SIMP(statut='o',typ='R',defaut= 0.E+0),
17025              ALPHA_D         =SIMP(statut='o',typ='R',defaut= 0.E+0),
17026              BETA_D          =SIMP(statut='o',typ='R',defaut= 0.E+0),
17027              R_D             =SIMP(statut='o',typ='R'),
17028              A_D             =SIMP(statut='o',typ='R'),
17029              K_D             =SIMP(statut='o',typ='R'),
17030            ),
17031            VENDOCHAB_FO    =FACT(statut='f',
17032              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17033              ALPHA_D         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17034              BETA_D          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17035              R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17036              A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17037              K_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17038            ),
17039           HAYHURST     =FACT(statut='f',
17040              EPS0         =SIMP(statut='o',typ='R'),
17041              K            =SIMP(statut='o',typ='R'),
17042              H1           =SIMP(statut='o',typ='R'),
17043              H2           =SIMP(statut='o',typ='R'),
17044              DELTA1       =SIMP(statut='o',typ='R'),
17045              DELTA2       =SIMP(statut='o',typ='R'),
17046              H1ST         =SIMP(statut='o',typ='R'),
17047              H2ST         =SIMP(statut='o',typ='R'),
17048              KC           =SIMP(statut='f',typ='R',defaut=0.),
17049              BIGA         =SIMP(statut='o',typ='R'),
17050              SIG0         =SIMP(statut='o',typ='R'),
17051              ALPHAD       =SIMP(statut='f',typ='R',defaut=0.),
17052              S_EQUI_D     =SIMP(statut='f',typ='R',defaut=0.,into=(0.,1.) ),
17053            ),
17054            VISC_ENDO      =FACT(statut='f',
17055              SY              =SIMP(statut='o',typ='R',defaut= 0.E+0),
17056              R_D             =SIMP(statut='o',typ='R'),
17057              A_D             =SIMP(statut='o',typ='R'),
17058            ),
17059            VISC_ENDO_FO   =FACT(statut='f',
17060              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17061              R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17062              A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17063            ),
17064            PINTO_MENEGOTTO =FACT(statut='f',
17065              SY              =SIMP(statut='o',typ='R'),
17066              EPSI_ULTM       =SIMP(statut='o',typ='R'),
17067              SIGM_ULTM       =SIMP(statut='o',typ='R'),
17068              ELAN            =SIMP(statut='f',typ='R',defaut= 4. ),
17069              EPSP_HARD       =SIMP(statut='o',typ='R'),
17070              R_PM            =SIMP(statut='f',typ='R',defaut= 20. ),
17071              EP_SUR_E        =SIMP(statut='f',typ='R'),
17072              A1_PM           =SIMP(statut='f',typ='R',defaut= 18.5 ),
17073              A2_PM           =SIMP(statut='f',typ='R',defaut= 0.15 ),
17074              A6_PM           =SIMP(statut='f',typ='R',defaut= 620. ),
17075              C_PM            =SIMP(statut='f',typ='R',defaut= 0.5 ),
17076              A_PM            =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
17077            ),
17078            BPEL_BETON      =FACT(statut='f',
17079              PERT_FLUA       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17080              PERT_RETR       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17081            ),
17082            BPEL_ACIER      =FACT(statut='f',
17083             regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),
17084                      PRESENT_PRESENT('MU0_RELAX','F_PRG',),),
17085              RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17086              MU0_RELAX       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17087              F_PRG           =SIMP(statut='f',typ='R'),
17088              FROT_COURB      =SIMP(statut='f',typ='R',defaut=0.E+0),
17089              FROT_LINE       =SIMP(statut='f',typ='R',defaut=0.E+0),
17090            ),
17091           ETCC_BETON      =FACT(statut='f',
17092             EP_BETON           =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0. ),
17093            ),
17094           ETCC_ACIER      =FACT(statut='f',
17095             regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),),
17096              F_PRG           =SIMP(statut='f',typ='R',val_min=0.E+0),
17097              COEF_FROT       =SIMP(statut='f',typ='R',defaut=0.E+0,val_min=0.E+0),
17098              PERT_LIGNE     =SIMP(statut='f',typ='R',defaut=0.E+0,val_min=0.E+0),
17099              RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
17100
17101
17102            ),
17103            MOHR_COULOMB  =FACT(statut='f',
17104                PHI         =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=60.E+0,),
17105                ANGDIL      =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=60.E+0,),
17106                COHESION    =SIMP(statut='o',typ='R',val_min=0.E+0,),
17107              ),
17108
17109            CAM_CLAY      =FACT(statut='f',
17110              MU              =SIMP(statut='o',typ='R'),
17111              PORO            =SIMP(statut='o',typ='R'),
17112              LAMBDA          =SIMP(statut='o',typ='R'),
17113              KAPA            =SIMP(statut='o',typ='R'),
17114              M               =SIMP(statut='o',typ='R'),
17115              PRES_CRIT       =SIMP(statut='o',typ='R'),
17116              KCAM            =SIMP(statut='f',typ='R',val_min=0.E+0),
17117              PTRAC           =SIMP(statut='f',typ='R',val_max=0.E+0),
17118                regles=(PRESENT_PRESENT('PTRAC','KCAM',),),
17119            ),
17120            BARCELONE      =FACT(statut='f',
17121              MU              =SIMP(statut='o',typ='R'),
17122              PORO            =SIMP(statut='o',typ='R'),
17123              LAMBDA          =SIMP(statut='o',typ='R'),
17124              KAPA            =SIMP(statut='o',typ='R'),
17125              M               =SIMP(statut='o',typ='R'),
17126              PRES_CRIT       =SIMP(statut='o',typ='R'),
17127              PA            =SIMP(statut='o',typ='R'),
17128              R             =SIMP(statut='o',typ='R'),
17129              BETA          =SIMP(statut='o',typ='R'),
17130              KC            =SIMP(statut='o',typ='R'),
17131              PC0_INIT      =SIMP(statut='o',typ='R'),
17132              KAPAS         =SIMP(statut='o',typ='R'),
17133              LAMBDAS       =SIMP(statut='o',typ='R'),
17134              ALPHAB        =SIMP(statut='f',typ='R'),
17135            ),
17136            CJS             =FACT(statut='f',
17137              BETA_CJS        =SIMP(statut='o',typ='R'),
17138              RM              =SIMP(statut='o',typ='R'),
17139              N_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17140              KP              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17141              RC              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17142              A_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17143              B_CJS           =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
17144              C_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17145              GAMMA_CJS       =SIMP(statut='o',typ='R'),
17146              MU_CJS          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17147              PCO             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17148              PA              =SIMP(statut='o',typ='R'),
17149              Q_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17150              R_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17151            ),
17152            HUJEUX   =FACT(statut='f',
17153              N      =SIMP(statut='o',typ='R' ),
17154              BETA   =SIMP(statut='o',typ='R' ),
17155              B      =SIMP(statut='o',typ='R' ),
17156              D      =SIMP(statut='o',typ='R' ),
17157              PHI    =SIMP(statut='o',typ='R' ),
17158              ANGDIL =SIMP(statut='o',typ='R' ),
17159              PCO    =SIMP(statut='o',typ='R' ),
17160              PREF   =SIMP(statut='o',typ='R' ),
17161              ACYC   =SIMP(statut='o',typ='R' ),
17162              AMON   =SIMP(statut='o',typ='R' ),
17163              CCYC   =SIMP(statut='o',typ='R' ),
17164              CMON   =SIMP(statut='o',typ='R' ),
17165              RD_ELA =SIMP(statut='o',typ='R' ),
17166              RI_ELA =SIMP(statut='o',typ='R' ),
17167              RHYS   =SIMP(statut='o',typ='R' ),
17168              RMOB   =SIMP(statut='o',typ='R' ),
17169              XM     =SIMP(statut='o',typ='R' ),
17170              RD_CYC =SIMP(statut='o',typ='R' ),
17171              RI_CYC =SIMP(statut='o',typ='R' ),
17172              DILA   =SIMP(statut='o',typ='R' ),
17173              PTRAC  =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17174            ),
17175            ECRO_ASYM_LINE  =FACT(statut='f',
17176              DC_SIGM_EPSI    =SIMP(statut='o',typ='R'),
17177              SY_C            =SIMP(statut='o',typ='R'),
17178              DT_SIGM_EPSI    =SIMP(statut='o',typ='R'),
17179              SY_T            =SIMP(statut='o',typ='R'),
17180            ),
17181            GRANGER_FP      =FACT(statut='f',
17182              J1              =SIMP(statut='f',typ='R'),
17183              J2              =SIMP(statut='f',typ='R'),
17184              J3              =SIMP(statut='f',typ='R'),
17185              J4              =SIMP(statut='f',typ='R'),
17186              J5              =SIMP(statut='f',typ='R'),
17187              J6              =SIMP(statut='f',typ='R'),
17188              J7              =SIMP(statut='f',typ='R'),
17189              J8              =SIMP(statut='f',typ='R'),
17190              TAUX_1          =SIMP(statut='f',typ='R'),
17191              TAUX_2          =SIMP(statut='f',typ='R'),
17192              TAUX_3          =SIMP(statut='f',typ='R'),
17193              TAUX_4          =SIMP(statut='f',typ='R'),
17194              TAUX_5          =SIMP(statut='f',typ='R'),
17195              TAUX_6          =SIMP(statut='f',typ='R'),
17196              TAUX_7          =SIMP(statut='f',typ='R'),
17197              TAUX_8          =SIMP(statut='f',typ='R'),
17198              QSR_K           =SIMP(statut='f',typ='R'),
17199            ),
17200            GRANGER_FP_INDT =FACT(statut='f',
17201              J1              =SIMP(statut='f',typ='R'),
17202              J2              =SIMP(statut='f',typ='R'),
17203              J3              =SIMP(statut='f',typ='R'),
17204              J4              =SIMP(statut='f',typ='R'),
17205              J5              =SIMP(statut='f',typ='R'),
17206              J6              =SIMP(statut='f',typ='R'),
17207              J7              =SIMP(statut='f',typ='R'),
17208              J8              =SIMP(statut='f',typ='R'),
17209              TAUX_1          =SIMP(statut='f',typ='R'),
17210              TAUX_2          =SIMP(statut='f',typ='R'),
17211              TAUX_3          =SIMP(statut='f',typ='R'),
17212              TAUX_4          =SIMP(statut='f',typ='R'),
17213              TAUX_5          =SIMP(statut='f',typ='R'),
17214              TAUX_6          =SIMP(statut='f',typ='R'),
17215              TAUX_7          =SIMP(statut='f',typ='R'),
17216              TAUX_8          =SIMP(statut='f',typ='R'),
17217            ),
17218            V_GRANGER_FP    =FACT(statut='f',
17219              QSR_VEIL        =SIMP(statut='f',typ='R'),
17220              FONC_V          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17221            ),
17222            BETON_BURGER_FP   =FACT(statut='f',min=0 ,
17223              K_RS            =SIMP(statut='o',typ='R'),
17224              ETA_RS          =SIMP(statut='o',typ='R'),
17225              KAPPA           =SIMP(statut='o',typ='R'),
17226              ETA_IS          =SIMP(statut='o',typ='R'),
17227              K_RD            =SIMP(statut='o',typ='R'),
17228              ETA_RD          =SIMP(statut='o',typ='R'),
17229              ETA_ID          =SIMP(statut='o',typ='R'),
17230              ETA_FD          =SIMP(statut='f',typ='R'),
17231            ),
17232            BETON_UMLV_FP   =FACT(statut='f',min=0 ,
17233              K_RS            =SIMP(statut='o',typ='R'),
17234              ETA_RS          =SIMP(statut='o',typ='R'),
17235              K_IS            =SIMP(statut='o',typ='R'),
17236              ETA_IS          =SIMP(statut='o',typ='R'),
17237              K_RD            =SIMP(statut='o',typ='R'),
17238              ETA_RD          =SIMP(statut='o',typ='R'),
17239              ETA_ID          =SIMP(statut='o',typ='R'),
17240              ETA_FD          =SIMP(statut='f',typ='R'),
17241            ),
17242            BETON_RAG    =FACT(statut='f',
17243              ACTIV_FL        =SIMP(statut='f',typ='R',defaut=1.0 ),
17244              K_RS            =SIMP(statut='o',typ='R'),
17245              K_IS            =SIMP(statut='o',typ='R'),
17246              ETA_RS          =SIMP(statut='o',typ='R'),
17247              ETA_IS          =SIMP(statut='o',typ='R'),
17248              K_RD            =SIMP(statut='o',typ='R'),
17249              K_ID            =SIMP(statut='o',typ='R'),
17250              ETA_RD          =SIMP(statut='o',typ='R'),
17251              ETA_ID          =SIMP(statut='o',typ='R'),
17252              EPS_0           =SIMP(statut='o',typ='R'),
17253              TAU_0           =SIMP(statut='o',typ='R'),
17254              EPS_FL_L        =SIMP(statut='f',typ='R',defaut=3.0e-2 ),
17255              ACTIV_LO        =SIMP(statut='f',typ='R',defaut=1.0 ),
17256              F_C             =SIMP(statut='o',typ='R'),
17257              F_T             =SIMP(statut='o',typ='R'),
17258              ANG_CRIT        =SIMP(statut='f',typ='R',defaut=8.594367 ),
17259              EPS_COMP        =SIMP(statut='o',typ='R'),
17260              EPS_TRAC        =SIMP(statut='o',typ='R'),
17261              LC_COMP         =SIMP(statut='o',typ='R',defaut=1.0  ),
17262              LC_TRAC         =SIMP(statut='o',typ='R',defaut=1.0  ),
17263              HYD_PRES        =SIMP(statut='f',typ='R',defaut=0.   ),
17264              A_VAN_GE        =SIMP(statut='f',typ='R',defaut=0.0  ),
17265              B_VAN_GE        =SIMP(statut='f',typ='R',defaut=1.9  ),
17266              BIOT_EAU        =SIMP(statut='o',typ='R',defaut=0.3  ),
17267              MODU_EAU        =SIMP(statut='o',typ='R',defaut=0.0  ),
17268              W_EAU_0         =SIMP(statut='o',typ='R'),
17269              BIOT_GEL        =SIMP(statut='o',typ='R'),
17270              MODU_GEL        =SIMP(statut='o',typ='R'),
17271              VOL_GEL         =SIMP(statut='o',typ='R'),
17272              AVANC_LI        =SIMP(statut='o',typ='R'),
17273              SEUIL_SR        =SIMP(statut='o',typ='R'),
17274              PARA_CIN        =SIMP(statut='o',typ='R'),
17275              ENR_AC_G        =SIMP(statut='o',typ='R'),
17276            ),
17277            GLRC_DM         =FACT(statut='f',max=1,
17278              GAMMA_T         =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
17279              GAMMA_C         =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=1.E+0),
17280              GAMMA_F         =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
17281              NYT             =SIMP(statut='o',typ='R',val_min=0.E+0),
17282              NYC             =SIMP(statut='f',typ='R'),
17283              MYF             =SIMP(statut='o',typ='R',val_min=0.E+0),
17284              ALPHA_C         =SIMP(statut='d',typ='R',val_min=1.E+0,defaut=1.E+0),
17285            ),
17286            DHRC_SEUILS         =FACT(statut='f',
17287              SYD           =SIMP(statut='o',typ='R',),
17288              SCRIT         =SIMP(statut='o',typ='R',),
17289              K0MICR        =SIMP(statut='o',typ='R',),
17290              A011          =SIMP(statut='o',typ='R',),
17291              A012          =SIMP(statut='o',typ='R',),
17292              A013          =SIMP(statut='o',typ='R',),
17293              A014          =SIMP(statut='o',typ='R',),
17294              A015          =SIMP(statut='o',typ='R',),
17295              A016          =SIMP(statut='o',typ='R',),
17296              A022          =SIMP(statut='o',typ='R',),
17297              A023          =SIMP(statut='o',typ='R',),
17298              A024          =SIMP(statut='o',typ='R',),
17299              A025          =SIMP(statut='o',typ='R',),
17300              A026          =SIMP(statut='o',typ='R',),
17301              A033          =SIMP(statut='o',typ='R',),
17302              A034          =SIMP(statut='o',typ='R',),
17303              A035          =SIMP(statut='o',typ='R',),
17304              A036          =SIMP(statut='o',typ='R',),
17305              A044          =SIMP(statut='o',typ='R',),
17306              A045          =SIMP(statut='o',typ='R',),
17307              A046          =SIMP(statut='o',typ='R',),
17308              A055          =SIMP(statut='o',typ='R',),
17309              A056          =SIMP(statut='o',typ='R',),
17310              A066          =SIMP(statut='o',typ='R',),
17311            ),
17312            DHRC            =FACT(statut='f',
17313              AAC111        =SIMP(statut='o',typ='R',),
17314              AAC121        =SIMP(statut='o',typ='R',),
17315              AAC131        =SIMP(statut='o',typ='R',),
17316              AAC141        =SIMP(statut='o',typ='R',),
17317              AAC151        =SIMP(statut='o',typ='R',),
17318              AAC161        =SIMP(statut='o',typ='R',),
17319              AAC221        =SIMP(statut='o',typ='R',),
17320              AAC231        =SIMP(statut='o',typ='R',),
17321              AAC241        =SIMP(statut='o',typ='R',),
17322              AAC251        =SIMP(statut='o',typ='R',),
17323              AAC261        =SIMP(statut='o',typ='R',),
17324              AAC331        =SIMP(statut='o',typ='R',),
17325              AAC341        =SIMP(statut='o',typ='R',),
17326              AAC351        =SIMP(statut='o',typ='R',),
17327              AAC361        =SIMP(statut='o',typ='R',),
17328              AAC441        =SIMP(statut='o',typ='R',),
17329              AAC451        =SIMP(statut='o',typ='R',),
17330              AAC461        =SIMP(statut='o',typ='R',),
17331              AAC551        =SIMP(statut='o',typ='R',),
17332              AAC561        =SIMP(statut='o',typ='R',),
17333              AAC661        =SIMP(statut='o',typ='R',),
17334              AAC112        =SIMP(statut='o',typ='R',),
17335              AAC122        =SIMP(statut='o',typ='R',),
17336              AAC132        =SIMP(statut='o',typ='R',),
17337              AAC142        =SIMP(statut='o',typ='R',),
17338              AAC152        =SIMP(statut='o',typ='R',),
17339              AAC162        =SIMP(statut='o',typ='R',),
17340              AAC222        =SIMP(statut='o',typ='R',),
17341              AAC232        =SIMP(statut='o',typ='R',),
17342              AAC242        =SIMP(statut='o',typ='R',),
17343              AAC252        =SIMP(statut='o',typ='R',),
17344              AAC262        =SIMP(statut='o',typ='R',),
17345              AAC332        =SIMP(statut='o',typ='R',),
17346              AAC342        =SIMP(statut='o',typ='R',),
17347              AAC352        =SIMP(statut='o',typ='R',),
17348              AAC362        =SIMP(statut='o',typ='R',),
17349              AAC442        =SIMP(statut='o',typ='R',),
17350              AAC452        =SIMP(statut='o',typ='R',),
17351              AAC462        =SIMP(statut='o',typ='R',),
17352              AAC552        =SIMP(statut='o',typ='R',),
17353              AAC562        =SIMP(statut='o',typ='R',),
17354              AAC662        =SIMP(statut='o',typ='R',),
17355              AAT111        =SIMP(statut='o',typ='R',),
17356              AAT121        =SIMP(statut='o',typ='R',),
17357              AAT131        =SIMP(statut='o',typ='R',),
17358              AAT141        =SIMP(statut='o',typ='R',),
17359              AAT151        =SIMP(statut='o',typ='R',),
17360              AAT161        =SIMP(statut='o',typ='R',),
17361              AAT221        =SIMP(statut='o',typ='R',),
17362              AAT231        =SIMP(statut='o',typ='R',),
17363              AAT241        =SIMP(statut='o',typ='R',),
17364              AAT251        =SIMP(statut='o',typ='R',),
17365              AAT261        =SIMP(statut='o',typ='R',),
17366              AAT331        =SIMP(statut='o',typ='R',),
17367              AAT341        =SIMP(statut='o',typ='R',),
17368              AAT351        =SIMP(statut='o',typ='R',),
17369              AAT361        =SIMP(statut='o',typ='R',),
17370              AAT441        =SIMP(statut='o',typ='R',),
17371              AAT451        =SIMP(statut='o',typ='R',),
17372              AAT461        =SIMP(statut='o',typ='R',),
17373              AAT551        =SIMP(statut='o',typ='R',),
17374              AAT561        =SIMP(statut='o',typ='R',),
17375              AAT661        =SIMP(statut='o',typ='R',),
17376              AAT112        =SIMP(statut='o',typ='R',),
17377              AAT122        =SIMP(statut='o',typ='R',),
17378              AAT132        =SIMP(statut='o',typ='R',),
17379              AAT142        =SIMP(statut='o',typ='R',),
17380              AAT152        =SIMP(statut='o',typ='R',),
17381              AAT162        =SIMP(statut='o',typ='R',),
17382              AAT222        =SIMP(statut='o',typ='R',),
17383              AAT232        =SIMP(statut='o',typ='R',),
17384              AAT242        =SIMP(statut='o',typ='R',),
17385              AAT252        =SIMP(statut='o',typ='R',),
17386              AAT262        =SIMP(statut='o',typ='R',),
17387              AAT332        =SIMP(statut='o',typ='R',),
17388              AAT342        =SIMP(statut='o',typ='R',),
17389              AAT352        =SIMP(statut='o',typ='R',),
17390              AAT362        =SIMP(statut='o',typ='R',),
17391              AAT442        =SIMP(statut='o',typ='R',),
17392              AAT452        =SIMP(statut='o',typ='R',),
17393              AAT462        =SIMP(statut='o',typ='R',),
17394              AAT552        =SIMP(statut='o',typ='R',),
17395              AAT562        =SIMP(statut='o',typ='R',),
17396              AAT662        =SIMP(statut='o',typ='R',),
17397              GAC111        =SIMP(statut='o',typ='R',),
17398              GAC121        =SIMP(statut='o',typ='R',),
17399              GAC131        =SIMP(statut='o',typ='R',),
17400              GAC141        =SIMP(statut='o',typ='R',),
17401              GAC151        =SIMP(statut='o',typ='R',),
17402              GAC161        =SIMP(statut='o',typ='R',),
17403              GAC221        =SIMP(statut='o',typ='R',),
17404              GAC231        =SIMP(statut='o',typ='R',),
17405              GAC241        =SIMP(statut='o',typ='R',),
17406              GAC251        =SIMP(statut='o',typ='R',),
17407              GAC261        =SIMP(statut='o',typ='R',),
17408              GAC331        =SIMP(statut='o',typ='R',),
17409              GAC341        =SIMP(statut='o',typ='R',),
17410              GAC351        =SIMP(statut='o',typ='R',),
17411              GAC361        =SIMP(statut='o',typ='R',),
17412              GAC441        =SIMP(statut='o',typ='R',),
17413              GAC451        =SIMP(statut='o',typ='R',),
17414              GAC461        =SIMP(statut='o',typ='R',),
17415              GAC551        =SIMP(statut='o',typ='R',),
17416              GAC561        =SIMP(statut='o',typ='R',),
17417              GAC661        =SIMP(statut='o',typ='R',),
17418              GAC112        =SIMP(statut='o',typ='R',),
17419              GAC122        =SIMP(statut='o',typ='R',),
17420              GAC132        =SIMP(statut='o',typ='R',),
17421              GAC142        =SIMP(statut='o',typ='R',),
17422              GAC152        =SIMP(statut='o',typ='R',),
17423              GAC162        =SIMP(statut='o',typ='R',),
17424              GAC222        =SIMP(statut='o',typ='R',),
17425              GAC232        =SIMP(statut='o',typ='R',),
17426              GAC242        =SIMP(statut='o',typ='R',),
17427              GAC252        =SIMP(statut='o',typ='R',),
17428              GAC262        =SIMP(statut='o',typ='R',),
17429              GAC332        =SIMP(statut='o',typ='R',),
17430              GAC342        =SIMP(statut='o',typ='R',),
17431              GAC352        =SIMP(statut='o',typ='R',),
17432              GAC362        =SIMP(statut='o',typ='R',),
17433              GAC442        =SIMP(statut='o',typ='R',),
17434              GAC452        =SIMP(statut='o',typ='R',),
17435              GAC462        =SIMP(statut='o',typ='R',),
17436              GAC552        =SIMP(statut='o',typ='R',),
17437              GAC562        =SIMP(statut='o',typ='R',),
17438              GAC662        =SIMP(statut='o',typ='R',),
17439              GAT111        =SIMP(statut='o',typ='R',),
17440              GAT121        =SIMP(statut='o',typ='R',),
17441              GAT131        =SIMP(statut='o',typ='R',),
17442              GAT141        =SIMP(statut='o',typ='R',),
17443              GAT151        =SIMP(statut='o',typ='R',),
17444              GAT161        =SIMP(statut='o',typ='R',),
17445              GAT221        =SIMP(statut='o',typ='R',),
17446              GAT231        =SIMP(statut='o',typ='R',),
17447              GAT241        =SIMP(statut='o',typ='R',),
17448              GAT251        =SIMP(statut='o',typ='R',),
17449              GAT261        =SIMP(statut='o',typ='R',),
17450              GAT331        =SIMP(statut='o',typ='R',),
17451              GAT341        =SIMP(statut='o',typ='R',),
17452              GAT351        =SIMP(statut='o',typ='R',),
17453              GAT361        =SIMP(statut='o',typ='R',),
17454              GAT441        =SIMP(statut='o',typ='R',),
17455              GAT451        =SIMP(statut='o',typ='R',),
17456              GAT461        =SIMP(statut='o',typ='R',),
17457              GAT551        =SIMP(statut='o',typ='R',),
17458              GAT561        =SIMP(statut='o',typ='R',),
17459              GAT661        =SIMP(statut='o',typ='R',),
17460              GAT112        =SIMP(statut='o',typ='R',),
17461              GAT122        =SIMP(statut='o',typ='R',),
17462              GAT132        =SIMP(statut='o',typ='R',),
17463              GAT142        =SIMP(statut='o',typ='R',),
17464              GAT152        =SIMP(statut='o',typ='R',),
17465              GAT162        =SIMP(statut='o',typ='R',),
17466              GAT222        =SIMP(statut='o',typ='R',),
17467              GAT232        =SIMP(statut='o',typ='R',),
17468              GAT242        =SIMP(statut='o',typ='R',),
17469              GAT252        =SIMP(statut='o',typ='R',),
17470              GAT262        =SIMP(statut='o',typ='R',),
17471              GAT332        =SIMP(statut='o',typ='R',),
17472              GAT342        =SIMP(statut='o',typ='R',),
17473              GAT352        =SIMP(statut='o',typ='R',),
17474              GAT362        =SIMP(statut='o',typ='R',),
17475              GAT442        =SIMP(statut='o',typ='R',),
17476              GAT452        =SIMP(statut='o',typ='R',),
17477              GAT462        =SIMP(statut='o',typ='R',),
17478              GAT552        =SIMP(statut='o',typ='R',),
17479              GAT562        =SIMP(statut='o',typ='R',),
17480              GAT662        =SIMP(statut='o',typ='R',),
17481              AB111         =SIMP(statut='o',typ='R',),
17482              AB121         =SIMP(statut='o',typ='R',),
17483              AB211         =SIMP(statut='o',typ='R',),
17484              AB221         =SIMP(statut='o',typ='R',),
17485              AB311         =SIMP(statut='o',typ='R',),
17486              AB321         =SIMP(statut='o',typ='R',),
17487              AB411         =SIMP(statut='o',typ='R',),
17488              AB421         =SIMP(statut='o',typ='R',),
17489              AB511         =SIMP(statut='o',typ='R',),
17490              AB521         =SIMP(statut='o',typ='R',),
17491              AB611         =SIMP(statut='o',typ='R',),
17492              AB621         =SIMP(statut='o',typ='R',),
17493              AB112         =SIMP(statut='o',typ='R',),
17494              AB122         =SIMP(statut='o',typ='R',),
17495              AB212         =SIMP(statut='o',typ='R',),
17496              AB222         =SIMP(statut='o',typ='R',),
17497              AB312         =SIMP(statut='o',typ='R',),
17498              AB322         =SIMP(statut='o',typ='R',),
17499              AB412         =SIMP(statut='o',typ='R',),
17500              AB422         =SIMP(statut='o',typ='R',),
17501              AB512         =SIMP(statut='o',typ='R',),
17502              AB522         =SIMP(statut='o',typ='R',),
17503              AB612         =SIMP(statut='o',typ='R',),
17504              AB622         =SIMP(statut='o',typ='R',),
17505              GB111         =SIMP(statut='o',typ='R',),
17506              GB121         =SIMP(statut='o',typ='R',),
17507              GB211         =SIMP(statut='o',typ='R',),
17508              GB221         =SIMP(statut='o',typ='R',),
17509              GB311         =SIMP(statut='o',typ='R',),
17510              GB321         =SIMP(statut='o',typ='R',),
17511              GB411         =SIMP(statut='o',typ='R',),
17512              GB421         =SIMP(statut='o',typ='R',),
17513              GB511         =SIMP(statut='o',typ='R',),
17514              GB521         =SIMP(statut='o',typ='R',),
17515              GB611         =SIMP(statut='o',typ='R',),
17516              GB621         =SIMP(statut='o',typ='R',),
17517              GB112         =SIMP(statut='o',typ='R',),
17518              GB122         =SIMP(statut='o',typ='R',),
17519              GB212         =SIMP(statut='o',typ='R',),
17520              GB222         =SIMP(statut='o',typ='R',),
17521              GB312         =SIMP(statut='o',typ='R',),
17522              GB322         =SIMP(statut='o',typ='R',),
17523              GB412         =SIMP(statut='o',typ='R',),
17524              GB422         =SIMP(statut='o',typ='R',),
17525              GB512         =SIMP(statut='o',typ='R',),
17526              GB522         =SIMP(statut='o',typ='R',),
17527              GB612         =SIMP(statut='o',typ='R',),
17528              GB622         =SIMP(statut='o',typ='R',),
17529              C0111         =SIMP(statut='o',typ='R',),
17530              C0211         =SIMP(statut='o',typ='R',),
17531              C0121         =SIMP(statut='o',typ='R',),
17532              C0221         =SIMP(statut='o',typ='R',),
17533              C0212         =SIMP(statut='o',typ='R',),
17534              C0112         =SIMP(statut='o',typ='R',),
17535              C0122         =SIMP(statut='o',typ='R',),
17536              C0222         =SIMP(statut='o',typ='R',),
17537              AC111         =SIMP(statut='o',typ='R',),
17538              AC211         =SIMP(statut='o',typ='R',),
17539              AC121         =SIMP(statut='o',typ='R',),
17540              AC221         =SIMP(statut='o',typ='R',),
17541              AC112         =SIMP(statut='o',typ='R',),
17542              AC212         =SIMP(statut='o',typ='R',),
17543              AC122         =SIMP(statut='o',typ='R',),
17544              AC222         =SIMP(statut='o',typ='R',),
17545              GC111         =SIMP(statut='o',typ='R',),
17546              GC211         =SIMP(statut='o',typ='R',),
17547              GC121         =SIMP(statut='o',typ='R',),
17548              GC221         =SIMP(statut='o',typ='R',),
17549              GC112         =SIMP(statut='o',typ='R',),
17550              GC212         =SIMP(statut='o',typ='R',),
17551              GC122         =SIMP(statut='o',typ='R',),
17552              GC222         =SIMP(statut='o',typ='R',),
17553            ),
17554            GATT_MONERIE    =FACT(statut='f',min=0,max=1,
17555              D_GRAIN         =SIMP(statut='o',typ='R',val_min=0.E+0),
17556              PORO_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0),
17557              EPSI_01         =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0),
17558              EPSI_02         =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0),
17559            ),
17560            CORR_ACIER   =FACT(statut='f',min=0 ,max=1,
17561              D_CORR           =SIMP(statut='o',typ='R'),
17562              ECRO_K           =SIMP(statut='o',typ='R'),
17563              ECRO_M           =SIMP(statut='o',typ='R'),
17564              SY              =SIMP(statut='o',typ='R'),
17565              ),
17566            CABLE_GAINE_FROT=FACT(statut='f',min=0 ,max=1,
17567              TYPE = SIMP(statut='o',typ='TXM',into=("FROTTANT","GLISSANT","ADHERENT")),
17568              b_glissant =BLOC(condition="TYPE=='GLISSANT'",
17569                                     fr="Loi cable gaine glissante",
17570                      FROT_LINE         =SIMP(statut='c',typ='R',defaut= 0.0,),
17571                      FROT_COURB       =SIMP(statut='c',typ='R',defaut= 0.0,),
17572              ),
17573              b_adherent =BLOC(condition="TYPE=='ADHERENT'",
17574                                     fr="Loi cable gaine adherent",
17575                      FROT_LINE         =SIMP(statut='c',typ='R',defaut= -1.0,),
17576                      FROT_COURB       =SIMP(statut='c',typ='R',defaut= 0.0,),
17577              ),
17578              b_frottant =BLOC(condition="TYPE=='FROTTANT'",
17579                                     fr="Loi cable gaine frottant",
17580                      FROT_LINE         =SIMP(statut='o',typ='R',defaut= 0.0,),
17581                      FROT_COURB       =SIMP(statut='o',typ='R',defaut= 0.0,),
17582              ),
17583              PENA_LAGR       =SIMP(statut='o',typ='R',val_min=0.E+0),
17584              ),
17585
17586 # Discrets non-linéaires : début
17587          DIS_ECRO_CINE  =FACT(statut='f',
17588             fr="Loi pour les discrets avec écrouissage cinématique.",
17589             regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',),
17590                     PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',),
17591                     PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',),
17592                     PRESENT_PRESENT('LIMY_RX','KCIN_RX',),PRESENT_PRESENT('PUIS_RX','LIMU_RX',),
17593                     PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',),
17594                     PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),),
17595             LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0,
17596                fr="Effort limite élastique suivant l'axe local x de l'élément."),
17597             LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0,
17598                fr="Effort limite élastique suivant l'axe local y de l'élément."),
17599             LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
17600                fr="Effort limite élastique suivant l'axe local z de l'élément."),
17601             LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0,
17602                fr="Moment limite élastique suivant l'axe local x de l'élément."),
17603             LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0,
17604                fr="Moment limite élastique suivant l'axe local y de l'élément."),
17605             LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
17606                fr="Moment limite élastique suivant l'axe local z de l'élément."),
17607             KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0,
17608                fr="Raideur suivant l'axe local x de l'élément."),
17609             KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0,
17610                fr="Raideur suivant l'axe local y de l'élément."),
17611             KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
17612                fr="Raideur suivant l'axe local z de l'élément."),
17613             KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0,
17614                fr="Raideur suivant l'axe local Rx de l'élément."),
17615             KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0,
17616                fr="Raideur suivant l'axe local Ry de l'élément."),
17617             KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
17618                fr="Raideur suivant l'axe local Rz de l'élément."),
17619             LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0,
17620                fr="Effort limite suivant l'axe local x de l'élément."),
17621             LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0,
17622                fr="Effort limite suivant l'axe local y de l'élément."),
17623             LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
17624                fr="Effort limite suivant l'axe local z de l'élément."),
17625             LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0,
17626                fr="Moment limite suivant l'axe local x de l'élément."),
17627             LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0,
17628                fr="Moment limite suivant l'axe local y de l'élément."),
17629             LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
17630                fr="Moment limite suivant l'axe local z de l'élément."),
17631             PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0,
17632                fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."),
17633             PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0,
17634                fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."),
17635             PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0,
17636                fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."),
17637             PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0,
17638                fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."),
17639             PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0,
17640                fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."),
17641             PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0,
17642                fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."),
17643          ),
17644          DIS_VISC =FACT(statut='f',
17645             fr="Loi pour un discret de type visqueux : Zener Généralisé.",
17646             regles=(UN_PARMI('K1','UNSUR_K1'),
17647                     UN_PARMI('K2','UNSUR_K2'),
17648                     UN_PARMI('K3','UNSUR_K3'), ),
17649             K1          =SIMP(statut='f',typ='R',val_min = 1.0E-08,
17650                fr="Raideur en série avec les 2 autres branches."),
17651             K2          =SIMP(statut='f',typ='R',val_min = 0.0,
17652                fr="Raideur en parallèle de la branche visqueuse."),
17653             K3          =SIMP(statut='f',typ='R',val_min = 1.0E-08,
17654                fr="Raideur dans la branche visqueuse."),
17655             UNSUR_K1    =SIMP(statut='f',typ='R',val_min = 0.0,
17656                fr="Souplesse en série avec les 2 autres branches."),
17657             UNSUR_K2    =SIMP(statut='f',typ='R',val_min = 1.0E-08,
17658                fr="Souplesse en parallèle de la branche visqueuse."),
17659             UNSUR_K3    =SIMP(statut='f',typ='R',val_min = 0.0,
17660                fr="Souplesse dans la branche visqueuse."),
17661             C           =SIMP(statut='o',typ='R',val_min = 1.0E-08,
17662                fr="'Raideur' de la partie visqueuse."),
17663             PUIS_ALPHA  =SIMP(statut='o',typ='R',val_min = 1.0E-08, val_max=1.0, defaut=0.5,
17664                fr="Puissance de la loi visqueuse ]0.0, 1.0] ."),
17665          ),
17666          DIS_BILI_ELAS  =FACT(statut='f',
17667             fr="Loi bi-linéaire pour les discrets.",
17668             regles=(PRESENT_PRESENT('KDEB_DX','KFIN_DX','FPRE_DX',),
17669                     PRESENT_PRESENT('KDEB_DY','KFIN_DY','FPRE_DY',),
17670                     PRESENT_PRESENT('KDEB_DZ','KFIN_DZ','FPRE_DZ',),),
17671             KDEB_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
17672                fr="Raideur début suivant l'axe local x de l'élément."),
17673             KDEB_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
17674                fr="Raideur début suivant l'axe local y de l'élément."),
17675             KDEB_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
17676                fr="Raideur début  suivant l'axe local z de l'élément."),
17677             KFIN_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
17678                fr="Raideur fin l'axe local x de l'élément."),
17679             KFIN_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
17680                fr="Raideur fin l'axe local y de l'élément."),
17681             KFIN_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
17682                fr="Raideur fin l'axe local z de l'élément."),
17683             FPRE_DX =SIMP(statut='f',typ='R',
17684                fr="Effort de préserrage suivant l'axe local x de l'élément."),
17685             FPRE_DY =SIMP(statut='f',typ='R',
17686                fr="Effort de préserrage suivant l'axe local y de l'élément."),
17687             FPRE_DZ =SIMP(statut='f',typ='R',
17688                fr="Effort de préserrage suivant l'axe local z de l'élément."),
17689          ),
17690 # Discrets non-linéaires : fin
17691 #
17692 # comportement thermique
17693 #
17694            THER_NL         =FACT(statut='f',
17695              regles=(UN_PARMI('BETA','RHO_CP', ),),
17696              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17697              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17698              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17699            ),
17700            THER_HYDR       =FACT(statut='f',
17701              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17702              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17703              AFFINITE        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17704              CHALHYDR        =SIMP(statut='o',typ='R'),
17705            ),
17706            THER            =FACT(statut='f',
17707              LAMBDA          =SIMP(statut='o',typ='R'),
17708              RHO_CP          =SIMP(statut='f',typ='R'),
17709            ),
17710            THER_FO         =FACT(statut='f',
17711              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17712              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17713            ),
17714            THER_ORTH       =FACT(statut='f',
17715              LAMBDA_L        =SIMP(statut='o',typ='R'),
17716              LAMBDA_T        =SIMP(statut='o',typ='R'),
17717              LAMBDA_N        =SIMP(statut='f',typ='R'),
17718              RHO_CP          =SIMP(statut='f',typ='R'),
17719            ),
17720            THER_COQUE      =FACT(statut='f',
17721              COND_LMM        =SIMP(statut='o',typ='R'),
17722              COND_TMM        =SIMP(statut='o',typ='R'),
17723              COND_LMP        =SIMP(statut='o',typ='R'),
17724              COND_TMP        =SIMP(statut='o',typ='R'),
17725              COND_LPP        =SIMP(statut='o',typ='R'),
17726              COND_TPP        =SIMP(statut='o',typ='R'),
17727              COND_LSI        =SIMP(statut='o',typ='R'),
17728              COND_TSI        =SIMP(statut='o',typ='R'),
17729              COND_NMM        =SIMP(statut='o',typ='R'),
17730              COND_NMP        =SIMP(statut='o',typ='R'),
17731              COND_NPP        =SIMP(statut='o',typ='R'),
17732              COND_NSI        =SIMP(statut='o',typ='R'),
17733              CMAS_MM         =SIMP(statut='f',typ='R'),
17734              CMAS_MP         =SIMP(statut='f',typ='R'),
17735              CMAS_PP         =SIMP(statut='f',typ='R'),
17736              CMAS_SI         =SIMP(statut='f',typ='R'),
17737            ),
17738            THER_COQUE_FO   =FACT(statut='f',
17739              COND_LMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17740              COND_TMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17741              COND_LMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17742              COND_TMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17743              COND_LPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17744              COND_TPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17745              COND_LSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17746              COND_TSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17747              COND_NMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17748              COND_NMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17749              COND_NPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17750              COND_NSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17751              CMAS_MM         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17752              CMAS_MP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17753              CMAS_PP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17754              CMAS_SI         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17755            ),
17756            SECH_GRANGER    =FACT(statut='f',
17757              A               =SIMP(statut='o',typ='R'),
17758              B               =SIMP(statut='o',typ='R'),
17759              QSR_K           =SIMP(statut='o',typ='R'),
17760              TEMP_0_C        =SIMP(statut='o',typ='R'),
17761            ),
17762            SECH_MENSI      =FACT(statut='f',
17763              A               =SIMP(statut='o',typ='R'),
17764              B               =SIMP(statut='o',typ='R'),
17765            ),
17766            SECH_BAZANT     =FACT(statut='f',
17767              D1              =SIMP(statut='o',typ='R'),
17768              ALPHA_BAZANT    =SIMP(statut='o',typ='R'),
17769              N               =SIMP(statut='o',typ='R'),
17770              FONC_DESORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17771            ),
17772            SECH_NAPPE      =FACT(statut='f',
17773              FONCTION        =SIMP(statut='o',typ=(nappe_sdaster,formule)),
17774            ),
17775 #
17776 # comportement métallurgique
17777 #
17778            META_ACIER      =FACT(statut='f',
17779              TRC             =SIMP(statut='o',typ=(table_sdaster) ),
17780              AR3             =SIMP(statut='o',typ='R'),
17781              ALPHA           =SIMP(statut='o',typ='R'),
17782              MS0             =SIMP(statut='o',typ='R'),
17783              AC1             =SIMP(statut='o',typ='R'),
17784              AC3             =SIMP(statut='o',typ='R'),
17785              TAUX_1          =SIMP(statut='o',typ='R'),
17786              TAUX_3          =SIMP(statut='o',typ='R'),
17787              LAMBDA0         =SIMP(statut='f',typ='R'),
17788              QSR_K           =SIMP(statut='f',typ='R'),
17789              D10             =SIMP(statut='f',typ='R'),
17790              WSR_K           =SIMP(statut='f',typ='R'),
17791            ),
17792            META_ZIRC       =FACT(statut='f',
17793              TDEQ            =SIMP(statut='o',typ='R'),
17794              N               =SIMP(statut='o',typ='R'),
17795              K               =SIMP(statut='o',typ='R'),
17796              T1C             =SIMP(statut='o',typ='R'),
17797              T2C             =SIMP(statut='o',typ='R'),
17798              AC              =SIMP(statut='o',typ='R'),
17799              M               =SIMP(statut='o',typ='R'),
17800              QSR_K           =SIMP(statut='o',typ='R'),
17801              T1R             =SIMP(statut='o',typ='R'),
17802              T2R             =SIMP(statut='o',typ='R'),
17803              AR              =SIMP(statut='o',typ='R'),
17804              BR              =SIMP(statut='o',typ='R'),
17805            ),
17806            DURT_META       =FACT(statut='f',
17807              F1_DURT         =SIMP(statut='o',typ='R'),
17808              F2_DURT         =SIMP(statut='o',typ='R'),
17809              F3_DURT         =SIMP(statut='o',typ='R'),
17810              F4_DURT         =SIMP(statut='o',typ='R'),
17811              C_DURT          =SIMP(statut='o',typ='R'),
17812            ),
17813            ELAS_META       =FACT(statut='f',
17814              E               =SIMP(statut='o',typ='R'),
17815              NU              =SIMP(statut='o',typ='R'),
17816              F_ALPHA         =SIMP(statut='o',typ='R'),
17817              C_ALPHA         =SIMP(statut='o',typ='R'),
17818              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
17819              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
17820              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
17821              F1_SY           =SIMP(statut='f',typ='R'),
17822              F2_SY           =SIMP(statut='f',typ='R'),
17823              F3_SY           =SIMP(statut='f',typ='R'),
17824              F4_SY           =SIMP(statut='f',typ='R'),
17825              C_SY            =SIMP(statut='f',typ='R'),
17826              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17827              F1_S_VP         =SIMP(statut='f',typ='R'),
17828              F2_S_VP         =SIMP(statut='f',typ='R'),
17829              F3_S_VP         =SIMP(statut='f',typ='R'),
17830              F4_S_VP         =SIMP(statut='f',typ='R'),
17831              C_S_VP          =SIMP(statut='f',typ='R' ),
17832              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17833            ),
17834            ELAS_META_FO    =FACT(statut='f',
17835              regles=(
17836                       PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'),
17837                       PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'),
17838                     ),
17839              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17840              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17841              F_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17842              C_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17843              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
17844              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
17845              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
17846              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
17847              F1_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17848              F2_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17849              F3_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17850              F4_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17851              C_SY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17852              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17853              F1_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17854              F2_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17855              F3_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17856              F4_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17857              C_S_VP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17858              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17859            ),
17860            META_ECRO_LINE  =FACT(statut='f',
17861              F1_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17862              F2_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17863              F3_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17864              F4_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17865              C_D_SIGM_EPSI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17866            ),
17867            META_TRACTION   =FACT(statut='f',
17868              SIGM_F1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17869              SIGM_F2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17870              SIGM_F3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17871              SIGM_F4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17872              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17873            ),
17874            META_VISC_FO    =FACT(statut='f',
17875              F1_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17876              F1_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17877              F1_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17878              F1_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17879              F2_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17880              F2_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17881              F2_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17882              F2_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17883              F3_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17884              F3_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17885              F3_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17886              F3_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17887              F4_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17888              F4_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17889              F4_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17890              F4_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17891              C_ETA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17892              C_N             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17893              C_C             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17894              C_M             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17895            ),
17896            META_PT         =FACT(statut='f',
17897              F1_K            =SIMP(statut='f',typ='R'),
17898              F2_K            =SIMP(statut='f',typ='R'),
17899              F3_K            =SIMP(statut='f',typ='R'),
17900              F4_K            =SIMP(statut='f',typ='R'),
17901              F1_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17902              F2_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17903              F3_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17904              F4_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17905            ),
17906            META_RE         =FACT(statut='f',
17907              C_F1_THETA      =SIMP(statut='f',typ='R'),
17908              C_F2_THETA      =SIMP(statut='f',typ='R'),
17909              C_F3_THETA      =SIMP(statut='f',typ='R'),
17910              C_F4_THETA      =SIMP(statut='f',typ='R'),
17911              F1_C_THETA      =SIMP(statut='f',typ='R'),
17912              F2_C_THETA      =SIMP(statut='f',typ='R'),
17913              F3_C_THETA      =SIMP(statut='f',typ='R'),
17914              F4_C_THETA      =SIMP(statut='f',typ='R'),
17915            ),
17916 #
17917 # comportement fluide
17918 #
17919            FLUIDE          =FACT(statut='f',
17920              regles=(EXCLUS('CELE_C','CELE_R'),),
17921              RHO             =SIMP(statut='o',typ='R'),
17922              PESA_Z          =SIMP(statut='f',typ='R',min=1,max=1),
17923              CELE_C          =SIMP(statut='f',typ='C'),
17924              CELE_R          =SIMP(statut='f',typ='R'),
17925            ),
17926 # =================================================================================
17927 # COMPORTEMENT THERMO_HYDRO_MECANIQUE
17928 # LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES
17929 # DE LA LOI DE COUPLAGE THM DE LA RELATION
17930 # LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS
17931 # DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE
17932 # ET LIQU_AD_GAZ_VAPE
17933 # LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE :
17934 # 1 -->  LIQU_SATU
17935 # 2 -->  GAZ
17936 # 3 -->  LIQU_VAPE
17937 # 4 -->  LIQU_VAPE_GAZ
17938 # 5 -->  LIQU_GAZ
17939 # 6 -->  LIQU_GAZ_ATM
17940 # 9 -->  LIQU_AD_GAZ_VAPE
17941 # 10 -->  LIQU_AD_GAZ
17942 # =================================================================================
17943            COMP_THM        = SIMP(statut='f', typ='TXM',
17944                                   into = ( "LIQU_SATU"     ,
17945                                            "LIQU_GAZ"      ,
17946                                            "GAZ"           ,
17947                                            "LIQU_GAZ_ATM"  ,
17948                                            "LIQU_VAPE_GAZ" ,
17949                                            "LIQU_VAPE"     ,
17950                                            "LIQU_AD_GAZ_VAPE" ,
17951                                            "LIQU_AD_GAZ" ,
17952                                           ) ),
17953 # =================================================================================
17954 # --- LOI DE COUPLAGE DE TYPE LIQU_SATU -------------------------------------------
17955 # =================================================================================
17956 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
17957 # --- THM_INIT, THM_DIFFU, THM_LIQU -----------------------------------------------
17958 # =================================================================================
17959            b_liqusatu      = BLOC(condition = "COMP_THM == 'LIQU_SATU' ",
17960                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU",
17961 # =================================================================================
17962 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
17963 # =================================================================================
17964                              THM_INIT   = FACT(statut='o',
17965 # ---------------------------------------------------------------------------------
17966 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
17967 # ---------------------------------------------------------------------------------
17968                                            PRE1          = SIMP(statut='o',typ='R'),
17969                                            PORO          = SIMP(statut='o',typ='R'),
17970 # ---------------------------------------------------------------------------------
17971 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
17972 # ---------------------------------------------------------------------------------
17973                                            TEMP          = SIMP(statut='f',typ='R'),
17974 # ---------------------------------------------------------------------------------
17975 # -------------------   DONNEES INUTILES   ----------------------------------------
17976 # ---------------------------------------------------------------------------------
17977                                            PRE2          = SIMP(statut='f',typ='R'),
17978                                            PRES_VAPE     = SIMP(statut='f',typ='R'),
17979                                            DEGR_SATU     = SIMP(statut='f',typ='R'),
17980 # ---------------------------------------------------------------------------------
17981 # -------------------   DONNEE CACHEE ---------------------------------------------
17982 # ---------------------------------------------------------------------------------
17983                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 1.0,),
17984                                              ),
17985 # =================================================================================
17986 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
17987 # =================================================================================
17988                              THM_DIFFU  = FACT(statut='o',
17989                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
17990                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
17991                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
17992
17993                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
17994                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
17995                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
17996                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
17997
17998
17999                                             EXCLUS('LAMB_T','LAMB_TL',),
18000                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
18001                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
18002                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
18003
18004
18005                                             EXCLUS('D_LB_T','D_LB_TL',),
18006                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
18007                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
18008
18009                                             EXCLUS('LAMB_CT','LAMB_C_L',),
18010                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
18011                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
18012                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
18013
18014                                             EXCLUS('PERMIN_L','BIOT_COEF'),
18015                                             EXCLUS('PERMIN_L','LAMB_T'),
18016                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
18017                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
18018                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
18019                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
18020                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
18021
18022                                             ),
18023 # ---------------------------------------------------------------------------------
18024 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18025 # ---------------------------------------------------------------------------------
18026                                            RHO           = SIMP(statut='o',typ='R'),
18027                                            BIOT_COEF     = SIMP(statut='f',typ='R'),
18028                                            BIOT_L        = SIMP(statut='f',typ='R'),
18029                                            BIOT_N        = SIMP(statut='f',typ='R'),
18030                                            BIOT_T        = SIMP(statut='f',typ='R'),
18031                                            PESA_X        = SIMP(statut='o',typ='R'),
18032                                            PESA_Y        = SIMP(statut='o',typ='R'),
18033                                            PESA_Z        = SIMP(statut='o',typ='R'),
18034 # ---------------------------------------------------------------------------------
18035 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18036 # ---------------------------------------------------------------------------------
18037                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18038 # ---------------------------------------------------------------------------------
18039 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18040 # ---------------------------------------------------------------------------------
18041                                            CP          = SIMP(statut='f',typ='R'),
18042                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18043                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18044                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18045                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18046                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18047                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18048                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18049                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18050                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18051                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18052                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18053                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18054                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18055                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18056                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18057                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18058                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18059                                            LAMB_CT     = SIMP(statut='f',typ='R'),
18060                                            LAMB_C_L   = SIMP(statut='f',typ='R'),
18061                                            LAMB_C_N   = SIMP(statut='f',typ='R'),
18062                                            LAMB_C_T   = SIMP(statut='f',typ='R'),
18063 # ---------------------------------------------------------------------------------
18064 # -------------------   DONNEES INUTILES   ----------------------------------------
18065 # ---------------------------------------------------------------------------------
18066                                            R_GAZ         = SIMP(statut='f',typ='R'),
18067                                            EMMAG           = SIMP(statut='f',typ='R'),
18068                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18069                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18070                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18071                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18072                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18073                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18074                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18075                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18076                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18077                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18078                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18079                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18080                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18081                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18082                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18083                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18084                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18085                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18086                                              ),
18087 # =================================================================================
18088 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18089 # =================================================================================
18090                              THM_LIQU   = FACT(statut='o',
18091 # ---------------------------------------------------------------------------------
18092 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18093 # ---------------------------------------------------------------------------------
18094                                            RHO           = SIMP(statut='o',typ='R'),
18095                                            UN_SUR_K      = SIMP(statut='o',typ='R'),
18096                                            VISC          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18097                                            D_VISC_TEMP   = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18098 # ---------------------------------------------------------------------------------
18099 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18100 # ---------------------------------------------------------------------------------
18101                                            ALPHA         = SIMP(statut='f',typ='R'),
18102                                            CP            = SIMP(statut='f',typ='R'),
18103                                          ),
18104 # =================================================================================
18105 # --- MOT-CLE INUTILE -------------------------------------------------------------
18106 # =================================================================================
18107            THM_GAZ         =FACT(statut='f',
18108              MASS_MOL        =SIMP(statut='f',typ='R'),
18109              CP              =SIMP(statut='f',typ='R'),
18110              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18111              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18112            ),
18113 # =================================================================================
18114 # --- MOT-CLE INUTILE -------------------------------------------------------------
18115 # =================================================================================
18116            THM_VAPE_GAZ    =FACT(statut='f',
18117              MASS_MOL        =SIMP(statut='f',typ='R'),
18118              CP              =SIMP(statut='f',typ='R'),
18119              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18120              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18121            ),
18122                                  ),
18123 # =================================================================================
18124 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ --------------------------------------------
18125 # =================================================================================
18126 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
18127 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
18128 # =================================================================================
18129            b_liqugaz      = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ",
18130                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ",
18131 # =================================================================================
18132 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18133 # =================================================================================
18134                              THM_INIT   = FACT(statut='o',
18135 # ---------------------------------------------------------------------------------
18136 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18137 # ---------------------------------------------------------------------------------
18138                                            PRE1             = SIMP(statut='o',typ='R'),
18139                                            PRE2             = SIMP(statut='o',typ='R'),
18140                                            PORO             = SIMP(statut='o',typ='R'),
18141 # ---------------------------------------------------------------------------------
18142 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18143 # ---------------------------------------------------------------------------------
18144                                            TEMP             = SIMP(statut='f',typ='R'),
18145 # ---------------------------------------------------------------------------------
18146 # -------------------   DONNEES INUTILES   ----------------------------------------
18147 # ---------------------------------------------------------------------------------
18148                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
18149                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
18150 # ---------------------------------------------------------------------------------
18151 # -------------------   DONNEE CACHEE ---------------------------------------------
18152 # ---------------------------------------------------------------------------------
18153                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 5.0,),
18154                                              ),
18155 # =================================================================================
18156 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18157 # =================================================================================
18158                              THM_DIFFU  = FACT(statut='o',
18159                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
18160                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
18161                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
18162                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
18163                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
18164                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
18165                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
18166                                             EXCLUS('LAMB_T','LAMB_TL',),
18167                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
18168                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
18169                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
18170                                             EXCLUS('D_LB_T','D_LB_TL',),
18171                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
18172                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
18173                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
18174                                             EXCLUS('LAMB_CT','LAMB_C_L',),
18175                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
18176                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
18177                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
18178
18179                                             EXCLUS('PERMIN_L','BIOT_COEF'),
18180                                             EXCLUS('PERMIN_L','LAMB_T'),
18181                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
18182                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
18183                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
18184                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
18185                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
18186                                            ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
18187                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
18188                                            ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
18189                                            UN_PARMI('VG_N','SATU_PRES'),
18190                                            ),
18191 # ---------------------------------------------------------------------------------
18192 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18193 # ---------------------------------------------------------------------------------
18194                                            R_GAZ            = SIMP(statut='o',typ='R'),
18195                                            RHO              = SIMP(statut='o',typ='R'),
18196                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
18197                                            BIOT_L           = SIMP(statut='f',typ='R'),
18198                                            BIOT_N           = SIMP(statut='f',typ='R'),
18199                                            BIOT_T           = SIMP(statut='f',typ='R'),
18200                                            PESA_X           = SIMP(statut='o',typ='R'),
18201                                            PESA_Y           = SIMP(statut='o',typ='R'),
18202                                            PESA_Z           = SIMP(statut='o',typ='R'),
18203                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18204                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18205                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18206                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18207                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18208                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18209                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18210 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
18211
18212                                            VG_N    = SIMP(statut='f',typ='R'),
18213                                            VG_SR    = SIMP(statut='f',typ='R'),
18214                                            VG_PR   = SIMP(statut='f',typ='R'),
18215                                            VG_SMAX = SIMP(statut='f',typ='R'),
18216                                            VG_SATUR = SIMP(statut='f',typ='R'),
18217 # ---------------------------------------------------------------------------------
18218 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18219 # ---------------------------------------------------------------------------------
18220                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18221 #
18222 # ---------------------------------------------------------------------------------
18223 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18224 # ---------------------------------------------------------------------------------
18225                                            CP          = SIMP(statut='f',typ='R'),
18226                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18227                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18228                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18229                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18230                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18231                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18232                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18233                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18234                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18235                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18236                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18237                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18238                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18239                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18240                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18241                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18242                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18243                                            LAMB_CT     = SIMP(statut='f',typ='R'),
18244                                            LAMB_C_L   = SIMP(statut='f',typ='R'),
18245                                            LAMB_C_N   = SIMP(statut='f',typ='R'),
18246                                            LAMB_C_T   = SIMP(statut='f',typ='R'),
18247 # ---------------------------------------------------------------------------------
18248 # -------------------   DONNEES INUTILES   ----------------------------------------
18249 # ---------------------------------------------------------------------------------
18250                                            EMMAG           = SIMP(statut='f',typ='R'),
18251                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18252                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18253                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18254                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18255                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18256                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18257                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18258                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18259                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18260                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18261                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18262                                              ) ,
18263 # =================================================================================
18264 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18265 # =================================================================================
18266                              THM_LIQU   = FACT(statut='o',
18267 # ---------------------------------------------------------------------------------
18268 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18269 # ---------------------------------------------------------------------------------
18270                                            RHO              = SIMP(statut='o',typ='R'),
18271                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
18272                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18273                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18274 # ---------------------------------------------------------------------------------
18275 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18276 # ---------------------------------------------------------------------------------
18277                                            ALPHA            = SIMP(statut='f',typ='R'),
18278                                            CP               = SIMP(statut='f',typ='R'),
18279                                              ),
18280 # =================================================================================
18281 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18282 # =================================================================================
18283                              THM_GAZ    = FACT(statut='o',
18284 # ---------------------------------------------------------------------------------
18285 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18286 # ---------------------------------------------------------------------------------
18287                                            MASS_MOL        = SIMP(statut='o',typ='R'),
18288                                            VISC            = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18289                                            D_VISC_TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18290 # ---------------------------------------------------------------------------------
18291 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18292 # ---------------------------------------------------------------------------------
18293                                            CP              = SIMP(statut='f',typ='R'),
18294                                              ),
18295 # =================================================================================
18296 # --- MOT-CLE INUTILE -------------------------------------------------------------
18297 # =================================================================================
18298            THM_VAPE_GAZ    =FACT(statut='f',
18299              MASS_MOL        =SIMP(statut='f',typ='R'),
18300              CP              =SIMP(statut='f',typ='R'),
18301              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18302              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18303            ),
18304                                  ),
18305 # =================================================================================
18306 # --- LOI DE COUPLAGE DE TYPE GAZ -------------------------------------------------
18307 # =================================================================================
18308 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
18309 # --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------
18310 # =================================================================================
18311            b_gaz          = BLOC(condition = "COMP_THM == 'GAZ' ",
18312                                  fr="Paramètres nécessaires pour une loi de couplage de type GAZ",
18313 # =================================================================================
18314 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18315 # =================================================================================
18316                              THM_INIT   = FACT(statut='o',
18317 # ---------------------------------------------------------------------------------
18318 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18319 # ---------------------------------------------------------------------------------
18320                                            TEMP             = SIMP(statut='o',typ='R'),
18321                                            PRE1             = SIMP(statut='o',typ='R'),
18322                                            PORO             = SIMP(statut='o',typ='R'),
18323 # ---------------------------------------------------------------------------------
18324 # -------------------   DONNEES INUTILES   ----------------------------------------
18325 # ---------------------------------------------------------------------------------
18326                                            PRE2             = SIMP(statut='f',typ='R'),
18327                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
18328                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
18329 # ---------------------------------------------------------------------------------
18330 # -------------------   DONNEE CACHEE ---------------------------------------------
18331 # ---------------------------------------------------------------------------------
18332                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 2.0,),
18333                                              ),
18334 # =================================================================================
18335 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18336 # =================================================================================
18337                              THM_DIFFU  = FACT(statut='o',
18338                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
18339                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
18340                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
18341                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
18342                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
18343                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
18344                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
18345                                             EXCLUS('LAMB_T','LAMB_TL',),
18346                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
18347                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
18348                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
18349                                             EXCLUS('D_LB_T','D_LB_TL',),
18350                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
18351                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
18352                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
18353                                             EXCLUS('LAMB_CT','LAMB_C_L',),
18354                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
18355                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
18356                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
18357                                             EXCLUS('PERMIN_L','BIOT_COEF'),
18358                                             EXCLUS('PERMIN_L','LAMB_T'),
18359                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
18360                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
18361                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
18362                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
18363                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
18364                                             ),
18365 # ---------------------------------------------------------------------------------
18366 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18367 # ---------------------------------------------------------------------------------
18368                                            R_GAZ            = SIMP(statut='o',typ='R'),
18369                                            RHO              = SIMP(statut='o',typ='R'),
18370                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
18371                                            BIOT_L           = SIMP(statut='f',typ='R'),
18372                                            BIOT_N           = SIMP(statut='f',typ='R'),
18373                                            BIOT_T           = SIMP(statut='f',typ='R'),
18374                                            PESA_X           = SIMP(statut='o',typ='R'),
18375                                            PESA_Y           = SIMP(statut='o',typ='R'),
18376                                            PESA_Z           = SIMP(statut='o',typ='R'),
18377 # ---------------------------------------------------------------------------------
18378 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18379 # ---------------------------------------------------------------------------------
18380                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18381 # ---------------------------------------------------------------------------------
18382 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18383 # ---------------------------------------------------------------------------------
18384                                            CP          = SIMP(statut='f',typ='R'),
18385                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18386                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18387                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18388                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18389                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18390                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18391                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18392                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18393                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18394                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18395                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18396                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18397                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18398                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18399                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18400                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18401                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18402                                            LAMB_CT     = SIMP(statut='f',typ='R'),
18403                                            LAMB_C_L   = SIMP(statut='f',typ='R'),
18404                                            LAMB_C_N   = SIMP(statut='f',typ='R'),
18405                                            LAMB_C_T   = SIMP(statut='f',typ='R'),
18406 # ---------------------------------------------------------------------------------
18407 # -------------------   DONNEES INUTILES   ----------------------------------------
18408 # ---------------------------------------------------------------------------------
18409                                            EMMAG           = SIMP(statut='f',typ='R'),
18410                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18411                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18412                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18413                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18414                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18415                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18416                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18417                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18418                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18419                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18420                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18421                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18422                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18423                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18424                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18425                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18426                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18427                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18428                                              ) ,
18429 # =================================================================================
18430 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18431 # =================================================================================
18432                              THM_GAZ    = FACT(statut='o',
18433 # ---------------------------------------------------------------------------------
18434 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18435 # ---------------------------------------------------------------------------------
18436                                            MASS_MOL         = SIMP(statut='o',typ='R'),
18437                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18438                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18439 # ---------------------------------------------------------------------------------
18440 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18441 # ---------------------------------------------------------------------------------
18442                                            CP               = SIMP(statut='f',typ='R'),
18443                                              ),
18444 # =================================================================================
18445 # --- MOT-CLE INUTILE -------------------------------------------------------------
18446 # =================================================================================
18447            THM_LIQU        =FACT(statut='f',
18448              RHO             =SIMP(statut='f',typ='R'),
18449              UN_SUR_K        =SIMP(statut='f',typ='R'),
18450              ALPHA           =SIMP(statut='f',typ='R'),
18451              CP              =SIMP(statut='f',typ='R'),
18452              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18453              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18454              COEF_HENRY      =SIMP(statut='f',typ='R'),
18455            ),
18456 # =================================================================================
18457 # --- MOT-CLE INUTILE -------------------------------------------------------------
18458 # =================================================================================
18459            THM_VAPE_GAZ    =FACT(statut='f',
18460              MASS_MOL        =SIMP(statut='f',typ='R'),
18461              CP              =SIMP(statut='f',typ='R'),
18462              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18463              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18464            ),
18465                                  ),
18466 # =================================================================================
18467 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ----------------------------------------
18468 # =================================================================================
18469 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
18470 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
18471 # =================================================================================
18472            b_liqugazatm   = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ",
18473                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM",
18474 # =================================================================================
18475 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18476 # =================================================================================
18477                              THM_INIT   = FACT(statut='o',
18478 # ---------------------------------------------------------------------------------
18479 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18480 # ---------------------------------------------------------------------------------
18481                                            PRE1             = SIMP(statut='o',typ='R'),
18482                                            PORO             = SIMP(statut='o',typ='R'),
18483 # ---------------------------------------------------------------------------------
18484 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18485 # ---------------------------------------------------------------------------------
18486                                            TEMP             = SIMP(statut='f',typ='R'),
18487 # ---------------------------------------------------------------------------------
18488 # -------------------   DONNEES INUTILES   ----------------------------------------
18489 # ---------------------------------------------------------------------------------
18490                                            PRE2             = SIMP(statut='f',typ='R'),
18491                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
18492                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
18493 # ---------------------------------------------------------------------------------
18494 # -------------------   DONNEE CACHEE ---------------------------------------------
18495 # ---------------------------------------------------------------------------------
18496                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 6.0,),
18497                                              ),
18498 # =================================================================================
18499 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18500 # =================================================================================
18501                              THM_DIFFU  = FACT(statut='o',
18502                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
18503                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
18504                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
18505                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
18506                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
18507                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
18508                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
18509                                             EXCLUS('LAMB_T','LAMB_TL',),
18510                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
18511                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
18512                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
18513                                             EXCLUS('D_LB_T','D_LB_TL',),
18514                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
18515                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
18516                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
18517                                             EXCLUS('LAMB_CT','LAMB_C_L',),
18518                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
18519                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
18520                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
18521                                             EXCLUS('PERMIN_L','BIOT_COEF'),
18522                                             EXCLUS('PERMIN_L','LAMB_T'),
18523                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
18524                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
18525                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
18526                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
18527                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
18528                                             ),
18529 # ---------------------------------------------------------------------------------
18530 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18531 # ---------------------------------------------------------------------------------
18532                                            RHO              = SIMP(statut='o',typ='R'),
18533                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
18534                                            BIOT_L           = SIMP(statut='f',typ='R'),
18535                                            BIOT_N           = SIMP(statut='f',typ='R'),
18536                                            BIOT_T           = SIMP(statut='f',typ='R'),
18537                                            PESA_X           = SIMP(statut='o',typ='R'),
18538                                            PESA_Y           = SIMP(statut='o',typ='R'),
18539                                            PESA_Z           = SIMP(statut='o',typ='R'),
18540                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18541                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18542                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18543                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18544 # ---------------------------------------------------------------------------------
18545 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18546 # ---------------------------------------------------------------------------------
18547                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18548 # ---------------------------------------------------------------------------------
18549 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18550 # ---------------------------------------------------------------------------------
18551                                            CP          = SIMP(statut='f',typ='R'),
18552                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18553                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18554                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18555                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18556                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18557                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18558                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18559                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18560                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18561                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18562                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18563                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18564                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18565                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18566                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18567                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18568                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18569                                            LAMB_CT     = SIMP(statut='f',typ='R'),
18570                                            LAMB_C_L   = SIMP(statut='f',typ='R'),
18571                                            LAMB_C_N   = SIMP(statut='f',typ='R'),
18572                                            LAMB_C_T   = SIMP(statut='f',typ='R'),
18573 # ---------------------------------------------------------------------------------
18574 # -------------------   DONNEES INUTILES   ----------------------------------------
18575 # ---------------------------------------------------------------------------------
18576              EMMAG           = SIMP(statut='f',typ='R'),
18577              R_GAZ           =SIMP(statut='f',typ='R'),
18578              PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18579              D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18580              D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18581              FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18582              FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18583              FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18584              FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18585              D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18586              D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18587              FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18588              FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18589              FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18590              FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18591              D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18592                                              ) ,
18593 # =================================================================================
18594 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18595 # =================================================================================
18596                              THM_LIQU   = FACT(statut='o',
18597 # ---------------------------------------------------------------------------------
18598 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18599 # ---------------------------------------------------------------------------------
18600                                            RHO              = SIMP(statut='o',typ='R'),
18601                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
18602                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18603                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18604 # ---------------------------------------------------------------------------------
18605 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18606 # ---------------------------------------------------------------------------------
18607                                            ALPHA            = SIMP(statut='f',typ='R'),
18608                                            CP               = SIMP(statut='f',typ='R'),
18609                                              ),
18610 # =================================================================================
18611 # --- MOT-CLE INUTILE -------------------------------------------------------------
18612 # =================================================================================
18613                              THM_GAZ    = FACT(statut='f',
18614                                            MASS_MOL         = SIMP(statut='f',typ='R'),
18615                                            VISC             = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18616                                            D_VISC_TEMP      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18617                                            CP               = SIMP(statut='f',typ='R'),
18618                                              ),
18619 # =================================================================================
18620 # --- MOT-CLE INUTILE -------------------------------------------------------------
18621 # =================================================================================
18622            THM_VAPE_GAZ    =FACT(statut='f',
18623              MASS_MOL        =SIMP(statut='f',typ='R'),
18624              CP              =SIMP(statut='f',typ='R'),
18625              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18626              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18627            ),
18628                                  ),
18629
18630 # =================================================================================
18631 # --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ -------------------------------------
18632 # =================================================================================
18633 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
18634 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ,  THM_AIR_DISSOUS---------
18635 # =================================================================================
18636            b_liquadgaz  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ' ",
18637                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ",
18638 # =================================================================================
18639 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18640 # =================================================================================
18641                              THM_INIT   = FACT(statut='o',
18642 # ---------------------------------------------------------------------------------
18643 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18644 # ---------------------------------------------------------------------------------
18645                                            PRE1             = SIMP(statut='o',typ='R'),
18646                                            PRE2             = SIMP(statut='o',typ='R'),
18647                                            PORO             = SIMP(statut='o',typ='R'),
18648                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
18649 # ---------------------------------------------------------------------------------
18650 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18651 # ---------------------------------------------------------------------------------
18652                                            TEMP             = SIMP(statut='f',typ='R'),
18653 # ---------------------------------------------------------------------------------
18654 # -------------------   DONNEES INUTILES   ----------------------------------------
18655 # ---------------------------------------------------------------------------------
18656                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
18657 # ---------------------------------------------------------------------------------
18658 # -------------------   DONNEE CACHEE ---------------------------------------------
18659 # ---------------------------------------------------------------------------------
18660                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 10.0,),
18661                                              ),
18662 # =================================================================================
18663 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18664 # =================================================================================
18665                              THM_DIFFU  = FACT(statut='o',
18666                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
18667                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
18668                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
18669                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
18670                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
18671                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
18672                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
18673                                             EXCLUS('LAMB_T','LAMB_TL',),
18674                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
18675                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
18676                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
18677                                             EXCLUS('D_LB_T','D_LB_TL',),
18678                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
18679                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
18680                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
18681                                             EXCLUS('LAMB_CT','LAMB_C_L',),
18682                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
18683                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
18684                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
18685                                             EXCLUS('PERMIN_L','BIOT_COEF'),
18686                                             EXCLUS('PERMIN_L','LAMB_T'),
18687                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
18688                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
18689                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
18690                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
18691                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
18692                                            ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
18693                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
18694                                            ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
18695                                            UN_PARMI('VG_N','SATU_PRES'),
18696                                            ),
18697 # ---------------------------------------------------------------------------------
18698 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18699 # ---------------------------------------------------------------------------------
18700                                            R_GAZ            = SIMP(statut='o',typ='R'),
18701                                            RHO              = SIMP(statut='o',typ='R'),
18702                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
18703                                            BIOT_L           = SIMP(statut='f',typ='R'),
18704                                            BIOT_N           = SIMP(statut='f',typ='R'),
18705                                            BIOT_T           = SIMP(statut='f',typ='R'),
18706                                            PESA_X           = SIMP(statut='o',typ='R'),
18707                                            PESA_Y           = SIMP(statut='o',typ='R'),
18708                                            PESA_Z           = SIMP(statut='o',typ='R'),
18709                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18710                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18711                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18712                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18713                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18714                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18715                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18716 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
18717                                            VG_N     = SIMP(statut='f',typ='R'),
18718                                            VG_SR    = SIMP(statut='f',typ='R'),
18719                                            VG_PR    = SIMP(statut='f',typ='R'),
18720                                            VG_SMAX  = SIMP(statut='f',typ='R'),
18721                                            VG_SATUR = SIMP(statut='f',typ='R'),
18722 #
18723                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18724                                            FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18725 # ---------------------------------------------------------------------------------
18726 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18727 # ---------------------------------------------------------------------------------
18728                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18729 # ---------------------------------------------------------------------------------
18730 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18731 # ---------------------------------------------------------------------------------
18732                                            CP          = SIMP(statut='f',typ='R'),
18733                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18734                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18735                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18736                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18737                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18738                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18739                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18740                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18741                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18742                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18743                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18744                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18745                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18746                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18747                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18748                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18749                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18750                                            LAMB_CT     = SIMP(statut='f',typ='R'),
18751                                            LAMB_C_L     = SIMP(statut='f',typ='R'),
18752                                            LAMB_C_N     = SIMP(statut='f',typ='R'),
18753                                            LAMB_C_T     = SIMP(statut='f',typ='R'),
18754 # ---------------------------------------------------------------------------------
18755 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18756 # ---------------------------------------------------------------------------------
18757                                            EMMAG            = SIMP(statut='f',typ='R'),
18758                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18759                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18760                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18761                                            D_FV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18762                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18763 #
18764                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18765                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18766                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18767                                            D_FA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18768 # ---------------------------------------------------------------------------------
18769 # -------------------   DONNEES CACHEES -------------------------------------------
18770 # ---------------------------------------------------------------------------------
18771                                              ) ,
18772 # =================================================================================
18773 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18774 # =================================================================================
18775                              THM_LIQU   = FACT(statut='o',
18776 # ---------------------------------------------------------------------------------
18777 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18778 # ---------------------------------------------------------------------------------
18779                                            RHO              = SIMP(statut='o',typ='R'),
18780                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
18781                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18782                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18783 # ---------------------------------------------------------------------------------
18784 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18785 # ---------------------------------------------------------------------------------
18786                                            ALPHA            = SIMP(statut='f',typ='R'),
18787                                            CP               = SIMP(statut='f',typ='R'),
18788 # ---------------------------------------------------------------------------------
18789 # -------------------   DONNEES CACHEES -------------------------------------------
18790 # ---------------------------------------------------------------------------------
18791                                              ),
18792 # =================================================================================
18793 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18794 # =================================================================================
18795                              THM_GAZ    = FACT(statut='o',
18796 # ---------------------------------------------------------------------------------
18797 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18798 # ---------------------------------------------------------------------------------
18799                                            MASS_MOL         = SIMP(statut='o',typ='R'),
18800                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18801                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18802 # ---------------------------------------------------------------------------------
18803 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18804 # ---------------------------------------------------------------------------------
18805                                            CP               = SIMP(statut='f',typ='R'),
18806 # ---------------------------------------------------------------------------------
18807 # -------------------   DONNEES CACHEES -------------------------------------------
18808 # ---------------------------------------------------------------------------------
18809                                              ),
18810 # =================================================================================
18811 # --- MOT-CLE FACULTATIF ---------------------------------------------------------
18812 # =================================================================================
18813                              THM_VAPE_GAZ = FACT(statut='f',
18814 # ---------------------------------------------------------------------------------
18815 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18816 # ---------------------------------------------------------------------------------
18817                                            MASS_MOL         = SIMP(statut='o',typ='R'),
18818                                            CP               = SIMP(statut='o',typ='R'),
18819                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18820                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18821 # ---------------------------------------------------------------------------------
18822 # -------------------   DONNEES CACHEES -------------------------------------------
18823 # ---------------------------------------------------------------------------------
18824                                              ),
18825 # =================================================================================
18826 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18827 # =================================================================================
18828                              THM_AIR_DISS = FACT(statut='o',
18829 # ---------------------------------------------------------------------------------
18830 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18831 # ---------------------------------------------------------------------------------
18832                                            CP               = SIMP(statut='o',typ='R'),
18833                                            COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18834                                              ),
18835                                  ),
18836
18837 # =================================================================================
18838 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ ---------------------------------------
18839 # =================================================================================
18840 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
18841 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------
18842 # =================================================================================
18843            b_liquvapegaz  = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ",
18844                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ",
18845 # =================================================================================
18846 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18847 # =================================================================================
18848                              THM_INIT   = FACT(statut='o',
18849 # ---------------------------------------------------------------------------------
18850 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18851 # ---------------------------------------------------------------------------------
18852                                            PRE1             = SIMP(statut='o',typ='R'),
18853                                            PRE2             = SIMP(statut='o',typ='R'),
18854                                            PORO             = SIMP(statut='o',typ='R'),
18855                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
18856 # ---------------------------------------------------------------------------------
18857 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18858 # ---------------------------------------------------------------------------------
18859                                            TEMP             = SIMP(statut='f',typ='R'),
18860 # ---------------------------------------------------------------------------------
18861 # -------------------   DONNEES INUTILES   ----------------------------------------
18862 # ---------------------------------------------------------------------------------
18863                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
18864 # ---------------------------------------------------------------------------------
18865 # -------------------   DONNEE CACHEE ---------------------------------------------
18866 # ---------------------------------------------------------------------------------
18867                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 4.0,),
18868                                              ),
18869 # =================================================================================
18870 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18871 # =================================================================================
18872                              THM_DIFFU  = FACT(statut='o',
18873 # ---------------------------------------------------------------------------------
18874 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18875 # ---------------------------------------------------------------------------------
18876                                            R_GAZ            = SIMP(statut='o',typ='R'),
18877                                            RHO              = SIMP(statut='o',typ='R'),
18878                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
18879                                            BIOT_L           = SIMP(statut='f',typ='R'),
18880                                            BIOT_N           = SIMP(statut='f',typ='R'),
18881                                            BIOT_T           = SIMP(statut='f',typ='R'),
18882                                            PESA_X           = SIMP(statut='o',typ='R'),
18883                                            PESA_Y           = SIMP(statut='o',typ='R'),
18884                                            PESA_Z           = SIMP(statut='o',typ='R'),
18885                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18886                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18887                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18888                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18889                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18890                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18891                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18892 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
18893
18894                                            VG_N     = SIMP(statut='f',typ='R'),
18895                                            VG_SR    = SIMP(statut='f',typ='R'),
18896                                            VG_PR    = SIMP(statut='f',typ='R'),
18897                                            VG_SMAX  = SIMP(statut='f',typ='R'),
18898                                            VG_SATUR = SIMP(statut='f',typ='R'),
18899 #
18900                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18901 # ---------------------------------------------------------------------------------
18902 # -------------------   DONNEES FACULTATIVES   ------------------------------------
18903 # ---------------------------------------------------------------------------------
18904                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18905 # ---------------------------------------------------------------------------------
18906 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18907 # ---------------------------------------------------------------------------------
18908                                            CP          = SIMP(statut='f',typ='R'),
18909                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18910                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18911                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18912                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18913                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18914                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18915                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18916                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18917                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18918                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18919                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18920                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18921                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18922                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18923                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18924                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18925                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18926                                            LAMB_CT     = SIMP(statut='f',typ='R'),
18927                                            LAMB_C_L     = SIMP(statut='f',typ='R'),
18928                                            LAMB_C_N     = SIMP(statut='f',typ='R'),
18929                                            LAMB_C_T     = SIMP(statut='f',typ='R'),
18930 #
18931                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
18932                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
18933                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
18934                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
18935                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
18936                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
18937                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
18938                                             EXCLUS('LAMB_T','LAMB_TL',),
18939                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
18940                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
18941                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
18942                                             EXCLUS('D_LB_T','D_LB_TL',),
18943                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
18944                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
18945                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
18946                                             EXCLUS('LAMB_CT','LAMB_C_L',),
18947                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
18948                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
18949                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
18950                                             EXCLUS('PERMIN_L','BIOT_COEF'),
18951                                             EXCLUS('PERMIN_L','LAMB_T'),
18952                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
18953                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
18954                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
18955                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
18956                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
18957
18958                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
18959                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
18960                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
18961                                             UN_PARMI('VG_N','SATU_PRES'),
18962                                            ),
18963 # ---------------------------------------------------------------------------------
18964 # -------------------   DONNEES FACULTATIVE   ----------------------------------
18965 # ---------------------------------------------------------------------------------
18966                                            EMMAG            = SIMP(statut='f',typ='R'),
18967                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18968                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18969                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18970                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18971                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18972 # ---------------------------------------------------------------------------------
18973 # -------------------   DONNEES INUTILES   ----------------------------------------
18974 # ---------------------------------------------------------------------------------
18975                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18976                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18977                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18978                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18979                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
18980                                              ) ,
18981 # =================================================================================
18982 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
18983 # =================================================================================
18984                              THM_LIQU   = FACT(statut='o',
18985 # ---------------------------------------------------------------------------------
18986 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
18987 # ---------------------------------------------------------------------------------
18988                                            RHO              = SIMP(statut='o',typ='R'),
18989                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
18990                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18991                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
18992 # ---------------------------------------------------------------------------------
18993 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
18994 # ---------------------------------------------------------------------------------
18995                                            ALPHA            = SIMP(statut='f',typ='R'),
18996                                            CP               = SIMP(statut='f',typ='R'),
18997                                              ),
18998 # =================================================================================
18999 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19000 # =================================================================================
19001                              THM_GAZ    = FACT(statut='o',
19002 # ---------------------------------------------------------------------------------
19003 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19004 # ---------------------------------------------------------------------------------
19005                                            MASS_MOL         = SIMP(statut='o',typ='R'),
19006                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19007                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19008 # ---------------------------------------------------------------------------------
19009 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19010 # ---------------------------------------------------------------------------------
19011                                            CP               = SIMP(statut='f',typ='R'),
19012                                              ),
19013 # =================================================================================
19014 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19015 # =================================================================================
19016                              THM_VAPE_GAZ = FACT(statut='o',
19017 # ---------------------------------------------------------------------------------
19018 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19019 # ---------------------------------------------------------------------------------
19020                                            MASS_MOL         = SIMP(statut='o',typ='R'),
19021                                            CP               = SIMP(statut='o',typ='R'),
19022                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19023                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19024                                              ),
19025                                  ),
19026 # =================================================================================
19027 # --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE -------------------------------------
19028 # =================================================================================
19029 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
19030 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS---------
19031 # =================================================================================
19032            b_liquadvape  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ",
19033                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE",
19034 # =================================================================================
19035 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19036 # =================================================================================
19037                              THM_INIT   = FACT(statut='o',
19038 # ---------------------------------------------------------------------------------
19039 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19040 # ---------------------------------------------------------------------------------
19041                                            PRE1             = SIMP(statut='o',typ='R'),
19042                                            PRE2             = SIMP(statut='o',typ='R'),
19043                                            PORO             = SIMP(statut='o',typ='R'),
19044                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
19045 # ---------------------------------------------------------------------------------
19046 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19047 # ---------------------------------------------------------------------------------
19048                                            TEMP             = SIMP(statut='f',typ='R'),
19049 # ---------------------------------------------------------------------------------
19050 # -------------------   DONNEES INUTILES   ----------------------------------------
19051 # ---------------------------------------------------------------------------------
19052                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
19053 # ---------------------------------------------------------------------------------
19054 # -------------------   DONNEE CACHEE ---------------------------------------------
19055 # ---------------------------------------------------------------------------------
19056                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 9.0,),
19057                                              ),
19058 # =================================================================================
19059 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19060 # =================================================================================
19061                              THM_DIFFU  = FACT(statut='o',
19062 # ---------------------------------------------------------------------------------
19063 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19064 # ---------------------------------------------------------------------------------
19065                                            R_GAZ            = SIMP(statut='o',typ='R'),
19066                                            RHO              = SIMP(statut='o',typ='R'),
19067                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
19068                                            BIOT_L           = SIMP(statut='f',typ='R'),
19069                                            BIOT_N           = SIMP(statut='f',typ='R'),
19070                                            BIOT_T           = SIMP(statut='f',typ='R'),
19071                                            PESA_X           = SIMP(statut='o',typ='R'),
19072                                            PESA_Y           = SIMP(statut='o',typ='R'),
19073                                            PESA_Z           = SIMP(statut='o',typ='R'),
19074                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19075                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19076                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19077                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19078                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19079                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19080                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19081 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
19082                                            VG_N     = SIMP(statut='f',typ='R'),
19083                                            VG_SR    = SIMP(statut='f',typ='R'),
19084                                            VG_PR    = SIMP(statut='f',typ='R'),
19085                                            VG_SMAX  = SIMP(statut='f',typ='R'),
19086                                            VG_SATUR = SIMP(statut='f',typ='R'),
19087 #
19088                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19089                                            FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19090 # ---------------------------------------------------------------------------------
19091 # -------------------   DONNEES FACULTATIVES   ------------------------------------
19092 # ---------------------------------------------------------------------------------
19093                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19094 # ---------------------------------------------------------------------------------
19095 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19096 # ---------------------------------------------------------------------------------
19097                                            CP          = SIMP(statut='f',typ='R'),
19098                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19099                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19100                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19101                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19102                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19103                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19104                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19105                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19106                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19107                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19108                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19109                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19110                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19111                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19112                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19113                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19114                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19115                                            LAMB_CT     = SIMP(statut='f',typ='R'),
19116                                            LAMB_C_L   = SIMP(statut='f',typ='R'),
19117                                            LAMB_C_N   = SIMP(statut='f',typ='R'),
19118                                            LAMB_C_T   = SIMP(statut='f',typ='R'),
19119 #
19120                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
19121                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
19122                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
19123                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
19124          PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
19125                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
19126                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
19127                                             EXCLUS('LAMB_T','LAMB_TL',),
19128          PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
19129          PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
19130                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
19131                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
19132                                             EXCLUS('D_LB_T','D_LB_TL',),
19133          PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
19134                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
19135                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
19136                                             EXCLUS('LAMB_CT','LAMB_C_L',),
19137          PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
19138                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
19139                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
19140                                             EXCLUS('PERMIN_L','BIOT_COEF'),
19141                                             EXCLUS('PERMIN_L','LAMB_T'),
19142          PRESENT_PRESENT('BIOT_L','PERMIN_L',),
19143          PRESENT_PRESENT('BIOT_T','PERMIN_T',),
19144                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
19145                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
19146                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
19147                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
19148                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
19149                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
19150                                             UN_PARMI('VG_N','SATU_PRES'),
19151                                            ),
19152 # ---------------------------------------------------------------------------------
19153 # -------------------   DONNEES FACULTATIVES   ------------------------------------
19154 # ---------------------------------------------------------------------------------
19155                                            EMMAG            = SIMP(statut='f',typ='R'),
19156                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19157                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19158                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19159                                            D_FV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19160                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19161 #
19162                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19163                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19164                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19165                                            D_FA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19166                                              ) ,
19167 # =================================================================================
19168 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19169 # =================================================================================
19170                              THM_LIQU   = FACT(statut='o',
19171 # ---------------------------------------------------------------------------------
19172 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19173 # ---------------------------------------------------------------------------------
19174                                            RHO              = SIMP(statut='o',typ='R'),
19175                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
19176                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19177                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19178 # ---------------------------------------------------------------------------------
19179 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19180 # ---------------------------------------------------------------------------------
19181                                            ALPHA            = SIMP(statut='f',typ='R'),
19182                                            CP               = SIMP(statut='f',typ='R'),
19183                                              ),
19184 # =================================================================================
19185 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19186 # =================================================================================
19187                              THM_GAZ    = FACT(statut='o',
19188 # ---------------------------------------------------------------------------------
19189 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19190 # ---------------------------------------------------------------------------------
19191                                            MASS_MOL         = SIMP(statut='o',typ='R'),
19192                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19193                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19194 # ---------------------------------------------------------------------------------
19195 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19196 # ---------------------------------------------------------------------------------
19197                                            CP               = SIMP(statut='f',typ='R'),
19198                                              ),
19199 # =================================================================================
19200 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19201 # =================================================================================
19202                              THM_VAPE_GAZ = FACT(statut='o',
19203 # ---------------------------------------------------------------------------------
19204 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19205 # ---------------------------------------------------------------------------------
19206                                            MASS_MOL         = SIMP(statut='o',typ='R'),
19207                                            CP               = SIMP(statut='o',typ='R'),
19208                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19209                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19210                                              ),
19211 # =================================================================================
19212 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19213 # =================================================================================
19214                              THM_AIR_DISS = FACT(statut='o',
19215 # ---------------------------------------------------------------------------------
19216 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19217 # ---------------------------------------------------------------------------------
19218                                            CP               = SIMP(statut='o',typ='R'),
19219                                            COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19220                                              ),
19221                                  ),
19222 # =================================================================================
19223 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE -------------------------------------------
19224 # =================================================================================
19225 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
19226 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ ---------------------------------
19227 # =================================================================================
19228            b_liquvape  = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ",
19229                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE",
19230 # =================================================================================
19231 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19232 # =================================================================================
19233                              THM_INIT   = FACT(statut='o',
19234 # ---------------------------------------------------------------------------------
19235 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19236 # ---------------------------------------------------------------------------------
19237                                            PRE1             = SIMP(statut='o',typ='R'),
19238                                            PORO             = SIMP(statut='o',typ='R'),
19239                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
19240 # ---------------------------------------------------------------------------------
19241 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19242 # ---------------------------------------------------------------------------------
19243                                            TEMP             = SIMP(statut='f',typ='R'),
19244 # ---------------------------------------------------------------------------------
19245 # -------------------   DONNEES INUTILES   ----------------------------------------
19246 # ---------------------------------------------------------------------------------
19247                                            PRE2             = SIMP(statut='f',typ='R'),
19248                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
19249 # ---------------------------------------------------------------------------------
19250 # -------------------   DONNEE CACHEE ---------------------------------------------
19251 # ---------------------------------------------------------------------------------
19252                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 3.0,),
19253                                              ),
19254 # =================================================================================
19255 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19256 # =================================================================================
19257                              THM_DIFFU  = FACT(statut='o',
19258 # ---------------------------------------------------------------------------------
19259 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19260 # ---------------------------------------------------------------------------------
19261                                            R_GAZ            = SIMP(statut='o',typ='R'),
19262                                            RHO              = SIMP(statut='o',typ='R'),
19263                                            BIOT_COEF        = SIMP(statut='f',typ='R'),
19264                                            BIOT_L           = SIMP(statut='f',typ='R'),
19265                                            BIOT_N           = SIMP(statut='f',typ='R'),
19266                                            BIOT_T           = SIMP(statut='f',typ='R'),
19267                                            PESA_X           = SIMP(statut='o',typ='R'),
19268                                            PESA_Y           = SIMP(statut='o',typ='R'),
19269                                            PESA_Z           = SIMP(statut='o',typ='R'),
19270                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19271                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19272                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19273                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19274                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19275                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19276                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19277 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
19278
19279                                            VG_N    = SIMP(statut='f',typ='R'),
19280                                            VG_SR    = SIMP(statut='f',typ='R'),
19281                                            VG_PR   = SIMP(statut='f',typ='R'),
19282                                            VG_SMAX = SIMP(statut='f',typ='R'),
19283                                            VG_SATUR = SIMP(statut='f',typ='R'),
19284 # ---------------------------------------------------------------------------------
19285 # -------------------   DONNEES FACULTATIVES   ------------------------------------
19286 # ---------------------------------------------------------------------------------
19287                                            PESA_MULT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19288 # ---------------------------------------------------------------------------------
19289 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19290 # ---------------------------------------------------------------------------------
19291                                            CP          = SIMP(statut='f',typ='R'),
19292                                            PERM_IN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19293                                            PERMIN_L    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19294                                            PERMIN_N    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19295                                            PERMIN_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19296                                            PERM_END    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19297                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19298                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19299                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19300                                            LAMB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19301                                            LAMB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19302                                            LAMB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19303                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19304                                            D_LB_TL     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19305                                            D_LB_TN     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19306                                            D_LB_TT     = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19307                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19308                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19309                                            LAMB_CT     = SIMP(statut='f',typ='R'),
19310                                            LAMB_C_L   = SIMP(statut='f',typ='R'),
19311                                            LAMB_C_N   = SIMP(statut='f',typ='R'),
19312                                            LAMB_C_T   = SIMP(statut='f',typ='R'),
19313 #
19314                                   regles = (EXCLUS('BIOT_COEF','BIOT_N',),
19315                                             PRESENT_PRESENT('BIOT_N','BIOT_L',),
19316                                             PRESENT_PRESENT('BIOT_T','BIOT_L','BIOT_N',),
19317                                             EXCLUS('PERM_IN','PERM_END','PERMIN_L',),
19318                                             PRESENT_ABSENT('PERMIN_N','PERMIN_T',),
19319                                             PRESENT_PRESENT('PERMIN_N','PERMIN_L',),
19320                                             PRESENT_PRESENT('PERMIN_T','PERMIN_L',),
19321                                             EXCLUS('LAMB_T','LAMB_TL',),
19322                                             PRESENT_ABSENT('LAMB_TN','LAMB_TT',),
19323                                             PRESENT_PRESENT('LAMB_TN','LAMB_TL',),
19324                                             PRESENT_PRESENT('LAMB_TT','LAMB_TL',),
19325                                             EXCLUS('D_LB_T','D_LB_TL',),
19326                                             PRESENT_ABSENT('D_LB_TN','D_LB_TT',),
19327                                             PRESENT_PRESENT('D_LB_TN','D_LB_TL',),
19328                                             PRESENT_PRESENT('D_LB_TT','D_LB_TL',),
19329                                             EXCLUS('LAMB_CT','LAMB_C_L',),
19330                                             PRESENT_ABSENT('LAMB_C_N','LAMB_C_T',),
19331                                             PRESENT_PRESENT('LAMB_C_N','LAMB_C_L',),
19332                                             PRESENT_PRESENT('LAMB_C_T','LAMB_C_L',),
19333                                             EXCLUS('PERMIN_L','BIOT_COEF'),
19334                                             EXCLUS('PERMIN_L','LAMB_T'),
19335                                             PRESENT_PRESENT('BIOT_L','PERMIN_L',),
19336                                             PRESENT_PRESENT('BIOT_T','PERMIN_T',),
19337                                             PRESENT_PRESENT('LAMB_TN','PERMIN_N',),
19338                                             PRESENT_PRESENT('LAMB_TL','PERMIN_L',),
19339                                             PRESENT_PRESENT('LAMB_TT','PERMIN_T',),
19340
19341                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
19342                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
19343                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
19344                                             UN_PARMI('VG_N','SATU_PRES'),
19345                                            ),
19346 # ---------------------------------------------------------------------------------
19347 # -------------------   DONNEES INUTILES   ----------------------------------------
19348 # ---------------------------------------------------------------------------------
19349                                            EMMAG            = SIMP(statut='f',typ='R'),
19350                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19351                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19352                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19353                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19354                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19355                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19356                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19357                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19358                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19359                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19360                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19361                                              ) ,
19362 # =================================================================================
19363 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19364 # =================================================================================
19365                              THM_LIQU   = FACT(statut='o',
19366 # ---------------------------------------------------------------------------------
19367 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19368 # ---------------------------------------------------------------------------------
19369                                            RHO              = SIMP(statut='o',typ='R'),
19370                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
19371                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19372                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19373 # ---------------------------------------------------------------------------------
19374 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
19375 # ---------------------------------------------------------------------------------
19376                                            ALPHA            = SIMP(statut='f',typ='R'),
19377                                            CP               = SIMP(statut='f',typ='R'),
19378                                              ),
19379 # =================================================================================
19380 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
19381 # =================================================================================
19382                              THM_VAPE_GAZ = FACT(statut='o',
19383 # ---------------------------------------------------------------------------------
19384 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
19385 # ---------------------------------------------------------------------------------
19386                                            MASS_MOL         = SIMP(statut='o',typ='R'),
19387                                            CP               = SIMP(statut='o',typ='R'),
19388                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19389                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19390                                              ),
19391 # =================================================================================
19392 # --- MOT-CLE INUTILE -------------------------------------------------------------
19393 # =================================================================================
19394            THM_GAZ         =FACT(statut='f',
19395              MASS_MOL        =SIMP(statut='f',typ='R'),
19396              CP              =SIMP(statut='f',typ='R'),
19397              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19398              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19399            ),
19400                                  ),
19401 # courbes et coefficients associés à la fatigue et au dommage
19402 #
19403            FATIGUE         =FACT(statut='f',
19404              regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
19405                      PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
19406                      PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
19407                      ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
19408                      ENSEMBLE('A0','A1','A2','A3','SL'),
19409                      PRESENT_PRESENT('A0','E_REFE'),
19410                      ENSEMBLE('D0','TAU0'),),
19411              WOHLER          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19412              A_BASQUIN       =SIMP(statut='f',typ='R'),
19413              BETA_BASQUIN    =SIMP(statut='f',typ='R'),
19414              A0              =SIMP(statut='f',typ='R'),
19415              A1              =SIMP(statut='f',typ='R'),
19416              A2              =SIMP(statut='f',typ='R'),
19417              A3              =SIMP(statut='f',typ='R'),
19418              SL              =SIMP(statut='f',typ='R'),
19419              MANSON_COFFIN   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19420              E_REFE          =SIMP(statut='f',typ='R'),
19421              D0              =SIMP(statut='f',typ='R'),
19422              TAU0            =SIMP(statut='f',typ='R'),
19423            ),
19424            DOMMA_LEMAITRE  =FACT(statut='f',
19425              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19426              EPSP_SEUIL      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19427              EXP_S           =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0),
19428            ),
19429            CISA_PLAN_CRIT  =FACT(statut='f',
19430              CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC",
19431                                                             "DANG_VAN_MODI_AC",
19432                                                             "DANG_VAN_MODI_AV",
19433                                                             "MATAKE_MODI_AV",
19434                                                             "FATESOCI_MODI_AV",
19435                                                             ) ),
19436
19437              b_critere_matake =BLOC(condition="CRITERE=='MATAKE_MODI_AC' or CRITERE=='MATAKE_MODI_AV'",
19438                          fr="Cisaillement plan critique critère de matake pour les cas amplitude constante et amplitude variable",
19439                MATAKE_A         =SIMP(statut='o',typ='R'),
19440                MATAKE_B         =SIMP(statut='o',typ='R'),
19441                COEF_FLEX_TORS   =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
19442              ),
19443
19444              b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')",
19445                                  fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable",
19446                D_VAN_A            =SIMP(statut='o',typ='R'),
19447                D_VAN_B            =SIMP(statut='o',typ='R'),
19448                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
19449              ),
19450
19451              b_critere_fate_soci =BLOC(condition="CRITERE=='FATESOCI_MODI_AV'",
19452                                fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable",
19453                FATSOC_A           =SIMP(statut='o',typ='R'),
19454                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
19455              ),
19456            ),
19457
19458
19459            THM_RUPT       =FACT(statut='f',
19460              OUV_FICT        =SIMP(statut='o',typ='R'),
19461              UN_SUR_N        =SIMP(statut='f',typ='R',defaut= 0.),
19462            ),
19463 #
19464 # autres comportements ...
19465 #
19466            WEIBULL         =FACT(statut='f',
19467              M               =SIMP(statut='o',typ='R'),
19468              VOLU_REFE       =SIMP(statut='o',typ='R'),
19469              SIGM_REFE       =SIMP(statut='o',typ='R'),
19470              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
19471            ),
19472            WEIBULL_FO      =FACT(statut='f',
19473              M               =SIMP(statut='o',typ='R'),
19474              VOLU_REFE       =SIMP(statut='o',typ='R'),
19475              SIGM_CNV        =SIMP(statut='o',typ='R'),
19476              SIGM_REFE       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19477              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
19478            ),
19479            NON_LOCAL       =FACT(statut='f',
19480              regles=(AU_MOINS_UN('LONG_CARA','C_GONF','C_GRAD_VARI','PENA_LAGR',),),
19481              LONG_CARA       =SIMP(statut='f',typ='R'),
19482              C_GRAD_VARI     =SIMP(statut='f',typ='R'),
19483              PENA_LAGR       =SIMP(statut='f',typ='R',defaut= 1.0E3),
19484              C_GONF          =SIMP(statut='f',typ='R'),
19485              COEF_RIGI_MINI  =SIMP(statut='f',typ='R'),
19486            ),
19487            RUPT_FRAG       =FACT(statut='f',
19488              GC              =SIMP(statut='o',typ='R'),
19489              SIGM_C          =SIMP(statut='f',typ='R'),
19490              PENA_ADHERENCE  =SIMP(statut='f',typ='R',val_min=1.E-12,val_max=1.E+0),
19491              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
19492              PENA_LAGR       =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0),
19493              RIGI_GLIS       =SIMP(statut='f',typ='R',defaut=1.0E1),
19494              CINEMATIQUE     =SIMP(statut='f',typ='TXM',defaut="UNILATER",into=("UNILATER","GLIS_1D","GLIS_2D")),
19495            ),
19496            RUPT_FRAG_FO   =FACT(statut='f',
19497              GC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
19498              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19499              PENA_ADHERENCE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19500              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
19501              CINEMATIQUE     =SIMP(statut='f',typ='TXM',defaut="UNILATER",into=("UNILATER","GLIS_1D","GLIS_2D")),
19502            ),
19503            CZM_LAB_MIX    =FACT(statut='f',
19504              SIGM_C          =SIMP(statut='o',typ='R',              val_min=1.E-100),
19505              GLIS_C          =SIMP(statut='o',typ='R',              val_min=1.E-100),
19506              ALPHA           =SIMP(statut='f',typ='R',  defaut=0.5, val_min=1.E-3),
19507              BETA            =SIMP(statut='f',typ='R',  defaut=1.,  val_min=0.),
19508              PENA_LAGR       =SIMP(statut='f',typ='R',  defaut=100.,val_min=1.01E+0),
19509              CINEMATIQUE     =SIMP(statut='f',typ='TXM',defaut="GLIS_1D",into=("UNILATER","GLIS_1D","GLIS_2D")),
19510            ),
19511            RUPT_DUCT       =FACT(statut='f',
19512              GC              =SIMP(statut='o',typ='R'),
19513              SIGM_C          =SIMP(statut='o',typ='R'),
19514              COEF_EXTR       =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=9.99E-1),
19515              COEF_PLAS       =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=9.99E-1),
19516              PENA_LAGR       =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0),
19517              RIGI_GLIS       =SIMP(statut='f',typ='R',defaut=1.0E1),
19518            ),
19519            JOINT_MECA_RUPT  =FACT(statut='f',
19520              regles=(EXCLUS('PRES_FLUIDE','PRES_CLAVAGE'),
19521                      EXCLUS('PRES_FLUIDE','SCIAGE'),
19522                      PRESENT_PRESENT('RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19523                      PRESENT_ABSENT('PRES_FLUIDE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19524                      PRESENT_ABSENT('PRES_CLAVAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19525                      PRESENT_ABSENT('SCIAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19526                      PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE','SCIAGE'),
19527                      PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE','PRES_CLAVAGE','SCIAGE'),
19528                      PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE','PRES_CLAVAGE','SCIAGE'),
19529                      ),
19530              K_N             =SIMP(statut='o',typ='R',val_min=1.E-12),
19531              K_T             =SIMP(statut='f',typ='R',val_min=1.E-12),
19532              SIGM_MAX        =SIMP(statut='o',typ='R',val_min=0.),
19533              ALPHA           =SIMP(statut='f',typ='R',defaut=1., val_min=0., val_max=2.),
19534              PENA_RUPTURE    =SIMP(statut='f',typ='R',val_min=1.E-12,val_max=10.E+0),
19535              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.,val_min=1.E-12),
19536              PRES_FLUIDE     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19537              PRES_CLAVAGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19538              SCIAGE          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19539              RHO_FLUIDE      =SIMP(statut='f',typ='R',val_min=0.),
19540              VISC_FLUIDE     =SIMP(statut='f',typ='R',val_min=1.E-20),
19541              OUV_MIN         =SIMP(statut='f',typ='R',val_min=1.E-15),
19542            ),
19543            JOINT_MECA_FROT   =FACT(statut='f',
19544              regles=(
19545                      EXCLUS('PRES_FLUIDE','SCIAGE'),
19546                      PRESENT_PRESENT('RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19547                      PRESENT_ABSENT('PRES_FLUIDE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19548                      PRESENT_ABSENT('SCIAGE','RHO_FLUIDE','VISC_FLUIDE','OUV_MIN'),
19549                      PRESENT_ABSENT('RHO_FLUIDE','PRES_FLUIDE'),
19550                      PRESENT_ABSENT('VISC_FLUIDE','PRES_FLUIDE'),
19551                      PRESENT_ABSENT('OUV_MIN','PRES_FLUIDE'),
19552                      ),
19553              K_N             =SIMP(statut='o',typ='R',val_min=1.E-12),
19554              K_T             =SIMP(statut='f',typ='R',val_min=1.E-12),
19555              MU              =SIMP(statut='o',typ='R',val_min=1.E-3),
19556              PENA_TANG       =SIMP(statut='f',typ='R',val_min=0.),
19557              ADHESION        =SIMP(statut='f',typ='R',defaut=0., val_min=0.),
19558              PRES_FLUIDE     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19559              SCIAGE          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19560              RHO_FLUIDE      =SIMP(statut='f',typ='R',val_min=0.),
19561              VISC_FLUIDE     =SIMP(statut='f',typ='R',val_min=1.E-20),
19562              OUV_MIN         =SIMP(statut='f',typ='R',val_min=1.E-15),
19563            ),
19564            RCCM            =FACT(statut='f',
19565              regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),),
19566              SY_02           =SIMP(statut='f',typ='R'),
19567              SM              =SIMP(statut='f',typ='R'),
19568              SU              =SIMP(statut='f',typ='R'),
19569              SC              =SIMP(statut='f',typ='R'),
19570              SH              =SIMP(statut='f',typ='R'),
19571              N_KE            =SIMP(statut='f',typ='R'),
19572              M_KE            =SIMP(statut='f',typ='R'),
19573              A_AMORC         =SIMP(statut='f',typ='R'),
19574              B_AMORC         =SIMP(statut='f',typ='R'),
19575              D_AMORC         =SIMP(statut='f',typ='R'),
19576              R_AMORC         =SIMP(statut='f',typ='R'),
19577            ),
19578            RCCM_FO         =FACT(statut='f',
19579              regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),),
19580              SY_02           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19581              SM              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19582              SU              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19583              S               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19584              N_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19585              M_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19586              A_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19587              B_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19588              D_AMORC         =SIMP(statut='f',typ='R'),
19589              R_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19590            ),
19591            LAIGLE          =FACT(statut='f',
19592              GAMMA_ULT       =SIMP(statut='o',typ='R'),
19593              GAMMA_E         =SIMP(statut='o',typ='R'),
19594              M_ULT           =SIMP(statut='o',typ='R'),
19595              M_E             =SIMP(statut='o',typ='R'),
19596              A_E             =SIMP(statut='o',typ='R'),
19597              M_PIC           =SIMP(statut='o',typ='R'),
19598              A_PIC           =SIMP(statut='o',typ='R'),
19599              ETA             =SIMP(statut='o',typ='R'),
19600              SIGMA_C         =SIMP(statut='o',typ='R'),
19601              GAMMA           =SIMP(statut='o',typ='R'),
19602              KSI             =SIMP(statut='o',typ='R'),
19603              GAMMA_CJS       =SIMP(statut='o',typ='R'),
19604              SIGMA_P1        =SIMP(statut='o',typ='R'),
19605              PA              =SIMP(statut='o',typ='R'),
19606            ),
19607            LETK          =FACT(statut='f',
19608              PA         =SIMP(statut='o',typ='R',fr="pression atmospherique"),
19609              NELAS      =SIMP(statut='o',typ='R',fr="exposant de la loi de variation des modules K et G"),
19610              SIGMA_C    =SIMP(statut='o',typ='R',fr="résistance en compression simple "),
19611              H0_EXT     =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"),
19612              GAMMA_CJS  =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan déviatoire entre 0 et 1."),
19613              XAMS       =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage pre pic"),
19614              ETA        =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'écrouissage post pic"),
19615              A_0        =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"),
19616              A_E        =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"),
19617              A_PIC      =SIMP(statut='o',typ='R',fr="a du seuil de pic"),
19618              S_0        =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"),
19619              M_0        =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"),
19620              M_E        =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"),
19621              M_PIC      =SIMP(statut='o',typ='R',fr="m du seuil de pic"),
19622              M_ULT      =SIMP(statut='o',typ='R',fr="m du seuil residuel"),
19623              XI_ULT     =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil résiduel"),
19624              XI_E       =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de clivage"),
19625              XI_PIC     =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil de pic"),
19626              MV_MAX     =SIMP(statut='o',typ='R',fr="m du seuil viscoplastique maximal"),
19627              XIV_MAX    =SIMP(statut='o',typ='R',fr="niveau d écrouissage pour atteindre le seuil viscoplastique maximal"),
19628              A          =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"),
19629              N          =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"),
19630              SIGMA_P1   =SIMP(statut='o',typ='R',fr="SIG min de l intersection du seuil de pic et intermediaire "),
19631              MU0_V      =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"),
19632              XI0_V      =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"),
19633              MU1        =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "),
19634              XI1        =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "),
19635            ),
19636            DRUCK_PRAGER  =FACT(statut='f',
19637              ALPHA           =SIMP(statut='o',typ='R'),
19638              SY              =SIMP(statut='o',typ='R'),
19639              P_ULTM          =SIMP(statut='o',typ='R'),
19640              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
19641              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
19642                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
19643                     H               =SIMP(statut='o',typ='R'),
19644                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
19645              ),
19646              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
19647                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
19648                     SY_ULTM         =SIMP(statut='o',typ='R'),
19649                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
19650              ),
19651              DILAT           =SIMP(statut='f',typ='R',defaut=0.0),
19652            ),
19653
19654            DRUCK_PRAGER_FO  =FACT(statut='f',
19655              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,formule)),
19656              SY              =SIMP(statut='o',typ=(fonction_sdaster,formule)),
19657              P_ULTM          =SIMP(statut='o',typ=(fonction_sdaster,formule)),
19658              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
19659              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
19660                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
19661                     H               =SIMP(statut='o',typ=(fonction_sdaster,formule)),
19662                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
19663              ),
19664              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
19665                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
19666                     SY_ULTM         =SIMP(statut='o',typ=(fonction_sdaster,formule)),
19667                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
19668              ),
19669             DILAT           =SIMP(statut='f',typ='R',defaut=0.0),
19670            ),
19671
19672            VISC_DRUC_PRAG          =FACT(statut='f',
19673              PREF       =SIMP(statut='o',typ='R',fr="pression de reference"),
19674              A          =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"),
19675              N          =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"),
19676              P_PIC      =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de pic"),
19677              P_ULT      =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil utime"),
19678              ALPHA_0    =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil d elasticite"),
19679              ALPHA_PIC  =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil de pic"),
19680              ALPHA_ULT  =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la cohesion au seuil ultime"),
19681              R_0        =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil d'elasticite"),
19682              R_PIC      =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil de pic"),
19683              R_ULT      =SIMP(statut='o',typ='R',fr="parametre d ecrouissage correspondant au seuil ultime"),
19684              BETA_0     =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil d elasticite"),
19685              BETA_PIC   =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil de pic"),
19686              BETA_ULT   =SIMP(statut='o',typ='R',fr="parametre d ecrouissage relatif à la dilatance au seuil ultime"),
19687            ),
19688              HOEK_BROWN          =FACT(statut='f',
19689              GAMMA_RUP       =SIMP(statut='o',typ='R'),
19690              GAMMA_RES       =SIMP(statut='o',typ='R'),
19691              S_END           =SIMP(statut='o',typ='R'),
19692              S_RUP           =SIMP(statut='o',typ='R'),
19693              M_END           =SIMP(statut='o',typ='R'),
19694              M_RUP           =SIMP(statut='o',typ='R'),
19695              BETA            =SIMP(statut='o',typ='R'),
19696              ALPHAHB         =SIMP(statut='o',typ='R'),
19697              PHI_RUP         =SIMP(statut='o',typ='R'),
19698              PHI_RES         =SIMP(statut='o',typ='R'),
19699              PHI_END         =SIMP(statut='f',typ='R'),
19700            ),
19701              ELAS_GONF             =FACT(statut='f',
19702              BETAM           =SIMP(statut='o',typ='R'),
19703              PREF            =SIMP(statut='o',typ='R'),
19704            ),
19705              JOINT_BANDIS         =FACT(statut='f',
19706              K                =SIMP(statut='o',typ='R'),
19707              DMAX             =SIMP(statut='o',typ='R'),
19708              GAMMA            =SIMP(statut='o',typ='R'),
19709              KT               =SIMP(statut='f',typ='R',defaut = 1.E12),
19710            ),
19711 ####  MONOCRISTAL
19712
19713            MONO_VISC1      =FACT(statut='f',
19714              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19715              N               =SIMP(statut='o',typ='R'),
19716              K               =SIMP(statut='o',typ='R'),
19717              C               =SIMP(statut='o',typ='R'),
19718            ),
19719            MONO_VISC2      =FACT(statut='f',
19720              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19721              N               =SIMP(statut='o',typ='R'),
19722              K               =SIMP(statut='o',typ='R'),
19723              C               =SIMP(statut='o',typ='R'),
19724              D               =SIMP(statut='o',typ='R'),
19725              A               =SIMP(statut='o',typ='R'),
19726            ),
19727            MONO_ISOT1      =FACT(statut='f',
19728               regles=(UN_PARMI('H','H1'),
19729                       PRESENT_PRESENT('H1','H2','H3','H4'),
19730                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
19731                       ),
19732              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
19733              R_0             =SIMP(statut='o',typ='R'),
19734              Q               =SIMP(statut='o',typ='R'),
19735              B               =SIMP(statut='o',typ='R'),
19736              H               =SIMP(statut='f',typ='R'),
19737              H1              =SIMP(statut='f',typ='R'),
19738              H2              =SIMP(statut='f',typ='R'),
19739              H3              =SIMP(statut='f',typ='R'),
19740              H4              =SIMP(statut='f',typ='R'),
19741              H5              =SIMP(statut='f',typ='R'),
19742              H6              =SIMP(statut='f',typ='R'),
19743            ),
19744            MONO_ISOT2      =FACT(statut='f',
19745               regles=(UN_PARMI('H','H1'),
19746                       PRESENT_PRESENT('H1','H2','H3','H4'),
19747                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
19748                       ),
19749              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
19750              R_0             =SIMP(statut='o',typ='R'),
19751              Q1              =SIMP(statut='o',typ='R'),
19752              B1              =SIMP(statut='o',typ='R'),
19753              H               =SIMP(statut='f',typ='R'),
19754              H1              =SIMP(statut='f',typ='R'),
19755              H2              =SIMP(statut='f',typ='R'),
19756              H3              =SIMP(statut='f',typ='R'),
19757              H4              =SIMP(statut='f',typ='R'),
19758              H5              =SIMP(statut='f',typ='R'),
19759              H6              =SIMP(statut='f',typ='R'),
19760              Q2              =SIMP(statut='o',typ='R'),
19761              B2              =SIMP(statut='o',typ='R'),
19762            ),
19763            MONO_CINE1      =FACT(statut='f',
19764              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
19765              D               =SIMP(statut='o',typ='R'),
19766            ),
19767            MONO_CINE2      =FACT(statut='f',
19768              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
19769              D               =SIMP(statut='o',typ='R'),
19770              GM              =SIMP(statut='o',typ='R'),
19771              PM              =SIMP(statut='o',typ='R'),
19772              C               =SIMP(statut='o',typ='R'),
19773            ),
19774            MONO_DD_KR      =FACT(statut='f',
19775               regles=(UN_PARMI('H','H1'),
19776                       PRESENT_PRESENT('H1','H2','H3','H4'),
19777                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
19778                       ),
19779             # TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19780              K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
19781              TAUR            =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"),
19782              TAU0            =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"),
19783              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
19784              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
19785              BSD             =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"),
19786              GCB             =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"),
19787              KDCS            =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"),
19788              P               =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"),
19789              Q               =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"),
19790              H               =SIMP(statut='f',typ='R'),
19791              H1              =SIMP(statut='f',typ='R'),
19792              H2              =SIMP(statut='f',typ='R'),
19793              H3              =SIMP(statut='f',typ='R'),
19794              H4              =SIMP(statut='f',typ='R'),
19795              H5              =SIMP(statut='f',typ='R'),
19796              H6              =SIMP(statut='f',typ='R'),
19797            ),
19798            MONO_DD_CFC      =FACT(statut='f',
19799              regles=(UN_PARMI('H','H1'),
19800                      PRESENT_PRESENT('H1','H2','H3','H4','H5'),
19801                      PRESENT_ABSENT('H','H1','H2','H3','H4','H5'),
19802                      ),
19803              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19804              GAMMA0          =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"),
19805              TAU_F           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
19806              A               =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"),
19807              B               =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"),
19808              N               =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"),
19809              Y               =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"),
19810              ALPHA           =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"),
19811              BETA            =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"),
19812              RHO_REF         =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"),
19813              H               =SIMP(statut='f',typ='R'),
19814              H1              =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",),
19815              H2              =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",),
19816              H3              =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",),
19817              H4              =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",),
19818              H5              =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",),
19819            ),
19820
19821            MONO_DD_CFC_IRRA      =FACT(statut='f',
19822              regles=(UN_PARMI('H','H1'),
19823                      PRESENT_PRESENT('H1','H2','H3','H4','H5'),
19824                      PRESENT_ABSENT('H','H1','H2','H3','H4','H5'),
19825                      ),
19826              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19827              GAMMA0          =SIMP(statut='f',typ='R',defaut=0.001,fr="Vitesse d ecoulement initiale en s**-1"),
19828              TAU_F           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
19829              A               =SIMP(statut='f',typ='R',defaut=0.13,fr="paramètre A, sans unité"),
19830              B               =SIMP(statut='f',typ='R',defaut=0.005,fr="paramètre B, sans unité"),
19831              N               =SIMP(statut='f',typ='R',defaut=200.,fr="paramètre n, sans unité"),
19832              Y               =SIMP(statut='o',typ='R',fr="paramète Y, en unité de longueur ex 2.5 A"),
19833              ALPHA           =SIMP(statut='f',typ='R',defaut=0.35,fr="ecrouissage, paramètre alpha"),
19834              BETA            =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"),
19835              RHO_REF         =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre rho_ref, en unité de longueur **-2"),
19836              H               =SIMP(statut='f',typ='R'),
19837              H1              =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",),
19838              H2              =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",),
19839              H3              =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",),
19840              H4              =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",),
19841              H5              =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",),
19842
19843              DZ_IRRA         =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Parametre dzeta pour irradiation"),
19844              XI_IRRA         =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Parametre xi pour irradiation"),
19845              RHO_VOID        =SIMP(statut='o',typ='R',fr="Parametre rho_voids pour irradiation"),
19846              PHI_LOOP        =SIMP(statut='o',typ='R',fr="Parametre phi_loops pour irradiation"),
19847              ALP_VOID        =SIMP(statut='o',typ='R',fr="Parametre alpha_voids pour irradiation"),
19848              ALP_LOOP        =SIMP(statut='o',typ='R',fr="Parametre alpha_loops pour irradiation"),
19849              RHO_SAT         =SIMP(statut='o',typ='R',fr="Parametre rho_sat*b*b pour irradiation"),
19850              PHI_SAT         =SIMP(statut='o',typ='R',fr="Parametre phi_sat pour irradiation"),
19851
19852            ),
19853
19854            MONO_DD_FAT      =FACT(statut='f',
19855              regles=(UN_PARMI('H','H1'),
19856                      PRESENT_PRESENT('H1','H2','H3','H4','H5'),
19857                      PRESENT_ABSENT('H','H1','H2','H3','H4','H5'),
19858                      ),
19859              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19860              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"),
19861              TAU_F           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
19862              BETA            =SIMP(statut='o',typ='R',fr="ecrouissage, paramètre b, en unite de longueur"),
19863              N               =SIMP(statut='o',typ='R',fr="paramètre n, sans unite"),
19864              UN_SUR_D        =SIMP(statut='o',typ='R',fr="paramètre 1/D, en unite de 1/longueur"),
19865              GC0             =SIMP(statut='o',typ='R',fr="paramètre GC0, en unite de longueur"),
19866              K               =SIMP(statut='o',typ='R',fr="paramètre K, sans unite"),
19867              H               =SIMP(statut='f',typ='R'),
19868              H1              =SIMP(statut='f',typ='R',defaut=0.124,fr="matrice d'interaction, terme a*",),
19869              H2              =SIMP(statut='f',typ='R',defaut=0.625,fr="matrice d'interaction, terme a_colineaire",),
19870              H3              =SIMP(statut='f',typ='R',defaut=0.137,fr="matrice d'interaction, terme a_glissile",),
19871              H4              =SIMP(statut='f',typ='R',defaut=0.122,fr="matrice d'interaction, terme a_Lomer",),
19872              H5              =SIMP(statut='f',typ='R',defaut=0.07,fr="matrice d'interaction, terme a_Hirth",),
19873            ),
19874
19875           MONO_DD_CC      =FACT(statut='f',
19876              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19877              B               =SIMP(statut='o',typ='R',fr="parametre B, en unite de longueur"),
19878              GH               =SIMP(statut='o',typ='R',fr="parametre H, en unite de 1/temps"),
19879              DELTAG0         =SIMP(statut='o',typ='R',fr="energie d'activation, en unite d'energie (eV ou J)"),
19880              TAU_0           =SIMP(statut='o',typ='R',fr="contrainte ultime, en unite de contraintes "),
19881              TAU_F           =SIMP(statut='o',typ='R',fr="seuil en contrainte , en unite de contraintes"),
19882              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"),
19883              N               =SIMP(statut='o',typ='R',fr="parametre n, sans unite"),
19884              RHO_MOB         =SIMP(statut='o',typ='R',fr="densite de dislocations mobiles, en unite de longueur **-2"),
19885              D               =SIMP(statut='o',typ='R',fr="parametre D, en unite de longueur"),
19886              BETA            =SIMP(statut='o',typ='R',fr="parametre beta, sans unite"),
19887              D_LAT           =SIMP(statut='o',typ='R',fr="parametre D_LAT, en unite de longueur"),
19888              Y_AT            =SIMP(statut='o',typ='R',fr="parametre Y_AT, en unite de longueur"),
19889              K_F             =SIMP(statut='o',typ='R',fr="Parametre K_F"),
19890              K_SELF          =SIMP(statut='o',typ='R',fr="Parametre K_SELF"),
19891              K_BOLTZ         =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
19892              H1              =SIMP(statut='o',typ='R',fr="Parametre a_self"),
19893              H2              =SIMP(statut='o',typ='R',fr="Parametre a_coli"),
19894              H3              =SIMP(statut='o',typ='R',fr="Parametre a_ncol"),
19895              H4              =SIMP(statut='f',typ='R',defaut=0.),
19896              H5              =SIMP(statut='f',typ='R',defaut=0.),
19897              H6              =SIMP(statut='f',typ='R',defaut=0.),
19898              DELTA1          =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de Y_AT avec tau_eff"),
19899              DELTA2          =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de a_AT avec tau_eff"),
19900              DEPDT           =SIMP(statut='f',typ='R',defaut=0.,fr="parametre dEps/dT pour le calcul de DeltaG"),
19901            ),
19902
19903           MONO_DD_CC_IRRA =FACT(statut='f',
19904              #TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
19905              B               =SIMP(statut='o',typ='R',fr="parametre B, en unite de longueur"),
19906              GH               =SIMP(statut='o',typ='R',fr="parametre H, en unite de 1/temps"),
19907              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
19908              TAU_0           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
19909              TAU_F           =SIMP(statut='o',typ='R',fr="Contraintes , en unite de contraintes ex 20 MPa"),
19910              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale en s**-1"),
19911              N               =SIMP(statut='o',typ='R',fr="parametre n, sans unite"),
19912              RHO_MOB         =SIMP(statut='o',typ='R',fr="densite de dislocations mobiles, en unite de longueur **-2"),
19913              D               =SIMP(statut='o',typ='R',fr="parametre D, en unite de longueur"),
19914              BETA            =SIMP(statut='o',typ='R',fr="ecrouissage, parametre beta"),
19915              D_LAT           =SIMP(statut='o',typ='R',fr="parametre D_LAT, en unite de longueur"),
19916              Y_AT            =SIMP(statut='o',typ='R',fr="parametre Y_AT, en unite de longueur"),
19917              K_F             =SIMP(statut='o',typ='R',fr="Parametre K_F"),
19918              K_SELF          =SIMP(statut='o',typ='R',fr="Parametre K_SELF"),
19919              K_BOLTZ         =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
19920              H1              =SIMP(statut='o',typ='R',fr="Parametre a_self"),
19921              H2              =SIMP(statut='o',typ='R',fr="Parametre a_coli"),
19922              H3              =SIMP(statut='o',typ='R',fr="Parametre a_ncol"),
19923              H4              =SIMP(statut='f',typ='R',defaut=0.),
19924              H5              =SIMP(statut='f',typ='R',defaut=0.),
19925              H6              =SIMP(statut='f',typ='R',defaut=0.),
19926              DELTA1          =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de Y_AT avec tau_eff"),
19927              DELTA2          =SIMP(statut='f',typ='R',defaut=1.,fr="parametre permettant la variation de a_AT avec tau_eff"),
19928              DEPDT           =SIMP(statut='f',typ='R',defaut=0.,fr="parametre dEps/dT pour le calcul de DeltaG"),
19929              A_IRRA          =SIMP(statut='o',typ='R',fr="Parametre a_loops pour irradiation"),
19930              XI_IRRA         =SIMP(statut='o',typ='R',fr="Parametre xi pour irradiation"),
19931            ),
19932
19933
19934 ####  FIN MONOCRISTAL
19935
19936 ### UMAT
19937            UMAT   =FACT(statut='f',
19938              NB_VALE =SIMP(statut='f',typ='R'),
19939              C1 =SIMP(statut='f',typ='R'),
19940              C2 =SIMP(statut='f',typ='R'),
19941              C3 =SIMP(statut='f',typ='R'),
19942              C4 =SIMP(statut='f',typ='R'),
19943              C5 =SIMP(statut='f',typ='R'),
19944              C6 =SIMP(statut='f',typ='R'),
19945              C7 =SIMP(statut='f',typ='R'),
19946              C8 =SIMP(statut='f',typ='R'),
19947              C9 =SIMP(statut='f',typ='R'),
19948              C10 =SIMP(statut='f',typ='R'),
19949              C11 =SIMP(statut='f',typ='R'),
19950              C12 =SIMP(statut='f',typ='R'),
19951              C13 =SIMP(statut='f',typ='R'),
19952              C14 =SIMP(statut='f',typ='R'),
19953              C15 =SIMP(statut='f',typ='R'),
19954              C16 =SIMP(statut='f',typ='R'),
19955              C17 =SIMP(statut='f',typ='R'),
19956              C18 =SIMP(statut='f',typ='R'),
19957              C19 =SIMP(statut='f',typ='R'),
19958              C20 =SIMP(statut='f',typ='R'),
19959              C21 =SIMP(statut='f',typ='R'),
19960              C22 =SIMP(statut='f',typ='R'),
19961              C23 =SIMP(statut='f',typ='R'),
19962              C24 =SIMP(statut='f',typ='R'),
19963              C25 =SIMP(statut='f',typ='R'),
19964              C26 =SIMP(statut='f',typ='R'),
19965              C27 =SIMP(statut='f',typ='R'),
19966              C28 =SIMP(statut='f',typ='R'),
19967              C29 =SIMP(statut='f',typ='R'),
19968              C30 =SIMP(statut='f',typ='R'),
19969              C31 =SIMP(statut='f',typ='R'),
19970              C32 =SIMP(statut='f',typ='R'),
19971              C33 =SIMP(statut='f',typ='R'),
19972              C34 =SIMP(statut='f',typ='R'),
19973              C35 =SIMP(statut='f',typ='R'),
19974              C36 =SIMP(statut='f',typ='R'),
19975              C37 =SIMP(statut='f',typ='R'),
19976              C38 =SIMP(statut='f',typ='R'),
19977              C39 =SIMP(statut='f',typ='R'),
19978              C40 =SIMP(statut='f',typ='R'),
19979              C41 =SIMP(statut='f',typ='R'),
19980              C42 =SIMP(statut='f',typ='R'),
19981              C43 =SIMP(statut='f',typ='R'),
19982              C44 =SIMP(statut='f',typ='R'),
19983              C45 =SIMP(statut='f',typ='R'),
19984              C46 =SIMP(statut='f',typ='R'),
19985              C47 =SIMP(statut='f',typ='R'),
19986              C48 =SIMP(statut='f',typ='R'),
19987              C49 =SIMP(statut='f',typ='R'),
19988              C50 =SIMP(statut='f',typ='R'),
19989              C51 =SIMP(statut='f',typ='R'),
19990              C52 =SIMP(statut='f',typ='R'),
19991              C53 =SIMP(statut='f',typ='R'),
19992              C54 =SIMP(statut='f',typ='R'),
19993              C55 =SIMP(statut='f',typ='R'),
19994              C56 =SIMP(statut='f',typ='R'),
19995              C57 =SIMP(statut='f',typ='R'),
19996              C58 =SIMP(statut='f',typ='R'),
19997              C59 =SIMP(statut='f',typ='R'),
19998              C60 =SIMP(statut='f',typ='R'),
19999              C61 =SIMP(statut='f',typ='R'),
20000              C62 =SIMP(statut='f',typ='R'),
20001              C63 =SIMP(statut='f',typ='R'),
20002              C64 =SIMP(statut='f',typ='R'),
20003              C65 =SIMP(statut='f',typ='R'),
20004              C66 =SIMP(statut='f',typ='R'),
20005              C67 =SIMP(statut='f',typ='R'),
20006              C68 =SIMP(statut='f',typ='R'),
20007              C69 =SIMP(statut='f',typ='R'),
20008              C70 =SIMP(statut='f',typ='R'),
20009              C71 =SIMP(statut='f',typ='R'),
20010              C72 =SIMP(statut='f',typ='R'),
20011              C73 =SIMP(statut='f',typ='R'),
20012              C74 =SIMP(statut='f',typ='R'),
20013              C75 =SIMP(statut='f',typ='R'),
20014              C76 =SIMP(statut='f',typ='R'),
20015              C77 =SIMP(statut='f',typ='R'),
20016              C78 =SIMP(statut='f',typ='R'),
20017              C79 =SIMP(statut='f',typ='R'),
20018              C80 =SIMP(statut='f',typ='R'),
20019              C81 =SIMP(statut='f',typ='R'),
20020              C82 =SIMP(statut='f',typ='R'),
20021              C83 =SIMP(statut='f',typ='R'),
20022              C84 =SIMP(statut='f',typ='R'),
20023              C85 =SIMP(statut='f',typ='R'),
20024              C86 =SIMP(statut='f',typ='R'),
20025              C87 =SIMP(statut='f',typ='R'),
20026              C88 =SIMP(statut='f',typ='R'),
20027              C89 =SIMP(statut='f',typ='R'),
20028              C90 =SIMP(statut='f',typ='R'),
20029              C91 =SIMP(statut='f',typ='R'),
20030              C92 =SIMP(statut='f',typ='R'),
20031              C93 =SIMP(statut='f',typ='R'),
20032              C94 =SIMP(statut='f',typ='R'),
20033              C95 =SIMP(statut='f',typ='R'),
20034              C96 =SIMP(statut='f',typ='R'),
20035              C97 =SIMP(statut='f',typ='R'),
20036              C98 =SIMP(statut='f',typ='R'),
20037              C99 =SIMP(statut='f',typ='R'),
20038              C100 =SIMP(statut='f',typ='R'),
20039              C101 =SIMP(statut='f',typ='R'),
20040              C102 =SIMP(statut='f',typ='R'),
20041              C103 =SIMP(statut='f',typ='R'),
20042              C104 =SIMP(statut='f',typ='R'),
20043              C105 =SIMP(statut='f',typ='R'),
20044              C106 =SIMP(statut='f',typ='R'),
20045              C107 =SIMP(statut='f',typ='R'),
20046              C108 =SIMP(statut='f',typ='R'),
20047              C109 =SIMP(statut='f',typ='R'),
20048              C110 =SIMP(statut='f',typ='R'),
20049              C111 =SIMP(statut='f',typ='R'),
20050              C112 =SIMP(statut='f',typ='R'),
20051              C113 =SIMP(statut='f',typ='R'),
20052              C114 =SIMP(statut='f',typ='R'),
20053              C115 =SIMP(statut='f',typ='R'),
20054              C116 =SIMP(statut='f',typ='R'),
20055              C117 =SIMP(statut='f',typ='R'),
20056              C118 =SIMP(statut='f',typ='R'),
20057              C119 =SIMP(statut='f',typ='R'),
20058              C120 =SIMP(statut='f',typ='R'),
20059              C121 =SIMP(statut='f',typ='R'),
20060              C122 =SIMP(statut='f',typ='R'),
20061              C123 =SIMP(statut='f',typ='R'),
20062              C124 =SIMP(statut='f',typ='R'),
20063              C125 =SIMP(statut='f',typ='R'),
20064              C126 =SIMP(statut='f',typ='R'),
20065              C127 =SIMP(statut='f',typ='R'),
20066              C128 =SIMP(statut='f',typ='R'),
20067              C129 =SIMP(statut='f',typ='R'),
20068              C130 =SIMP(statut='f',typ='R'),
20069              C131 =SIMP(statut='f',typ='R'),
20070              C132 =SIMP(statut='f',typ='R'),
20071              C133 =SIMP(statut='f',typ='R'),
20072              C134 =SIMP(statut='f',typ='R'),
20073              C135 =SIMP(statut='f',typ='R'),
20074              C136 =SIMP(statut='f',typ='R'),
20075              C137 =SIMP(statut='f',typ='R'),
20076              C138 =SIMP(statut='f',typ='R'),
20077              C139 =SIMP(statut='f',typ='R'),
20078              C140 =SIMP(statut='f',typ='R'),
20079              C141 =SIMP(statut='f',typ='R'),
20080              C142 =SIMP(statut='f',typ='R'),
20081              C143 =SIMP(statut='f',typ='R'),
20082              C144 =SIMP(statut='f',typ='R'),
20083              C145 =SIMP(statut='f',typ='R'),
20084              C146 =SIMP(statut='f',typ='R'),
20085              C147 =SIMP(statut='f',typ='R'),
20086              C148 =SIMP(statut='f',typ='R'),
20087              C149 =SIMP(statut='f',typ='R'),
20088              C150 =SIMP(statut='f',typ='R'),
20089              C151 =SIMP(statut='f',typ='R'),
20090              C152 =SIMP(statut='f',typ='R'),
20091              C153 =SIMP(statut='f',typ='R'),
20092              C154 =SIMP(statut='f',typ='R'),
20093              C155 =SIMP(statut='f',typ='R'),
20094              C156 =SIMP(statut='f',typ='R'),
20095              C157 =SIMP(statut='f',typ='R'),
20096              C158 =SIMP(statut='f',typ='R'),
20097              C159 =SIMP(statut='f',typ='R'),
20098              C160 =SIMP(statut='f',typ='R'),
20099              C161 =SIMP(statut='f',typ='R'),
20100              C162 =SIMP(statut='f',typ='R'),
20101              C163 =SIMP(statut='f',typ='R'),
20102              C164 =SIMP(statut='f',typ='R'),
20103              C165 =SIMP(statut='f',typ='R'),
20104              C166 =SIMP(statut='f',typ='R'),
20105              C167 =SIMP(statut='f',typ='R'),
20106              C168 =SIMP(statut='f',typ='R'),
20107              C169 =SIMP(statut='f',typ='R'),
20108              C170 =SIMP(statut='f',typ='R'),
20109              C171 =SIMP(statut='f',typ='R'),
20110              C172 =SIMP(statut='f',typ='R'),
20111              C173 =SIMP(statut='f',typ='R'),
20112              C174 =SIMP(statut='f',typ='R'),
20113              C175 =SIMP(statut='f',typ='R'),
20114              C176 =SIMP(statut='f',typ='R'),
20115              C177 =SIMP(statut='f',typ='R'),
20116              C178 =SIMP(statut='f',typ='R'),
20117              C179 =SIMP(statut='f',typ='R'),
20118              C180 =SIMP(statut='f',typ='R'),
20119              C181 =SIMP(statut='f',typ='R'),
20120              C182 =SIMP(statut='f',typ='R'),
20121              C183 =SIMP(statut='f',typ='R'),
20122              C184 =SIMP(statut='f',typ='R'),
20123              C185 =SIMP(statut='f',typ='R'),
20124              C186 =SIMP(statut='f',typ='R'),
20125              C187 =SIMP(statut='f',typ='R'),
20126              C188 =SIMP(statut='f',typ='R'),
20127              C189 =SIMP(statut='f',typ='R'),
20128              C190 =SIMP(statut='f',typ='R'),
20129              C191 =SIMP(statut='f',typ='R'),
20130              C192 =SIMP(statut='f',typ='R'),
20131              C193 =SIMP(statut='f',typ='R'),
20132              C194 =SIMP(statut='f',typ='R'),
20133              C195 =SIMP(statut='f',typ='R'),
20134              C196 =SIMP(statut='f',typ='R'),
20135              C197 =SIMP(statut='f',typ='R'),
20136            ),
20137            UMAT_FO   =FACT(statut='f',
20138              NB_VALE =SIMP(statut='f',typ='R'),
20139              C1 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20140              C2 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20141              C3 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20142              C4 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20143              C5 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20144              C6 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20145              C7 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20146              C8 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20147              C9 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20148              C10 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20149              C11 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20150              C12 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20151              C13 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20152              C14 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20153              C15 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20154              C16 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20155              C17 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20156              C18 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20157              C19 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20158              C20 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20159              C21 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20160              C22 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20161              C23 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20162              C24 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20163              C25 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20164              C26 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20165              C27 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20166              C28 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20167              C29 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20168              C30 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20169              C31 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20170              C32 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20171              C33 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20172              C34 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20173              C35 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20174              C36 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20175              C37 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20176              C38 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20177              C39 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20178              C40 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20179              C41 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20180              C42 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20181              C43 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20182              C44 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20183              C45 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20184              C46 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20185              C47 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20186              C48 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20187              C49 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20188              C50 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20189              C51 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20190              C52 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20191              C53 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20192              C54 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20193              C55 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20194              C56 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20195              C57 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20196              C58 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20197              C59 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20198              C60 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20199              C61 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20200              C62 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20201              C63 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20202              C64 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20203              C65 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20204              C66 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20205              C67 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20206              C68 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20207              C69 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20208              C70 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20209              C71 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20210              C72 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20211              C73 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20212              C74 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20213              C75 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20214              C76 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20215              C77 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20216              C78 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20217              C79 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20218              C80 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20219              C81 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20220              C82 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20221              C83 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20222              C84 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20223              C85 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20224              C86 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20225              C87 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20226              C88 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20227              C89 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20228              C90 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20229              C91 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20230              C92 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20231              C93 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20232              C94 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20233              C95 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20234              C96 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20235              C97 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20236              C98 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20237              C99 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20238              C100 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20239              C101 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20240              C102 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20241              C103 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20242              C104 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20243              C105 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20244              C106 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20245              C107 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20246              C108 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20247              C109 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20248              C110 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20249              C111 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20250              C112 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20251              C113 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20252              C114 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20253              C115 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20254              C116 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20255              C117 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20256              C118 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20257              C119 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20258              C120 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20259              C121 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20260              C122 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20261              C123 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20262              C124 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20263              C125 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20264              C126 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20265              C127 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20266              C128 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20267              C129 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20268              C130 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20269              C131 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20270              C132 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20271              C133 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20272              C134 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20273              C135 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20274              C136 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20275              C137 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20276              C138 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20277              C139 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20278              C140 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20279              C141 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20280              C142 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20281              C143 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20282              C144 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20283              C145 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20284              C146 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20285              C147 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20286              C148 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20287              C149 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20288              C150 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20289              C151 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20290              C152 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20291              C153 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20292              C154 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20293              C155 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20294              C156 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20295              C157 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20296              C158 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20297              C159 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20298              C160 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20299              C161 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20300              C162 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20301              C163 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20302              C164 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20303              C165 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20304              C166 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20305              C167 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20306              C168 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20307              C169 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20308              C170 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20309              C171 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20310              C172 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20311              C173 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20312              C174 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20313              C175 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20314              C176 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20315              C177 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20316              C178 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20317              C179 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20318              C180 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20319              C181 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20320              C182 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20321              C183 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20322              C184 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20323              C185 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20324              C186 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20325              C187 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20326              C188 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20327              C189 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20328              C190 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20329              C191 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20330              C192 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20331              C193 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20332              C194 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20333              C195 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20334              C196 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20335              C197 =SIMP(statut='f',typ=(fonction_sdaster,formule)),
20336            ),
20337 ### UMAT
20338 ### CRITERE DE RUPTURE
20339            CRIT_RUPT      =FACT(statut='f',
20340              SIGM_C           =SIMP(statut='o',typ='R',fr="contrainte critique"),
20341              COEF             =SIMP(statut='o',typ='R',fr="E=E/COEF,si la contrainte principale max est atteinte dans l'element"),
20342            ),
20343 #
20344
20345            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
20346 )  ;
20347
20348 # ======================================================================
20349 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20350 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20351 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20352 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20353 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20354 #
20355 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20356 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20357 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20358 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20359 #
20360 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20361 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20362 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20363 # ======================================================================
20364 # person_in_charge: mathieu.corus at edf.fr
20365 DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
20366                       reentrant='n',
20367             fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", 
20368             UIinfo={"groupes":("Matrices et vecteurs",)},
20369          SOUS_STRUC      =FACT(statut='o',max='**',
20370            NOM             =SIMP(statut='o',typ='TXM' ),
20371            MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
20372            ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
20373            TRANS           =SIMP(statut='o',typ='R',max=3),
20374          ),
20375          LIAISON         =FACT(statut='o',max='**',
20376            SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
20377            INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
20378            SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
20379            INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
20380            regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
20381                    EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
20382            GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20383            MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20384            GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20385            MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20386            OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
20387          ),
20388          VERIF           =FACT(statut='f',max='**',
20389 #  dans la doc U stop_erreur est obligatoire         
20390            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
20391            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
20392            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
20393          ),
20394          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
20395 )  ;
20396
20397 # ======================================================================
20398 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
20399 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20400 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20401 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20402 # (AT YOUR OPTION) ANY LATER VERSION.
20403 #
20404 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20405 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20406 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20407 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20408 #
20409 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20410 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20411 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20412 # ======================================================================
20413 # person_in_charge: mathieu.courtois at edf.fr
20414 DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=4,sd_prod=nappe_sdaster,
20415                 fr="Définir une fonction réelle de deux variables réelles",
20416                 reentrant='n',UIinfo={"groupes":("Fonctions",)},
20417          regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
20418                  EXCLUS('FONCTION','NOM_PARA_FONC',),
20419                  ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),),
20420          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
20421          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
20422          PARA            =SIMP(statut='o',typ='R',max='**'),
20423          FONCTION        =SIMP(statut='f',typ=fonction_sdaster, max='**' ),
20424          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
20425          DEFI_FONCTION   =FACT(statut='f',max='**',
20426            VALE            =SIMP(statut='o',typ='R',max='**'),
20427            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
20428                                  fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction."),
20429            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
20430            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
20431          ),
20432          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
20433                                fr="Type d'interpolation pour le paramètre de la nappe"),
20434          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
20435          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
20436          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1, 2) ),
20437          VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
20438          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20439 )  ;
20440
20441 # ======================================================================
20442 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20443 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20444 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20445 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20446 # (AT YOUR OPTION) ANY LATER VERSION.
20447 #
20448 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20449 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20450 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20451 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20452 #
20453 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20454 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20455 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20456 # ======================================================================
20457 # person_in_charge: marc.kham at edf.fr
20458 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=table_fonction,
20459                    fr="Définition d'un obstacle plan perpendiculaire à une structure filaire",
20460                    reentrant='n',
20461          UIinfo={"groupes":("Modélisation",)},
20462          TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
20463                              into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
20464                              "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
20465                              ) ),
20466          VALE            =SIMP(statut='f',typ='R',max='**'),
20467          VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
20468 )  ;
20469
20470 # ======================================================================
20471 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
20472 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20473 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20474 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20475 # (AT YOUR OPTION) ANY LATER VERSION.
20476 #
20477 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20478 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20479 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20480 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20481 #
20482 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20483 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20484 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20485 # ======================================================================
20486 # person_in_charge: aimery.assire at edf.fr
20487
20488 DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_partit,
20489                     fr="Creation partitionnement en sous-domaines",
20490                     docu="U4.23.05",reentrant='n',
20491                     UIinfo={"groupes":("Modélisation",)},
20492          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
20493          MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
20494          NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
20495          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
20496          DEFI          =FACT(statut='f',max='**',
20497            GROUP_MA        =SIMP(statut='o',typ=grma),
20498            GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
20499          ),
20500          EXCIT           =FACT(statut='f',max='**',
20501            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
20502          ),
20503 );
20504
20505 # ======================================================================
20506 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
20507 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20508 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20509 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20510 # (AT YOUR OPTION) ANY LATER VERSION.
20511 #
20512 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20513 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20514 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20515 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20516 #
20517 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20518 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20519 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20520 # ======================================================================
20521 # person_in_charge: aimery.assire at edf.fr
20522
20523 DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29,
20524                     fr="Creation partitionnement en sous-domaines",
20525                     docu="U4.00.00",
20526                     UIinfo={"groupes":("Modélisation",)},
20527          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
20528          MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
20529          NB_PART         =SIMP(statut='o',typ='I',),
20530
20531          # Methode de partitionnement
20532          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="KMETIS" ),
20533
20534          LOGICIEL      =SIMP(statut='f',typ='TXM'),
20535
20536          # Corrige les problemes possibles de non-connexite des sous-domaines
20537          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
20538
20539          # Permet de grouper des mailles dans un meme sous-doamine
20540          GROUPAGE        =FACT(statut='f',max='**',
20541            GROUP_MA       =SIMP(statut='o',typ=grma,),
20542                           ),
20543          # Permet d'appliquer des poids sur certaines mailles
20544          POIDS_MAILLES   =FACT(statut='f',max='**',
20545            GROUP_MA       =SIMP(statut='o',typ=grma,),
20546            POIDS          =SIMP(statut='f',typ='I'),
20547                           ),
20548          # Prefixe pour le nom des group_ma definissant les sous-domaines
20549          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
20550
20551          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
20552          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
20553
20554          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
20555          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
20556            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
20557              ),
20558
20559          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
20560
20561 );
20562
20563 # ======================================================================
20564 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
20565 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20566 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20567 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20568 # (AT YOUR OPTION) ANY LATER VERSION.
20569 #
20570 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20571 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20572 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20573 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20574 #
20575 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20576 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20577 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20578 # ======================================================================
20579 # person_in_charge: aimery.assire at edf.fr
20580
20581
20582 DEFI_PARTITION=MACRO(nom="DEFI_PARTITION",
20583                      op=OPS('Macro.defi_partition_ops.defi_partition_ops'),
20584                      sd_prod=sd_partit,
20585                      reentrant='n',UIinfo={"groupes":("Modélisation",)},
20586                      fr="Creation partitionnement en sous-domaines",
20587          regles=(UN_PARMI('MAILLAGE','MODELE'),PRESENT_PRESENT('MODELE','EXCIT'),),
20588
20589          NB_PART         =SIMP(statut='o',typ='I',val_min=2),
20590          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
20591          MODELE          =SIMP(statut='f',typ=modele_sdaster),
20592          EXCIT           =FACT(statut='f',max='**',
20593            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
20594
20595          # Methode de partitionnement
20596          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="KMETIS" ),
20597
20598          LOGICIEL      =SIMP(statut='f',typ='TXM'),
20599
20600          # Corrige les problemes possibles de non-connexite des sous-domaines
20601          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
20602
20603          # Permet de grouper des mailles dans un meme sous-doamine
20604          GROUPAGE        =FACT(statut='f',max='**',
20605            GROUP_MA       =SIMP(statut='o',typ=grma,),
20606                           ),
20607          # Permet d'appliquer des poids sur certaines mailles
20608          POIDS_MAILLES   =FACT(statut='f',max='**',
20609            GROUP_MA       =SIMP(statut='o',typ=grma,),
20610            POIDS          =SIMP(statut='f',typ='I',val_min=2),
20611                           ),
20612          # Prefixe pour le nom des group_ma definissant les sous-domaines
20613          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
20614
20615          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
20616          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
20617
20618          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
20619          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
20620            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
20621              ),
20622
20623          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
20624 );
20625
20626 # ======================================================================
20627 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
20628 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20629 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20630 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20631 # (AT YOUR OPTION) ANY LATER VERSION.
20632 #
20633 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20634 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20635 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20636 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20637 #
20638 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20639 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20640 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20641 # ======================================================================
20642 # person_in_charge: mathieu.courtois at edf.fr
20643
20644
20645 DEFI_SOL_MISS = MACRO(nom="DEFI_SOL_MISS",
20646                       op=OPS('Macro.defi_sol_miss_ops.defi_sol_miss_ops'),
20647                       sd_prod=table_sdaster,
20648                       fr="Définition des données de sol pour Miss",
20649                       reentrant='n',
20650                       UIinfo={"groupes":("Modélisation","Outils-métier",)},
20651    MATERIAU = FACT(statut='o', max='**',
20652             fr="Définition des matériaux",
20653       E         = SIMP(statut='o', typ='R', fr="Module d'Young"),
20654       NU        = SIMP(statut='o', typ='R', fr="Coefficient de Poisson"),
20655       RHO       = SIMP(statut='o', typ='R', fr="Masse volumique"),
20656       AMOR_HYST = SIMP(statut='o', typ='R', fr="Coefficient d'amortissement"),
20657    ),
20658    COUCHE = FACT(statut='o', max='**',
20659                  fr="Définition des couches",
20660       regles=(AU_MOINS_UN('EPAIS','SUBSTRATUM'),),
20661       SUBSTRATUM= SIMP(statut='f', typ='TXM', into=("OUI","NON"),),
20662       EPAIS     = SIMP(statut='f', typ='R', fr="Epaisseur de la couche"),
20663       RECEPTEUR = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),),
20664       SOURCE    = SIMP(statut='f', typ='TXM', defaut="NON", into=("OUI", "NON"),),
20665       NUME_MATE = SIMP(statut='o', typ='I', fr="Numéro du matériau"),
20666    ),
20667    TITRE = SIMP(statut='f', typ='TXM', max='**',
20668                 fr="Titre de la table produite"),
20669    INFO  = SIMP(statut='f', typ='I', defaut=1, into=(1,2)),
20670 )
20671
20672 # ======================================================================
20673 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
20674 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20675 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20676 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20677 # (AT YOUR OPTION) ANY LATER VERSION.
20678 #
20679 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20680 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20681 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20682 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20683 #
20684 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20685 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20686 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20687 # ======================================================================
20688 # person_in_charge: andre.adobes at edf.fr
20689 DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
20690                     fr="Definition d'un spectre d'excitation turbulente",
20691                     reentrant='n',
20692             UIinfo={"groupes":("Modelisation","Outils-metier",)},
20693          regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3',
20694                           'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2',
20695                           'SPEC_CORR_CONV_3','SPEC_FONC_FORME','SPEC_EXCI_POINT'),),
20696          SPEC_LONG_COR_1 =FACT(statut='f',
20697            LONG_COR        =SIMP(statut='o',typ='R' ),
20698            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20699            VISC_CINE       =SIMP(statut='o',typ='R' ),
20700          ),
20701          SPEC_LONG_COR_2 =FACT(statut='f',
20702            regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
20703            LONG_COR        =SIMP(statut='o',typ='R' ),
20704            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20705            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.1 ),
20706            PHI0            =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
20707            BETA            =SIMP(statut='f',typ='R',defaut= 2.7 ),
20708          ),
20709          SPEC_LONG_COR_3 =FACT(statut='f',
20710            regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),),
20711            LONG_COR        =SIMP(statut='o',typ='R' ),
20712            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20713            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.2 ),
20714            PHI0_1          =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
20715            BETA_1          =SIMP(statut='f',typ='R',defaut= 0.5 ),
20716            PHI0_2          =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
20717            BETA_2          =SIMP(statut='f',typ='R',defaut= 3.5 ),
20718          ),
20719          SPEC_LONG_COR_4 =FACT(statut='f',
20720            regles=(ENSEMBLE('BETA','GAMMA'),),
20721            LONG_COR        =SIMP(statut='o',typ='R' ),
20722            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20723            TAUX_VIDE       =SIMP(statut='o',typ='R' ),
20724            BETA            =SIMP(statut='f',typ='R',defaut= 2. ),
20725            GAMMA           =SIMP(statut='f',typ='R',defaut= 4. ),
20726          ),
20727          SPEC_CORR_CONV_1=FACT(statut='f',
20728            LONG_COR_1      =SIMP(statut='o',typ='R' ),
20729            LONG_COR_2      =SIMP(statut='f',typ='R' ),
20730            VITE_FLUI       =SIMP(statut='o',typ='R' ),
20731            RHO_FLUI        =SIMP(statut='o',typ='R' ),
20732            FREQ_COUP       =SIMP(statut='f',typ='R' ),
20733            K               =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
20734            D_FLUI          =SIMP(statut='o',typ='R' ),
20735            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
20736            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
20737            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
20738                                  into=("AU_YANG","GENERALE","CORCOS") ),
20739          ),
20740          SPEC_CORR_CONV_2=FACT(statut='f',
20741            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
20742            VITE_FLUI       =SIMP(statut='o',typ='R' ),
20743            FREQ_COUP       =SIMP(statut='f',typ='R' ),
20744            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
20745                                  into=("AU_YANG","GENERALE","CORCOS",) ),
20746            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
20747            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
20748          ),
20749          SPEC_CORR_CONV_3=FACT(statut='f',
20750            TABLE_FONCTION  =SIMP(statut='o',typ=(table_fonction) ),
20751          ),
20752          SPEC_FONC_FORME =FACT(statut='f',
20753            regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
20754                    ENSEMBLE('INTE_SPEC','FONCTION'),),
20755            INTE_SPEC       =SIMP(statut='f',typ=interspectre),
20756            FONCTION        =SIMP(statut='f',typ=(table_fonction),max='**'),
20757            GRAPPE_1        =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
20758            NOEUD           =SIMP(statut='o',typ=no),
20759            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
20760            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
20761          ),
20762          SPEC_EXCI_POINT =FACT(statut='f',
20763            regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
20764            INTE_SPEC       =SIMP(statut='f',typ=interspectre),
20765            GRAPPE_2        =SIMP(statut='f',typ='TXM',
20766                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
20767 #  Quels sont les statuts des mots cles a l interieur des deux blocs qui suivent
20768            b_inte_spec =BLOC(condition = "INTE_SPEC != None",
20769              NATURE          =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
20770              ANGLE           =SIMP(statut='o',typ='R',max='**'),
20771              NOEUD           =SIMP(statut='o',typ=no,max='**'),
20772            ),
20773            b_grappe_2      =BLOC(condition = "GRAPPE_2 != None",
20774              RHO_FLUI        =SIMP(statut='o',typ='R' ),
20775              NOEUD           =SIMP(statut='o',typ=no),
20776            ),
20777            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
20778            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
20779          ),
20780          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20781 );
20782
20783 # ======================================================================
20784 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
20785 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20786 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20787 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20788 # (AT YOUR OPTION) ANY LATER VERSION.
20789 #
20790 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20791 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20792 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20793 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20794 #
20795 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20796 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20797 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20798 # ======================================================================
20799 # person_in_charge: mathieu.corus at edf.fr
20800 DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
20801                     fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique",
20802                     reentrant='n',
20803             UIinfo={"groupes":("Maillage","Dynamique",)},
20804          regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'),
20805                  PRESENT_PRESENT('CYCLIQUE','SECTEUR'),
20806                  EXCLUS('SOUS_STRUC','SECTEUR'),
20807                  PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
20808                  PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
20809          CYCLIQUE    =FACT(statut='f',max='**',
20810            regles=(UN_PARMI('MODE_CYCL','MAILLAGE'),
20811                    PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),),
20812            MODE_CYCL       =SIMP(statut='f',typ=mode_cycl ),
20813            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
20814            MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
20815          ),
20816          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
20817          SQUELETTE       =SIMP(statut='f',typ=squelette ),
20818          RECO_GLOBAL     =FACT(statut='f',max='**',
20819            regles=(EXCLUS('TOUT','GROUP_NO_1'),
20820                    PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
20821                    PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
20822                    PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
20823                    PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
20824            TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
20825            GROUP_NO_1      =SIMP(statut='f',typ=grno),
20826            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
20827            GROUP_NO_2      =SIMP(statut='f',typ=grno),
20828            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
20829            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
20830            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
20831            DIST_REFE       =SIMP(statut='f',typ='R' ),
20832          ),
20833          NOM_GROUP_MA    =FACT(statut='f',max='**',
20834            NOM             =SIMP(statut='o',typ='TXM' ),
20835            SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
20836            GROUP_MA        =SIMP(statut='o',typ=grma),
20837          ),
20838          EXCLUSIF        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
20839          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
20840          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20841          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20842          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20843          TRANS           =SIMP(statut='f',typ='R',min=3,max=3),
20844          ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),
20845          SOUS_STRUC      =FACT(statut='f',max='**',
20846            regles=(UN_PARMI('TOUT','MAILLE','GROUP_MA'),),
20847            NOM             =SIMP(statut='o',typ='TXM' ),
20848            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20849            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20850            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20851          ),
20852          SECTEUR         =FACT(statut='f',max='**',
20853            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20854            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20855            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20856          ),
20857          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20858 )  ;
20859
20860 # ======================================================================
20861 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20862 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20863 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20864 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20865 # (AT YOUR OPTION) ANY LATER VERSION.
20866 #
20867 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20868 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20869 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20870 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20871 #
20872 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20873 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20874 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20875 # ======================================================================
20876 # person_in_charge: renaud.bargellini at edf.fr
20877 DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n',
20878             UIinfo={"groupes":("Modélisation","Thermique",)},
20879               fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
20880                 +" pour les calculs métallurgiques.",
20881          HIST_EXP        =FACT(statut='o',max='**',
20882            VALE            =SIMP(statut='o',typ='R',max='**'),
20883          ),
20884          TEMP_MS         =FACT(statut='o',max='**',
20885            SEUIL           =SIMP(statut='o',typ='R'),
20886            AKM             =SIMP(statut='o',typ='R'),
20887            BKM             =SIMP(statut='o',typ='R'),
20888            TPLM            =SIMP(statut='o',typ='R'),
20889          ),
20890          GRAIN_AUST      =FACT(statut='f',max='**',
20891            DREF           =SIMP(statut='f',typ='R'),
20892            A              =SIMP(statut='f',typ='R'),
20893          ),
20894 )  ;
20895
20896 # ======================================================================
20897 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20898 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20899 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20900 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20901 # (AT YOUR OPTION) ANY LATER VERSION.
20902 #
20903 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20904 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20905 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20906 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20907 #
20908 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20909 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20910 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20911 # ======================================================================
20912 # person_in_charge: jacques.pellet at edf.fr
20913 def depl_interne_prod(DEPL_GLOBAL,**args ):
20914     if AsType(DEPL_GLOBAL)     == cham_no_sdaster: return cham_no_sdaster
20915     if AsType(DEPL_GLOBAL)     == evol_elas      : return evol_elas
20916     if AsType(DEPL_GLOBAL)     == dyna_trans     : return dyna_trans
20917     if AsType(DEPL_GLOBAL)     == dyna_harmo     : return dyna_harmo
20918     if AsType(DEPL_GLOBAL)     == mode_meca      : return mode_meca
20919     if AsType(DEPL_GLOBAL)     == mode_meca_c    : return mode_meca_c
20920     raise AsException("type de concept resultat non prevu")
20921
20922 DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n',
20923             UIinfo={"groupes":("Matrices et vecteurs",)},
20924                   fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique",
20925          DEPL_GLOBAL     =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,mode_meca_c,evol_elas,dyna_trans,dyna_harmo),),
20926          SUPER_MAILLE    =SIMP(statut='o',typ=ma,),
20927          NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
20928 )  ;
20929
20930 # ======================================================================
20931 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
20932 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20933 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20934 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20935 # (AT YOUR OPTION) ANY LATER VERSION.
20936 #
20937 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20938 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20939 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20940 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20941 #
20942 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20943 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20944 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20945 # ======================================================================
20946 # person_in_charge: j-pierre.lefebvre at edf.fr
20947 DETRUIRE=MACRO(nom="DETRUIRE",
20948                op=OPS("Cata.ops.DETRUIRE"),
20949                UIinfo={"groupes":("Gestion du travail",)},
20950                fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX",
20951                op_init=ops.build_detruire,
20952     regles=(UN_PARMI('CONCEPT', 'OBJET',),),
20953
20954     CONCEPT = FACT(statut='f',max='**',
20955         NOM         = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
20956     ),
20957     OBJET = FACT(statut='f',max='**',
20958        CLASSE   = SIMP(statut='f', typ='TXM', into=('G', 'V', 'L'), defaut='G'),
20959        CHAINE   = SIMP(statut='o', typ='TXM', validators=NoRepeat(), max='**'),
20960        POSITION = SIMP(statut='f', typ='I', max='**'),
20961     ),
20962     INFO   = SIMP(statut='f', typ='I', into=(1, 2), defaut=2, ),
20963 )
20964
20965 # ======================================================================
20966 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
20967 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20968 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20969 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20970 # (AT YOUR OPTION) ANY LATER VERSION.
20971 #
20972 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20973 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20974 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20975 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20976 #
20977 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20978 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20979 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20980 # ======================================================================
20981 # person_in_charge: irmela.zentner at edf.fr
20982 DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=interspectre,
20983                      fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP",
20984                      reentrant='n',
20985             UIinfo={"groupes":("Résolution","Dynamique",)},
20986          BASE_MODALE     =FACT(statut='o',
20987            regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
20988            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
20989            BANDE           =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2),
20990            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20991            b_bande =BLOC(condition = "BANDE != None",
20992              AMOR_UNIF       =SIMP(statut='o',typ='R' ),
20993            ),
20994            b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
20995              AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
20996            ),
20997          ),
20998          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
20999 # MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait
21000 # ainsi rajouter un bloc du genre  b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')",
21001          EXCIT           =FACT(statut='o',
21002            INTE_SPEC       =SIMP(statut='o',typ=interspectre),
21003            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
21004            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
21005            MODAL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21006            b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')",
21007              regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),),
21008              NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**'),
21009              NOEUD_I         =SIMP(statut='f',typ=no,max='**'),
21010              b_nume_ordre_i  =BLOC(condition = "NUME_ORDRE_I != None",
21011                regles=(EXCLUS('CHAM_NO','NOEUD'),),
21012 # on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO'
21013 # cela impliquerait d'enlever la valeur par defaut a GRANDEUR
21014                NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
21015                CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
21016                NOEUD           =SIMP(statut='f',typ=no,max='**'),
21017                b_noeud         =BLOC(condition = "NOEUD != None",
21018                   NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
21019                 ),
21020                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
21021                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
21022 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP
21023                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
21024              ),
21025              b_noeud_i       =BLOC(condition = "NOEUD_I != None",
21026                NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
21027                NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**'),
21028                NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**'),
21029                NOEUD           =SIMP(statut='o',typ=no,max='**'),
21030                NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
21031 # ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans
21032 # NOEUD_I, NOM_CMP_I ...  => modif. du Fortran
21033                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
21034                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
21035 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I
21036                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
21037              ),
21038            ),
21039            b_modal_oui = BLOC(condition = "(MODAL == 'OUI')",
21040 # dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes
21041              NUME_ORDRE_I    =SIMP(statut='o',typ='I',max='**'),
21042              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
21043              GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
21044                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
21045              DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
21046 # dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO   On devrait
21047 # pouvoir supprimer GRANDEUR et DERIVATION ici
21048            ),
21049
21050          ),
21051          REPONSE         =FACT(statut='f',
21052            regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
21053            DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ),
21054            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
21055            FREQ_MIN        =SIMP(statut='f',typ='R' ),
21056            FREQ_MAX        =SIMP(statut='f',typ='R' ),
21057            PAS             =SIMP(statut='f',typ='R' ),
21058            b_defaut_freq   =BLOC(condition = "FREQ_MIN == NONE",
21059               FREQ_EXCIT      =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
21060               NB_POIN_MODE    =SIMP(statut='f',typ='I',defaut= 50 ),
21061            ),
21062          ),
21063          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21064          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
21065 )  ;
21066
21067 # ======================================================================
21068 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
21069 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21070 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21071 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21072 # (AT YOUR OPTION) ANY LATER VERSION.
21073 #
21074 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21075 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21076 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21077 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21078 #
21079 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21080 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21081 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21082 # ======================================================================
21083 # person_in_charge: irmela.zentner at edf.fr
21084
21085 def dyna_iss_vari_prod(self, FONC_SIGNAL,**args):
21086    if FONC_SIGNAL !=None :
21087        return tran_gene
21088    else:
21089       return  interspectre
21090    raise AsException("type de concept resultat non prevu")
21091
21092 DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI",
21093                     op=OPS('Macro.dyna_iss_vari_ops.dyna_iss_vari_ops'),
21094                     sd_prod=dyna_iss_vari_prod,
21095                     fr="Calcul du spectre de réponse ou de la reponse temporelle " \
21096                        "sismique incoherente par decomposition spectrale",
21097                     reentrant='n',
21098                     UIinfo={"groupes":("Outils métier",)},
21099          regles=(UN_PARMI('FONC_SIGNAL','NB_FREQ'),),
21100          FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster) ),
21101          NB_FREQ       =SIMP(statut='f',typ='I' ),
21102          NOM_CMP       =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
21103          PRECISION     =SIMP(statut='f',typ='R',defaut=0.999 ),
21104          ISSF          =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
21105          INTERF           =FACT(statut='o',
21106               GROUP_NO_INTERF =SIMP(statut='o',typ=grno,),
21107               MODE_INTERF  =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT","QUELCONQUE")),
21108          ),
21109          MATR_COHE       =FACT(statut='o',
21110               TYPE = SIMP(statut='o',typ='TXM' , into=("MITA_LUCO","ABRAHAMSON")   ),            
21111               b_type_coh = BLOC(condition="TYPE=='MITA_LUCO' ",
21112                  VITE_ONDE       =SIMP(statut='f',typ='R', defaut=600.),
21113                  PARA_ALPHA     =SIMP(statut='f',typ='R',defaut=0.5),),
21114          ),
21115 #        LIST_FREQ        =SIMP(statut='o',typ='liste' ),
21116          UNITE_RESU_FORC = SIMP(statut='f',typ='I',defaut=33),
21117          UNITE_RESU_IMPE  = SIMP(statut='f',typ='I',defaut=32),
21118          TYPE             = SIMP(statut='f',typ='TXM', into=("BINAIRE","ASCII"), defaut="ASCII"),
21119 #         NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") , validators=NoRepeat(),max=3,defaut="DEPL" ),
21120 #
21121          MATR_GENE         = FACT(statut='o',
21122             MATR_MASS     = SIMP(statut='o',typ=(matr_asse_gene_r ) ),
21123             MATR_RIGI     = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c ) ),
21124             MATR_AMOR     = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c ) ),
21125          ),
21126 #
21127         INFO           =SIMP(statut='f',typ='I' ,defaut=1,into=( 1 , 2)),
21128 #
21129          b_type_trans = BLOC(condition="FONC_SIGNAL !=None",
21130                         FREQ_MAX       =SIMP(statut='f',typ='R' ),
21131                         FREQ_PAS       =SIMP(statut='f',typ='R' ),
21132                         regles=( ENSEMBLE('FREQ_MAX','FREQ_PAS'),  )
21133
21134                         ),
21135
21136         b_type_spec = BLOC(condition="NB_FREQ != None",
21137                        FREQ_INIT       =SIMP(statut='o',typ='R' ),
21138                        FREQ_PAS     =SIMP(statut='o',typ='R' ),
21139                        OPTION        = SIMP(statut='f',typ='TXM',into=("TOUT","DIAG"),defaut="TOUT"),
21140                        ),
21141
21142
21143          )  ;
21144
21145 # ======================================================================
21146 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
21147 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21148 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21149 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21150 # (AT YOUR OPTION) ANY LATER VERSION.
21151 #
21152 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21153 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21154 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21155 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21156 #
21157 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21158 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21159 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21160 # ======================================================================
21161 # person_in_charge: harinaivo.andriambololona at edf.fr
21162 def dyna_line_harm_prod(MATR_RIGI,**args):
21163    if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo
21164    elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo
21165    elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo
21166    elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene
21167    elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene
21168    raise AsException("type de concept resultat non prevu")
21169
21170 DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
21171                     fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique",
21172                     reentrant='f',
21173             UIinfo={"groupes":("Résolution","Dynamique",)},
21174          regles=(PRESENT_ABSENT('MATR_AMOR','AMOR_MODAL'),
21175                  UN_PARMI('FREQ','LIST_FREQ'),),
21176          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
21177          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
21178          MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
21179          MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
21180                                               ,matr_asse_gene_r,matr_asse_gene_c ) ),
21181          MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
21182          AMOR_MODAL      =FACT(statut='f', max=1,
21183                     regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
21184                 AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
21185                 LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
21186          ),
21187          MATR_IMPE_PHI   =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
21188          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21189          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
21190          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
21191          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
21192          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire",
21193              RESULTAT      =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
21194          ),
21195          EXCIT           =FACT(statut='o',max='**',
21196            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE','CHARGE'),
21197                    UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
21198                   ),
21199            VECT_ASSE       =SIMP(statut='f',position='global',typ=cham_no_sdaster),
21200            VECT_ASSE_GENE  =SIMP(statut='f',position='global',typ=vect_asse_gene),
21201            CHARGE          =SIMP(statut='f',position='global', typ=char_meca ),
21202            FONC_MULT_C     =SIMP(statut='f',typ=(fonction_c,formule_c) ),
21203            COEF_MULT_C     =SIMP(statut='f',typ='C' ),
21204            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21205            COEF_MULT       =SIMP(statut='f',typ='R' ),
21206            PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21207            PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
21208          ),
21209          b_modele_char =BLOC(condition = " CHARGE != None ",
21210                        MODELE    =SIMP(statut='o',typ=modele_sdaster ),
21211                        ),
21212          b_modele_vect =BLOC(condition = " VECT_ASSE != None ",
21213                        MODELE    =SIMP(statut='f',typ=modele_sdaster ),
21214                        ),
21215          EXCIT_RESU      =FACT(statut='f',max='**',
21216            RESULTAT        =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
21217            COEF_MULT_C     =SIMP(statut='o',typ='C' ),
21218          ),
21219 #-------------------------------------------------------------------
21220 #        Catalogue commun SOLVEUR
21221          b_matr_gene =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_gene_r,)",
21222                            fr="Methode de resolution matrice generalisee",
21223           SOLVEUR         =C_SOLVEUR('DYNA_LINE_HARM','GENE'),
21224          ),
21225
21226          b_matr_phys =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_depl_r,matr_asse_pres_c,)",
21227                            fr="Methode de resolution matrice sur ddl physique",
21228           SOLVEUR         =C_SOLVEUR('DYNA_LINE_HARM','PHYS'),
21229          ),
21230 #-------------------------------------------------------------------
21231
21232          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21233 )  ;
21234
21235 # ======================================================================
21236 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
21237 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21238 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21239 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21240 # (AT YOUR OPTION) ANY LATER VERSION.
21241 #
21242 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21243 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21244 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21245 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21246 #
21247 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21248 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21249 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21250 # ======================================================================
21251 # person_in_charge: emmanuel.boyere at edf.fr
21252 DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
21253                     fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque",
21254                     reentrant='f',
21255             UIinfo={"groupes":("Résolution","Dynamique",)},
21256          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
21257          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
21258          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
21259          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
21260          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
21261          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
21262
21263          SCHEMA_TEMPS  =FACT(statut='d',
21264                 SCHEMA =SIMP(statut='f',typ='TXM',defaut="NEWMARK",
21265                       into=("NEWMARK","WILSON","DIFF_CENTRE","ADAPT_ORDRE2")),
21266                 b_newmark       =BLOC(condition="SCHEMA=='NEWMARK'",
21267                         BETA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
21268                         GAMMA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
21269                         ),
21270                 b_wilson        =BLOC(condition="SCHEMA=='WILSON'",
21271                         THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
21272                         ),
21273          ),
21274
21275          ETAT_INIT       =FACT(statut='f',
21276            regles=(AU_MOINS_UN('RESULTAT', 'DEPL', 'VITE', 'ACCE'),
21277                    PRESENT_ABSENT('RESULTAT', 'DEPL', 'VITE', 'ACCE'),),
21278            RESULTAT     =SIMP(statut='f',typ=dyna_trans ),
21279            b_dyna_trans    =BLOC(condition = "RESULTAT != None",
21280              regles=(EXCLUS('NUME_ORDRE','INST_INIT' ),),
21281              NUME_ORDRE       =SIMP(statut='f',typ='I' ),
21282              INST_INIT       =SIMP(statut='f',typ='R' ),
21283              b_inst_init     =BLOC(condition = "INST_INIT != None",
21284                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21285                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21286                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21287                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21288                    PRECISION       =SIMP(statut='o',typ='R',),),
21289              ),
21290            ),
21291            DEPL         =SIMP(statut='f',typ=cham_no_sdaster),
21292            VITE         =SIMP(statut='f',typ=cham_no_sdaster),
21293            ACCE         =SIMP(statut='f',typ=cham_no_sdaster),
21294          ),
21295          EXCIT           =FACT(statut='f',max='**',
21296            regles=(UN_PARMI('CHARGE','VECT_ASSE'),
21297                    EXCLUS('CHARGE','COEF_MULT'),
21298                    EXCLUS('FONC_MULT','COEF_MULT'),
21299                    EXCLUS('ACCE','COEF_MULT'),
21300                    PRESENT_ABSENT('ACCE','FONC_MULT'),
21301                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
21302                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
21303                    ),
21304            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
21305            CHARGE          =SIMP(statut='f',typ=char_meca ),
21306            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21307            COEF_MULT       =SIMP(statut='f',typ='R' ),
21308            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21309            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21310            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21311            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21312            b_mult_appui     =BLOC(condition = "MULT_APPUI == 'OUI'",
21313            regles=(EXCLUS('NOEUD','GROUP_NO'),),
21314            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
21315            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21316            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21317          ),),
21318 ###
21319          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
21320 ###
21321          EXCIT_RESU      =FACT(statut='f',max='**',
21322            RESULTAT        =SIMP(statut='o',typ=dyna_trans ),
21323            COEF_MULT       =SIMP(statut='o',typ='R' ),
21324          ),
21325          AMOR_MODAL      =FACT(statut='f',
21326            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
21327            AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
21328            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
21329          ),
21330
21331 #-------------------------------------------------------------------
21332 #        Catalogue commun SOLVEUR
21333          SOLVEUR         =C_SOLVEUR('DYNA_LINE_TRAN'),
21334 #-------------------------------------------------------------------
21335          INCREMENT       =FACT(statut='o',max='**',
21336            regles=(UN_PARMI('LIST_INST','PAS'),),
21337            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
21338            PAS             =SIMP(statut='f',typ='R' ),
21339            b_pas           =BLOC(condition = "PAS != None",
21340                INST_INIT       =SIMP(statut='f',typ='R' ),
21341                INST_FIN        =SIMP(statut='o',typ='R' ),
21342            ),
21343            b_list_fonc     =BLOC(condition = "LIST_INST != None",
21344                regles=(EXCLUS('INST_FIN','NUME_FIN'),),
21345                NUME_FIN        =SIMP(statut='f',typ='I' ),
21346                INST_FIN        =SIMP(statut='f',typ='R' ),
21347            ),
21348            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
21349            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
21350            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.33334 ),
21351            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
21352            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
21353            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
21354            PAS_MINI         =SIMP(statut='f',typ='R' ),
21355          ),
21356          ENERGIE         =FACT(statut='f',max=1,
21357            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
21358          ),
21359          ARCHIVAGE       =FACT(statut='f',max=1,
21360            regles         = (EXCLUS('PAS_ARCH','LIST_INST','INST'),),
21361            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
21362            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
21363            PAS_ARCH       = SIMP(statut='f',typ='I' ),
21364            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21365                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21366                     PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21367                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21368                     PRECISION       =SIMP(statut='o',typ='R',),),
21369            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ),
21370          ),
21371          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21372          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
21373 )  ;
21374
21375 # ======================================================================
21376 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
21377 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21378 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21379 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21380 # (AT YOUR OPTION) ANY LATER VERSION.
21381 #
21382 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21383 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21384 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21385 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21386 #
21387 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21388 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21389 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21390 # ======================================================================
21391 # person_in_charge: nicolas.greffet at edf.fr
21392 #
21393 DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
21394             fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
21395             UIinfo={"groupes":("Résolution","Dynamique",)},
21396          MODELE          =SIMP(statut='o',typ=modele_sdaster),
21397          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
21398          MODE_STAT       =SIMP(statut='f',typ=mode_meca),
21399          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
21400          MASS_DIAG       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
21401          EXCIT           =FACT(statut='f',max='**',
21402            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
21403                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
21404                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
21405                    ),
21406            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
21407                                  into=("FIXE_CSTE","SUIV","DIDI")),
21408            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
21409            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21410            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21411            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21412            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21413            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21414            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
21415            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21416            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21417          ),
21418          EXCIT_GENE      =FACT(statut='f',max='**',
21419            FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
21420            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
21421          ),
21422          CONTACT         =SIMP(statut='f',typ=char_contact),
21423          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
21424                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
21425                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
21426                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21427                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
21428                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21429               ),
21430          AMOR_RAYL_RIGI = SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE"),),
21431          AMOR_MODAL      =FACT(statut='f',
21432            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
21433            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
21434            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
21435            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
21436            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
21437            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
21438          ),
21439          PROJ_MODAL      =FACT(statut='f',max='**',
21440            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
21441            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
21442            regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
21443            MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
21444            RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
21445            AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
21446            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
21447            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
21448            ACCE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene),
21449          ),
21450 #-------------------------------------------------------------------
21451          COMPORTEMENT       =C_COMPORTEMENT('DYNA_NON_LINE'),
21452 #-------------------------------------------------------------------
21453          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
21454          ETAT_INIT       =FACT(statut='o',
21455            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
21456                  #  EXCLUS('EVOL_NOLI','DEPL',),
21457                  #  EXCLUS('EVOL_NOLI','VITE'),
21458                  #  EXCLUS('EVOL_NOLI','ACCE'),
21459                  #  EXCLUS('EVOL_NOLI','SIGM',),
21460                  #  EXCLUS('EVOL_NOLI','VARI',),
21461                    EXCLUS('NUME_ORDRE','INST'), ),
21462            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
21463            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
21464            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
21465            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
21466            VARI            =SIMP(statut='f',typ=cham_elem),
21467            STRX            =SIMP(statut='f',typ=cham_elem),
21468            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
21469            NUME_ORDRE      =SIMP(statut='f',typ='I'),
21470            INST            =SIMP(statut='f',typ='R'),
21471            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21472            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21473                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21474            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21475                PRECISION       =SIMP(statut='o',typ='R',),),
21476            NUME_DIDI       =SIMP(statut='f',typ='I'),
21477            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
21478          ),),
21479          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
21480          ETAT_INIT       =FACT(statut='f',
21481            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
21482                  #  EXCLUS('EVOL_NOLI','DEPL',),
21483                  #  EXCLUS('EVOL_NOLI','VITE'),
21484                  #  EXCLUS('EVOL_NOLI','ACCE'),
21485                  #  EXCLUS('EVOL_NOLI','SIGM',),
21486                  #  EXCLUS('EVOL_NOLI','VARI',),
21487                    EXCLUS('NUME_ORDRE','INST'), ),
21488            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
21489            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
21490            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
21491            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
21492            VARI            =SIMP(statut='f',typ=cham_elem),
21493            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
21494            NUME_ORDRE      =SIMP(statut='f',typ='I'),
21495            INST            =SIMP(statut='f',typ='R'),
21496            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21497            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21498                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21499            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21500                PRECISION       =SIMP(statut='o',typ='R',),),
21501            NUME_DIDI       =SIMP(statut='f',typ='I'),
21502            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
21503          ),),
21504 #-------------------------------------------------------------------
21505          INCREMENT       =C_INCREMENT('MECANIQUE'),
21506 #-------------------------------------------------------------------
21507          SCHEMA_TEMPS     =FACT(statut='o',
21508             SCHEMA          =SIMP(statut='o',min=1,max=1,typ='TXM',
21509             into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE","KRENK"),),
21510             COEF_MASS_SHIFT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
21511             b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
21512                PHI          =SIMP(statut='f',typ='R',defaut= 1.05),),
21513
21514             b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
21515                BETA         =SIMP(statut='f',typ='R',defaut= 0.25),
21516                GAMMA        =SIMP(statut='f',typ='R',defaut= 0.5),),
21517
21518             b_hht     = BLOC(condition="SCHEMA=='HHT'",
21519                ALPHA        =SIMP(statut='f',typ='R',defaut= -0.3 ),
21520                MODI_EQUI    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
21521
21522             b_theta   = BLOC(condition="SCHEMA=='THETA_METHODE'",
21523                THETA         =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=100. ),),
21524
21525             b_krenk   = BLOC(condition="SCHEMA=='KRENK'",
21526                KAPPA         =SIMP(statut='f',typ='R',defaut= 1.0,val_min=1.0,val_max=100. ),),
21527
21528             b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
21529                STOP_CFL     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
21530                FORMULATION  =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
21531
21532             b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
21533                FORMULATION  =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),),
21534          ),
21535 #-------------------------------------------------------------------
21536          METHODE        =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","NEWTON_KRYLOV")),
21537          NEWTON          =C_NEWTON(),
21538 #-------------------------------------------------------------------
21539          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
21540 #-------------------------------------------------------------------
21541          CONVERGENCE     =C_CONVERGENCE(),
21542 #-------------------------------------------------------------------
21543          SOLVEUR         =C_SOLVEUR('DYNA_NON_LINE'),
21544 #-------------------------------------------------------------------
21545          OBSERVATION     =C_OBSERVATION(),
21546 #-------------------------------------------------------------------
21547          ENERGIE         =FACT(statut='f',max=1,
21548            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
21549          ),
21550 #-------------------------------------------------------------------
21551          SUIVI_DDL       =C_SUIVI_DDL(),
21552 #-------------------------------------------------------------------
21553          AFFICHAGE       =C_AFFICHAGE(),
21554 #-------------------------------------------------------------------
21555          ARCHIVAGE       =C_ARCHIVAGE(),
21556 #-------------------------------------------------------------------
21557          CRIT_STAB      =FACT(statut='f',min=1,max=1,
21558            NB_FREQ         =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3),
21559            COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5),
21560            RIGI_GEOM     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
21561            MODI_RIGI     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
21562            bloc_char_crit=BLOC(condition="(RIGI_GEOM=='OUI')",
21563               CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,
21564                                fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),),
21565            TYPE          =SIMP(statut='f',typ='TXM',defaut="FLAMBEMENT",into=("FLAMBEMENT","STABILITE")),
21566            PREC_INSTAB   =SIMP(statut='f',typ='R',defaut=1.E-6,max=1,),
21567            SIGNE         =SIMP(statut='f',typ='TXM',defaut=("POSITIF_NEGATIF"),into=("NEGATIF","POSITIF","POSITIF_NEGATIF"),max=1,),
21568            bloc_rigi_geom=BLOC(condition="(RIGI_GEOM=='NON'or MODI_RIGI=='OUI')",
21569               DDL_EXCLUS      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40,
21570                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
21571                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
21572                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
21573                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
21574                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
21575                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
21576                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
21577                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
21578                                           'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')),
21579            bloc_type_stab =BLOC(condition= "TYPE == 'STABILITE' and RIGI_GEOM == 'NON'",
21580               DDL_STAB        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=40,
21581                                        into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
21582                                              'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
21583                                              'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
21584                                              'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
21585                                              'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
21586                                              'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
21587                                              'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
21588                                              'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
21589                                              'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG','DH')),),
21590                             ),
21591            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
21592            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
21593            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
21594            PAS_CALC       = SIMP(statut='f',typ='I' ),
21595            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21596               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21597                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21598               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21599                  PRECISION       =SIMP(statut='o',typ='R',),),
21600          ),
21601          MODE_VIBR     =FACT(statut='f',min=1,max=1,
21602            MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ),
21603            NB_FREQ          =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3,
21604                             fr="Nombre de fréquences propres à calculer"),
21605            COEF_DIM_ESPACE  =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5),
21606            BANDE            =SIMP(statut='f',typ='R',min=2,max=2,
21607                             fr="Valeur des deux fréquences délimitant la bande de recherche",),
21608            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
21609            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
21610            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
21611            PAS_CALC       = SIMP(statut='f',typ='I' ),
21612            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21613               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21614                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21615               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21616                  PRECISION       =SIMP(statut='o',typ='R',),),
21617          ),
21618 #-------------------------------------------------------------------
21619          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
21620          b_info=BLOC(condition="(INFO==2)",
21621                fr="filtre les messages émis dans le .mess selon le type de message demandé",
21622                INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
21623                                into=("CONTACT",
21624                                      "MECA_NON_LINE",
21625                                      "PILOTAGE",
21626                                      "FACTORISATION",
21627                                      "APPARIEMENT"),
21628                              ),
21629                     ),
21630          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21631 )
21632
21633 # ======================================================================
21634 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
21635 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21636 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21637 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21638 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21639 #
21640 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21641 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21642 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21643 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21644 #
21645 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21646 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21647 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21648 # ======================================================================
21649 # person_in_charge: andre.adobes at edf.fr
21650 DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=interspectre,
21651                      fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
21652                      reentrant='n',
21653             UIinfo={"groupes":("Résolution","Dynamique",)},
21654          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
21655          VITE_FLUI      =SIMP(statut='o',typ='R'),
21656          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
21657          EXCIT           =FACT(statut='o',
21658            INTE_SPEC_GENE  =SIMP(statut='o',typ=interspectre),
21659          ),
21660          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
21661          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21662 )  ;
21663
21664 # ======================================================================
21665 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
21666 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21667 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21668 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21669 # (AT YOUR OPTION) ANY LATER VERSION.
21670 #
21671 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21672 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21673 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21674 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21675 #
21676 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21677 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21678 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21679 # ======================================================================
21680 # person_in_charge: emmanuel.boyere at edf.fr
21681 DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
21682                      fr="Calcul de la reponse dynamique transitoire d'un systeme amorti ou non en coordonees generalisees"
21683                         +" par superposition modale ou par sous structuration",
21684                      reentrant='f',
21685             UIinfo={"groupes":("Resolution","Dynamique",)},
21686       regles=(EXCLUS('AMOR_MODAL','MATR_AMOR'),
21687               PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
21688           SCHEMA_TEMPS  =FACT(statut='d',
21689                 SCHEMA  =SIMP(statut='f',typ='TXM',defaut="NEWMARK",
21690   into=("NEWMARK","EULER","DEVOGE","ADAPT_ORDRE1","ADAPT_ORDRE2","ITMI","RUNGE_KUTTA_54","RUNGE_KUTTA_32")),
21691                 b_newmark     =BLOC(condition="SCHEMA=='NEWMARK'",
21692                         BETA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
21693                         GAMMA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
21694                         ),
21695                 b_runge_kutta     =BLOC(condition="SCHEMA=='RUNGE_KUTTA_54' or SCHEMA=='RUNGE_KUTTA_32'",
21696                         TOLERANCE           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
21697                         ),
21698                 b_itmi          =BLOC(condition = "SCHEMA=='ITMI'",
21699                regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
21700                 BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
21701                 NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
21702                 ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21703                 PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
21704                 CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21705                 NB_MODE         =SIMP(statut='f',typ='I' ),
21706                 NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
21707                 TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
21708          ),
21709          ),
21710          MATR_MASS       =SIMP(statut='o',typ=matr_asse_gene_r ),
21711          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_gene_r ),
21712          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_gene_r ),
21713          VITESSE_VARIABLE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21714          b_variable          =BLOC(condition="VITESSE_VARIABLE=='OUI'",
21715                MATR_GYRO       =SIMP(statut='o',typ=matr_asse_gene_r ),
21716                VITE_ROTA       =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
21717                MATR_RIGY       =SIMP(statut='f',typ=matr_asse_gene_r ),
21718                ACCE_ROTA       =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
21719            ),
21720          b_constante         =BLOC(condition="VITESSE_VARIABLE=='NON'",
21721                VITE_ROTA          = SIMP(statut='o',typ='R',defaut=0.E0),
21722                COUPLAGE_EDYOS     =FACT(statut='f',max=1,
21723                                    PAS_TPS_EDYOS      = SIMP(statut='o',typ='R' ),
21724          ),
21725                
21726            ),
21727                
21728          AMOR_MODAL      =FACT(statut='f', max=1,
21729                     regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
21730                 AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
21731                 LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
21732          ),
21733
21734          ROTOR_FISS = FACT(statut='f',max='**',
21735                            regles=(UN_PARMI('NOEUD_D','GROUP_NO_D'),
21736                                    EXCLUS('NOEUD_G','GROUP_NO_G'),
21737                                    PRESENT_PRESENT('NOEUD_D','NOEUD_G'),
21738                                    PRESENT_PRESENT('GROUP_NO_D','GROUP_NO_G',),),
21739                              ANGL_INIT          = SIMP(statut='o',typ='R',defaut=0.E0),
21740                              ANGL_ROTA          = SIMP(statut='f',typ=(fonction_sdaster,formule) ),
21741                              NOEUD_G            = SIMP(statut='f',typ=no),
21742                              NOEUD_D            = SIMP(statut='f',typ=no),
21743                              GROUP_NO_G         = SIMP(statut='f',typ=grno),
21744                              GROUP_NO_D         = SIMP(statut='f',typ=grno),
21745                              K_PHI              = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
21746                              DK_DPHI            = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
21747          ),
21748
21749          PALIER_EDYOS      =FACT(statut='f',max='**',
21750          regles=(PRESENT_ABSENT('UNITE','GROUP_NO'),
21751                  PRESENT_ABSENT('UNITE','TYPE_EDYOS'),
21752                  EXCLUS('GROUP_NO','NOEUD'),),
21753                                      UNITE       = SIMP(statut='f',typ='I',),
21754                                      GROUP_NO    = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21755                                      NOEUD       = SIMP(statut='f',typ=no),
21756                                      TYPE_EDYOS  = SIMP(statut='f',typ='TXM',
21757                                      into=("PAPANL","PAFINL","PACONL","PAHYNL",),),
21758          ),
21759
21760          ETAT_INIT       =FACT(statut='f',
21761            regles=(EXCLUS('RESULTAT','DEPL'),
21762                    EXCLUS('RESULTAT','VITE'),),
21763            RESULTAT   =SIMP(statut='f',typ=tran_gene ),
21764            b_resu     =BLOC(condition = "RESULTAT != None",
21765            regles=(EXCLUS('NUME_ORDRE','INST_INIT' ),),
21766              INST_INIT       =SIMP(statut='f',typ='R' ),
21767              NUME_ORDRE      =SIMP(statut='f',typ='I' ),
21768              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
21769              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21770                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21771              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21772                 PRECISION       =SIMP(statut='o',typ='R',),),
21773            ),
21774            DEPL  =SIMP(statut='f',typ=vect_asse_gene ),
21775            VITE  =SIMP(statut='f',typ=vect_asse_gene ),
21776          ),
21777          INCREMENT       =FACT(statut='o',max='**',
21778            regles=(UN_PARMI('LIST_INST','PAS'),),
21779            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
21780            b_list_inst         =BLOC(condition = "LIST_INST != None",
21781            regles=(EXCLUS('NUME_FIN','INST_FIN'),),
21782                NUME_FIN       =SIMP(statut='f',typ='I' ),
21783                INST_FIN        =SIMP(statut='f',typ='R' ),
21784            ),
21785            PAS             =SIMP(statut='f',typ='R' ),
21786            b_pas           =BLOC(condition = "PAS != None",
21787                INST_INIT       =SIMP(statut='f',typ='R' ),
21788                INST_FIN        =SIMP(statut='o',typ='R' ),
21789            ),
21790            VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
21791            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
21792            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
21793            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
21794            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
21795            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
21796            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
21797            PAS_MAXI         =SIMP(statut='f',typ='R' ),
21798            PAS_MINI         =SIMP(statut='f',typ='R' ),
21799          ),
21800          ARCHIVAGE       =FACT(statut='f',max=1,
21801            regles         = (EXCLUS('PAS_ARCH','LIST_INST','INST'),),
21802            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
21803            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
21804            PAS_ARCH       = SIMP(statut='f',typ='I' ),
21805            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21806                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
21807                     PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
21808                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
21809                     PRECISION       =SIMP(statut='o',typ='R',),),
21810          ),
21811          EXCIT           =FACT(statut='f',max='**',
21812            regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
21813                    UN_PARMI('VECT_ASSE_GENE','NUME_ORDRE',),
21814                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
21815 #                   PRESENT_ABSENT('NUME_ORDRE','VECT_ASSE_GENE','COEF_MULT'),
21816                    EXCLUS('MULT_APPUI','CORR_STAT'),
21817                    PRESENT_PRESENT('MULT_APPUI','ACCE'),),
21818            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
21819            NUME_ORDRE      =SIMP(statut='f',typ='I' ),
21820            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21821            COEF_MULT       =SIMP(statut='f',typ='R' ),
21822            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21823            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21824            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21825            MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21826            b_mult_appui     =BLOC(condition = "MULT_APPUI == 'OUI'",
21827            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
21828              regles=(EXCLUS('NOEUD','GROUP_NO'),),
21829              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21830              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21831            ),
21832            CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21833            b_corr_stat     =BLOC(condition = "CORR_STAT == 'OUI'",
21834            D_FONC_DT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21835            D_FONC_DT2      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21836          ),),
21837
21838          MODE_STAT       =SIMP(statut='f',typ=mode_meca ),
21839          MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_meca),),
21840
21841          EXCIT_RESU      =FACT(statut='f',max='**',
21842            RESULTAT        =SIMP(statut='o',typ=tran_gene ),
21843            COEF_MULT       =SIMP(statut='f',typ='R',defaut=1.0 ),
21844          ),
21845
21846          CHOC            =FACT(statut='f',max='**',
21847            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ),
21848                    EXCLUS('NOEUD_2','GROUP_NO_2'),
21849                    PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'),
21850                    PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),),
21851            INTITULE        =SIMP(statut='f',typ='TXM' ),
21852            GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
21853            MAILLE          =SIMP(statut='f',typ=ma,max='**'),
21854            NOEUD_1         =SIMP(statut='f',typ=no),
21855            NOEUD_2         =SIMP(statut='f',typ=no),
21856            GROUP_NO_1      =SIMP(statut='f',typ=grno),
21857            GROUP_NO_2      =SIMP(statut='f',typ=grno),
21858            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
21859            ORIG_OBST       =SIMP(statut='f',typ='R',min=3,max=3),
21860            NORM_OBST       =SIMP(statut='o',typ='R',min=3,max=3),
21861            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
21862            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
21863            DIST_1          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
21864            DIST_2          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
21865            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
21866            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
21867            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
21868            RIGI_NOR        =SIMP(statut='f',typ='R' ),
21869            AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21870            RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21871            AMOR_TAN        =SIMP(statut='f',typ='R' ),
21872            FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","COULOMB","COULOMB_STAT_DYNA") ),
21873            b_coulomb       =BLOC(condition="FROTTEMENT=='COULOMB'",
21874                COULOMB         =SIMP(statut='o',typ='R' ),),
21875            b_coulomb_stat_dyna  =BLOC(condition="FROTTEMENT=='COULOMB_STAT_DYNA'",
21876                COULOMB_STAT    =SIMP(statut='o',typ='R' ),
21877                COULOMB_DYNA    =SIMP(statut='o',typ='R' ),),
21878          ),
21879          VERI_CHOC       =FACT(statut='f',
21880            STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
21881            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
21882          ),
21883          FLAMBAGE        =FACT(statut='f',max='**',
21884            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
21885                    EXCLUS('NOEUD_2','GROUP_NO_2'),),
21886            NOEUD_1         =SIMP(statut='f',typ=no),
21887            NOEUD_2         =SIMP(statut='f',typ=no),
21888            GROUP_NO_1      =SIMP(statut='f',typ=grno),
21889            GROUP_NO_2      =SIMP(statut='f',typ=grno),
21890            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
21891            ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
21892            NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
21893            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
21894            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
21895            DIST_1          =SIMP(statut='f',typ='R' ),
21896            DIST_2          =SIMP(statut='f',typ='R' ),
21897            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
21898            RIGI_NOR        =SIMP(statut='f',typ='R' ),
21899            FNOR_CRIT       =SIMP(statut='f',typ='R' ),
21900            FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
21901            RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
21902          ),
21903          ANTI_SISM       =FACT(statut='f',max='**',
21904            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
21905                    UN_PARMI('NOEUD_2','GROUP_NO_2'),),
21906            NOEUD_1         =SIMP(statut='f',typ=no),
21907            NOEUD_2         =SIMP(statut='f',typ=no),
21908            GROUP_NO_1      =SIMP(statut='f',typ=grno),
21909            GROUP_NO_2      =SIMP(statut='f',typ=grno),
21910            RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21911            RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21912            SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21913            C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21914            PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
21915            DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
21916          ),
21917          RELA_EFFO_DEPL  =FACT(statut='f',max='**',
21918            NOEUD           =SIMP(statut='o',typ=no),
21919            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
21920            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
21921            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21922          ),
21923          RELA_EFFO_VITE  =FACT(statut='f',max='**',
21924            NOEUD           =SIMP(statut='o',typ=no),
21925            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
21926            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
21927            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
21928          ),
21929          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
21930          IMPRESSION      =FACT(statut='f',
21931            regles=(EXCLUS('TOUT','NIVEAU'),),
21932            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21933            NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
21934            INST_INIT       =SIMP(statut='f',typ='R' ),
21935            INST_FIN        =SIMP(statut='f',typ='R' ),
21936          ),
21937
21938
21939 #-------------------------------------------------------------------
21940 #        Catalogue commun SOLVEUR
21941          SOLVEUR         =C_SOLVEUR('DYNA_TRAN_MODAL'),
21942 #-------------------------------------------------------------------
21943
21944          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21945  )  ;
21946
21947 # ======================================================================
21948 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
21949 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21950 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21951 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21952 # (AT YOUR OPTION) ANY LATER VERSION.
21953 #
21954 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21955 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21956 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21957 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21958 #
21959 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21960 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21961 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21962 # ======================================================================
21963 # person_in_charge: albert.alarcon at edf.fr
21964
21965 #choix de structure de donnees de sortie en fonction de BASE_CALCUL et TYPE_CALCUL
21966 def dyna_vibra_prod(self,BASE_CALCUL,TYPE_CALCUL,MATR_RIGI,**args):
21967         if BASE_CALCUL == 'PHYS':
21968           if TYPE_CALCUL == 'TRAN': return dyna_trans
21969           else:
21970               if (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo
21971               else: return dyna_harmo
21972         else:
21973           if TYPE_CALCUL == 'TRAN': return tran_gene
21974           else: return harm_gene
21975
21976 #from Macro.dyna_vibra_ops import dyna_vibra_ops
21977
21978 DYNA_VIBRA=MACRO(nom="DYNA_VIBRA",
21979                  op=OPS('Macro.dyna_vibra_ops.dyna_vibra_ops'),
21980 #                 op=dyna_vibra_ops,
21981                  sd_prod=dyna_vibra_prod,
21982                  reentrant='f',
21983                  fr="Calcul dynamique",
21984                  UIinfo={"groupes":("Resolution","Dynamique",)},
21985         BASE_CALCUL     =SIMP(statut='o',typ='TXM',position='global',into=("PHYS","GENE") ),
21986         TYPE_CALCUL     =SIMP(statut='o',typ='TXM',position='global',into=("HARM","TRAN") ),
21987
21988 #parametres de mise en donnees
21989         b_donnees    =BLOC(condition = "TYPE_CALCUL=='HARM'or (TYPE_CALCUL=='TRAN' and BASE_CALCUL=='PHYS')",
21990             MODELE          =SIMP(statut='f',typ=modele_sdaster ),
21991             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
21992             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
21993         ),
21994         b_matr_tran_phys    =BLOC(condition = "TYPE_CALCUL=='TRAN' and BASE_CALCUL=='PHYS'",
21995             MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r),
21996             MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r),
21997             MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r),
21998         ),
21999         b_matr_tran_gene    =BLOC(condition = "TYPE_CALCUL=='TRAN' and BASE_CALCUL=='GENE'",
22000             MATR_MASS       =SIMP(statut='o',typ=matr_asse_gene_r),
22001             MATR_RIGI       =SIMP(statut='o',typ=matr_asse_gene_r),
22002             MATR_AMOR       =SIMP(statut='f',typ=matr_asse_gene_r),
22003             VITESSE_VARIABLE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22004             b_variable          =BLOC(condition="VITESSE_VARIABLE=='OUI'",
22005                MATR_GYRO       =SIMP(statut='o',typ=matr_asse_gene_r ),
22006                VITE_ROTA       =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
22007                MATR_RIGY       =SIMP(statut='f',typ=matr_asse_gene_r ),
22008                ACCE_ROTA       =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
22009             ),
22010             b_constante         =BLOC(condition="VITESSE_VARIABLE=='NON'",
22011                VITE_ROTA          = SIMP(statut='o',typ='R',defaut=0.E0),
22012             ),
22013         ),
22014         b_reuse_harm =BLOC(condition = "reuse and TYPE_CALCUL == 'HARM'",fr="en mode concept reentrant : RESULTAT obligatoire",
22015              RESULTAT      =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
22016             ),
22017         b_matr_harm     =BLOC(condition="TYPE_CALCUL == 'HARM'",
22018             MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
22019             MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
22020                                               ,matr_asse_gene_r,matr_asse_gene_c )),
22021             MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r) ),
22022             MATR_IMPE_PHI       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
22023         ),
22024
22025         AMOR_MODAL      =FACT(statut='f',
22026             AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
22027             LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
22028            b_mode    =BLOC(condition = "BASE_CALCUL == 'PHYS' and TYPE_CALCUL == 'TRAN'",
22029             MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
22030             NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
22031             ),
22032          ),
22033 #introduction parametres du calcul harmonique
22034         b_param_harm      =BLOC(condition="TYPE_CALCUL == 'HARM'",
22035            regles=(UN_PARMI('FREQ','LIST_FREQ'),
22036                    EXCLUS('NOM_CHAM','TOUT_CHAM')),
22037         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22038         LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
22039         NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
22040         TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
22041         ),
22042
22043 #parametrage des calculs transitoires
22044         b_tran = BLOC(condition = "TYPE_CALCUL == 'TRAN'",
22045 #parametrage des schemas d'integration
22046         SCHEMA_TEMPS    =FACT(statut='d',
22047         SCHEMA           =SIMP(statut='f',typ='TXM',defaut="NEWMARK",
22048           into=("NEWMARK","WILSON","ADAPT_ORDRE2","DIFF_CENTRE","ADAPT_ORDRE1","DEVOGE","EULER","ITMI","RUNGE_KUTTA_54","RUNGE_KUTTA_32"),),
22049           b_itmi         =BLOC(condition = "SCHEMA == 'ITMI'",
22050 regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
22051                 BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
22052                 NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
22053                 ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22054                 PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
22055                 CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22056                 NB_MODE         =SIMP(statut='f',typ='I' ),
22057                 NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
22058                 TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
22059             ),
22060           b_newmark       =BLOC(condition = "SCHEMA == 'NEWMARK'",
22061                 BETA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
22062                 GAMMA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
22063             ),
22064           b_wilson        =BLOC(condition = "SCHEMA == 'WILSON'",
22065                 THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
22066             ),
22067           b_runge_kutta     =BLOC(condition="SCHEMA=='RUNGE_KUTTA_54' or SCHEMA=='RUNGE_KUTTA_32'",
22068                 TOLERANCE           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22069             ),
22070           ),
22071
22072         INCREMENT       =FACT(statut='o',
22073            regles=(UN_PARMI('LIST_INST','PAS'),),
22074            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
22075            PAS             =SIMP(statut='f',typ='R' ),
22076            b_pas           =BLOC(condition = "PAS != None",
22077                INST_INIT       =SIMP(statut='f',typ='R' ),
22078                INST_FIN        =SIMP(statut='o',typ='R' ),
22079              ),
22080            b_list     =BLOC(condition = "LIST_INST != None",
22081                regles=(EXCLUS('INST_FIN','NUME_FIN'),),
22082                NUME_FIN        =SIMP(statut='f',typ='I' ),
22083                INST_FIN        =SIMP(statut='f',typ='R' ),
22084              ),
22085            b_veri_pas = BLOC(condition="BASE_CALCUL == 'GENE'",
22086            VERI_PAS       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
22087            PAS_MAXI        =SIMP(statut='f',typ='R' ),
22088              ),
22089            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
22090            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
22091            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
22092            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
22093            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
22094            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
22095            PAS_MINI        =SIMP(statut='f',typ='R' ),
22096          ),
22097
22098 #declaration de l'etat initial
22099        b_init_gene     =BLOC(condition="BASE_CALCUL == 'GENE'",
22100         ETAT_INIT       =FACT(statut='f',
22101                regles=(EXCLUS('RESULTAT','DEPL'),
22102                    EXCLUS('RESULTAT','VITE'),),
22103              RESULTAT      =SIMP(statut='f',typ=tran_gene),
22104                 b_resu            =BLOC(condition = "RESULTAT != NONE",
22105                    regles=( EXCLUS('NUME_ORDRE','INST_INIT' ),),
22106              NUME_ORDRE =SIMP(statut='f',typ='I' ),
22107              INST_INIT       =SIMP(statut='f',typ='R' ),
22108                         b_inst_init     =BLOC(condition = "INST_INIT != None",
22109              CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22110                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
22111              PRECISION    =SIMP(statut='f',typ='R',defaut= 1.E-6,),
22112                               ),
22113                         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
22114              PRECISION     =SIMP(statut='o',typ='R',),
22115                               ),
22116                         ),
22117                   ),
22118              DEPL          =SIMP(statut='f',typ=vect_asse_gene),
22119              VITE       =SIMP(statut='f',typ=vect_asse_gene),
22120               ),
22121         ),
22122         b_init_phys     =BLOC(condition="BASE_CALCUL == 'PHYS'",
22123         ETAT_INIT       =FACT(statut='f',
22124               regles=(AU_MOINS_UN('RESULTAT', 'DEPL', 'VITE', 'ACCE'),
22125                    PRESENT_ABSENT('RESULTAT', 'DEPL', 'VITE', 'ACCE'),),
22126              RESULTAT      =SIMP(statut='f',typ=dyna_trans),
22127                 b_resu            =BLOC(condition = "RESULTAT != NONE",
22128                    regles=( EXCLUS('NUME_ORDRE','INST_INIT' ),),
22129              NUME_ORDRE =SIMP(statut='f',typ='I' ),
22130              INST_INIT       =SIMP(statut='f',typ='R' ),
22131                         b_inst_init     =BLOC(condition = "INST_INIT != None",
22132              CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22133                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
22134              PRECISION    =SIMP(statut='f',typ='R',defaut= 1.E-6,),
22135                               ),
22136                         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
22137              PRECISION     =SIMP(statut='o',typ='R',),
22138                               ),
22139                         ),
22140                   ),
22141              DEPL          =SIMP(statut='f',typ=cham_no_sdaster),
22142              VITE       =SIMP(statut='f',typ=cham_no_sdaster),
22143              ACCE       =SIMP(statut='f',typ=cham_no_sdaster),
22144               ),
22145         ),
22146 #parametres d'archivage
22147         bloc_archi      =BLOC(condition="TYPE_CALCUL == 'TRAN'",
22148         ARCHIVAGE       =FACT(statut='f',max=1,
22149             regles=(EXCLUS('LIST_INST','PAS_ARCH','INST'),),
22150                 LIST_INST       = SIMP(statut='f',typ=(listr8_sdaster) ),
22151                 INST            = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22152                 PAS_ARCH        = SIMP(statut='f',typ='I' ),
22153                 CRITERE         = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22154                    b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
22155                         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
22156                    b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
22157                         PRECISION       =SIMP(statut='o',typ='R',),),
22158
22159                 b_cham_exclu  =BLOC(condition="BASE_CALCUL == 'PHYS'",
22160                         CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ),
22161                 ),
22162         ),),),
22163
22164 #calcul des energies
22165         bloc_ener       =BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL == 'PHYS'",
22166          ENERGIE         =FACT(statut='f',max=1,
22167            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
22168          ),
22169         ),
22170
22171 #definition du chargement
22172         b_excit_harm    =BLOC(condition="TYPE_CALCUL == 'HARM'",
22173           EXCIT           =FACT(statut='o',max='**',
22174            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE','CHARGE'),
22175                    UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
22176                   ),
22177            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
22178            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
22179            CHARGE          =SIMP(statut='f', typ=char_meca ),
22180            FONC_MULT_C     =SIMP(statut='f',typ=(fonction_c,formule_c) ),
22181            COEF_MULT_C     =SIMP(statut='f',typ='C' ),
22182            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22183            COEF_MULT       =SIMP(statut='f',typ='R' ),
22184            PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22185            PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
22186
22187          ),
22188           EXCIT_RESU       =FACT(statut='f',max='**',
22189            RESULTAT     =SIMP(statut='o',typ=(dyna_harmo,harm_gene) ),
22190            COEF_MULT_C     =SIMP(statut='o',typ='C' ),),
22191
22192          ),
22193         b_excit_tran_mod=BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL == 'GENE'",
22194         regles=(PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
22195          EXCIT           =FACT(statut='f',max='**',
22196            regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
22197                    UN_PARMI('VECT_ASSE_GENE','NUME_ORDRE',),
22198                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
22199                    EXCLUS('MULT_APPUI','CORR_STAT'),
22200                    PRESENT_PRESENT('MULT_APPUI','ACCE'),
22201                    ),
22202            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
22203            NUME_ORDRE      =SIMP(statut='f',typ='I' ),
22204            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22205            COEF_MULT       =SIMP(statut='f',typ='R' ),
22206            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22207            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22208            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22209            MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22210            b_mult_appui     =BLOC(condition = "MULT_APPUI == 'OUI'",
22211            regles=(EXCLUS('NOEUD','GROUP_NO'),),
22212                   DIRECTION       =SIMP(statut='f',typ='R',max='**'),
22213                   NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22214                   GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22215            ),
22216            CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22217            b_corr_stat     =BLOC(condition = "CORR_STAT == 'OUI'",
22218                   D_FONC_DT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22219                   D_FONC_DT2      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22220           ),
22221          ),
22222          MODE_STAT       =SIMP(statut='f',typ=mode_meca ),
22223          MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_meca),),
22224
22225          EXCIT_RESU       =FACT(statut='f',max='**',
22226            RESULTAT     =SIMP(statut='o',typ=tran_gene ),
22227            COEF_MULT       =SIMP(statut='f',typ='R',defaut=1.0 ),
22228                                 ),
22229
22230         ),
22231         b_excit_line_tran =BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL == 'PHYS'",
22232          EXCIT           =FACT(statut='f',max='**',
22233            regles=(UN_PARMI('CHARGE','VECT_ASSE'),
22234                    EXCLUS('CHARGE','COEF_MULT'),
22235                    EXCLUS('FONC_MULT','COEF_MULT'),
22236                    EXCLUS('ACCE','COEF_MULT'),
22237                    PRESENT_ABSENT('ACCE','FONC_MULT'),
22238                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
22239                    ),
22240            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
22241            CHARGE          =SIMP(statut='f',typ=char_meca ),
22242            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22243            COEF_MULT       =SIMP(statut='f',typ='R' ),
22244            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22245            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22246            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22247            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22248            b_mult_appui     =BLOC(condition = "MULT_APPUI == 'OUI'",
22249             regles=(EXCLUS('NOEUD','GROUP_NO'),),
22250                    DIRECTION       =SIMP(statut='f',typ='R',max='**'),
22251                    NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22252                    GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22253           ),
22254         ),
22255         MODE_STAT       =SIMP(statut='f',typ=mode_meca ),
22256         EXCIT_RESU       =FACT(statut='f',
22257            RESULTAT     =SIMP(statut='o',typ=dyna_trans ),
22258            COEF_MULT       =SIMP(statut='o',typ='R' ),
22259         ),
22260        ),
22261
22262 #definition des chocs
22263         b_non_line_loca =BLOC(condition="TYPE_CALCUL == 'TRAN' and BASE_CALCUL=='GENE'",
22264         CHOC            =FACT(statut='f',max='**',
22265            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ),
22266                    EXCLUS('NOEUD_2','GROUP_NO_2'),
22267                    PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'),
22268                    PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),),
22269            INTITULE        =SIMP(statut='f',typ='TXM' ),
22270            GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
22271            MAILLE          =SIMP(statut='f',typ=ma,max='**'),
22272            NOEUD_1         =SIMP(statut='f',typ=no),
22273            NOEUD_2         =SIMP(statut='f',typ=no),
22274            GROUP_NO_1      =SIMP(statut='f',typ=grno),
22275            GROUP_NO_2      =SIMP(statut='f',typ=grno),
22276            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
22277            ORIG_OBST       =SIMP(statut='f',typ='R',min=3,max=3),
22278            NORM_OBST       =SIMP(statut='o',typ='R',min=3,max=3),
22279            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
22280            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
22281            DIST_1          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
22282            DIST_2          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
22283            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
22284            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
22285            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
22286            RIGI_NOR        =SIMP(statut='f',typ='R' ),
22287            AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22288            RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22289            AMOR_TAN        =SIMP(statut='f',typ='R' ),
22290            FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","COULOMB","COULOMB_STAT_DYNA") ),
22291            b_coulomb       =BLOC(condition="FROTTEMENT=='COULOMB'",
22292                COULOMB         =SIMP(statut='o',typ='R' ),),
22293            b_coulomb_stat_dyna  =BLOC(condition="FROTTEMENT=='COULOMB_STAT_DYNA'",
22294                COULOMB_STAT    =SIMP(statut='o',typ='R' ),
22295                COULOMB_DYNA    =SIMP(statut='o',typ='R' ),),
22296            ),
22297         VERI_CHOC       =FACT(statut='f',
22298            STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
22299            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
22300          ),
22301
22302          ROTOR_FISS = FACT(statut='f',max='**',
22303                            regles=(UN_PARMI('NOEUD_D','GROUP_NO_D'),
22304                                    EXCLUS('NOEUD_G','GROUP_NO_G'),
22305                                    PRESENT_PRESENT('NOEUD_D','NOEUD_G'),
22306                                    PRESENT_PRESENT('GROUP_NO_D','GROUP_NO_G',),),
22307                              ANGL_INIT          = SIMP(statut='o',typ='R',defaut=0.E0),
22308                              ANGL_ROTA          = SIMP(statut='f',typ=(fonction_sdaster,formule) ),
22309                              NOEUD_G            = SIMP(statut='f',typ=no),
22310                              NOEUD_D            = SIMP(statut='f',typ=no),
22311                              GROUP_NO_G         = SIMP(statut='f',typ=grno),
22312                              GROUP_NO_D         = SIMP(statut='f',typ=grno),
22313                              K_PHI              = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
22314                              DK_DPHI            = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
22315          ),
22316
22317 #parametres flambage
22318         FLAMBAGE        =FACT(statut='f',max='**',
22319            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
22320                    EXCLUS('NOEUD_2','GROUP_NO_2'),),
22321            NOEUD_1         =SIMP(statut='f',typ=no),
22322            NOEUD_2         =SIMP(statut='f',typ=no),
22323            GROUP_NO_1      =SIMP(statut='f',typ=grno),
22324            GROUP_NO_2      =SIMP(statut='f',typ=grno),
22325            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
22326            ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
22327            NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
22328            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
22329            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
22330            DIST_1          =SIMP(statut='f',typ='R' ),
22331            DIST_2          =SIMP(statut='f',typ='R' ),
22332            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
22333            RIGI_NOR        =SIMP(statut='f',typ='R' ),
22334            FNOR_CRIT       =SIMP(statut='f',typ='R' ),
22335            FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
22336            RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
22337          ),
22338
22339 #non-linearite si dispositif anti-sismique
22340         ANTI_SISM       =FACT(statut='f',max='**',
22341            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
22342                    UN_PARMI('NOEUD_2','GROUP_NO_2'),),
22343            NOEUD_1         =SIMP(statut='f',typ=no),
22344            NOEUD_2         =SIMP(statut='f',typ=no),
22345            GROUP_NO_1      =SIMP(statut='f',typ=grno),
22346            GROUP_NO_2      =SIMP(statut='f',typ=grno),
22347            RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22348            RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22349            SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22350            C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22351            PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
22352            DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
22353          ),
22354 #non-linearite effort-deplacement
22355         RELA_EFFO_DEPL  =FACT(statut='f',max='**',
22356            NOEUD           =SIMP(statut='o',typ=no),
22357            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
22358            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
22359            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22360          ),
22361 #non-linearite effort-vitesse
22362         RELA_EFFO_VITE  =FACT(statut='f',max='**',
22363            NOEUD           =SIMP(statut='o',typ=no),
22364            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
22365            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
22366            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
22367          ),
22368         ),
22369 #-------------------------------------------------------------------
22370 #        Catalogue commun SOLVEUR
22371          b_solv_harm_gene =BLOC(condition = "BASE_CALCUL=='GENE' and TYPE_CALCUL=='HARM'",
22372                            fr="Methode de resolution matrice generalisee",
22373         SOLVEUR         =C_SOLVEUR('DYNA_LINE_HARM','GENE'),
22374          ),
22375          b_solv_harm_phys =BLOC(condition = "BASE_CALCUL=='PHYS' and TYPE_CALCUL=='HARM'",
22376                            fr="Methode de resolution matrice sur ddl physique",
22377         SOLVEUR         =C_SOLVEUR('DYNA_LINE_HARM','PHYS'),
22378          ),
22379          b_solv_line_tran      =BLOC(condition = "BASE_CALCUL=='PHYS' and TYPE_CALCUL=='TRAN'",
22380         SOLVEUR         =C_SOLVEUR('DYNA_LINE_TRAN'),
22381           ),
22382          b_solv_tran_gene      =BLOC(condition = "BASE_CALCUL=='GENE' and TYPE_CALCUL=='TRAN'",
22383         SOLVEUR         =C_SOLVEUR('DYNA_TRAN_MODAL'),
22384           ),
22385 #-------------------------------------------------------------------
22386         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22387         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
22388         b_impression = BLOC(condition = "BASE_CALCUL=='GENE' and TYPE_CALCUL=='TRAN'",
22389         IMPRESSION      =FACT(statut='f',
22390            regles=(EXCLUS('TOUT','NIVEAU'),),
22391            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22392            NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
22393            INST_INIT       =SIMP(statut='f',typ='R' ),
22394            INST_FIN        =SIMP(statut='f',typ='R' ),
22395          ),
22396          ),
22397         );
22398
22399 # ======================================================================
22400 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
22401 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22402 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22403 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22404 # (AT YOUR OPTION) ANY LATER VERSION.
22405 #
22406 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22407 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22408 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22409 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22410 #
22411 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22412 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22413 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22414 # ======================================================================
22415 # person_in_charge: jacques.pellet at edf.fr
22416
22417 def elim_lagr_prod(MATR_RIGI,**args):
22418   if AsType(MATR_RIGI) == matr_asse_depl_r : return matr_asse_depl_r
22419   raise AsException("type de concept resultat non prevu")
22420
22421 ELIM_LAGR=OPER(nom="ELIM_LAGR",op=69,sd_prod=elim_lagr_prod,
22422                fr="Créer une matrice en ayant éliminé les condition cinématiques dualisées.",
22423                reentrant='f', UIinfo={"groupes":("Résolution",)},
22424
22425          # Matrice de "rigidité" (celle qui contient les équations dualisées) :
22426          MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,) ),
22427
22428          # Matrice à réduire (si ce n'est pas la matrice de rigidité) :
22429          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,) ),
22430
22431
22432          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
22433 )  ;
22434
22435 # ======================================================================
22436 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22437 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22438 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22439 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22440 # (AT YOUR OPTION) ANY LATER VERSION.
22441 #
22442 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22443 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22444 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22445 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22446 #
22447 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22448 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22449 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22450 # ======================================================================
22451 # person_in_charge: jacques.pellet at edf.fr
22452 ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
22453                    UIinfo={"groupes":("Impression","Utilitaires",)},
22454                    fr="Engendre des tests pour la non régression du code (pour développeurs)",
22455          UNITE           =SIMP(statut='f',typ='I',defaut=8),
22456          FORMAT          =SIMP(statut='f',typ='TXM',into=("OBJET",) ),
22457          FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE20.13"),
22458          PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-10"),
22459 #============================================================================
22460          b_aster     =BLOC( condition = "FORMAT==None",
22461             CO              =SIMP(statut='o',typ=(cham_gd_sdaster,resultat_sdaster,table_sdaster),
22462                                   validators=NoRepeat(),max='**'),
22463             TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMM_ABS",into=("SOMME","SOMM_ABS","MAX","MIN") ),
22464          ),
22465 #============================================================================
22466          b_objet     =BLOC( condition = "FORMAT=='OBJET'",
22467                             regles=(UN_PARMI('TOUT','CO'),),
22468             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22469             CO              =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
22470             TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME",) ),
22471          ),
22472 )  ;
22473
22474 # ======================================================================
22475 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22476 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
22477 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
22478 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
22479 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
22480 #                                                                       
22481 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
22482 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
22483 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
22484 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
22485 #                                                                       
22486 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
22487 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
22488 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
22489 # ======================================================================
22490 # person_in_charge: nicolas.greffet at edf.fr
22491
22492 #  ENVOI DES CHAMPS CINEMATIQUES VIA YACS POUR COUPLAGE IFS 
22493 #
22494 ENV_CINE_YACS=PROC(nom             = "ENV_CINE_YACS",
22495                    op              = 111,
22496                    UIinfo          = {"groupes":("Résultats et champs",)},
22497                    fr              = "Envoi des champs de deplacement et vitesse via YACS pour Couplage de Code_Aster et Saturne",
22498                    regles          = (EXCLUS('ETAT_INIT','RESULTAT',),),
22499                    MATR_PROJECTION = SIMP(statut='o', typ=corresp_2_mailla,),
22500                    VIS_A_VIS = FACT(statut='o', max='**',
22501                                    GROUP_MA_1=SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22502                                    GROUP_NO_2=SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
22503                    RESULTAT  = FACT(statut='f',
22504                                    NUME_ORDRE=SIMP(statut='o', typ='I',              validators=NoRepeat()),
22505                                    RESU      =SIMP(statut='o', typ=resultat_sdaster, validators=NoRepeat()),),
22506                    ETAT_INIT = FACT(statut='f',
22507                                     DEPL=SIMP(statut='f', typ=cham_no_sdaster,  validators=NoRepeat()),
22508                                     VITE=SIMP(statut='f', typ=cham_no_sdaster,  validators=NoRepeat()),
22509                                     ACCE=SIMP(statut='f', typ=cham_no_sdaster,  validators=NoRepeat()),),
22510                    INST         = SIMP(statut='o',typ='R', ),
22511                    PAS             = SIMP(statut='o',typ='R', ),
22512                    NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
22513                    INFO            = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
22514 ) ;
22515
22516 # ======================================================================
22517 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22518 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22519 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22520 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22521 # (AT YOUR OPTION) ANY LATER VERSION.
22522 #
22523 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22524 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22525 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22526 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22527 #
22528 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22529 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22530 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22531 # ======================================================================
22532 # person_in_charge: j-pierre.lefebvre at edf.fr
22533
22534 def exec_logiciel_prod(self, MAILLAGE, **args):
22535    if MAILLAGE != None:
22536       mcf = MAILLAGE[0]
22537       self.type_sdprod(mcf['MAILLAGE'], maillage_sdaster)
22538    return None
22539
22540 EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL",
22541                       op=OPS('Macro.exec_logiciel_ops.exec_logiciel_ops'),
22542                       sd_prod=exec_logiciel_prod,
22543                       fr="Exécute un logiciel ou une commande système depuis Aster",
22544                       UIinfo={"groupes":("Gestion du travail","Outils-métier",)},
22545
22546       regles = ( AU_MOINS_UN('LOGICIEL', 'MAILLAGE', 'SALOME'),
22547                  EXCLUS('MACHINE_DISTANTE','MAILLAGE'),
22548                  EXCLUS('MAILLAGE','SALOME'),
22549                  ),
22550
22551       LOGICIEL = SIMP(statut='f', typ='TXM'),
22552       ARGUMENT = SIMP(statut='f', max='**', typ='TXM'),
22553
22554
22555       MACHINE_DISTANTE = FACT(statut='f',
22556         SSH_ADRESSE  = SIMP(statut='o', typ='TXM', val_min=1, val_max=255,
22557                            fr="Adresse IP ou nom de la machine sur laquelle le logiciel/script sera exécuté via SSH"),
22558         SSH_LOGIN    = SIMP(statut='f', typ='TXM', val_min=1, val_max=255,
22559                            fr="Nom d'utilisateur sur la machine distante"),
22560         SSH_PORT     = SIMP(statut='f', typ='I', val_min=1, val_max=65535, defaut=22,
22561                            fr="Port SSH de la machien distante"),
22562       ),
22563
22564
22565       MAILLAGE = FACT(statut='f',
22566          FORMAT     = SIMP(statut='o', typ='TXM', into=("GMSH", "GIBI", "SALOME")),
22567          UNITE_GEOM = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=16,
22568                            fr="Unité logique définissant le fichier (fort.N) contenant les données géométriques (datg)"),
22569          UNITE      = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=19,
22570                            fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"),
22571          MAILLAGE   = SIMP(statut='o', typ=CO),
22572       ),
22573
22574
22575       SALOME = FACT(statut='f',
22576            regles=(UN_PARMI('CHEMIN_SCRIPT', 'UNITE_SCRIPT'),
22577                    PRESENT_PRESENT('NOM_PARA','VALE'),),
22578          CHEMIN_SCRIPT     = SIMP(statut='f', typ='TXM',
22579                                fr="Chemin du script Salome"),
22580          UNITE_SCRIPT      = SIMP(statut='f', typ='I', val_min=80, val_max=99,
22581                                fr="Unité logique du script Salome"),
22582          SALOME_HOST       = SIMP(statut='f', typ='TXM', defaut='localhost',
22583                                fr="Machine sur laquelle tourne Salome"),
22584          SALOME_PORT       = SIMP(statut='f', typ='I', val_min=2800, val_max=2900, defaut=2810,
22585                                fr="Port de l'instance Salome (2810 ou supérieur)"),
22586          SALOME_RUNAPPLI   = SIMP(statut='f', typ='TXM',
22587                                fr="Chemin vers le script de lancement runAppli de Salome"),
22588          FICHIERS_ENTREE   = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**',
22589                                fr="Liste des fichiers d'entrée du script Salome"),
22590          FICHIERS_SORTIE   = SIMP(statut='f', typ='TXM', validators=NoRepeat(),max='**',
22591                                fr="Liste des fichiers générés par le script Salome"),
22592          NOM_PARA          = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
22593                                fr="Liste des noms des paramètres à modifier dans le script Salome"),
22594          VALE              = SIMP(statut='f',typ='TXM',max='**',
22595                                fr="Valeur des paramètres à) modifier dans le script Salome"),
22596       ),
22597
22598       CODE_RETOUR_MAXI = SIMP(statut='f', typ='I', defaut=0, val_min=-1,
22599                               fr="Valeur maximale du code retour toléré (-1 pour l'ignorer)"),
22600
22601       INFO     = SIMP(statut='f', typ='I', defaut=2, into=(1,2),),
22602 )
22603
22604 # ======================================================================
22605 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22606 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22607 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22608 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22609 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22610 #
22611 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22612 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22613 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22614 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22615 #
22616 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22617 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22618 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22619 # ======================================================================
22620 # person_in_charge: nicolas.brie at edf.fr
22621
22622 def extr_mode_prod(FILTRE_MODE,**args):
22623   vale=FILTRE_MODE[0]['MODE']
22624   if AsType(vale) == mode_meca   : return mode_meca
22625   if AsType(vale) == mode_meca_c : return mode_meca_c
22626   if AsType(vale) == mode_gene   : return mode_gene
22627   raise AsException("type de concept resultat non prevu")
22628
22629 EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
22630                reentrant='n',fr="Extraire séléctivement des modes des structures de données modales",
22631             UIinfo={"groupes":("Résolution","Dynamique",)},
22632          FILTRE_MODE     =FACT(statut='o',max='**',
22633            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
22634            MODE            =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ),
22635            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
22636            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22637            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22638            NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22639            FREQ_MIN        =SIMP(statut='f',typ='R' ),
22640            CRIT_EXTR       =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ),
22641            b_freq_min      =BLOC(condition = "FREQ_MIN != None",  
22642              FREQ_MAX        =SIMP(statut='o',typ='R' ),
22643              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22644            ),
22645            b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
22646              regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),),
22647              SEUIL           =SIMP(statut='f',typ='R'),
22648              SEUIL_X         =SIMP(statut='f',typ='R'),
22649              SEUIL_Y         =SIMP(statut='f',typ='R'),
22650              SEUIL_Z         =SIMP(statut='f',typ='R'),
22651            ),    
22652          ),
22653          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22654          IMPRESSION      =FACT(statut='f',
22655            CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22656            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
22657          ),
22658 )  ;
22659
22660 # ======================================================================
22661 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
22662 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22663 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22664 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22665 # (AT YOUR OPTION) ANY LATER VERSION.
22666 #
22667 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22668 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22669 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22670 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22671 #
22672 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22673 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22674 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22675 # ======================================================================
22676 # person_in_charge: j-pierre.lefebvre at edf.fr
22677
22678 def extr_resu_prod(RESULTAT,**args):
22679   if AsType(RESULTAT) == evol_elas    : return evol_elas
22680   if AsType(RESULTAT) == evol_noli    : return evol_noli
22681   if AsType(RESULTAT) == evol_ther    : return evol_ther
22682   if AsType(RESULTAT) == evol_varc    : return evol_varc
22683   if AsType(RESULTAT) == dyna_trans   : return dyna_trans
22684   if AsType(RESULTAT) == dyna_harmo   : return dyna_harmo
22685   if AsType(RESULTAT) == acou_harmo   : return acou_harmo
22686   if AsType(RESULTAT) == mode_meca    : return mode_meca
22687   if AsType(RESULTAT) == mode_acou    : return mode_acou
22688   if AsType(RESULTAT) == mult_elas    : return mult_elas
22689   if AsType(RESULTAT) == fourier_elas : return fourier_elas
22690
22691   raise AsException("type de concept resultat non prevu")
22692
22693 EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
22694             UIinfo={"groupes":("Résultats et champs",)},
22695             fr="Extraire des champs au sein d'une SD Résultat",
22696          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
22697                                                mode_acou,evol_ther,evol_noli,evol_varc,
22698                                                mult_elas,fourier_elas,fourier_ther ) ),
22699
22700
22701          ARCHIVAGE       =FACT(statut='f',
22702            regles=(  UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE',
22703                         'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE',
22704                         'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ),
22705                      EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ),   ),
22706            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22707            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
22708            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
22709            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
22710               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
22711            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
22712               PRECISION       =SIMP(statut='o',typ='R',),),
22713            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
22714            PAS_ARCH        =SIMP(statut='f',typ='I'),
22715            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22716            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
22717            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22718            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22719            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22720            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
22721            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22722            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22723            NOM_CAS         =SIMP(statut='f',typ='TXM'),
22724                                ),
22725
22726          RESTREINT   =FACT(statut='f', max=1,
22727             fr="Pour réduire une ou plusieurs sd_resultat sur un maillage ou un modèle réduit",
22728             regles=(UN_PARMI('MAILLAGE','MODELE'),),
22729             MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
22730             MODELE          =SIMP(statut='f',typ=modele_sdaster),
22731             ),
22732
22733          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
22734 )  ;
22735
22736 # ======================================================================
22737 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
22738 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22739 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22740 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22741 # (AT YOUR OPTION) ANY LATER VERSION.
22742 #
22743 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22744 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22745 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22746 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22747 #
22748 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22749 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22750 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22751 # ======================================================================
22752 # person_in_charge: mathieu.courtois at edf.fr
22753
22754 def extr_table_prod(TYPE_RESU,**args):
22755   defs = globals()
22756   typ = TYPE_RESU.lower()
22757   if defs.get(typ) is not None:
22758      return defs[typ]
22759   raise AsException("type de concept resultat non prevu")
22760
22761 EXTR_TABLE=OPER(nom="EXTR_TABLE",
22762                 op=173,
22763                 sd_prod=extr_table_prod,
22764                 reentrant='n',
22765                 UIinfo={"groupes":("Résultats et champs","Tables")},
22766                 fr="Extraire d'une table des concepts Code_Aster",
22767          TYPE_RESU       =SIMP(statut='o',typ='TXM',
22768                                into=('MATR_ASSE_GENE_R', 'MATR_ELEM_DEPL_R',
22769                                      'VECT_ELEM_DEPL_R',
22770                                      'CHAM_GD_SDASTER', 'CHAM_NO_SDASTER',
22771                                      'CARTE_SDASTER', 'CHAM_ELEM',
22772                                      'MODE_MECA','TABLE_SDASTER',
22773                                      'FONCTION_SDASTER', 'FONCTION_C', 'NAPPE_SDASTER',
22774                                      'ENTIER', 'REEL'),),
22775
22776          TABLE           =SIMP(statut='o',typ=(table_sdaster,table_container)),
22777
22778          NOM_PARA        =SIMP(statut='o',typ='TXM'),
22779
22780          FILTRE          =FACT(statut='f',min=1,max='**',
22781            NOM_PARA        =SIMP(statut='o',typ='TXM'),
22782            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
22783                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
22784                                        "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS") ),
22785            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
22786               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
22787               VALE            =SIMP(statut='f',typ='R'),
22788               VALE_I          =SIMP(statut='f',typ='I'),
22789               VALE_C          =SIMP(statut='f',typ='C'),
22790               VALE_K          =SIMP(statut='f',typ='TXM'),),
22791
22792            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22793            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
22794          ),
22795
22796          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
22797 )  ;
22798
22799 # ======================================================================
22800 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
22801 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22802 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22803 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22804 # (AT YOUR OPTION) ANY LATER VERSION.
22805 #
22806 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22807 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22808 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22809 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22810 #
22811 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22812 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22813 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22814 # ======================================================================
22815 # person_in_charge: jacques.pellet at edf.fr
22816
22817 def factoriser_prod(MATR_ASSE,**args):
22818   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
22819   if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
22820   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
22821   if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
22822   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
22823   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
22824   raise AsException("type de concept resultat non prevu")
22825
22826 FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod,
22827                fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+
22828                   "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué",
22829                reentrant='f', UIinfo={"groupes":("Résolution",)},
22830          regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
22831                  EXCLUS('BLOC_FIN','DDL_FIN'),),
22832          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
22833                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
22834
22835          # mots clés pour solveur LDLT et MULT_FRONT et MUMPS:
22836          STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
22837          NPREC           =SIMP(statut='f',typ='I',defaut=8),
22838
22839          # mots clés pour solveur LDLT :
22840          BLOC_DEBUT      =SIMP(statut='f',typ='I',val_min=1,),
22841          DDL_DEBUT       =SIMP(statut='f',typ='I',val_min=1,),
22842          BLOC_FIN        =SIMP(statut='f',typ='I',val_min=1,),
22843          DDL_FIN         =SIMP(statut='f',typ='I',val_min=1,),
22844
22845          # mots clés pour solveur MUMPS :
22846          TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
22847          PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
22848          PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
22849          ELIM_LAGR       =SIMP(statut='f',typ='TXM',defaut="LAGR2",into=("LAGR2","NON")),
22850          GESTION_MEMOIRE =SIMP(statut='f',typ='TXM',defaut="IN_CORE",into=("IN_CORE","OUT_OF_CORE","EVAL")),
22851
22852          # mots clés pour solveur GCPC et PETSc :
22853          PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR","LDLT_SP"),defaut="LDLT_INC" ),
22854          b_ldlt_inc     =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
22855            NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
22856            REMPLISSAGE      = SIMP(statut='f',typ='R',defaut= 1.0),
22857          ),
22858          b_ldlt_sp      =BLOC(condition = "PRE_COND == 'LDLT_SP' ", fr="Paramètres de la factorisation simple précision",
22859            REAC_PRECOND        =SIMP(statut='f',typ='I',defaut=30, ),
22860          ),
22861          b_jacobi_sor   =BLOC(condition = "PRE_COND == 'JACOBI' or PRE_COND == 'SOR'",
22862                                                                          fr="Paramètres des préconditionneurs JACOBI et SOR",
22863            RENUM               =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","RCMK") ),
22864          ),
22865
22866          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22867          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
22868 )  ;
22869
22870 # ======================================================================
22871 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22872 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22873 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22874 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22875 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22876 #
22877 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22878 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22879 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22880 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22881 #
22882 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22883 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22884 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22885 # ======================================================================
22886 # person_in_charge: j-pierre.lefebvre at edf.fr
22887 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE",
22888             UIinfo={"groupes":("Gestion du travail",)},
22889 #
22890 # FIN est appelé prématurément en cas d'exception ("SIGUSR1", ArretCPUError,
22891 # NonConvergenceError..., erreurs <S> ou erreurs <F> récupérées).
22892 # En cas d'ArretCPUError, on limite au maximum le travail à faire dans FIN.
22893 # Pour cela, on force certains mots-clés dans Execution/E_JDC.py.
22894
22895          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
22896                                typ='TXM',defaut="NON",into=("OUI","NON",) ), 
22897          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
22898                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
22899          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
22900                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
22901          UNITE           =SIMP(statut='f',typ='I',defaut=6),  
22902 )  ;
22903
22904 # ======================================================================
22905 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22906 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22907 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22908 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22909 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22910 #
22911 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22912 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22913 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22914 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22915 #
22916 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22917 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22918 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22919 # ======================================================================
22920 # person_in_charge: andre.adobes at edf.fr
22921 FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster,
22922                     reentrant='n',fr="Crée une fonction constante paramétrée par l'abscisse curviligne",
22923             UIinfo={"groupes":("Fonctions",)},
22924          TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
22925 )  ;
22926
22927 # ======================================================================
22928 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
22929 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22930 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22931 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22932 # (AT YOUR OPTION) ANY LATER VERSION.
22933 #
22934 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22935 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22936 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22937 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22938 #
22939 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22940 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22941 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22942 # ======================================================================
22943 # person_in_charge: mathieu.courtois at edf.fr
22944 def formule_prod(self, VALE, VALE_C, **args):
22945     if VALE != None:
22946         return formule
22947     elif VALE_C != None:
22948         return formule_c
22949
22950 FORMULE=FORM(nom="FORMULE",
22951              op_init=ops.build_formule,
22952              op=-5,
22953              sd_prod=formule_prod,
22954              UIinfo={"groupes":("Fonctions",)},
22955              fr="Définit une formule réelle ou complexe à partir de son expression mathématique",
22956     regles = (UN_PARMI('VALE', 'VALE_C',),),
22957     VALE     = SIMP(statut='f', typ='TXM'),
22958     VALE_C   = SIMP(statut='f', typ='TXM'),
22959     NOM_PARA = SIMP(statut='o', typ='TXM', max='**'),
22960 )
22961
22962 # ======================================================================
22963 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
22964 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22965 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22966 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22967 # (AT YOUR OPTION) ANY LATER VERSION.
22968 #
22969 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22970 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22971 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22972 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22973 #
22974 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22975 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22976 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22977 # ======================================================================
22978 # person_in_charge: irmela.zentner at edf.fr
22979 GENE_ACCE_SEISME=MACRO(nom="GENE_ACCE_SEISME",
22980                      op=OPS('Macro.gene_acce_seisme_ops.gene_acce_seisme_ops'),
22981                      sd_prod=table_fonction,
22982                      fr="Generation d'accelerogrammes sismiques ",
22983                      reentrant='n',
22984                      UIinfo={"groupes":("Fonctions","Dynamique",)},
22985
22986          INIT_ALEA       =SIMP(statut='f',typ='I'),
22987          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22988          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
22989          PAS_INST        =SIMP(statut='o',typ='R' ),
22990          NB_POIN           =SIMP(statut='f',typ='I',fr="nombre de points" ),
22991          PESANTEUR         =SIMP(statut='o', typ='R', fr="constante de normalisation de ACCE_MAX, ECART_TYPE et INTE_ARIAS (g) ou le spectre" ),
22992          DUREE_PHASE_FORTE =SIMP(statut='o',typ='R',fr="durée phase forte du signal" ),
22993          NB_TIRAGE        =SIMP(statut='f',typ='I',defaut= 1,fr="nombre accelerogrammes" ),
22994          FREQ_FILTRE       =SIMP(statut='f',typ='R',fr="frequence du filtre: corner frequency"),
22995 #
22996          DSP        = FACT(statut='f',max=1,     
22997             AMOR_REDUIT   =SIMP(statut='o',typ='R'),
22998             FREQ_FOND     =SIMP(statut='o',typ='R', fr="frequence centrale"),
22999             FREQ_PENTE    =SIMP(statut='f',typ='R',  fr="pente pour l'evolution de la frequence centrale"),        
23000         ),
23001          SPEC_MEDIANE    = FACT(statut='f',max=1,
23002         regles=(ENSEMBLE('ERRE_ZPA','ERRE_MAX','ERRE_RMS'),EXCLUS('FREQ_PAS','LIST_FREQ'),),
23003             SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster),),
23004             AMOR_REDUIT     =SIMP(statut='o', typ='R', val_min=0., val_max=1.),
23005             FREQ_PAS      =SIMP(statut='f',typ='R' , fr="pas"),      
23006             LIST_FREQ       =SIMP(statut='f', typ=listr8_sdaster ),            
23007             NB_ITER      =SIMP(statut='f',typ='I' ,defaut=0, val_min=0,fr="nombre d'iterations pour fitter le spectre"  ,),
23008             ERRE_ZPA      =SIMP(statut='f',typ='R' ,defaut=(1.,0.2), min=1,max=2,  fr="coef et erreur maxi ZPA",),
23009             ERRE_MAX      =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2,  fr="coef et erreur maxi global",),
23010             ERRE_RMS      =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2,  fr="coef et erreur maxi rms",),
23011             FREQ_PENTE    =SIMP(statut='f',typ='R',  fr="pente pour l'evolution de la frequence centrale"), 
23012             METHODE         =SIMP(statut='f',typ='TXM',defaut="HARMO",into=("NIGAM","HARMO") ),            
23013         ),
23014          SPEC_UNIQUE    = FACT(statut='f',max=1,
23015         regles=(ENSEMBLE('ERRE_ZPA','ERRE_MAX','ERRE_RMS'),EXCLUS('FREQ_PAS','LIST_FREQ'),),
23016             ERRE_ZPA      =SIMP(statut='f',typ='R' ,defaut=(1.,0.2), min=1,max=2,  fr="coef et erreur maxi ZPA",),
23017             ERRE_MAX      =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2,  fr="coef et erreur maxi global",),
23018             ERRE_RMS      =SIMP(statut='f',typ='R' ,defaut=(0.5,0.2), min=1,max=2,  fr="coef et erreur maxi rms",),
23019             SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster),),
23020             AMOR_REDUIT     =SIMP(statut='o', typ='R', val_min=0., val_max=1.),
23021             FREQ_PAS      =SIMP(statut='f',typ='R' , fr="pas"),
23022             LIST_FREQ       =SIMP(statut='f', typ=listr8_sdaster ),
23023             NB_ITER      =SIMP(statut='f',typ='I' ,defaut=0, val_min=0,fr="nombre d'iterations pour fitter le spectre" ,),
23024             METHODE         =SIMP(statut='f',typ='TXM',defaut="HARMO",into=("NIGAM","HARMO") ),    
23025         ),
23026 #       
23027          SPEC_FRACTILE    = FACT(statut='f',max=1,
23028         regles=(ENSEMBLE('ERRE_ZPA','ERRE_MAX','ERRE_RMS'), EXCLUS('FREQ_PAS','LIST_FREQ'),),
23029             SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster),),
23030             SPEC_1_SIGMA       =SIMP(statut='o',typ=(fonction_sdaster),),  
23031             AMOR_REDUIT     =SIMP(statut='o', typ='R', val_min=0., val_max=1.),
23032             FREQ_PAS      =SIMP(statut='f',typ='R' , fr="pas"),    
23033             LIST_FREQ       =SIMP(statut='f', typ=listr8_sdaster ),               
23034            FREQ_PENTE    =SIMP(statut='f',typ='R',  fr="pente pour l'evolution de la frequence centrale"),           
23035         ),
23036
23037
23038          regles=(UN_PARMI('DSP','SPEC_MEDIANE','SPEC_UNIQUE','SPEC_FRACTILE'),),    
23039          MODULATION      = FACT(statut='o',max=1, 
23040             regles=(EXCLUS('ACCE_MAX','INTE_ARIAS','ECART_TYPE'),),         
23041             TYPE         = SIMP(statut='o',typ='TXM' , into=("GAMMA","JENNINGS_HOUSNER","CONSTANT")),
23042             ACCE_MAX     = SIMP(statut='f',typ='R',fr="PGA: acceleration max au sol (g)" ),
23043             ECART_TYPE   = SIMP(statut='f',typ='R',fr="ecart-type" ),
23044             INTE_ARIAS   = SIMP(statut='f',typ='R',fr="intensite d'Arias" ),
23045               c_type_mod   = BLOC(condition="TYPE=='GAMMA' ",
23046                            INST_INI     = SIMP(statut='o',typ='R',fr="instant debut phase forte" ),
23047                             ),
23048             ),
23049 )  ;
23050  
23051
23052 # ======================================================================
23053 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
23054 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23055 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23056 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23057 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23058 #
23059 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23060 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23061 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23062 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23063 #
23064 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23065 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23066 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23067 # ======================================================================
23068 # person_in_charge: irmela.zentner at edf.fr
23069 GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction,
23070                     fr="Génération de la fonction temporelle à partir d une matrice interspectrale",
23071                     reentrant='n',
23072             UIinfo={"groupes":("Fonctions",)},
23073          INTE_SPEC       =SIMP(statut='o',typ=interspectre),
23074          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
23075          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
23076          b_interpol_oui    =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee",
23077            DUREE_TIRAGE    =SIMP(statut='f',typ='R' ),
23078            FREQ_INIT       =SIMP(statut='f',typ='R' ),
23079            FREQ_FIN        =SIMP(statut='f',typ='R' ),
23080              ),
23081          NB_POIN         =SIMP(statut='f',typ='I'),
23082          NB_TIRAGE       =SIMP(statut='f',typ='I',defaut= 1 ),
23083          INIT_ALEA       =SIMP(statut='f',typ='I'),
23084          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
23085          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
23086 )  ;
23087
23088 # ======================================================================
23089 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
23090 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23091 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23092 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23093 # (AT YOUR OPTION) ANY LATER VERSION.
23094 #
23095 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23096 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23097 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23098 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23099 #
23100 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23101 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23102 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23103 # ======================================================================
23104 # person_in_charge: irmela.zentner at edf.fr
23105 def gene_matr_alea_prod(MATR_MOYEN,**args ):
23106   if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
23107   if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
23108   raise AsException("type de concept resultat non prevu")
23109
23110 GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
23111 #sd_prod=matr_asse_gene_r,
23112 sd_prod=gene_matr_alea_prod,
23113                fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique",
23114                reentrant='n',
23115             UIinfo={"groupes":("Matrices et vecteurs",)},
23116    MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
23117
23118 #    cas matrice generalisee
23119    b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
23120            COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
23121                                 fr="coefficient de variation de la matrice a generer" ),
23122            ),
23123 #    cas macr_elem_dyna
23124    b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
23125            fr="cas macr_elem_dyna (sous-structuratio)",
23126            COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
23127                                 fr="coefficient de variation de la matrice de raideur" ),
23128            COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
23129                                 fr="coefficient de variation de la matrice de masse" ),
23130            COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
23131                                 fr="coefficient de variation de la matrice d'amortissement" ),),
23132
23133    INIT_ALEA    =SIMP(statut='f',typ='I'),
23134 ) ;
23135
23136 # ======================================================================
23137 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23138 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23139 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23140 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23141 # (AT YOUR OPTION) ANY LATER VERSION.
23142 #
23143 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23144 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23145 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23146 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23147 #
23148 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23149 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23150 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23151 # ======================================================================
23152 # person_in_charge: irmela.zentner at edf.fr
23153
23154 GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA",
23155                      op_init=ops.build_gene_vari_alea,
23156                      op=EMPTY_OPS,
23157                      sd_prod=reel,
23158                      reentrant='n',
23159                      fr="Générer une réalisation d'une variable aléatoire réelle " \
23160                         "de loi de probabilité donnée (Gamma ou Exponentielle)",
23161                      UIinfo={"groupes":("Fonctions",)},
23162    TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
23163    b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
23164            VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
23165            BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
23166            COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
23167              ),
23168    b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
23169            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
23170            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
23171              ),
23172    b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
23173            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
23174            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
23175            BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
23176              ),
23177    INIT_ALEA       =SIMP(statut='f',typ='I'),
23178 )
23179
23180 # ======================================================================
23181 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
23182 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23183 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23184 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23185 # (AT YOUR OPTION) ANY LATER VERSION.
23186 #
23187 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23188 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23189 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23190 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23191 #
23192 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23193 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23194 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23195 # ======================================================================
23196 # person_in_charge: j-pierre.lefebvre at edf.fr
23197 IMPR_CO=PROC(nom="IMPR_CO",op=17,
23198             UIinfo={"groupes":("Impression","Utilitaires",)},
23199              fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)",
23200          regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),),
23201
23202          UNITE           =SIMP(statut='f',typ='I',defaut=8),
23203          NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ),
23204          ATTRIBUT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
23205          CONTENU         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
23206          BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ),
23207          CONCEPT    =FACT(statut='f',max='**',
23208              NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),),        
23209          CHAINE          =SIMP(statut='f',typ='TXM'),
23210          POSITION        =SIMP(statut='f',typ='I',defaut=1),
23211          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23212 )  ;
23213
23214 # ======================================================================
23215 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23216 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23217 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23218 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23219 # (AT YOUR OPTION) ANY LATER VERSION.
23220 #
23221 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23222 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23223 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23224 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23225 #
23226 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23227 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23228 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23229 # ======================================================================
23230 #
23231
23232
23233 IMPR_DIAG_CAMPBELL=MACRO(nom="IMPR_DIAG_CAMPBELL",
23234                          op=OPS('Macro.impr_diag_campbell_ops.impr_diag_campbell_ops'),
23235                          fr="Tracé du Diagramme de Campbell",
23236                          UIinfo={"groupes":("Impression","Outils-métier",)},
23237             MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
23238             MODES           =SIMP(statut='o',typ=table_container),
23239             NFREQ_CAMP      =SIMP(statut='o',typ='I' ),
23240             TYP_PREC        =SIMP(statut='f',typ='I',defaut= 1, into=(1,2) ),
23241             TYP_TRI         =SIMP(statut='f',typ='I',defaut= 2, into=(0,1,2) ),
23242             UNIT_FLE        =SIMP(statut='o',typ='I' ,val_min=1),
23243             UNIT_TOR        =SIMP(statut='o',typ='I' ,val_min=1),
23244             UNIT_LON        =SIMP(statut='o',typ='I' ,val_min=1),
23245             UNIT_TOT        =SIMP(statut='o',typ='I' ,val_min=1),
23246             UNIT_INT        =SIMP(statut='o',typ='I' ,val_min=1),
23247             L_S             =SIMP(statut='f',typ='R', defaut= 1., max='**'),
23248 );
23249
23250 # ======================================================================
23251 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23252 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23253 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23254 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23255 # (AT YOUR OPTION) ANY LATER VERSION.
23256 #
23257 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23258 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23259 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23260 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23261 #
23262 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23263 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23264 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23265 # ======================================================================
23266 # person_in_charge: mathieu.courtois at edf.fr
23267
23268 IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",
23269                     op=OPS('Macro.impr_fonction_ops.impr_fonction_ops'),
23270                     sd_prod=None,
23271                     fr="Imprime le contenu d'objets de type fonction ou liste de " \
23272                        "réels dans un fichier destiné à un traceur de courbe",
23273                     UIinfo={"groupes":("Impression","Fonctions",)},
23274          FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
23275                                into=("TABLEAU","AGRAF","XMGRACE",),),
23276          b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
23277                         fr="Mots-clés propres à XMGRACE",
23278            PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
23279                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
23280                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
23281            UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
23282                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
23283          ),
23284          b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
23285                         fr="Mots-clés propres à AGRAF",
23286            UNITE           =SIMP(statut='o',typ='I',defaut=25,
23287                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
23288            UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
23289                                  fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
23290          ),
23291          # unite pour TABLEAU dans le bloc de mise en forme spécifique
23292
23293          COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
23294            regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
23295            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
23296                                  fr="Fonction réelle ou complexe", ),
23297            LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
23298                                  fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
23299            FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
23300                                  fr="Fonction abscisses d'une fonction paramétrique",),
23301            ABSCISSE        =SIMP(statut='f',typ='R',max='**',
23302                                  fr="Valeurs des abscisses", ),
23303            b_fonction      =BLOC(condition = "FONCTION != None",
23304              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
23305            ),
23306            b_fonction_c  =BLOC(condition = "AsType(FONCTION) in (fonction_c, formule_c)",
23307                                  fr="Fonction complexe définie par le mot-clé fonction",
23308              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
23309            ),
23310            b_list_resu     =BLOC(condition = "LIST_RESU != None",
23311              LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
23312            ),
23313            b_fonc_x        =BLOC(condition = "FONC_X != None",
23314              FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
23315              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
23316            ),
23317            b_vale_resu     =BLOC(condition = "ABSCISSE != None",
23318              ORDONNEE      =SIMP(statut='o',typ='R',max='**',
23319                                  fr="Valeurs des ordonnées"),
23320            ),
23321
23322            # mots-clés utilisant uniquement aux formats autres que TABLEAU
23323            # mais ce serait trop pénible de devoir les supprimer quand on change de format
23324            # donc on ne les met pas dans un bloc
23325            # "pseudo" bloc mise en forme :
23326                LEGENDE         =SIMP(statut='f',typ='TXM',
23327                                     fr="Légende associée à la fonction" ),
23328                STYLE           =SIMP(statut='f',typ='I',val_min=0,
23329                                     fr="Style de la ligne représentant la fonction",),
23330                COULEUR         =SIMP(statut='f',typ='I',val_min=0,
23331                                     fr="Couleur associée à la fonction",),
23332                MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
23333                                     fr="Type du marqueur associé à la fonction",),
23334                FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
23335                                     fr="Fréquence d impression du marqueur associé à la fonction", ),
23336            # fin bloc mise en forme
23337
23338            TRI             =SIMP(statut='f',typ='TXM',defaut="N",
23339                                  fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
23340                                  into=("N","X","Y","XY","YX") ),
23341          ),
23342          # Mise en page du tableau ou du graphique
23343          b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
23344                           fr="Mots-clés propres au format Tableau",
23345            UNITE           =SIMP(statut='o',typ='I',defaut=8,
23346                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
23347            TITRE           =SIMP(statut='f',typ='TXM',
23348                                  fr="Titre associé au graphique" ),
23349            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
23350                                  fr="Sous-titre du graphique" ),
23351            SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
23352                                  fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
23353            COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
23354                                  fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
23355            COMM_PARA       =SIMP(statut='f',typ='TXM',defaut='',
23356                                  fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"),
23357            DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
23358                                  fr="Caractère de debut de ligne"),
23359            FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
23360                                  fr="Caractère de fin de ligne"),
23361          ),
23362          b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
23363                         fr="Mise en page du graphique",
23364            TITRE           =SIMP(statut='f',typ='TXM',
23365                                  fr="Titre associé au graphique" ),
23366            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
23367                                  fr="Sous-titre du graphique" ),
23368            BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
23369                                  fr="Intervalles de variation des abscisses"),
23370            BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
23371                                  fr="Intervalles de variation des ordonnées"),
23372            ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
23373                                  fr="Type d'échelle pour les abscisses" ),
23374            ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
23375                                  fr="Type d'échelle pour les ordonnées" ),
23376            GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
23377                                  fr="Pas du quadrillage vertical" ),
23378            GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
23379                                  fr="Pas du quadrillage horizontal" ),
23380            LEGENDE_X       =SIMP(statut='f',typ='TXM',
23381                                  fr="Légende associée à l'axe des abscisses" ),
23382            LEGENDE_Y       =SIMP(statut='f',typ='TXM',
23383                                  fr="Légende associée à l'axe des ordonnées" ),
23384          ),
23385          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23386 )  ;
23387
23388 # ======================================================================
23389 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23390 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23391 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23392 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23393 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23394 #
23395 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23396 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23397 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23398 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23399 #
23400 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23401 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23402 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23403 # ======================================================================
23404 # person_in_charge: emmanuel.boyere at edf.fr
23405 IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
23406             fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT",
23407             UIinfo={"groupes":("Impression","Dynamique",)},
23408          FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
23409          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
23410          GENE            =FACT(statut='o',max='**',
23411            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
23412                           'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
23413                    EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
23414                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
23415                    EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
23416                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
23417                    EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
23418                    EXCLUS('TOUT_CHAM','NOM_CHAM'),
23419                    EXCLUS('TOUT_PARA','NOM_PARA'),),
23420 #  faut-il faire des blocs selon le type de RESU_GENE                   
23421            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
23422            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23423            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
23424            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
23425            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
23426            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
23427            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23428            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
23429            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
23430            TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23431            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
23432            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
23433            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
23434               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
23435            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
23436               PRECISION       =SIMP(statut='o',typ='R',),),
23437            TOUT_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
23438            NUME_CMP_GENE   =SIMP(statut='f',typ='I',max='**'),
23439            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
23440            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
23441            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
23442            NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
23443            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
23444            INFO_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
23445            INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
23446          ),
23447 )  ;
23448
23449 # ======================================================================
23450 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23451 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23452 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23453 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23454 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23455 #
23456 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23457 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23458 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23459 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23460 #
23461 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23462 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23463 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23464 # ======================================================================
23465 # person_in_charge: j-pierre.lefebvre at edf.fr
23466 IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
23467             UIinfo={"groupes":("Impression","Utilitaires",)},
23468                  fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)",
23469          ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
23470                                into=("DISQUE","MEMOIRE","REPERTOIRE",    
23471                                      "OBJET","ATTRIBUT","SYSTEME","ENREGISTREMENT") ),
23472          b_objet      =BLOC(condition = "(ENTITE=='OBJET')",
23473             NOMOBJ          =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),  
23474             NUMOC           =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),  
23475             NOMOC           =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),  
23476          ),
23477          b_attribut   =BLOC(condition = "(ENTITE=='ATTRIBUT')",
23478             NOMOBJ          =SIMP(fr="nom de collection",statut='f',typ='TXM' ),  
23479             NOMATR          =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
23480                                   into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
23481                                       '$$LONO','$$LUTI','$$NUM') ),
23482          ),
23483          b_systeme    =BLOC(condition = "(ENTITE=='SYSTEME')",
23484             CLASSE          =SIMP(statut='o',typ='TXM',into=('G','V') ),  
23485             NOMATR          =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',   
23486                                   into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ',
23487                                       '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
23488                                       '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
23489                                       '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ),
23490          ),
23491          b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')",
23492             CLASSE          =SIMP(statut='f',typ='TXM',into=('G','V',' '),defaut=' '),  
23493          ),
23494          b_disque     =BLOC(condition = "(ENTITE=='DISQUE')",
23495             CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V',' '),defaut=' '),  
23496          ),
23497          b_enregist   =BLOC(condition = "(ENTITE=='ENREGISTREMENT')",
23498             CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V'),defaut='G'),  
23499             NUMERO          =SIMP(statut='o',typ='I',val_min=1),  
23500             INFO            =SIMP(statut='f',typ='I',into=(1,2),defaut=1),  
23501          ),
23502          IMPRESSION      =FACT(statut='f',
23503            NOM             =SIMP(statut='f',typ='TXM' ),  
23504            UNITE           =SIMP(statut='f',typ='I'),  
23505          ),
23506          COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
23507 )  ;
23508
23509 # ======================================================================
23510 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23511 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23512 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23513 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23514 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23515 #
23516 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23517 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23518 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23519 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23520 #
23521 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23522 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23523 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23524 # ======================================================================
23525 # person_in_charge: mathieu.corus at edf.fr
23526
23527 IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
23528                     UIinfo={"groupes":("Impression","Outils-métier",)},
23529          fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D",
23530          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
23531          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
23532                                into=("MISS_3D","IDEAS") ),
23533
23534          b_ideas         =BLOC(condition = "FORMAT == 'IDEAS'",
23535            UNITE           =SIMP(statut='f',typ='I',defaut=30),
23536            VERSION          =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
23537          ),             
23538
23539          b_miss_3d       =BLOC(condition = "FORMAT == 'MISS_3D'",
23540            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
23541            UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
23542            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
23543            AMOR_REDUIT     =SIMP(statut='f',typ='R'  ,max='**'),
23544            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
23545            GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'),
23546            GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'),
23547            GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'),
23548            GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
23549            GROUP_MA_CONTROL=SIMP(statut='f',typ=grma,max='**'),
23550            FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ),
23551            IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23552            IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23553          ),
23554
23555
23556 )  ;
23557
23558 # ======================================================================
23559 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23560 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23561 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23562 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23563 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23564 #                                                                       
23565 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23566 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23567 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23568 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23569 #                                                                       
23570 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23571 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23572 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23573 # ======================================================================
23574 # person_in_charge: nicolas.greffet at edf.fr
23575 #
23576 # RECUPERATION DES MAILLAGES IFS VENANT DE SATURNE VIA YACS
23577 #
23578 IMPR_MAIL_YACS=PROC(nom="IMPR_MAIL_YACS",op=43,
23579             UIinfo={"groupes":("Maillage",)},
23580                fr="Lecture d'un maillage via YACS lors du Couplage de Code_Aster et Saturne",
23581          UNITE_MAILLAGE = SIMP(statut='f',typ='I',defaut=30),
23582          TYPE_MAILLAGE = SIMP(statut='o',typ='TXM',into=("SOMMET","MILIEU")),
23583          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
23584 )  ;
23585
23586 # ======================================================================
23587 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
23588 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23589 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23590 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23591 # (AT YOUR OPTION) ANY LATER VERSION.
23592 #
23593 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23594 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23595 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23596 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23597 #
23598 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23599 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23600 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23601 # ======================================================================
23602 # person_in_charge: isabelle.fournier at edf.fr
23603 #
23604 IMPR_OAR =MACRO(nom="IMPR_OAR",
23605                 op=OPS('Macro.impr_oar_ops.impr_oar_ops'),
23606                 sd_prod=None,
23607                 fr="Impression au format OAR",
23608                 UIinfo={"groupes":("Impression","Outils-métier",)},
23609    TYPE_CALC = SIMP(statut='o', typ='TXM',into=('COMPOSANT', 'MEF', 'TUYAUTERIE')),
23610    b_composant =BLOC(condition = "TYPE_CALC == 'COMPOSANT' ",
23611       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
23612       DIAMETRE = SIMP(statut='o', typ='R'),
23613       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
23614       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
23615       ANGLE_C  = SIMP(statut='o', typ='R',   defaut=0.0),
23616       REVET    = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
23617       RESU_MECA = FACT(statut='f', max='**',
23618          NUM_CHAR  = SIMP(statut='o', typ='I'),
23619          TYPE      = SIMP(statut='o', typ='TXM', defaut='FX', into=('FX', 'FY', 'FZ', 'MX', 'MY', 'MZ', 'PRE')),
23620          TABLE     = SIMP(statut='o', typ=table_sdaster),
23621          TABLE_S   = SIMP(statut='f', typ=table_sdaster)),
23622       RESU_THER = FACT(statut='f', max='**',
23623          NUM_TRAN  = SIMP(statut='o', typ='I'),
23624          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
23625          TABLE_TEMP= SIMP(statut='o', typ=table_sdaster),
23626          TABLE_S   = SIMP(statut='f', typ=table_sdaster),
23627          TABLE_ST  = SIMP(statut='f', typ=table_sdaster)),
23628          ),
23629    b_mef = BLOC(condition = "TYPE_CALC == 'MEF' ",
23630       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
23631       DIAMETRE = SIMP(statut='o', typ='R'),
23632       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
23633       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
23634       RESU_MECA = FACT(statut='f', max='**',
23635          AZI       = SIMP(statut='o', typ='R'),
23636          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
23637          TABLE_F   = SIMP(statut='o', typ=table_sdaster),
23638          TABLE_P   = SIMP(statut='o', typ=table_sdaster),
23639          TABLE_CA  = SIMP(statut='o', typ=table_sdaster)),
23640       RESU_THER=FACT(statut='f', max='**',
23641          AZI       = SIMP(statut='o', typ='R'),
23642          NUM_CHAR  = SIMP(statut='o', typ='I'),
23643          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
23644          TABLE_TI  = SIMP(statut='o', typ=table_sdaster)),
23645       ),
23646    b_tuyauterie = BLOC(condition = "TYPE_CALC == 'TUYAUTERIE' ",
23647       RESU_MECA = FACT(statut='o', max='**',
23648          NUM_CHAR  = SIMP(statut='o', typ='I'),
23649          TABLE     = SIMP(statut='o', typ=table_sdaster),
23650          MAILLAGE  = SIMP(statut='o', typ=maillage_sdaster)),
23651          ),
23652    UNITE = SIMP(statut='f',typ='I',defaut=38),
23653    AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
23654    );
23655
23656 # ======================================================================
23657 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
23658 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23659 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23660 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23661 # (AT YOUR OPTION) ANY LATER VERSION.
23662 #
23663 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23664 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23665 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23666 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23667 #
23668 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23669 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23670 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23671 # ======================================================================
23672 # person_in_charge: nicolas.sellenet at edf.fr
23673 IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
23674             UIinfo={"groupes":("Impression","Résultats et champs",)},
23675                fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)",
23676
23677          FORMAT          =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT",
23678                                  into=("RESULTAT","IDEAS","ASTER","CASTEM","MED","GMSH") ),
23679
23680          b_modele =BLOC(condition="FORMAT!='MED'",fr="Modèle",
23681            MODELE          =SIMP(statut='f',typ=modele_sdaster),
23682          ),
23683
23684          b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
23685            UNITE           =SIMP(statut='f',typ='I',defaut=8),
23686          ),
23687
23688          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
23689            UNITE           =SIMP(statut='f',typ='I',defaut=30),
23690            VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
23691          ),
23692
23693          b_format_aster  =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER",
23694            UNITE           =SIMP(statut='f',typ='I',defaut=26),
23695          ),
23696
23697          b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM",
23698            UNITE           =SIMP(statut='f',typ='I',defaut=37),
23699            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
23700          ),
23701
23702          b_format_med  =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED",
23703            UNITE           =SIMP(statut='f',typ='I',defaut=80),
23704          ),
23705
23706          b_format_gmsh  =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH",
23707            UNITE           =SIMP(statut='f',typ='I',defaut=37),
23708            VERSION         =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)),
23709          ),
23710
23711          regles=(AU_MOINS_UN('CONCEPT','RESU',),),
23712
23713          b_restreint  =BLOC(condition="FORMAT=='MED'",fr="Seulement pour les fichiers MED",
23714             RESTREINT   =FACT(statut='f', max=1,
23715             fr="Pour réduire une ou plusieurs sd_resultat sur un ensemble de mailles",
23716             regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
23717             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23718             MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
23719             TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
23720             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23721             TOUT_GROUP_NO   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
23722             ),
23723          ),
23724
23725          CONCEPT          =FACT(statut='f',max='**',
23726            fr='Pour imprimer les champs de "données" à des fins de visualisation (controle des affectations).',
23727            # (valide pour les format RESULTAT et MED)
23728            regles=(UN_PARMI('CHAM_MATER','CARA_ELEM','CHARGE'),),
23729            CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
23730            CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23731            CHARGE          =SIMP(statut='f',typ=char_meca),
23732
23733            b_cara_elem        =BLOC(condition="CARA_ELEM != None", fr="impression des reperes locaux.",
23734               REPERE_LOCAL    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23735               b_reploc        =BLOC(condition="REPERE_LOCAL == 'OUI'", fr="impression des reperes locaux.",
23736                  MODELE          =SIMP(statut='o',typ=modele_sdaster),
23737               ),
23738            ),
23739          ),
23740
23741          RESU            =FACT(statut='f',max='**',
23742
23743            regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE',),
23744                    EXCLUS('CHAM_GD','RESULTAT'),),
23745            MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster,squelette)),
23746            CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23747            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
23748            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
23749
23750            b_info_med  =BLOC(condition="FORMAT=='MED'",
23751              INFO_MAILLAGE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23752            ),
23753
23754
23755            b_partie        =BLOC(condition="""(AsType(RESULTAT) in (dyna_harmo, acou_harmo) or
23756                           AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""",
23757              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
23758            ),
23759
23760            b_vari_el       =BLOC(condition="FORMAT==('MED')",
23761              IMPR_NOM_VARI=SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",),
23762            ),
23763
23764            b_extrac        =BLOC(condition="RESULTAT != None",
23765                                  fr="extraction d un champ de grandeur",
23766              regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
23767                      EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
23768                             'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGLE'),),
23769              TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
23770              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
23771
23772              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23773              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
23774              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
23775              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
23776              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
23777              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
23778              ANGLE           =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
23779              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
23780              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
23781              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
23782              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
23783
23784              b_acce_reel     =BLOC(condition="(ANGLE != None)or(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
23785                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
23786                 b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
23787                      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
23788                 b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
23789                      PRECISION       =SIMP(statut='o',typ='R',),),
23790              ),
23791            ),
23792 ###
23793            b_parametres    =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
23794              regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
23795              TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
23796              NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
23797              FORM_TABL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
23798            ),
23799 ###
23800            b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
23801            ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""",
23802                                 fr="sélection des composantes",
23803              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
23804              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23805              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
23806            ),
23807 ###
23808            b_med=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and(FORMAT == 'MED')""",
23809                                 fr="renommage du champ",
23810              regles=(EXCLUS('NOM_CHAM_MED','NOM_RESU_MED'),),
23811              NOM_CHAM_MED    =SIMP(statut='f',typ='TXM',
23812                                    validators=AndVal((LongStr(1,64), NoRepeat())), max='**'),
23813              NOM_RESU_MED    =SIMP(statut='f',typ='TXM'),
23814            ),
23815 ###
23816            b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
23817                                 fr="sélection des composantes et des entités toplogiques",
23818              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23819              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23820              TYPE_CHAM       =SIMP(statut='f',typ='TXM',defaut="SCALAIRE",
23821                                    into=("VECT_2D","VECT_3D","SCALAIRE","TENS_2D","TENS_3D"),),
23822              b_scal          =BLOC(condition = "TYPE_CHAM=='SCALAIRE'",
23823                NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),),
23824              b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
23825                NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
23826              b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
23827                NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
23828              b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
23829                NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
23830              b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
23831                NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
23832            ),
23833 ###
23834            b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
23835            ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""",
23836                                 fr="sélection des entités topologiques",
23837              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23838              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23839              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23840              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23841              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23842            ),
23843 ###
23844            b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')",
23845                                fr="sélection sur les valeurs",
23846              VALE_MAX        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23847              VALE_MIN        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23848              BORNE_SUP       =SIMP(statut='f',typ='R'),
23849              BORNE_INF       =SIMP(statut='f',typ='R'),
23850              IMPR_COOR       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23851            ),
23852
23853            b_format_r=BLOC(condition="""((FORMAT == 'RESULTAT')or(FORMAT == 'ASTER'))""",
23854                            fr="Format des nombres réels",
23855              FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE21.14"),
23856            ),
23857
23858            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
23859          ),
23860          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23861 ) ;
23862
23863 # ======================================================================
23864 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
23865 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23866 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23867 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23868 # (AT YOUR OPTION) ANY LATER VERSION.
23869 #
23870 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23871 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23872 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23873 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23874 #
23875 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23876 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23877 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23878 # ======================================================================
23879 # person_in_charge: mathieu.courtois at edf.fr
23880
23881 IMPR_TABLE=MACRO(nom="IMPR_TABLE",
23882                  op=OPS('Macro.impr_table_ops.impr_table_ops'),
23883                  sd_prod=None,
23884                  UIinfo={"groupes":("Impression","Tables",)},
23885                  fr="Impression du contenu d'une table dans un fichier",
23886    TABLE          =SIMP(statut='o',typ=table_sdaster),
23887    FORMAT         =SIMP(statut='f',typ='TXM',defaut="TABLEAU",
23888                          into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),),
23889    b_pilote       =BLOC(condition = "FORMAT == 'XMGRACE'",
23890                         fr="Mots-clés propres à XMGRACE",
23891       PILOTE         =SIMP(statut='f',typ='TXM',defaut='',
23892                            into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
23893                       fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
23894       UNITE          =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
23895                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
23896    ),
23897    b_unite        =BLOC(condition = "FORMAT != 'XMGRACE'",
23898       UNITE          =SIMP(statut='f',typ='I',defaut=8,
23899                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
23900    ),
23901    FILTRE         =FACT(statut='f',max='**',
23902       NOM_PARA       =SIMP(statut='o',typ='TXM'),
23903       CRIT_COMP      =SIMP(statut='f',typ='TXM',defaut="EQ",
23904                            into=("EQ","LT","GT","NE","LE","GE","VIDE",
23905                                  "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS"),),
23906       b_vale         =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
23907          regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
23908          VALE           =SIMP(statut='f',typ='R',max='**'),
23909          VALE_I         =SIMP(statut='f',typ='I',max='**'),
23910          VALE_C         =SIMP(statut='f',typ='C',max='**'),
23911          VALE_K         =SIMP(statut='f',typ='TXM',max='**'),
23912       ),
23913       b_crit         =BLOC(condition = "CRIT_COMP in ('EQ','NE')",
23914          CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23915          PRECISION      =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23916       ),
23917    ),
23918    TRI            =FACT(statut='f',
23919       NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
23920       ORDRE          =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**',
23921                            into=("CROISSANT","DECROISSANT") ),
23922    ),
23923    PAGINATION     =SIMP(statut='f',typ='TXM',max='**'),
23924    FORMAT_R       =SIMP(statut='f',typ='TXM',defaut="E12.5"),
23925    NOM_PARA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
23926    IMPR_FONCTION  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23927
23928    # Mise en page du tableau ou du graphique
23929    b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
23930                     fr="Mots-clés propres au format Tableau",
23931       SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
23932                             fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
23933       COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
23934                             fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
23935       COMM_PARA       =SIMP(statut='f',typ='TXM',defaut='',
23936                             fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"),
23937       DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
23938                             fr="Caractère de debut de ligne"),
23939       FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
23940                             fr="Caractère de fin de ligne"),
23941     ),
23942
23943    # mise en forme pour les formats qui passent par Graph
23944    b_forme         =BLOC(condition = "FORMAT == 'XMGRACE'",
23945                          fr="Données de mise en forme du graphique",
23946       # pour la courbe
23947       LEGENDE         =SIMP(statut='f',typ='TXM',
23948                             fr="Légende associée à la fonction" ),
23949       STYLE           =SIMP(statut='f',typ='I',val_min=0,
23950                             fr="Style de la ligne représentant la fonction",),
23951       COULEUR         =SIMP(statut='f',typ='I',val_min=0,
23952                             fr="Couleur associée à la fonction",),
23953       MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
23954                             fr="Type du marqueur associé à la fonction",),
23955       FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
23956                             fr="Fréquence d impression du marqueur associé à la fonction", ),
23957       # format du graphique
23958       BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
23959                             fr="Intervalles de variation des abscisses"),
23960       BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
23961                             fr="Intervalles de variation des ordonnées"),
23962       ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
23963                             fr="Type d'échelle pour les abscisses" ),
23964       ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
23965                             fr="Type d'échelle pour les ordonnées" ),
23966       GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
23967                             fr="Pas du quadrillage vertical" ),
23968       GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
23969                             fr="Pas du quadrillage horizontal" ),
23970       LEGENDE_X       =SIMP(statut='f',typ='TXM',
23971                             fr="Légende associée à l'axe des abscisses" ),
23972       LEGENDE_Y       =SIMP(statut='f',typ='TXM',
23973                             fr="Légende associée à l'axe des ordonnées" ),
23974    ),
23975
23976    TITRE          =SIMP(statut='f',typ='TXM',max='**'),
23977    INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23978 )
23979
23980 # ======================================================================
23981 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
23982 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23983 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23984 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23985 # (AT YOUR OPTION) ANY LATER VERSION.
23986 #
23987 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23988 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23989 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23990 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23991 #
23992 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23993 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23994 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23995 # ======================================================================
23996 # person_in_charge: mathieu.courtois at edf.fr
23997
23998 INCLUDE=MACRO(nom="INCLUDE",
23999               op=OPS("Cata.ops.build_include"),
24000               UIinfo={"groupes":("Gestion du travail",)},
24001               fr="Débranchement vers un fichier de commandes secondaires",
24002               sd_prod=ops.INCLUDE,
24003               op_init=ops.INCLUDE_context,
24004               fichier_ini=1,
24005               regles=(UN_PARMI('UNITE', 'DONNEE')),
24006          UNITE = SIMP(statut='f', typ='I',
24007                       fr="Unité logique à inclure"),
24008          DONNEE = SIMP(statut='f', typ='Fichier',
24009                        fr="Nom du fichier de données à inclure"),
24010          INFO  = SIMP(statut='f', typ='I', defaut=1, into=(1, 2)),
24011 );
24012
24013 # ======================================================================
24014 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
24015 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24016 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24017 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24018 # (AT YOUR OPTION) ANY LATER VERSION.
24019 #
24020 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24021 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24022 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24023 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24024 #
24025 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24026 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24027 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24028 # ======================================================================
24029 # person_in_charge: mathieu.courtois at edf.fr
24030
24031 INCLUDE_MATERIAU = MACRO(nom="INCLUDE_MATERIAU",
24032                          op=OPS("Macro.include_materiau_ops.include_materiau_ops"),
24033                          sd_prod=mater_sdaster,
24034             UIinfo={"groupes":("Modélisation", "Gestion du travail", )},
24035             fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ",
24036
24037          NOM_AFNOR      = SIMP(statut='o', typ='TXM',),
24038          TYPE_MODELE    = SIMP(statut='o', typ='TXM', into=("REF", "PAR"),),
24039          VARIANTE       = SIMP(statut='o', typ='TXM',
24040                                into=("A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
24041                                      "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
24042                                      "U", "V", "W", "X", "Y", "Z",),),
24043          TYPE_VALE      = SIMP(statut='o', typ='TXM', into=("NOMI", "MINI", "MAXI"),),
24044          #NOM_MATER      = SIMP(statut='o', typ='TXM',),
24045          #UNITE          = SIMP(statut='f', typ='I', defaut= 32,),
24046          EXTRACTION     = FACT(statut='f',
24047            COMPOR       = SIMP(statut='o', typ='TXM', max='**',),
24048            TEMP_EVAL    = SIMP(statut='o', typ='R',),
24049          ),
24050          UNITE_LONGUEUR = SIMP(statut='f', typ='TXM', into=("M", "MM"), defaut="M",),
24051          INFO           = SIMP(statut='f', typ='I', defaut= 1, into=(1, 2),),
24052 )
24053
24054 # ======================================================================
24055 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
24056 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24057 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24058 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24059 # (AT YOUR OPTION) ANY LATER VERSION.
24060 #
24061 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24062 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24063 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24064 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24065 #
24066 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24067 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24068 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24069 # ======================================================================
24070 # person_in_charge: j-pierre.lefebvre at edf.fr
24071 INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
24072                     fr="Récupère différentes informations propres à l'exécution en cours",
24073                     reentrant='n',
24074                     UIinfo={"groupes":("Gestion du travail",)},
24075
24076          regles=(),
24077          LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
24078                               into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
24079          b_etat_unite   =BLOC(condition = "au_moins_un(LISTE_INFO, 'ETAT_UNITE')",
24080             regles=(UN_PARMI('UNITE','FICHIER'),),
24081             UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
24082                                  fr="Unité logique dont on veut obtenir l'état",),
24083             FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
24084                                  fr="Nom du fichier dont on veut obtenir l'état",),
24085          ),
24086          TITRE          =SIMP(statut='f',typ='TXM',max='**'),
24087          INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
24088 )  ;
24089
24090 # ======================================================================
24091 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
24092 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24093 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24094 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24095 # (AT YOUR OPTION) ANY LATER VERSION.
24096 #
24097 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24098 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24099 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24100 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24101 #
24102 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24103 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24104 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24105 # ======================================================================
24106 # person_in_charge: mathieu.courtois at edf.fr
24107
24108 def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args):
24109    if (RMS         != None): return table_sdaster
24110    if (MAX         != None): return table_sdaster
24111    if (NOCI_SEISME != None): return table_sdaster
24112    if (ECART_TYPE  != None): return table_sdaster
24113    if (NORME       != None): return table_sdaster
24114    raise AsException("type de concept resultat non prevu")
24115
24116 INFO_FONCTION=MACRO(nom="INFO_FONCTION",
24117                     op=OPS('Macro.info_fonction_ops.info_fonction_ops'),
24118                     sd_prod=info_fonction_prod,
24119                     fr="Opérations mathématiques sur des concepts de type fonction, " \
24120                        "fonction_c ou nappe",
24121                     reentrant='n',
24122                     UIinfo={"groupes":("Fonctions",)},
24123          regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),),
24124          RMS             =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**',
24125            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
24126            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
24127            INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
24128            INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
24129            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
24130            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24131               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
24132            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24133               PRECISION       =SIMP(statut='o',typ='R'),),
24134          ),
24135          NOCI_SEISME     =FACT(statut='f',
24136            regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
24137            FONCTION        =SIMP(statut='f',typ=fonction_sdaster ),
24138            SPEC_OSCI       =SIMP(statut='f',typ=nappe_sdaster ),
24139            b_option_f      =BLOC(condition="""FONCTION != None""",
24140              OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),
24141                                    into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
24142                                          "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ),
24143              b_amor_red          =BLOC(condition="""au_moins_un(OPTION, ("TOUT", "INTE_SPEC")) """,
24144                 AMOR_REDUIT     =SIMP(statut='o',typ='R'),),
24145              b_pesanteur         =BLOC(condition="""au_moins_un(OPTION, ("TOUT", "INTE_ARIAS", "POUV_DEST", "DUREE_PHAS_FORT")) """,
24146                 PESANTEUR       =SIMP(statut='o',typ='R'),),
24147            ),
24148            b_option_n      =BLOC(condition="""SPEC_OSCI !=None""",
24149              OPTION          =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ),
24150              NATURE          =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ),
24151              AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),
24152            INST_INIT       =SIMP(statut='f',typ='R'),
24153            INST_FIN        =SIMP(statut='f',typ='R'),
24154            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
24155            FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
24156            FREQ_FIN        =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
24157            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
24158            FREQ            =SIMP(statut='f',typ='R',max='**'),
24159            NORME           =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
24160            BORNE_INF       =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
24161            BORNE_SUP       =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
24162            b_acce_reel     =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
24163                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
24164                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24165                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
24166                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24167                       PRECISION       =SIMP(statut='o',typ='R'),),
24168            ),
24169          ),
24170          MAX             =FACT(statut='f',fr="Extrémas locaux d'une fonction",
24171            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
24172            INTERVALLE      =SIMP(statut='f',typ='R',min=2,max='**',
24173                                fr ="définition des bornes des intervalles sous forme de couples (xi_i1,xs_i1,xi_i2,xs_i2)"),
24174          ),
24175          NORME           =FACT(statut='f',fr="Norme L2 d'une fonction",
24176             FONCTION      =SIMP(statut='o', typ=nappe_sdaster),
24177          ),
24178          ECART_TYPE      =FACT(statut='f',fr="Ecart-type d'une fonction",
24179             METHODE       =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
24180             FONCTION      =SIMP(statut='o',typ=fonction_sdaster),
24181             INST_INIT     =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
24182             INST_FIN      =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
24183             CRITERE       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
24184             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24185                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
24186             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24187                 PRECISION       =SIMP(statut='o',typ='R'),),
24188          ),
24189          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
24190 )
24191
24192 # ======================================================================
24193 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
24194 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24195 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24196 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24197 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24198 #                                                                       
24199 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24200 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24201 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24202 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24203 #                                                                       
24204 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24205 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24206 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24207 # ======================================================================
24208 # person_in_charge: olivier.boiteau at edf.fr
24209 INFO_MODE=OPER(nom="INFO_MODE",op=32,sd_prod=table_sdaster,
24210                 fr="Calculer, imprimer, et sauvegarder le nombre de valeurs propres dans un contour donné",
24211             UIinfo={"groupes":("Résolution","Dynamique",)},
24212
24213          TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_COMPLEXE","DYNAMIQUE",
24214                                                                              "MODE_FLAMB",   "GENERAL"),
24215                                fr="Type d analyse" ),
24216          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
24217
24218          b_dynamique =BLOC(condition = "TYPE_MODE == 'DYNAMIQUE'",fr="Recherche du nombre de fréquences propres",
24219            MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r,
24220                                                  matr_asse_depl_c,matr_asse_gene_c) ),
24221            MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
24222            FREQ            =SIMP(statut='o',typ='R',min=2,max='**',
24223                                  validators=AndVal((OrdList('croissant'), NoRepeat())),
24224                                  fr="Liste de frequences" ),
24225            COMPTAGE        =FACT(statut='d',
24226               METHODE          =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","STURM")),                
24227               SEUIL_FREQ       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),  
24228               PREC_SHIFT       =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
24229               NMAX_ITER_SHIFT  =SIMP(statut='f',typ='I',defaut= 3,val_min=0),
24230                                 ),
24231          ),
24232
24233          b_flambement =BLOC(condition = "TYPE_MODE == 'MODE_FLAMB'",fr="Recherche du nombre de charges critiques",
24234            MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r,
24235                                                  matr_asse_depl_c,matr_asse_gene_c) ),
24236            MATR_RIGI_GEOM  =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
24237            CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,max='**',
24238                                  validators=AndVal((OrdList('croissant'), NoRepeat())),
24239                                  fr="Liste de charges critiques" ),
24240            COMPTAGE        =FACT(statut='d',
24241               METHODE          =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","STURM")),                
24242               SEUIL_CHAR_CRIT  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),  
24243               PREC_SHIFT       =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
24244               NMAX_ITER_SHIFT  =SIMP(statut='f',typ='I',defaut= 3,val_min=0),
24245                                 ),
24246          ),         
24247
24248          b_complexe  =BLOC(condition = "TYPE_MODE == 'MODE_COMPLEXE'",fr="Recherche du nombre de fréquences propres",
24249            MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r,
24250                                                  matr_asse_depl_c,matr_asse_gene_c) ),
24251            MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
24252            MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
24253            TYPE_CONTOUR    =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE","CERCLE") ),
24254            RAYON_CONTOUR   =SIMP(statut='o',typ='R',val_min=1.E-2 ),
24255            CENTRE_CONTOUR  =SIMP(statut='f',typ='C',defaut= 0.0+0.0j),
24256            COMPTAGE        =FACT(statut='d',
24257               METHODE          =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","APM")),                
24258               NBPOINT_CONTOUR  =SIMP(statut='f',typ='I',defaut= 40,val_min=10,val_max=1000),
24259               NMAX_ITER_CONTOUR=SIMP(statut='f',typ='I',defaut= 3, val_min=1,val_max=5),
24260                                ),
24261          ),
24262
24263          b_general  =BLOC(condition = "TYPE_MODE == 'GENERAL'",fr="Recherche du nombre de valeurs propres",
24264            MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r,
24265                                                  matr_asse_depl_c,matr_asse_gene_c) ),
24266            MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
24267            MATR_C          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r,matr_asse_gene_r) ),
24268            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max='**',
24269                                  validators=AndVal((OrdList('croissant'), NoRepeat())),
24270                                  fr="Liste de charges critiques" ),
24271            b_contour  =BLOC(condition = "CHAR_CRIT == None",
24272              TYPE_CONTOUR    =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE","CERCLE") ),        
24273              RAYON_CONTOUR   =SIMP(statut='o',typ='R',val_min=1.E-2 ),
24274              CENTRE_CONTOUR  =SIMP(statut='f',typ='C',defaut= 0.0+0.0j),),
24275            COMPTAGE        =FACT(statut='d',
24276               METHODE          =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AUTO","STURM","APM")),                
24277               SEUIL_CHAR_CRIT  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),  
24278               PREC_SHIFT       =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
24279               NMAX_ITER_SHIFT  =SIMP(statut='f',typ='I',defaut= 3,val_min=0),                                 ),
24280               NBPOINT_CONTOUR  =SIMP(statut='f',typ='I',defaut= 40,val_min=10,val_max=1000),
24281               NMAX_ITER_CONTOUR=SIMP(statut='f',typ='I',defaut= 3, val_min=1,val_max=5),
24282                                 ),
24283
24284          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
24285                         
24286 #-------------------------------------------------------------------
24287 #        Catalogue commun SOLVEUR
24288          SOLVEUR         =C_SOLVEUR('INFO_MODE'),
24289 #        Mot-cle pour piloter les niveaux de parallelismes de l'operateur (a ne pas confondre avec le mot-cle
24290 #        cache PARALLELISME_MACRO)
24291          NIVEAU_PARALLELISME  =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("PARTIEL","COMPLET") ),  
24292 #-------------------------------------------------------------------
24293 #-------------------------------------------------------------------
24294 #  Mot-cles caches pour activer le parallelisme au sein d'une macro-commande
24295          PARALLELISME_MACRO=FACT(statut='d',min=0,
24296            TYPE_COM   =SIMP(statut='c',typ='I',defaut=-999,into=(-999,1,2),fr="Type de communication"),
24297          ),
24298 #-------------------------------------------------------------------
24299
24300 )  ;
24301
24302 # ======================================================================
24303 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
24304 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24305 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24306 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24307 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24308 #                                                                       
24309 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24310 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24311 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24312 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24313 #                                                                       
24314 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24315 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24316 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24317 # ======================================================================
24318 # person_in_charge: nicolas.sellenet at edf.fr
24319 INFO_RESU=PROC(nom="INFO_RESU",op=40,
24320                UIinfo={"groupes":("Impression","Utilitaires",)},
24321                fr="Imprimer tous les champs présents dans une structure de données résultat",
24322                RESULTAT=SIMP(statut='f',typ=resultat_sdaster),
24323                UNITE=SIMP(statut='f',typ='I',defaut=6),
24324 );
24325
24326 # ======================================================================
24327 # COPYRIGHT (C) 1991 - 2010  EDF R&D                  WWW.CODE-ASTER.ORG
24328 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24329 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24330 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24331 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24332 #                                                                       
24333 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24334 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24335 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24336 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24337 #                                                                       
24338 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24339 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24340 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24341 # ======================================================================
24342 # person_in_charge: nicolas.greffet at edf.fr
24343 INIT_COMPO=PROC(nom="INIT_COMPO",
24344                 op=  117,
24345                 UIinfo={"groupes":("Gestion du travail",)},
24346                 fr="Initialiser adresse component YACS",
24347            COMPO           =SIMP(statut='o',typ='I',),
24348 )  ;
24349
24350 # ======================================================================
24351 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24352 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24353 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24354 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24355 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24356 #
24357 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24358 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24359 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24360 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24361 #
24362 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24363 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24364 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24365 # ======================================================================
24366 # person_in_charge: xavier.desroches at edf.fr
24367 INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
24368             UIinfo={"groupes":("Post-traitements",)},
24369                   fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
24370
24371          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
24372
24373          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
24374                  AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
24375                  PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
24376                  PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
24377                  PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
24378                  EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
24379                  EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
24380                  EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
24381
24382          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24383          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24384          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24385
24386          DEFI_SEGMENT    =FACT(statut='f',max='**',
24387            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
24388                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
24389            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
24390            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
24391            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
24392            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
24393            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
24394            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
24395          ),
24396
24397          DEFI_ARC        =FACT(statut='f',max='**',
24398            regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
24399                    UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
24400                    UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),               
24401                    PRESENT_PRESENT('RAYON','SECTEUR'),),
24402            CENTRE          =SIMP(statut='f',typ='R',min=2,max=2),  
24403            NOEUD_CENTRE    =SIMP(statut='f',typ=no,),
24404            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,),
24405            RAYON           =SIMP(statut='f',typ='R',val_min=0.E+0),  
24406            SECTEUR         =SIMP(statut='f',typ='R',min=2,max=2,
24407                                  val_min=-180.E+0,val_max=180E+0),  
24408            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
24409            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
24410            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
24411            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
24412            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
24413            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
24414            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
24415            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",    
24416                                  into=("RELATIF","ABSOLU",) ),
24417          ),
24418
24419          DEFI_CHEMIN     =FACT(statut='f',max='**',
24420            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
24421            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24422            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24423          ),
24424
24425          NOEUD_ORIG      =SIMP(statut='f',typ=no,),
24426          GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
24427          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
24428          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
24429 )  ;
24430
24431 # ======================================================================
24432 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24433 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24434 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24435 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24436 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24437 #
24438 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24439 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24440 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24441 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24442 #
24443 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24444 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24445 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24446 # ======================================================================
24447 # person_in_charge: xavier.desroches at edf.fr
24448 INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
24449             UIinfo={"groupes":("Post-traitements",)},
24450                   fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n',
24451          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
24452          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24453          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24454          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24455          DEFI_SEGMENT    =FACT(statut='o',max='**',
24456            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
24457                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
24458            ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
24459            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
24460            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
24461            EXTREMITE       =SIMP(statut='f',typ='R',min=3,max=3),  
24462            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
24463            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
24464          ),
24465          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
24466          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
24467 )  ;
24468
24469 # ======================================================================
24470 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
24471 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24472 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24473 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24474 # (AT YOUR OPTION) ANY LATER VERSION.
24475 #
24476 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24477 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24478 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24479 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24480 #
24481 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24482 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24483 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24484 # ======================================================================
24485 # person_in_charge: nicolas.sellenet at edf.fr
24486 def lire_champ_prod(TYPE_CHAM=None,**args):
24487 # Remarque : si cette liste évolue, il faut penser à mettre à jour son
24488 #            homologue dans macr_adap_mail
24489   if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster
24490   if TYPE_CHAM[0:5] == "CART_" : return carte_sdaster
24491   if TYPE_CHAM[0:2] == "EL"    : return cham_elem
24492   raise AsException("type de concept resultat non prevu")
24493
24494 LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
24495                 UIinfo={"groupes":("Lecture","Résultats et champs",)},
24496                 fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.",
24497                 reentrant='n',
24498          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster,),
24499          FORMAT          =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),),
24500          UNITE           =SIMP(statut='f',typ='I',defaut= 81,),
24501          b_format =BLOC(condition = "FORMAT == 'MED'",
24502          regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
24503                   PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),
24504                   EXCLUS('NUME_ORDRE','INST'),
24505                   EXCLUS('NUME_PT','INST'),),
24506             NOM_MED      =SIMP(statut='o',typ='TXM', ),
24507             NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ),
24508             NOM_CMP      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
24509             NOM_CMP_MED  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
24510             PROL_ZERO    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),
24511                fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"),
24512             NUME_PT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',),
24513             NUME_ORDRE   =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',
24514                            fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ),
24515             INST         =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ),
24516 #
24517             b_precision     =BLOC(condition="(INST != None)",
24518                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
24519                   fr="Critère de précision sur le choix de l'instant associé",
24520                   ang="Accuracy criterium over instant choice" ),
24521                   b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24522                       PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,
24523                       fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),
24524                   b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24525                       PRECISION       =SIMP(statut='o',typ='R',
24526                       fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),),
24527 #
24528             NOM_MAIL_MED =SIMP(statut='f',typ='TXM',),
24529                   ),
24530 #        Remarque : si cette liste évolue, il faut penser à mettre à jour son
24531 #                   homologue dans macr_adap_mail
24532          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
24533          b_modele =BLOC(condition = "TYPE_CHAM!=None and (TYPE_CHAM[0:2] == 'EL')",
24534             MODELE      =SIMP(statut='o',typ=modele_sdaster, ),
24535                   ),
24536          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
24537 )  ;
24538
24539 # ======================================================================
24540 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
24541 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24542 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24543 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24544 # (AT YOUR OPTION) ANY LATER VERSION.
24545 #
24546 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24547 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24548 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24549 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24550 #
24551 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24552 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24553 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24554 # ======================================================================
24555 # person_in_charge: mathieu.courtois at edf.fr
24556
24557
24558 def lire_fonction_prod(self,TYPE,**args):
24559   if   (TYPE == 'FONCTION')  : return fonction_sdaster
24560   elif (TYPE == 'FONCTION_C'): return fonction_c
24561   elif (TYPE == 'NAPPE'   )  : return nappe_sdaster
24562   raise AsException("type de concept resultat non prevu")
24563
24564 LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",
24565                     op=OPS('Macro.lire_fonction_ops.lire_fonction_ops'),
24566                     sd_prod=lire_fonction_prod,
24567                     fr="Lit les valeurs réelles dans un fichier de données représentant une " \
24568                        "fonction et crée un concept de type fonction ou nappe",
24569                     reentrant='n',
24570                     UIinfo={"groupes":("Lecture","Fonctions",)},
24571          FORMAT          =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE"  ),
24572          TYPE            =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION"  ),
24573          SEPAR           =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ),
24574          INDIC_PARA      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]),
24575          b_fonction      =BLOC(condition = "TYPE=='FONCTION' ",
24576            INDIC_RESU      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ),
24577          b_fonction_c    =BLOC(condition = "TYPE=='FONCTION_C' ",
24578            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ),
24579            b_reel_imag     =BLOC(condition = "FORMAT_C=='REEL_IMAG' ",
24580              INDIC_REEL      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
24581              INDIC_IMAG      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) ,
24582            b_modu_phas     =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ",
24583              INDIC_MODU      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
24584              INDIC_PHAS      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ),
24585          b_nappe         =BLOC(condition = "TYPE=='NAPPE' ",
24586            NOM_PARA_FONC   =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
24587            INDIC_ABSCISSE  =SIMP(statut='o',typ='I',min=2,max=2,),
24588            INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
24589                                  fr="Type d'interpolation pour les abscisses et les ordonnées de la fonction"),
24590            PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
24591            PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
24592            DEFI_FONCTION   =FACT(statut='f',max='**',
24593              INDIC_RESU      =SIMP(statut='o',typ='I',min=2,max=2,),),  ),
24594          UNITE           =SIMP(statut='o',typ='I' ),
24595          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
24596          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
24597          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG"),
24598                                fr="Type d'interpolation pour les abscisses et les ordonnées de la " \
24599                                   "fonction ou bien pour le paramètre de la nappe."),
24600          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
24601          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
24602          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
24603          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
24604          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24605 )  ;
24606
24607 # ======================================================================
24608 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
24609 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24610 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24611 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24612 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24613 #                                                                       
24614 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24615 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24616 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24617 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24618 #                                                                       
24619 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24620 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24621 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24622 # ======================================================================
24623 # person_in_charge: Georges-cc.devesa at edf.fr
24624 LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene,
24625                     fr="Création d'un vecteur assemblé à partir d'une base modale",
24626                     reentrant='n',
24627             UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)},           
24628          BASE            =SIMP(statut='o',typ=mode_meca),
24629          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
24630          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
24631          NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
24632          NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
24633          NUME_CHAR       =SIMP(statut='f',typ='I' ),
24634          ISSF            =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
24635          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),         
24636          NOM_RESU_FORC   =SIMP(statut='f',typ='TXM' ),         
24637 )  ;
24638
24639 # ======================================================================
24640 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
24641 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
24642 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
24643 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
24644 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
24645 #                                                                       
24646 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
24647 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
24648 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
24649 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
24650 #                                                                       
24651 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
24652 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
24653 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
24654 # ======================================================================
24655 # person_in_charge: Georges-cc.devesa at edf.fr
24656 LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
24657                     fr="Création d une matrice assemblée à partir de base modale",
24658                     reentrant='n',
24659             UIinfo={"groupes":("Matrices et vecteurs","Outils-métier",)},           
24660          BASE            =SIMP(statut='o',typ=mode_meca ),
24661          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
24662          FREQ_EXTR       =SIMP(statut='f',typ='R',max=1),
24663          INST_EXTR       =SIMP(statut='f',typ='R',max=1),
24664          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
24665          ISSF            =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
24666          TYPE            =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ),         
24667          SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
24668 )  ;
24669
24670 # ======================================================================
24671 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
24672 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24673 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24674 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24675 # (AT YOUR OPTION) ANY LATER VERSION.
24676 #
24677 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24678 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24679 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24680 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24681 #
24682 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24683 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24684 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24685 # ======================================================================
24686 # person_in_charge: irmela.zentner at edf.fr
24687
24688
24689 LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",
24690                      op=OPS('Macro.lire_inte_spec_ops.lire_inte_spec_ops'),
24691                      sd_prod=interspectre,
24692                      fr="Lecture sur un fichier externe de fonctions complexes pour " \
24693                         "créer une matrice interspectrale",
24694                      reentrant='n',
24695             UIinfo={"groupes":("Lecture","Fonctions",)},
24696          UNITE           =SIMP(statut='o',typ='I' ),
24697          FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ),
24698          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS") ),
24699          NOM_PARA        =SIMP(statut='f',typ='TXM',defaut="FREQ",
24700                                into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
24701                                      "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
24702          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="DSP" ),
24703          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
24704          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
24705          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
24706          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24707          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
24708 )  ;
24709
24710 # ======================================================================
24711 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
24712 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24713 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24714 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24715 # (AT YOUR OPTION) ANY LATER VERSION.
24716 #
24717 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24718 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24719 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24720 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24721 #
24722 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24723 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24724 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24725 # ======================================================================
24726 # person_in_charge: jacques.pellet at edf.fr
24727 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
24728                    fr="Crée un maillage par lecture d'un fichier au format Aster ou Med",
24729                    ang="Readings of a mesh file",
24730                    reentrant='n',
24731             UIinfo={"groupes":("Lecture","Maillage",)},
24732
24733          UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
24734
24735          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
24736                             fr="Format du fichier : ASTER ou MED.",
24737                             ang="Format of the file : ASTER or MED.",),
24738
24739          ABSC_CURV       =FACT(statut='f',min=0,
24740                TOUT          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24741          ),
24742
24743          VERI_MAIL       =FACT(statut='d',
24744                VERIF         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24745                APLAT         =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24746          ),
24747
24748          b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
24749                              fr="Informations complémentaires pour la lecture MED.",
24750                              ang="Further information for MED readings.",
24751
24752 # Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
24753 # le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
24754             NOM_MED    = SIMP(statut='f',typ='TXM',
24755                               fr="Nom du maillage dans le fichier MED.",
24756                               ang="Name of the mesh into the MED file.",),
24757             INFO_MED   = SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3) ),
24758
24759             RENOMME = FACT(statut='f', max='**',
24760                                  fr="Renommer un nom de groupe MED",
24761                  NOM_MED     = SIMP(statut='o', typ='TXM', validators=LongStr(1, 64),
24762                                     fr="Nom du groupe dans le fichier MED"),
24763                  NOM         = SIMP(statut='o', typ=grma,
24764                                     fr="Nom du groupe dans le maillage ASTER"),
24765             ),
24766          ),
24767
24768          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
24769 )  ;
24770
24771 # ======================================================================
24772 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24773 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24774 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24775 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24776 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24777 #
24778 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24779 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24780 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24781 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24782 #
24783 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24784 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24785 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24786 # ======================================================================
24787 # person_in_charge: serguei.potapov at edf.fr
24788
24789 LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
24790                  fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS",
24791                  reentrant='n',
24792             UIinfo={"groupes":("Lecture","Outils-métier",)},
24793          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
24794          UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
24795          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
24796          MAIL_PLEXUS     =SIMP(statut='o',typ=maillage_sdaster ),
24797          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
24798          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
24799          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24800          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
24801          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
24802          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24803          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
24804          b_prec_crit     =BLOC(condition = "LIST_INST != None or INST != None",
24805                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
24806                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24807                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
24808                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24809                    PRECISION       =SIMP(statut='o',typ='R',),),),
24810          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24811 )  ;
24812
24813 # ======================================================================
24814 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
24815 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24816 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24817 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24818 # (AT YOUR OPTION) ANY LATER VERSION.
24819 #
24820 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24821 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24822 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24823 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24824 #
24825 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24826 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24827 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24828 # ======================================================================
24829 # person_in_charge: j-pierre.lefebvre at edf.fr
24830
24831 def lire_resu_prod(TYPE_RESU,**args):
24832   if TYPE_RESU == "EVOL_CHAR" :  return evol_char
24833   if TYPE_RESU == "EVOL_THER" :  return evol_ther
24834   if TYPE_RESU == "EVOL_ELAS" :  return evol_elas
24835   if TYPE_RESU == "EVOL_NOLI" :  return evol_noli
24836   if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
24837   if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
24838   if TYPE_RESU == "MODE_MECA" :  return mode_meca
24839   if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c
24840   if TYPE_RESU == "EVOL_VARC" :  return evol_varc
24841   raise AsException("type de concept resultat non prevu")
24842
24843 # pour éviter d'écrire 3 fois cette liste :
24844 def l_nom_cham_pas_elga() :
24845      return list(set(C_NOM_CHAM_INTO())-set(C_NOM_CHAM_INTO('ELGA',)))
24846
24847 LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
24848             UIinfo={"groupes":("Lecture","Resultats et champs",)},
24849                fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED,"
24850                  +" des champs et les stocker dans une SD résultat",
24851
24852
24853 # 0) mots cles generaux :
24854 #----------------------
24855          TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA",
24856                                                           "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO",
24857                                                           "EVOL_CHAR","EVOL_VARC") ),
24858
24859          FORMAT          =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ),
24860
24861          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
24862          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24863
24864          regles=(UN_PARMI('MAILLAGE','MODELE'),),
24865          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
24866          MODELE          =SIMP(statut='f',typ=modele_sdaster),
24867          COMPORTEMENT       =C_COMPORTEMENT(),
24868          NB_VARI         =SIMP(statut='f',typ='I' ),
24869
24870          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,),
24871
24872          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,),
24873
24874           b_evol_elas  = BLOC(condition="TYPE_RESU=='EVOL_ELAS'",
24875           EXCIT           =FACT(statut='f',max='**',
24876             CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
24877             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24878             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),),
24879            ),
24880
24881           b_evol_ther  = BLOC(condition="TYPE_RESU=='EVOL_THER'",
24882           EXCIT           =FACT(statut='f',max='**',
24883             CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
24884             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
24885            ),
24886
24887           b_evol_noli  = BLOC(condition="TYPE_RESU=='EVOL_NOLI'",
24888           EXCIT           =FACT(statut='f',max='**',
24889            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
24890            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24891            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
24892                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
24893            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24894            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24895            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24896            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24897            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
24898            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24899            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
24900          ),
24901
24902
24903 # 1) blocs selon le format choisi :
24904 #---------------------------------
24905
24906 # 1-1 ideas dataset-58 :
24907 # ----------------------
24908          b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'",
24909            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
24910          ),
24911          b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\
24912                                         (TYPE_RESU=='DYNA_HARMO'))",
24913            NOM_CHAM=SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=("DEPL","VITE","ACCE","EPSI_NOEU","SIEF_NOEU",),max='**'),
24914            REDEFI_ORIENT=FACT(statut='f',max='**',
24915                               regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),),
24916                               CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ),
24917                               DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,),
24918                               NOEUD    =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),),
24919          ),
24920
24921 # 1-2 ideas  :
24922 # ---------
24923          b_ideas         =BLOC(condition="FORMAT=='IDEAS'",
24924            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
24925 #           TEST            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
24926            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
24927            PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),
24928              fr="Affecte des valeurs nulles la ou le champ n'est pas defini"),
24929            FORMAT_IDEAS    =FACT(statut='f',max='**',
24930              regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
24931              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=l_nom_cham_pas_elga()),
24932              NUME_DATASET    =SIMP(statut='f',typ='I',into=(55,57,2414) ),
24933              RECORD_3        =SIMP(statut='f',typ='I',max=10),
24934              RECORD_6        =SIMP(statut='f',typ='I',max=10),
24935              RECORD_9        =SIMP(statut='f',typ='I',max=10),
24936              POSI_ORDRE      =SIMP(statut='o',typ='I',min=2,max=2),
24937              POSI_NUME_MODE  =SIMP(statut='f',typ='I',min=2,max=2),
24938              POSI_MASS_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
24939              POSI_AMOR_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
24940              POSI_INST       =SIMP(statut='f',typ='I',min=2,max=2),
24941              POSI_FREQ       =SIMP(statut='f',typ='I',min=2,max=2),
24942              NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),),
24943          ),
24944
24945 # 1-3 ensight :
24946 # -------------
24947          b_ensight       =BLOC(condition="FORMAT=='ENSIGHT'",
24948            NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
24949            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
24950          ),
24951
24952 # 1-4 med :
24953 # ---------
24954          b_med           =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
24955            UNITE           =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",),
24956            FORMAT_MED      =FACT(statut='o',max='**',
24957              regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),UN_PARMI('NOM_CHAM_MED','NOM_RESU'),),
24958              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),),
24959              NOM_CHAM_MED    =SIMP(statut='f',typ='TXM',               fr="Nom du champ dans le fichier MED.",  ),
24960              NOM_RESU        =SIMP(statut='f',typ='TXM',               fr="Prefixe du nom de champ dans le fichier MED.",  ),
24961              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans ASTER.", ),
24962              NOM_CMP_MED     =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans MED.", ),
24963            ),
24964            PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),
24965             fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"),
24966          ),
24967
24968 # 2) blocs selon le type du resultat :
24969 #---------------------------------
24970          b_mode_meca     =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')",
24971            # Ces mots cles sont stockes dans l'objet .REFD des mode_meca
24972            # Ces mots cles sont aussi utilises  pour imposer la numerotation des cham_no de DEPL_R
24973            MATR_RIGI        =SIMP(statut='f',typ=matr_asse_depl_r,max=1),
24974            MATR_MASS        =SIMP(statut='f',typ=matr_asse_depl_r,max=1),
24975          ),
24976
24977
24978 # 3) autres blocs :
24979 #---------------------------------
24980          b_extrac        =BLOC(condition="1",fr="acces a un champ dans la structure de donnees resultat",
24981            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),),
24982            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24983            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
24984            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24985            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
24986            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
24987            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24988            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
24989
24990            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
24991              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
24992              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
24993                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
24994              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
24995                  PRECISION       =SIMP(statut='o',typ='R',),),
24996            ),
24997          ),
24998 )  ;
24999
25000 # ======================================================================
25001 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
25002 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25003 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25004 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
25005 # (AT YOUR OPTION) ANY LATER VERSION.
25006 #
25007 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
25008 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
25009 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
25010 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
25011 #
25012 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
25013 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
25014 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
25015 # ======================================================================
25016 # person_in_charge: mathieu.courtois at edf.fr
25017
25018
25019 LIRE_TABLE=MACRO(nom="LIRE_TABLE",
25020                  op=OPS('Macro.lire_table_ops.lire_table_ops'),
25021                  sd_prod=table_sdaster,
25022                  fr="Lecture d'un fichier contenant une table",
25023                  UIinfo={"groupes":("Lecture","Tables",)},
25024          UNITE           = SIMP(statut='o', typ='I' ),
25025          FORMAT          = SIMP(statut='f', typ='TXM', into=("ASTER", "LIBRE", "TABLEAU"), defaut="TABLEAU"),
25026          NUME_TABLE      = SIMP(statut='f', typ='I', defaut=1),
25027          SEPARATEUR      = SIMP(statut='f', typ='TXM', defaut=' '),
25028          RENOMME_PARA    = SIMP(statut='f', typ='TXM', into=("UNIQUE",),),
25029          TITRE           = SIMP(statut='f', typ='TXM', max='**'),
25030          INFO            = SIMP(statut='f', typ='I', into=(1, 2), ),
25031          )  ;
25032
25033 # ======================================================================
25034 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
25035 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
25036 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
25037 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
25038 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
25039 #                                                                       
25040 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
25041 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
25042 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
25043 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
25044 #                                                                       
25045 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
25046 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
25047 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
25048 # ======================================================================
25049 # person_in_charge: harinaivo.andriambololona at edf.fr
25050
25051 MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
25052                fr="Critere orthogonalite de modes propres",
25053                reentrant='n',
25054                UIinfo={"groupes":("Résolution","Dynamique",)},
25055                regles=(PRESENT_PRESENT('IERI','MATR_ASSE'),),
25056          BASE_1     =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ),
25057          BASE_2     =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb) ),
25058          MATR_ASSE  =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
25059          IERI       =SIMP(statut='f',typ='TXM',into=("OUI",),),
25060          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
25061          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
25062 )  ;
25063
25064 # ======================================================================
25065 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
25066 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25067 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25068 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
25069 # (AT YOUR OPTION) ANY LATER VERSION.
25070 #
25071 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
25072 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
25073 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
25074 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
25075 #
25076 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
25077 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
25078 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
25079 # ======================================================================
25080 # person_in_charge: gerald.nicolas at edf.fr
25081 #
25082 def macr_adap_mail_prod(self, MAJ_CHAM, ADD_CHAM, ADAPTATION, **args):
25083 #
25084 # 0. Typage des structures produites
25085 #
25086   #print args
25087   if ( args.has_key('MAILLAGE_NP1') ) :
25088     if ( args['MAILLAGE_NP1'] is not None ) :
25089       maillage_np1=args['MAILLAGE_NP1']
25090       self.type_sdprod(maillage_np1, maillage_sdaster)
25091 #
25092   if ( args.has_key('MAILLAGE_NP1_ANNEXE') ) :
25093     if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) :
25094       maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE']
25095       self.type_sdprod(maillage_np1_annexe, maillage_sdaster)
25096 #
25097   #print "MAJ_CHAM =", MAJ_CHAM
25098   if MAJ_CHAM is not None :
25099 # Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP
25100     for ch in MAJ_CHAM:
25101       t=ch['TYPE_CHAM']
25102       if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster)
25103       if t[0:2] == "EL":   self.type_sdprod(ch['CHAM_MAJ'],cham_elem)
25104 #
25105   #print "ADD_CHAM =", ADD_CHAM
25106   if ADD_CHAM is not None :
25107     for ch in ADD_CHAM:
25108       self.type_sdprod(ch['CHAM_GD'],carte_sdaster)
25109 #
25110   return None
25111
25112 MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",
25113                      op=OPS('Macro.macr_adap_mail_ops.macr_adap_mail_ops'),
25114                      sd_prod=macr_adap_mail_prod,
25115                      fr="Adapter un maillage avec le logiciel HOMARD.",
25116                      ang="Mesh adaptation with the HOMARD software.",
25117                      UIinfo={"groupes":("Maillage",)},
25118 #
25119 # 1. Le niveau d'information
25120 #
25121   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)),
25122 #
25123 # 2. Les maillages
25124 # 2.1. Quel que soit le type de traitement, il faut donner le concept du maillage initial (entree)
25125 #
25126   MAILLAGE_N   = SIMP(statut='o',typ=maillage_sdaster,
25127                       fr="Maillage avant adaptation",
25128                       ang="Mesh before adaptation" ),
25129 #
25130 # 2.2. Si ce n'est pas une simple lecture :
25131 #
25132   b_maillage = BLOC( condition = " (ADAPTATION != 'LECTURE') " ,
25133                           fr="Lectures de champs aux points de Gauss ou aux noeuds par element.",
25134                           ang="Readings of the fields over the Gauss points.",
25135 #
25136 # 2.2.1. Le concept du maillage final (sortie)
25137 #
25138     MAILLAGE_NP1 = SIMP(statut='o',typ=CO,
25139                         fr="Maillage après adaptation",
25140                         ang="Mesh after adaptation" ),
25141 #
25142 # 2.2.2. Eventuellement, on peut produire un maillage annexe
25143 #      Actuellement, c'est le maillage n+1, mais de degré différent.
25144 #
25145     MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO,
25146                               fr="Maillage annexe après adaptation",
25147                               ang="Additional mesh after adaptation" ),
25148 #
25149   ) ,
25150 #
25151 # 3. Le pilotage de l'adaptation, avec les variantes suivantes :
25152 #  . Raffinement et deraffinement, selon un champ
25153 #  . Raffinement seul, selon un champ
25154 #  . Deraffinement seul, selon un champ
25155 #  . Raffinement et deraffinement, selon des zones geometriques
25156 #  . Raffinement uniforme : toutes les mailles sont divisées
25157 #  . Deraffinement uniforme : toutes les mailles sont regroupées
25158 #  . Modification : le maillage subit des transformations specifiques
25159 #  . Rien : le maillage est le meme a la sortie et a l'entree
25160 #
25161   ADAPTATION = SIMP(statut='o',typ='TXM',
25162                     into=("RAFF_DERA", "RAFFINEMENT", "DERAFFINEMENT", "RAFF_DERA_ZONE", \
25163                           "RAFFINEMENT_UNIFORME", "DERAFFINEMENT_UNIFORME", \
25164                           "MODIFICATION", "LECTURE", "RIEN"),
25165                     fr="Pilotage de l'adaptation : selon un champ ou uniforme.",
25166                     ang="Adaptation control: either among an field or uniform" ),
25167 #
25168 # 4. Pour de l'adaptation libre, il faut un champ d'indicateur
25169 #
25170   b_champ = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
25171                                 (ADAPTATION == 'RAFFINEMENT') or \
25172                                 (ADAPTATION == 'DERAFFINEMENT') " ,
25173                   fr="Pour une adaptation libre, choix du champ définissant la région à raffiner/déraffiner",
25174                   ang="For a free adaptation, selection of the field that defines the area for refinment/unrefinement",
25175 #
25176     regles=(UN_PARMI('CHAM_GD','RESULTAT_N')),
25177 #
25178 # 4.1. Reperage de la région a raffiner a l'aide d'un champ
25179 #
25180 # 4.1.1. Sous forme de champ de grandeur
25181 #
25182     CHAM_GD    = SIMP(statut='f',typ=cham_gd_sdaster,
25183                       fr="Champ de grandeur Code_Aster pilotant l'adaptation",
25184                       ang="Code_Aster 'champ de grandeur' governing the adapatation" ),
25185 #
25186 # 4.1.2. Sous forme de concept resultat_sdaster
25187 #
25188     RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ,
25189                       fr="Concept résultat Code_Aster contenant le champ",
25190                       ang="The Code_Aster result with the field" ),
25191 #
25192     b_champ_adaptation = BLOC(condition="(RESULTAT_N != None)",
25193       NOM_CHAM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),
25194                         fr="Champ dans le résultat",
25195                         ang="The field in the result structure" ),
25196     ),
25197 #
25198 # 4.1.4. La ou les composantes retenues
25199 #
25200     NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
25201                           fr="Liste des composante(s) retenue(s) pour le champ.",
25202                           ang="List of the selected component(s) for the field." ),
25203 #
25204 # 4.1.5. Le paramètre temporel pour le champ
25205 #
25206     b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)",
25207                                 fr="Choix éventuel du paramètre temporel pour le champ",
25208                                 ang="Time selection for the field (option)",
25209 #
25210       regles=(EXCLUS('NUME_ORDRE','INST'),),
25211 #
25212 # 4.1.5.1. Soit le numero d'ordre
25213 #
25214       NUME_ORDRE = SIMP(statut='f',typ='I',
25215                         fr="Numéro d ordre",
25216                         ang="Rank" ),
25217 #
25218 # 4.1.5.2. Soit l'instant
25219 # 4.1.5.2.1. Sa valeur
25220 #
25221       INST       = SIMP(statut='f',typ='R',
25222                         fr="Instant associé",
25223                         ang="Instant" ),
25224 #
25225 # 4.1.5.2.2. La précision du choix de l'instant
25226 #
25227       b_precision = BLOC(condition="(INST != None)",
25228                          fr="Choix de la précision du choix de l'instant",
25229                          ang="Precision for the choice of the instant",
25230         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF", "ABSOLU",),
25231                          fr="Critère de précision sur le choix de l'instant associé",
25232                          ang="Accuracy criterium over the choice of the instant"),
25233         b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25234             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,
25235                              fr="Précision relative sur le choix de l'instant associé",
25236                              ang="Relative accuracy over the choice of the instant"),),
25237         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25238             PRECISION       =SIMP(statut='o',typ='R',
25239                              fr="Précision absolue sur le choix de l'instant associé",
25240                              ang="Absolute accuracy over the choice of the instant"),),
25241       ),
25242 #
25243     ),
25244 #
25245 # 4.1.6. Usage des composantes : maximum, maximum de la valeur absolue, ou de la norme L2, ou de la norme infinie
25246 #
25247     USAGE_CMP = SIMP(statut='f',typ='TXM',defaut="NORME_L2",
25248                       into=("ABSOLU", "NORME_L2", "NORME_INFINIE", "RELATIF"),
25249                       fr="Valeur absolue de la composante, ou norme du champ, ou valeur relative de la composante",
25250                       ang="Absolute value of the component, or norm of the field, or relative value of the component" ),
25251 #
25252 # 4.1.7. Usage du champ : la valeur par maille ou le max du saut entre mailles
25253 #
25254     USAGE_CHAMP = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE", "SAUT"),
25255                         fr="Usage du champ : la valeur par maille ou le saut entre mailles voisines",
25256                         ang="Use of the field: value over every mesh or jump between the neighbours" ),
25257 #
25258 # 4.1.8. Initialisation de l'adaptation : raffinement ou déraffinement
25259 #
25260     ADAP_INIT = SIMP(statut='f',typ='TXM',defaut="GARDER",into=("GARDER", "DERAFFINER"),
25261                         fr="Initialisation de l'adaptation dans les régions sans indicateur : garder ou déraffiner",
25262                         ang="Initialization of the adaptation in the areas without indicator: keep or unrefine" ),
25263 #
25264   ) ,
25265 #
25266 # 5. Les criteres pour de l'adaptation libre avec un champ :
25267 #        absolu, relatif, en proportion d'entite
25268 # 5.1. Pour le raffinement :
25269 #
25270   b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
25271                                                  (ADAPTATION == 'RAFFINEMENT') " ,
25272                                 fr="Critère de raffinement.",
25273                                 ang="Refinement threshold.",
25274 #
25275     regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE', 'CRIT_RAFF_MS' ),),
25276 #
25277     CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
25278                          fr="Critère absolu",
25279                          ang="Absolute threshold" ),
25280     CRIT_RAFF_REL = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0,
25281                          fr="Critère relatif : fraction réelle entre 0. et 1.",
25282                          ang="Relative threshold : ratio between 0. and 1." ),
25283     CRIT_RAFF_PE  = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0,
25284                          fr="Pourcentage de mailles : fraction réelle entre 0. et 1.",
25285                          ang="Percentage of meshes: ratio between 0. and 1." ),
25286     CRIT_RAFF_MS  = SIMP(statut='f',typ='R',
25287                          fr="Critère absolu valant moyenne + n*sigma, n étant > 0",
25288                          ang="Absolute threshold: mean + n*sigma, with n > 0" ),
25289   ) ,
25290 #
25291 # 5.2. Pour le deraffinement :
25292 #
25293   b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
25294                                                    (ADAPTATION == 'DERAFFINEMENT') " ,
25295                                      fr="Critère de déraffinement.",
25296                                      ang="Unrefinement threshold.",
25297 #
25298     regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE', 'CRIT_DERA_MS' ),),
25299 #
25300     CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
25301                          fr="Critère absolu",
25302                          ang="Absolute threshold" ),
25303     CRIT_DERA_REL = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0,
25304                          fr="Critère relatif : fraction réelle entre 0. et 1.",
25305                          ang="Relative threshold: ratio between 0. and 1." ),
25306     CRIT_DERA_PE  = SIMP(statut='f',typ='R',val_min=0.0,val_max=1.0,
25307                          fr="Pourcentage de mailles : fraction réelle entre 0. et 1.",
25308                          ang="Percentage of meshes: ratio between 0. and 1." ),
25309     CRIT_DERA_MS  = SIMP(statut='f',typ='R',
25310                          fr="Critère absolu valant moyenne - n*sigma, n étant > 0",
25311                          ang="Absolute threshold: mean - n*sigma, with n > 0" ),
25312   ) ,
25313 #
25314 # 6. Pour de l'adaptation par zone, définitions des zones
25315 #
25316   b_zone = BLOC( condition = " (ADAPTATION == 'RAFF_DERA_ZONE') " ,
25317                  fr="Pour une adaptation selon une zone à raffiner",
25318                  ang="For adaptation among a zone",
25319 #
25320     ZONE = FACT(statut='o',min=1,max='**',
25321                 fr="Définition de zones à raffiner.",
25322                 ang="Refined zone definition.",
25323 #
25324 # 6.1. Type de la zone
25325 #
25326       TYPE = SIMP(statut='o',typ='TXM',into=("RECTANGLE", "BOITE", "DISQUE", "SPHERE", "CYLINDRE", "DISQUE_PERCE", "TUYAU"),
25327                   fr="Type de la zone",
25328                   ang="Type of the zone" ),
25329 #
25330 # 6.2. Usage de la zone
25331 #
25332       USAGE = SIMP(statut='f',typ='TXM',into=("RAFFINEMENT","DERAFFINEMENT"),defaut="RAFFINEMENT",
25333                    fr="Zone pour raffiner",
25334                    ang="Zone: refinement" ),
25335 #
25336 # Ne sachant pas exploiter les blocs, je mets des regles
25337 #
25338       regles=(AU_MOINS_UN('X_MINI','X_CENTRE','HAUTEUR'),
25339               EXCLUS('X_MINI','X_CENTRE','HAUTEUR',),
25340               EXCLUS('Z_MINI','X_CENTRE','HAUTEUR',),
25341               EXCLUS('X_MINI','Z_CENTRE','HAUTEUR',),
25342               EXCLUS('Z_MINI','Z_CENTRE','HAUTEUR',),
25343               EXCLUS('X_MINI','RAYON',),
25344               EXCLUS('Z_MINI','RAYON',),
25345               EXCLUS('RAYON','RAYON_INT',),),
25346 #
25347 # 6.3. Une boite rectangulaire ou parallelepipedique
25348 # 6.3.1. Incontournables
25349 #
25350 ##gn      b_z_boiteXY = BLOC( condition = " (TYPE == 'RECTANGLE') or (TYPE == 'BOITE') " ,
25351 ##gn                          fr="X et Y mini/maxi pour un rectangle ou un parallelepipede.",
25352 ##gn                          ang="X and Y min/max for a rectangle or a parallelepipedic box",
25353       X_MINI = SIMP(statut='f',typ='R',
25354                     fr="Abscisse minimum de la boite",
25355                     ang="Minimum X for the box"),
25356       X_MAXI = SIMP(statut='f',typ='R',
25357                     fr="Abscisse maximum de la boite",
25358                     ang="Maximum X for the box"),
25359       Y_MINI = SIMP(statut='f',typ='R',
25360                     fr="Ordonnée minimum de la boite",
25361                     ang="Minimum Y for the box"),
25362       Y_MAXI = SIMP(statut='f',typ='R',
25363                       fr="Abscisse maximum de la boite",
25364                       ang="Maximum Y for the box"),
25365 ##gn      ) ,
25366 #
25367 # 6.3.2. Complement pour une boite parallelepipedique
25368 #
25369 ##gn      b_z_boiteZ = BLOC( condition = " (TYPE == 'BOITE') " ,
25370 ##gn                         fr="Z mini/maxi pour un parallelepipede.",
25371 ##gn                         ang="Z min/max for a parallelepipedic box",
25372       Z_MINI = SIMP(statut='f',typ='R',
25373                     fr="Cote minimum de la boite",
25374                     ang="Minimum Z for the box"),
25375       Z_MAXI = SIMP(statut='f',typ='R',
25376                     fr="Cote maximum de la boite",
25377                     ang="Maximum Z for the box"),
25378 ##gn      ) ,
25379 #
25380 # 6.4. Rayon pour un disque, une sphere ou un cylindre
25381 #
25382 ##gn      b_z_rayon = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " ,
25383 ##gn                        fr="Le rayon d'un disque, d'une sphere ou d'un cylindre.",
25384 ##gn                        ang="The radius of a disk or of a sphere or of a cylinder.",
25385       RAYON = SIMP(statut='f',typ='R',
25386                    fr="Rayon",
25387                    ang="Radius"),
25388 ##gn      ) ,
25389 #
25390 # 6.5. Pour un disque plein ou perce, une sphere
25391 # 6.5.1. Incontournables
25392 #
25393 ##gn      b_z_di_sp_XY = BLOC( condition = " (TYPE == 'DISQUE') or (TYPE == 'SPHERE') or (TYPE == 'DISQUE_PERCE') " ,
25394 ##gn                           fr="X et Y du centre d'un disque plein ou perce, d'une sphere.",
25395 ##gn                           ang="X and Y of the centre of a disk or of a sphere.",
25396       X_CENTRE = SIMP(statut='f',typ='R',
25397                       fr="Abscisse du centre du disque ou de la sphère",
25398                       ang="X for the center of the disk or of the sphere"),
25399       Y_CENTRE = SIMP(statut='f',typ='R',
25400                       fr="Ordonnée du centre du disque ou de la sphère",
25401                       ang="Y for the center of the disk or of the sphere"),
25402 ##gn      ) ,
25403 #
25404 # 6.5.2. Complement pour une sphere
25405 #
25406 ##gn      b_z_sp_Z = BLOC( condition = " (TYPE == 'SPHERE') " ,
25407 ##gn                       fr="Cote du centre de la sphere.",
25408 ##gn                       ang="Z for the center of the sphere.",
25409        Z_CENTRE = SIMP(statut='f',typ='R',
25410                        fr="Cote du centre de la sphère",
25411                        ang="Z for the center of the sphere"),
25412 ##gn      ) ,
25413 #
25414 # 6.6. Rayons interieur et exterieur pour un disque perce ou un tuyau
25415 #
25416 ##gn      b_z_rayon_int_ext = BLOC( condition = " (TYPE == 'DISQUE_PERCE') or (TYPE == 'TUYAU') " ,
25417 ##gn                                fr="Le rayon d'un disque perce ou d'un tuyau.",
25418 ##gn                                ang="The radius of a holed disk or of a pipe.",
25419       RAYON_INT = SIMP(statut='f',typ='R',
25420                        fr="Rayon intérieur",
25421                        ang="Internal radius"),
25422       RAYON_EXT = SIMP(statut='f',typ='R',
25423                        fr="Rayon extérieur",
25424                        ang="External radius"),
25425 ##gn      ) ,
25426 #
25427 # 6.7. Un cylindre ou un tuyau
25428 #
25429 ##gn      b_z_cylindre_tuyau = BLOC( condition = " (TYPE == 'CYLINDRE') or (TYPE == 'TUYAU') " ,
25430 ##gn                                 fr="Pour un cylindre ou un tuyau.",
25431 ##gn                                 ang="For a cylinder or a pipe.",
25432       X_AXE = SIMP(statut='f',typ='R',
25433                    fr="Abscisse du vecteur directeur de l'axe",
25434                    ang="X for the axial vector"),
25435       Y_AXE = SIMP(statut='f',typ='R',
25436                    fr="Ordonnée du vecteur directeur de l'axe",
25437                    ang="Y for the axial vector"),
25438       Z_AXE = SIMP(statut='f',typ='R',
25439                    fr="Cote du vecteur directeur de l'axe",
25440                    ang="Z for the axial vector"),
25441       X_BASE = SIMP(statut='f',typ='R',
25442                     fr="Abscisse d'un point de la base, sur l'axe",
25443                     ang="X for the basis, on the axis"),
25444       Y_BASE = SIMP(statut='f',typ='R',
25445                     fr="Ordonnée d'un point de la base, sur l'axe",
25446                     ang="Y for the basis, on the axis"),
25447       Z_BASE = SIMP(statut='f',typ='R',
25448                     fr="Cote d'un point de la base, sur l'axe",
25449                     ang="Z for the basis, on the axis"),
25450       HAUTEUR = SIMP(statut='f',typ='R',
25451                      fr="Hauteur",
25452                      ang="Height"),
25453 ##gn     ) ,
25454 #
25455     ) ,
25456 #
25457   ) ,
25458 #
25459 # 7. Les niveaux extremes pour le maillage adapte
25460 # 7.1. Pour le raffinement :
25461 #
25462   b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
25463                                          (ADAPTATION == 'RAFFINEMENT') or \
25464                                          (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
25465                                          (ADAPTATION == 'RAFF_DERA_ZONE') " ,
25466                            fr="Profondeur maximale de raffinement",
25467                            ang="Maximum depth for the refinement",
25468 #
25469     NIVE_MAX = SIMP(statut='f',typ='I',
25470                     fr="Niveau maximum de profondeur de raffinement",
25471                     ang="Maximum level for the refinement"),
25472 #
25473     DIAM_MIN = SIMP(statut='f',typ='R',
25474                     fr="Diamètre minimal des mailles",
25475                     ang="Minimal diameter for the meshes" ),
25476 #
25477   ) ,
25478 #
25479 # 7.2. Pour le deraffinement :
25480 #
25481   b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
25482                                          (ADAPTATION == 'DERAFFINEMENT') or \
25483                                          (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
25484                            fr="Niveau minimum de profondeur de déraffinement",
25485                            ang="Minimum level for the unrefinement",
25486     NIVE_MIN = SIMP(statut='f',typ='I',
25487                     fr="Niveau minimum de profondeur de déraffinement",
25488                     ang="Minimum level for the unrefinement"),
25489   ) ,
25490 #
25491 # 8. Filtrage de l'adaptation par des groupes
25492 #
25493   b_filtrage_par_des_groupes = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
25494                                                    (ADAPTATION == 'RAFFINEMENT') or \
25495                                                    (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
25496                                                    (ADAPTATION == 'RAFF_DERA_ZONE') or \
25497                                                    (ADAPTATION == 'DERAFFINEMENT') or \
25498                                                    (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
25499                                 fr="Filtrage de l'adaptation par des groupes.",
25500                                 ang="Filtering of adaptation by the groups.",
25501 #
25502     GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
25503                     fr="Liste des groupes de mailles pour le filtrage de l'adaptation.",
25504                     ang="List of the groups of meshes for filtering of the adaptation." ),
25505 #
25506     GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**',
25507                     fr="Liste des groupes de noeuds pour le filtrage de l'adaptation.",
25508                     ang="List of the groups of nodes for filtering of the adaptation." ),
25509   ) ,
25510 #
25511 # 9. Suivi d'une frontière
25512 #
25513 # 9.1. Definition d'une frontière par un maillage (valable seulement pour des frontières 1D)
25514 #
25515   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
25516                            fr="Maillage de la frontière discrète à suivre",
25517                            ang="Discrete boundary mesh" ),
25518 #
25519   b_FRONTIERE = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
25520                       fr="Information complémentaire sur la frontière discrète",
25521                       ang="Further information about discrete boundary",
25522 #
25523     GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
25524                           fr="Liste des groupes de mailles définissant la frontière discrète",
25525                           ang="Mesh groups which define the discrete boundary" ),
25526 #
25527   ) ,
25528 #
25529 # 9.2. Definition analytique d'une frontière
25530 #
25531   FRONTIERE_ANALYTIQUE = FACT(statut='f',max='**',
25532                               fr="Definition analytique de frontières a suivre.",
25533                               ang="Analytical definition of a boundary.",
25534 #
25535 # 9.2.1. Nom de la frontière
25536 #
25537     NOM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
25538                fr="Nom de la frontière analytique",
25539                ang="Name of the analytic boundary" ),
25540 #
25541 # 9.2.2. Type de la frontière
25542 #
25543     TYPE = SIMP(statut='o',typ='TXM',into=("SPHERE", "CYLINDRE"),
25544                 fr="Type de la frontière analytique",
25545                 ang="Type of the analytic boundary" ),
25546 #
25547 # 9.2.3. Pour une sphere, un cylindre par ses rayons : rayon et centre
25548 #
25549     b_fr_rayon = BLOC( condition = " (TYPE == 'SPHERE') or (TYPE == 'CYLINDRE') " ,
25550                        fr="Le rayon et le centre d'une sphère ou d'un cylindre.",
25551                        ang="The radius and the centre of a sphere or of a cylinder.",
25552       RAYON = SIMP(statut='o',typ='R',
25553                    fr="Rayon",
25554                    ang="Radius"),
25555       X_CENTRE = SIMP(statut='o',typ='R',
25556                       fr="Abscisse du centre",
25557                       ang="X for the center"),
25558       Y_CENTRE = SIMP(statut='o',typ='R',
25559                       fr="Ordonnée du centre",
25560                       ang="Y for the center"),
25561       Z_CENTRE = SIMP(statut='o',typ='R',
25562                       fr="Cote du centre",
25563                       ang="Z for the center"),
25564     ) ,
25565 #
25566 # 9.2.4. Pour un cylindre defini par axe et angle : axe
25567 #
25568     b_fr_cylindre = BLOC( condition = " (TYPE == 'CYLINDRE') " ,
25569                           fr="Pour un cylindre.",
25570                           ang="For a cylinder.",
25571       X_AXE = SIMP(statut='o',typ='R',
25572                    fr="Abscisse du vecteur directeur de l'axe",
25573                    ang="X for the axial vector"),
25574       Y_AXE = SIMP(statut='o',typ='R',
25575                    fr="Ordonnée du vecteur directeur de l'axe",
25576                    ang="Y for the axial vector"),
25577       Z_AXE = SIMP(statut='o',typ='R',
25578                    fr="Cote du vecteur directeur de l'axe",
25579                    ang="Z for the axial vector"),
25580     ) ,
25581 #
25582 # 9.2.7. Groupe(s) lie(s) a la frontière
25583 #
25584     GROUP_MA = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**',
25585                     fr="Liste des groupes de mailles placées sur la frontière",
25586                     ang="Groups of meshes which are located on the boundary" ),
25587 #
25588   ) ,
25589 #
25590 # 10. mise à jour de champs sur le nouveau maillage
25591 #
25592   MAJ_CHAM = FACT(statut='f',max='**',
25593                   fr="Mise à jour de champs sur le nouveau maillage.",
25594                   ang="Updating of the fields over the new mesh.",
25595 #
25596 # 10.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour
25597 #
25598     CHAM_MAJ = SIMP(statut='o',typ=CO,
25599                     fr="Nom du champ de grandeur qui contiendra le champ mis à jour",
25600                     ang="Name of the field for the updated field"),
25601 #
25602 # 10.2. Le type du champ qui contiendra le resultat de la mise a jour
25603 #
25604     TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO( ('NOEU', 'ELEM', 'ELNO', 'ELGA') ),
25605                      fr="Type du champ qui contiendra le champ mis à jour",
25606                      ang="Type of the field for the updated field" ),
25607 #
25608 # 10.3. Le champ a interpoler
25609 #
25610     regles=(UN_PARMI('CHAM_GD','RESULTAT')),
25611 #
25612 # 10.3.1. Sous forme de champ de grandeur
25613 #
25614     CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster,
25615                    fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour",
25616                    ang="Champ de grandeur with the field to be updated" ),
25617 #
25618 # 10.3.2. Sous forme de champ dans un resultat
25619 #
25620     RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
25621                     fr="Résultat contenant le champ à mettre à jour",
25622                     ang="Result with the field to be updated" ),
25623 #
25624     b_nom_du_champ = BLOC(condition="(RESULTAT != None)",
25625                           fr="Choix éventuel du nom du champ à interpoler",
25626                           ang="Selection for the name of the field (option)",
25627 #
25628       NOM_CHAM = SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),
25629                       fr="Nom du champ à mettre à jour",
25630                       ang="Name of the field to be updated" ),
25631 #
25632     ),
25633 #
25634 # 10.4. Les composantes
25635 #
25636     NOM_CMP = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
25637                    fr="Liste des composante(s) retenue(s) pour le champ.",
25638                    ang="List of the selected component(s) for the field." ),
25639 #
25640 # 10.5. Le paramètre temporel pour le champ a interpoler
25641 #
25642     b_parametre_temporel = BLOC(condition="(RESULTAT != None)",
25643                                 fr="Choix éventuel du paramètre temporel pour le champ à interpoler",
25644                                 ang="Time selection for the field (option)",
25645 #
25646       regles=(EXCLUS('NUME_ORDRE','INST'),),
25647 #
25648 # 10.5.1. Soit le numero d'ordre
25649 #
25650       NUME_ORDRE = SIMP(statut='f',typ='I',
25651                         fr="Numéro d ordre du champ à mettre à jour",
25652                         ang="Rank of the field to be updated" ),
25653 #
25654 # 10.5.2. Soit l'instant
25655 # 10.5.2.1. Sa valeur
25656 #
25657       INST = SIMP(statut='f',typ='R',
25658                   fr="Instant associé",
25659                   ang="Instant" ),
25660 #
25661 # 10.5.2.2. La précision du choix de l'instant
25662 #
25663       b_precision = BLOC(condition="(INST != None)",
25664                          fr="Choix de la précision du choix de l'instant",
25665                          ang="Selection for the choice of the instant",
25666 #
25667         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF", "ABSOLU",),
25668                          fr="Critère de précision sur le choix de l'instant associé",
25669                          ang="Accuracy criterium over the choice of the instant"),
25670         b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
25671             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,
25672                              fr="Précision relative sur le choix de l'instant associé",
25673                              ang="Relative accuracy over the choice of the instant"),),
25674         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
25675             PRECISION       =SIMP(statut='o',typ='R',
25676                              fr="Précision absolue sur le choix de l'instant associé",
25677                              ang="Absolute accuracy over the choice of the instant"),),
25678 #
25679       ),
25680 #
25681     ),
25682 #
25683 # 10.6. Type d'interpolation
25684 #
25685     TYPE_MAJ = SIMP(statut='f',typ='TXM',defaut="AUTO",
25686                     into=("AUTO", "ISOP2"),
25687                     fr="Type de mise à jour : automatique ou iso-P2",
25688                     ang="Type of the updating" ),
25689   ),
25690 #
25691 # 11. Les modifications
25692 #
25693   b_modifications = BLOC( condition = " (ADAPTATION == 'MODIFICATION') " ,
25694                           fr="Modification de maillage.",
25695                           ang="Modification of the mesh.",
25696 #
25697       #regles=(AU_MOINS_UN('DEGRE','JOINT'),),
25698 #
25699 # 11.1. Changement de degre
25700 #
25701       DEGRE         = SIMP(statut='o',typ='TXM',into=("OUI",),
25702                           fr="Changement de degré du maillage",
25703                           ang="Modification of the degree of the mesh" ),
25704 #
25705   ) ,
25706 #
25707 # 12. Le modele pour les lectures de champs aux points de Gauss ou aux noeuds par element
25708 #
25709   b_lectures = BLOC( condition = " (ADAPTATION == 'LECTURE') " ,
25710                           fr="Lectures de champs aux points de Gauss.",
25711                           ang="Readings of the fields over the Gauss points.",
25712 #
25713       MODELE        = SIMP(statut='o',typ=modele_sdaster,
25714                           fr="Modèle",
25715                           ang="Model" ),
25716 #
25717   ) ,
25718 #
25719 # 13. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
25720 #
25721   b_analyses = BLOC( condition = " (ADAPTATION != 'LECTURE') " ,
25722                      fr="Analyse du maillage.",
25723                      ang="Analysis of the mesh.",
25724 #
25725 # 13.1. Nombre de noeuds et mailles
25726 #
25727     NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
25728                           fr="Nombre de noeuds et de mailles du maillage",
25729                           ang="Number of nodes and meshes in the mesh" ),
25730 #
25731 # 13.2. Determination de la qualité des mailles du maillage
25732 #
25733     QUALITE        = SIMP(statut='f',typ='TXM',into=("OUI",),
25734                           fr="Qualité du maillage",
25735                           ang="Quality of the mesh" ),
25736 #
25737 # 13.3. Connexite du maillage
25738 #
25739     CONNEXITE      = SIMP(statut='f',typ='TXM',into=("OUI",),
25740                           fr="Connexité du maillage.",
25741                           ang="Connexity of the mesh." ),
25742 #
25743 # 13.4. Taille des sous-domaines du maillage
25744 #
25745     TAILLE         = SIMP(statut='f',typ='TXM',into=("OUI",),
25746                           fr="Tailles des sous-domaines du maillage.",
25747                           ang="Sizes of mesh sub-domains." ),
25748 #
25749 # 13.5. Controle de la non-interpenetration des mailles
25750 #
25751     INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI",),
25752                           fr="Controle de la non interpénétration des mailles.",
25753                           ang="Overlapping checking." ),
25754 #
25755 # 13.6. Propriétés du maillage de calcul
25756 #
25757     PROP_CALCUL    = SIMP(statut='f',typ='TXM',into=("OUI",),
25758                           fr="Propriétés du maillage de calcul.",
25759                           ang="Properties of the calculation mesh." ),
25760 #
25761 # 13.7. Determination des diametres des mailles du maillage
25762 #
25763     DIAMETRE       = SIMP(statut='f',typ='TXM',into=("OUI",),
25764                           fr="Diamètre du maillage",
25765                           ang="Diameters of the mesh" ),
25766 #
25767   ) ,
25768 #
25769 # 14. champs supplementaires sur le nouveau maillage
25770 #
25771   ADD_CHAM = FACT(statut='f',max='**',
25772                   fr="Champs supplementaires sur le nouveau maillage.",
25773                   ang="Additional fields over the new mesh.",
25774 #
25775 # 14.1. Le nom du champ de grandeur qui contiendra le nouveau champ
25776 #
25777     CHAM_GD = SIMP(statut='o',typ=CO,
25778                   fr="Nom du champ de grandeur qui contiendra le champ supplementaire",
25779                   ang="Name of the field for the additional field"),
25780 #
25781 # 14.2. La categorie du champ supplementaire
25782 #
25783     CHAM_CAT = SIMP(statut='o',typ='TXM',into=("NIVEAU", "DIAMETRE"),
25784                     fr="Categorie du champ supplementaire : niveau ou diametre",
25785                     ang="Category of the additional field: level or diameter" ),
25786 #
25787   ) ,
25788 #
25789 # 15. Les options avancées
25790 # 15.1. Langue des messages issus de HOMARD
25791 #
25792   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
25793                 into=("FRANCAIS", "FRENCH", "ANGLAIS", "ENGLISH",),
25794                 fr="Langue des messages issus de HOMARD.",
25795                 ang="Language for HOMARD messages." ),
25796 #
25797 # 15.2. Gestion des mailles acceptees dans le maillage initial
25798 #       "HOMARD" : exclusivement les mailles pouvant etre decoupees (defaut)
25799 #       "IGNORE_PYRA" : elles sont ignorées
25800 #
25801   b_autres_mailles = BLOC( condition = " (ADAPTATION != 'LECTURE') " ,
25802                            fr="Gestion des pyramides.",
25803                            ang="Pyramids.",
25804 #
25805     ELEMENTS_ACCEPTES = SIMP(statut='f',typ='TXM',defaut="HOMARD",into=("HOMARD", "IGNORE_PYRA"),
25806                              fr="Acceptation des mailles dans le maillage initial",
25807                              ang="Elements in the very first mesh" ),
25808 #
25809   ) ,
25810 #
25811 # 15.3. Version de HOMARD
25812 #
25813   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_6",
25814                         into=("V10_6", "V10_N", "V10_N_PERSO"),
25815                         fr="Version de HOMARD",
25816                         ang="HOMARD release"),
25817 #
25818 # 15.4. Exécutable pilotant HOMARD
25819 #
25820   LOGICIEL = SIMP(statut='f',typ='TXM',
25821                   fr="Logiciel pilotant HOMARD",
25822                   ang="HOMARD software"),
25823 #
25824 # 15.5. Unite logique d'un fichier à ajouter a HOMARD.Configuration
25825 #
25826   b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \
25827                                 (VERSION_HOMARD == 'V10_N_PERSO') " ,
25828                                 fr="Fichier supplementaire.",
25829                                 ang="Additional file.",
25830 #
25831   UNITE = SIMP(statut='f',typ='I',
25832                fr="Unite logique a ajouter a HOMARD.Configuration",
25833                ang="Additional file to HOMARD.Configuration" ),
25834 #
25835   ) ,
25836 #
25837 ) ;
25838
25839 # ======================================================================
25840 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
25841 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25842 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25843 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
25844 # (AT YOUR OPTION) ANY LATER VERSION.
25845 #
25846 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
25847 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
25848 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
25849 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
25850 #
25851 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
25852 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
25853 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
25854 # ======================================================================
25855 # person_in_charge: samuel.geniaut at edf.fr
25856
25857 def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,RESU_THER,**args):
25858   self.type_sdprod(MODELE,modele_sdaster)
25859   if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
25860   if CARA_ELEM  != None:self.type_sdprod(CARA_ELEM,cara_elem)
25861   if FOND_FISS  != None:self.type_sdprod(FOND_FISS,fond_fiss)
25862   if RESU_THER  != None:self.type_sdprod(RESU_THER,evol_ther)
25863   return evol_noli
25864
25865 MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",
25866                        op=OPS('Macro.macr_ascouf_calc_ops.macr_ascouf_calc_ops'),
25867                        sd_prod=macr_ascouf_calc_prod,
25868                        fr="Réalise l'analyse thermomécanique du coude dont le maillage a " \
25869                           "été concu par MACR_ASCOUF_MAIL",
25870                        reentrant='n',
25871                        UIinfo={"groupes":("Résolution","Outils-métier",)},
25872
25873          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
25874                                into=("SAIN",
25875                                      "FISS_COUDE",
25876                                      "FISS_AXIS_DEB",
25877                                      "SOUS_EPAIS_COUDE"
25878                                      ) ),
25879
25880          CL_BOL_P2_GV    =FACT(statut='f',
25881            ANGLE           =SIMP(statut='o',typ='R' ),
25882            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
25883          ),
25884
25885          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
25886          MODELE          =SIMP(statut='o',typ=CO,),
25887          CHAM_MATER      =SIMP(statut='f',typ=CO,),
25888          CARA_ELEM       =SIMP(statut='f',typ=CO,),
25889          FOND_FISS       =SIMP(statut='f',typ=CO,),
25890          RESU_THER       =SIMP(statut='f',typ=CO,),
25891
25892          AFFE_MATERIAU   =FACT(statut='o',max=3,
25893            regles=(UN_PARMI('TOUT','GROUP_MA'),),
25894            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
25895            GROUP_MA        =SIMP(statut='f',typ=grma,into=("COUDE","BOL") ),
25896            MATER           =SIMP(statut='o',typ=mater_sdaster ),
25897            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
25898          ),
25899
25900          PRES_REP        =FACT(statut='f',
25901            PRES            =SIMP(statut='o',typ='R' ),
25902            EFFE_FOND_P1    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
25903            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
25904            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
25905          ),
25906
25907          ECHANGE         =FACT(statut='f',
25908            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
25909            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
25910          ),
25911
25912          TORS_P1         =FACT(statut='f',max=6,
25913            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
25914            FX              =SIMP(statut='f',typ='R' ),
25915            FY              =SIMP(statut='f',typ='R' ),
25916            FZ              =SIMP(statut='f',typ='R' ),
25917            MX              =SIMP(statut='f',typ='R' ),
25918            MY              =SIMP(statut='f',typ='R' ),
25919            MZ              =SIMP(statut='f',typ='R' ),
25920            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
25921          ),
25922
25923
25924          COMPORTEMENT       =C_COMPORTEMENT('MACR_ASCOUF_CALC'),
25925
25926 #-------------------------------------------------------------------
25927 #        Catalogue commun SOLVEUR
25928          SOLVEUR         =C_SOLVEUR('MACR_ASCOUF_CALC'),
25929 #-------------------------------------------------------------------
25930
25931          CONVERGENCE     =C_CONVERGENCE(),
25932
25933          NEWTON          =C_NEWTON(),
25934
25935          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
25936
25937          INCREMENT       =C_INCREMENT('MECANIQUE'),
25938
25939          THETA_3D        =FACT(statut='f',max='**',
25940            R_INF           =SIMP(statut='o',typ='R' ),
25941            R_SUP           =SIMP(statut='o',typ='R' ),
25942          ),
25943
25944          ENERGIE         =FACT(statut='f',max=1,
25945            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
25946          ),
25947
25948          IMPR_TABLE      =FACT(statut='f',
25949            regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
25950             PRESENT_PRESENT('TOUT_PARA','ANGLE',    ),
25951             PRESENT_PRESENT('TOUT_PARA','R_CINTR',  ),
25952                    UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
25953            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4,
25954                                  into=("TRESCA_MEMBRANE",
25955                                        "TRESCA_MFLE",
25956                                        "TRESCA",
25957                                        "SI_LONG"
25958                                        "SI_RADI"
25959                                        "SI_CIRC"
25960                                        ) ),
25961            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
25962            ANGLE           =SIMP(statut='f',typ='R', ),
25963            R_CINTR         =SIMP(statut='f',typ='R', ),
25964            POSI_CURV_LONGI =SIMP(statut='f',typ='R', ),
25965            POSI_ANGUL      =SIMP(statut='f',typ='R', ),
25966            TRANSFORMEE     =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
25967          ),
25968
25969          IMPRESSION      =FACT(statut='f',
25970            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
25971                                  into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
25972
25973            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
25974              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
25975            ),
25976
25977            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
25978              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
25979            ),
25980
25981          ),
25982
25983          TITRE           =SIMP(statut='f',typ='TXM' ),
25984
25985          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
25986 )  ;
25987
25988 # ======================================================================
25989 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
25990 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
25991 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
25992 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
25993 # (AT YOUR OPTION) ANY LATER VERSION.
25994 #
25995 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
25996 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
25997 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
25998 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
25999 #
26000 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26001 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26002 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26003 # ======================================================================
26004 # person_in_charge: samuel.geniaut at edf.fr
26005
26006 MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",
26007                        op=OPS('Macro.macr_ascouf_mail_ops.macr_ascouf_mail_ops'),
26008                        sd_prod=maillage_sdaster,
26009                        fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)",
26010                        UIinfo={"groupes":("Maillage","Outils-métier",)},
26011                        reentrant='n',
26012
26013          regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
26014
26015          EXEC_MAILLAGE   =FACT(statut='o',
26016            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
26017            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),
26018            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),
26019            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
26020          ),
26021
26022          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
26023
26024          COUDE           =FACT(statut='o',
26025            ANGLE           =SIMP(statut='o',typ='R' ),
26026            R_CINTR         =SIMP(statut='o',typ='R' ),
26027            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
26028            L_TUBE_P2       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
26029            NB_ELEM_EPAIS   =SIMP(statut='f',typ='I',defaut= 3 ),
26030            SYME            =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ),
26031            TRANSFORMEE     =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
26032            b_transf_coude  =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
26033               DEXT            =SIMP(statut='o',typ='R' ),
26034               EPAIS           =SIMP(statut='o',typ='R' ),
26035               SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
26036               BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
26037            ),
26038            b_transf_tube   =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
26039               TRAN_EPAIS      =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
26040               b_trans_epais_oui    =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
26041                       regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
26042                               UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
26043                       DEXT_T1         =SIMP(statut='o',typ='R' ),
26044                       EPAIS_T1        =SIMP(statut='o',typ='R' ),
26045                       EPAIS_T2        =SIMP(statut='o',typ='R' ),
26046                       EPAIS_TI        =SIMP(statut='f',typ='R' ),
26047                       ANGL_TETA1      =SIMP(statut='o',typ='R' ),
26048                       ANGL_TETA2      =SIMP(statut='f',typ='R' ),
26049                       ABSC_CURV_TRAN  =SIMP(statut='f',typ='R' ),
26050                       POSI_ANGU_TRAN  =SIMP(statut='f',typ='R' ),
26051               ),
26052               b_trans_epais_non    =BLOC(condition = "TRAN_EPAIS == 'NON' ",
26053                       DEXT            =SIMP(statut='o',typ='R' ),
26054                       EPAIS           =SIMP(statut='o',typ='R' ),
26055                       SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
26056                       BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
26057               ),
26058            ),
26059          ),
26060
26061          SOUS_EPAIS_COUDE=FACT(statut='f',
26062            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
26063                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
26064            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
26065            AXE_CIRC        =SIMP(statut='f',typ='R' ),
26066            AXE_LONGI       =SIMP(statut='o',typ='R' ),
26067            PROFONDEUR      =SIMP(statut='o',typ='R' ),
26068            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
26069            POSI_ANGUL      =SIMP(statut='f',typ='R' ),
26070            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),
26071            AZIMUT          =SIMP(statut='f',typ='R' ),
26072            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
26073            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),
26074            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),
26075            NB_ELEM_RADI    =SIMP(statut='f',typ='I',defaut= 3 ),
26076            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
26077          ),
26078
26079          SOUS_EPAIS_MULTI=FACT(statut='f',max='**',
26080            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
26081                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
26082            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
26083            AXE_CIRC        =SIMP(statut='f',typ='R' ),
26084            AXE_LONGI       =SIMP(statut='o',typ='R' ),
26085            PROFONDEUR      =SIMP(statut='o',typ='R' ),
26086            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),
26087            POSI_ANGUL      =SIMP(statut='f',typ='R' ),
26088            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),
26089            AZIMUT          =SIMP(statut='f',typ='R' ),
26090            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
26091            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),
26092            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),
26093            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
26094          ),
26095
26096          FISS_COUDE      =FACT(statut='f',
26097            regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
26098            AXIS            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
26099            b_axis_non    =BLOC(condition = "AXIS == 'NON' ",
26100                    LONGUEUR        =SIMP(statut='o',typ='R' ),
26101            ),
26102            b_axis_oui    =BLOC(condition = "AXIS == 'OUI' ",
26103                    LONGUEUR        =SIMP(statut='f',typ='R' ),
26104            ),
26105            PROFONDEUR      =SIMP(statut='o',typ='R' ),
26106            ABSC_CURV       =SIMP(statut='f',typ='R' ),
26107            POSI_ANGUL      =SIMP(statut='f',typ='R' ),
26108            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
26109            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
26110            ORIEN           =SIMP(statut='o',typ='R',
26111                                  into=(45.,-45.,90.,0.E+0) ),
26112            NB_TRANCHE      =SIMP(statut='o',typ='I' ),
26113            NB_SECTEUR      =SIMP(statut='o',typ='I' ),
26114            NB_COURONNE     =SIMP(statut='o',typ='I' ),
26115            RAYON_TORE      =SIMP(statut='f',typ='R' ),
26116            COEF_MULT_RC2   =SIMP(statut='f',typ='R',defaut= 1. ),
26117            COEF_MULT_RC3   =SIMP(statut='f',typ='R' ),
26118            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.5 ),
26119          ),
26120
26121          IMPRESSION      =FACT(statut='f',max='**',
26122            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
26123            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",
26124                                  into=("ASTER","IDEAS","CASTEM") ),
26125            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
26126              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
26127            ),
26128            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
26129              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
26130            ),
26131            FICHIER         =SIMP(statut='f',typ='TXM' ),
26132            UNITE           =SIMP(statut='f',typ='I' ),
26133          ),
26134
26135          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
26136 )  ;
26137
26138 # ======================================================================
26139 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
26140 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26141 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26142 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26143 # (AT YOUR OPTION) ANY LATER VERSION.
26144 #
26145 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26146 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26147 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26148 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26149 #
26150 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26151 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26152 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26153 # ======================================================================
26154 # person_in_charge: samuel.geniaut at edf.fr
26155
26156 def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,RESU_THER,**args):
26157   if MODELE      != None:self.type_sdprod(MODELE,modele_sdaster)
26158   if CHAM_MATER  != None:self.type_sdprod(CHAM_MATER,cham_mater)
26159   if CARA_ELEM   != None:self.type_sdprod(CARA_ELEM,cara_elem)
26160   if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
26161   if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
26162   if RESU_THER   != None:self.type_sdprod(RESU_THER,evol_ther)
26163   return evol_noli
26164
26165 MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",
26166                       op=OPS('Macro.macr_aspic_calc_ops.macr_aspic_calc_ops'),
26167                       sd_prod=macr_aspic_calc_prod,
26168                       fr="Réalise un calcul prédéfini de piquages sains ou fissurés " \
26169                          "ainsi que les post-traitements associés ",
26170                       UIinfo={"groupes":("Résolution","Outils-métier",)},
26171                       reentrant='n',
26172
26173          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
26174                                into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
26175                                      "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
26176
26177          TUBULURE        =FACT(statut='o',
26178            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
26179          ),
26180          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
26181          MODELE          =SIMP(statut='f',typ=CO,),
26182          CHAM_MATER      =SIMP(statut='f',typ=CO,),
26183          CARA_ELEM       =SIMP(statut='f',typ=CO,),
26184          FOND_FISS_1     =SIMP(statut='f',typ=CO,),
26185          FOND_FISS_2     =SIMP(statut='f',typ=CO,),
26186          RESU_THER       =SIMP(statut='f',typ=CO,),
26187
26188          AFFE_MATERIAU   =FACT(statut='o',max=3,
26189            regles=(UN_PARMI('TOUT','GROUP_MA'),),
26190            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
26191            GROUP_MA        =SIMP(statut='f',typ=grma,into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
26192            MATER           =SIMP(statut='o',typ=mater_sdaster),
26193            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
26194            RCCM            =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
26195          ),
26196
26197          EQUILIBRE       =FACT(statut='o',
26198            NOEUD           =SIMP(statut='o',typ=no),
26199          ),
26200
26201          PRES_REP        =FACT(statut='o',
26202            PRES            =SIMP(statut='o',typ='R'),
26203            NOEUD           =SIMP(statut='f',typ=no),
26204            EFFE_FOND       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
26205            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
26206            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
26207          ),
26208
26209          ECHANGE         =FACT(statut='f',
26210            COEF_H_TUBU     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
26211            COEF_H_CORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
26212            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
26213          ),
26214
26215          TORS_CORP       =FACT(statut='f',max=6,
26216            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
26217            NOEUD           =SIMP(statut='o',typ=no),
26218            FX              =SIMP(statut='f',typ='R'),
26219            FY              =SIMP(statut='f',typ='R'),
26220            FZ              =SIMP(statut='f',typ='R'),
26221            MX              =SIMP(statut='f',typ='R'),
26222            MY              =SIMP(statut='f',typ='R'),
26223            MZ              =SIMP(statut='f',typ='R'),
26224            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
26225          ),
26226
26227          TORS_TUBU       =FACT(statut='f',max=6,
26228            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
26229            FX              =SIMP(statut='f',typ='R'),
26230            FY              =SIMP(statut='f',typ='R'),
26231            FZ              =SIMP(statut='f',typ='R'),
26232            MX              =SIMP(statut='f',typ='R'),
26233            MY              =SIMP(statut='f',typ='R'),
26234            MZ              =SIMP(statut='f',typ='R'),
26235            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
26236          ),
26237
26238          COMPORTEMENT    =C_COMPORTEMENT('MACR_ASPIC_CALC'),
26239
26240          THETA_3D        =FACT(statut='f',max='**',
26241            R_INF           =SIMP(statut='o',typ='R'),
26242            R_SUP           =SIMP(statut='o',typ='R'),
26243          ),
26244
26245          OPTION          =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ),
26246          BORNES          =FACT(statut='f',max='**',
26247            NUME_ORDRE      =SIMP(statut='o',typ='I'),
26248            VALE_MIN        =SIMP(statut='o',typ='R'),
26249            VALE_MAX        =SIMP(statut='o',typ='R'),
26250          ),
26251
26252 #-------------------------------------------------------------------
26253 #        Catalogue commun SOLVEUR
26254          SOLVEUR         =C_SOLVEUR('MACR_ASPIC_CALC'),
26255 #-------------------------------------------------------------------
26256
26257          CONVERGENCE     =C_CONVERGENCE(),
26258
26259          NEWTON          =C_NEWTON(),
26260
26261          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
26262
26263          INCREMENT       =C_INCREMENT('MECANIQUE'),
26264
26265          PAS_AZIMUT      =SIMP(statut='f',typ='I',defaut=1),
26266
26267          ENERGIE         =FACT(statut='f',max=1,
26268            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
26269          ),
26270
26271          IMPRESSION      =FACT(statut='f',
26272            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
26273                                  into=("RESULTAT","ASTER","CASTEM","IDEAS")),
26274
26275            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
26276              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
26277            ),
26278
26279            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
26280              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
26281            ),
26282
26283            b_extrac        =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
26284                                  fr="extraction d un champ de grandeur",
26285              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
26286              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","SIEQ_ELNO","TEMP")),
26287
26288              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26289              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
26290              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
26291            ),
26292          ),
26293
26294          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26295
26296          TITRE           =SIMP(statut='f',typ='TXM'),
26297 )
26298
26299 # ======================================================================
26300 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
26301 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26302 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26303 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26304 # (AT YOUR OPTION) ANY LATER VERSION.
26305 #
26306 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26307 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26308 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26309 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26310 #
26311 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26312 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26313 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26314 # ======================================================================
26315 # person_in_charge: samuel.geniaut at edf.fr
26316
26317
26318 MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",
26319                       op=OPS('Macro.macr_aspic_mail_ops.macr_aspic_mail_ops'),
26320                       sd_prod=maillage_sdaster,
26321                       reentrant='n',
26322                       fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)",
26323                       UIinfo={"groupes":("Maillage","Outils-métier",)},
26324
26325          EXEC_MAILLAGE   =FACT(statut='o',
26326            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")),
26327            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),
26328            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),
26329            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
26330          ),
26331
26332          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
26333
26334          RAFF_MAIL       =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
26335
26336          TUBULURE        =FACT(statut='o',
26337            E_BASE          =SIMP(statut='o',typ='R'),
26338            DEXT_BASE       =SIMP(statut='o',typ='R'),
26339            L_BASE          =SIMP(statut='o',typ='R'),
26340            L_CHANF         =SIMP(statut='o',typ='R'),
26341            E_TUBU          =SIMP(statut='o',typ='R'),
26342            DEXT_TUBU       =SIMP(statut='o',typ='R'),
26343            Z_MAX           =SIMP(statut='o',typ='R'),
26344            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
26345            L_PENETR        =SIMP(statut='f',typ='R',defaut= 0.0E+0),
26346          ),
26347
26348          SOUDURE         =FACT(statut='o',
26349            H_SOUD          =SIMP(statut='o',typ='R'),
26350            ANGL_SOUD       =SIMP(statut='o',typ='R'),
26351            JEU_SOUD        =SIMP(statut='o',typ='R'),
26352          ),
26353
26354          CORPS           =FACT(statut='o',
26355            E_CORP          =SIMP(statut='o',typ='R'),
26356            DEXT_CORP       =SIMP(statut='o',typ='R'),
26357            X_MAX           =SIMP(statut='o',typ='R'),
26358          ),
26359
26360          FISS_SOUDURE    =FACT(statut='f',
26361            TYPE            =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
26362            AXIS            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
26363            PROFONDEUR      =SIMP(statut='o',typ='R'),
26364            LONGUEUR        =SIMP(statut='f',typ='R'),
26365            AZIMUT          =SIMP(statut='o',typ='R'),
26366            RAYON_TORE      =SIMP(statut='f',typ='R'),
26367            POSITION        =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
26368            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
26369            LIGA_INT        =SIMP(statut='f',typ='R'),
26370            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
26371            COEF_MULT_RC1   =SIMP(statut='f',typ='R'),
26372            COEF_MULT_RC2   =SIMP(statut='f',typ='R'),
26373            COEF_MULT_RC3   =SIMP(statut='f',typ='R'),
26374            NB_TRANCHE      =SIMP(statut='f',typ='I'),
26375            NB_SECTEUR      =SIMP(statut='f',typ='I'),
26376            NB_COURONNE     =SIMP(statut='f',typ='I'),
26377          ),
26378
26379          IMPRESSION      =FACT(statut='f',max='**',
26380            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
26381            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
26382
26383            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
26384              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
26385            ),
26386
26387            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
26388              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
26389            ),
26390            FICHIER         =SIMP(statut='f',typ='TXM'),
26391            UNITE           =SIMP(statut='f',typ='I'),
26392          ),
26393
26394          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26395 )  ;
26396
26397 # ======================================================================
26398 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
26399 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26400 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26401 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26402 # (AT YOUR OPTION) ANY LATER VERSION.
26403 #
26404 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26405 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26406 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26407 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26408 #
26409 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26410 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26411 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26412 # ======================================================================
26413 # person_in_charge: jean-luc.flejou at edf.fr
26414
26415
26416 MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",
26417                        op=OPS('Macro.macr_cara_poutre_ops.macr_cara_poutre_ops'),
26418                        sd_prod=table_sdaster,
26419                        reentrant='n',
26420                        UIinfo={"groupes":("Modélisation",)},
26421                        fr="Calculer les caractéristiques d'une section transversale de " \
26422                           "poutre à partir d'un maillage 2D de la section",
26423          regles=(
26424             EXCLUS('SYME_Y','GROUP_MA_BORD'),
26425             EXCLUS('SYME_Z','GROUP_MA_BORD'),
26426          ),
26427
26428          MAILLAGE    =SIMP(statut='f',typ=maillage_sdaster, fr="Nom du concept maillage"),
26429          b_maillage  =BLOC(
26430             condition = "MAILLAGE == None",
26431             regles=( PRESENT_PRESENT('FORMAT','UNITE') ),
26432             FORMAT   =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
26433                            fr="Format du fichier"),
26434             UNITE    =SIMP(statut='f',typ='I',defaut= 20,
26435                            fr="Unite correspondant au format du fichier maillage"),
26436          ),
26437
26438          ORIG_INER      =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
26439                               fr="Point par rapport auquel sont calculées les inerties"),
26440          INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
26441
26442          TABLE_CARA     =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",),
26443
26444          SYME_Y         =SIMP(statut='f',typ='TXM',into=("OUI",), fr="demi maillage par rapport a y=0"),
26445          SYME_Z         =SIMP(statut='f',typ='TXM',into=("OUI",), fr="demi maillage par rapport a z=0"),
26446
26447          GROUP_MA       =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
26448                               fr="Calcul des caractéristiques équivalentes à plusieurs sections disjointes"),
26449
26450          GROUP_MA_BORD  =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
26451                               fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
26452
26453          b_nom =BLOC(
26454             condition = """(TABLE_CARA == 'OUI') and (GROUP_MA == None)""",
26455             NOM   =SIMP(statut='f',typ='TXM',max=1,validators=LongStr(1,8),
26456                         fr="Nom de la section, 8 caractères maximum.")
26457          ),
26458
26459          b_gma_bord  =BLOC(
26460             condition = "GROUP_MA_BORD != None",
26461             fr=" calcul des carac. mecaniques",
26462             regles=(UN_PARMI('NOEUD','GROUP_NO')),
26463             NOEUD          =SIMP(statut='f',typ=no,max='**',
26464                                  fr="Simplement pour empecher des pivots nuls le cas echeant. "
26465                                     "Fournir un noeud quelconque"),
26466             GROUP_NO       =SIMP(statut='f',typ=grno,max='**',
26467                                  fr="Simplement pour empecher des pivots nuls le cas echeant. "
26468                                     "Fournir un noeud quelconque par GROUP_MA"),
26469             GROUP_MA_INTE  =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
26470                                  fr="groupes de mailles linéiques bordant des trous dans la section"),
26471           ),
26472
26473          b_reseau = BLOC(
26474             condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
26475             fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
26476             regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
26477             LONGUEUR =SIMP(statut='f',typ='R',
26478                            fr="Longueur du réseau de poutres"),
26479             MATERIAU =SIMP(statut='f',typ=mater_sdaster,
26480                            fr="Materiau elastique lineaire du reseau"),
26481             LIAISON  =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
26482                            fr="type de conditions aux limites sur le plancher supérieur" ),
26483          ),
26484 )
26485
26486 # ======================================================================
26487 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
26488 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26489 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26490 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26491 # (AT YOUR OPTION) ANY LATER VERSION.
26492 #
26493 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26494 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26495 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26496 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26497 #
26498 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26499 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26500 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26501 # ======================================================================
26502 # person_in_charge: j-pierre.lefebvre at edf.fr
26503
26504
26505 def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
26506   self.type_sdprod(RESULTAT,AsType(RESU_INIT))
26507   self.type_sdprod(MAILLAGE,maillage_sdaster)
26508   return None
26509
26510
26511 MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",
26512                    op=OPS('Macro.macr_ecla_pg_ops.macr_ecla_pg_ops'),
26513                    sd_prod=macr_ecla_pg_prod,
26514                    reentrant='n',
26515                    UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
26516                    fr="Permettre la visualisation des champs aux points de Gauss d'une " \
26517                       "SD_RESULTAT sans lissage ni interpolation",
26518
26519              # SD résultat ,modèle et champs à "éclater" :
26520              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
26521              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
26522              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO('ELGA'),),
26523
26524              # paramètres numériques de la commande :
26525              SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
26526              TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
26527
26528              # concepts produits par la commande :
26529              RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
26530              MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
26531
26532              # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :
26533              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26534              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
26535              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
26536
26537              # Sélection des numéros d'ordre :
26538              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
26539              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
26540              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
26541              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
26542              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
26543              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
26544              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
26545              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
26546                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
26547              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
26548                  PRECISION       =SIMP(statut='o',typ='R',),),
26549             )
26550
26551 # ======================================================================
26552 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
26553 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26554 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26555 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26556 # (AT YOUR OPTION) ANY LATER VERSION.
26557 #
26558 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26559 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26560 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26561 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26562 #
26563 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26564 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26565 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26566 # ======================================================================
26567 # person_in_charge: marina.bottoni at edf.fr
26568
26569
26570 def macr_ecre_calc_prod(self,TABLE,DEBIT,**args):
26571
26572   self.type_sdprod(TABLE,table_sdaster)
26573   self.type_sdprod(DEBIT,table_sdaster)
26574   return None
26575
26576 MACR_ECRE_CALC=MACRO(nom="MACR_ECRE_CALC",
26577                      op=OPS('Macro.macr_ecre_calc_ops.macr_ecre_calc_ops'),
26578                      sd_prod=macr_ecre_calc_prod,
26579                      reentrant='n',
26580                      UIinfo={"groupes":("Résolution","Outils-métier",)},
26581                      fr="Procedure de couplage avec Ecrevisse",
26582
26583                      regles = (UN_PARMI('LOGICIEL','VERSION'),),
26584
26585 #      CONCEPTS SORTANT : 2 TABLES POUR LE POST-TRAITEMENT
26586 #      ********************************************
26587          TABLE              =SIMP(statut='o',typ=CO),
26588          DEBIT              =SIMP(statut='o',typ=CO),
26589
26590 #      DONNEES GEOMETRIQUES RELATIVES A LA FISSURE
26591 #      *******************************************
26592
26593          FISSURE            =FACT(statut='o',min=1,max=1,
26594            LONGUEUR            =SIMP(statut='o',typ='R',val_min=0.E+0,fr="Longueur de la fissure [zl]"),
26595            RUGOSITE            =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]"),
26596            ANGLE               =SIMP(statut='o',typ='R',fr="Angle par rapport a l'ascendante verticale (degres)"),
26597            ZETA                =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]"),
26598            SECTION             =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]"),
26599            b_section_ellipse   =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique",
26600              LISTE_COTES_AH      =SIMP(statut='o',typ='R',max='**',
26601                                        fr="Liste des cotes des points definissant le grand axe de la section",
26602                                        validators=NoRepeat()),
26603              LISTE_VAL_AH        =SIMP(statut='o',typ='R',max='**',
26604                                        fr="Liste des valeurs des points definissant le grand axe de la section",),
26605              LISTE_COTES_BL      =SIMP(statut='o',typ='R',max='**',
26606                                        fr="Liste des cotes des points definissant le petit axe de la section",
26607                                        validators=NoRepeat()),
26608              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
26609                                        fr="Liste des valeurs des points definissant le petit axe de la section",),
26610            ),
26611            b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire",
26612              LISTE_COTES_AH      =SIMP(statut='o',typ='R',max='**',
26613                                        fr="Liste des cotes des points definissant la hauteur de la section",
26614                                        validators=NoRepeat()),
26615              LISTE_VAL_AH        =SIMP(statut='o',typ='R',max='**',
26616                                        fr="Liste des valeurs des points definissant la hauteur de la section",),
26617              LISTE_COTES_BL      =SIMP(statut='o',typ='R',max='**',
26618                                        fr="Liste des cotes des points definissant la largeur de la section",
26619                                        validators=NoRepeat()),
26620              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
26621                                        fr="Liste des valeurs des points definissant la largeur de la section",),
26622            ),
26623          ),
26624
26625
26626 #      DONNEES RELATIVES A L"ECOULEMENT
26627 #      ********************************
26628
26629          ECOULEMENT         =FACT(statut='f',min=1,max=1,
26630            PRES_ENTREE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ),
26631            PRES_SORTIE         =SIMP(statut='o',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ),
26632            FLUIDE_ENTREE       =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ),
26633            b_condition_1       =BLOC(condition="FLUIDE_ENTREE==1",fr="Eau sous-refroidie ou saturee",
26634              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26635            ),
26636            b_condition_2       =BLOC(condition="FLUIDE_ENTREE==2",fr="Fluide diphasique",
26637              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
26638            ),
26639            b_condition_3       =BLOC(condition="FLUIDE_ENTREE==3",fr="Vapeur saturee ou surchauffee",
26640              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26641            ),
26642            b_condition_4       =BLOC(condition="FLUIDE_ENTREE==4",fr="Air + vapeur surchauffee",
26643              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26644              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
26645            ),
26646            b_condition_5       =BLOC(condition="FLUIDE_ENTREE==5",fr="Air + vapeur saturee",
26647              TITR_MASS           =SIMP(statut='o',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
26648              PRES_PART           =SIMP(statut='o',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
26649            ),
26650            b_condition_6       =BLOC(condition="FLUIDE_ENTREE==6",fr="Air seul",
26651              TEMP_ENTREE         =SIMP(statut='o',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26652            ),
26653          ),
26654
26655
26656 #      DONNEES RELATIVES AU PROFIL DE TEMPERATURE A TRAVERS LA PAROI
26657 #      *************************************************************
26658
26659          TEMPERATURE        =FACT(statut='f',min=1,max=1,
26660            GRADIENT            =SIMP(statut='o',typ='TXM',into=("FOURNI","IMPOSE","CALCULE"),
26661                                      fr="Modele de calcul du gradient de temperature [imograd]" ),
26662            b_gradient_fourni   =BLOC(condition="GRADIENT=='FOURNI'",fr="Distribution de temperature fournie [imograd=-1]",
26663              LISTE_COTES_TEMP    =SIMP(statut='o',typ='R',max='**',fr="Liste des cotes pour les temperatures",
26664                                        validators=NoRepeat() ),
26665              LISTE_VAL_TEMP      =SIMP(statut='o',typ='R',max='**',fr="Liste des valeurs de temperature", ),
26666            ),
26667            b_gradient_impose   =BLOC(condition="GRADIENT=='IMPOSE'",fr="Distribution imposee de temperature [imograd=0]",
26668              TEMP1               =SIMP(statut='o',typ='R',
26669                                        fr="Gradient de temperature de la paroi le long de l'ecoulement (degC/m) [tm1]", ),
26670              TEMP2               =SIMP(statut='o',typ='R',fr="Temperature de la paroi a l'entree (degC) [tm2]", ),
26671            ),
26672            b_gradient_calcule  =BLOC(condition="GRADIENT=='CALCULE'",fr="Profil de temperature calcule [imograd=1]",
26673              EPAISSEUR_PAROI     =SIMP(statut='o',typ='R',fr="Epaisseur de la paroi (m) [epp]", ),
26674              CONVECTION_AMONT    =SIMP(statut='o',typ='R',
26675                                        fr="Coefficient de convection a la surface de la paroi cote amont (W/degC/m2) [alphe]", ),
26676              CONVECTION_AVAL     =SIMP(statut='o',typ='R',
26677                                        fr="Coefficient de convection a la surface de la paroi cote aval (W/degC/m2) [alphs]", ),
26678              LAMBDA              =SIMP(statut='o',typ='R',fr="Conduction thermique de la paroi (W/degC/m) [lambd]", ),
26679              TEMP_FLUIDE_AVAL    =SIMP(statut='o',typ='R',fr="Temperature du fluide cote aval (degC) [ts]", ),
26680            ),
26681          ),
26682
26683
26684 #      CHOIX DES MODELES
26685 #      *****************
26686
26687          MODELE_ECRE        =FACT(statut='f',min=1,max=1,
26688            IVENAC              =SIMP(statut='f', typ='I', into=(0,1), defaut=0,
26689                                      fr="Calcul ECREVISSE avec prise en compte de la vena contracta"),
26690            ECOULEMENT          =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"),
26691                                      fr="Type de modele d'ecoulement diphasique [imod]" ),
26692            b_ecou_gele         =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele",
26693              PRESS_EBULLITION    =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]"),
26694            ),
26695            FROTTEMENT          =SIMP(statut='o',typ='I',into=(-4,-3,-2,-1,0,1,2,3,4,11,12,13,14),fr="Correlation de frottement [ifrot]"),
26696            b_frottement        =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele",
26697              REYNOLDS_LIM        =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]"),
26698              FROTTEMENT_LIM      =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]"),
26699            ),
26700
26701            TRANSFERT_CHAL      =SIMP(statut='o',typ='I',into=(-12,-11,-2,-1,0,1,2,11,12),fr="Transfert de chaleur [ichal]"),
26702            b_transchal         =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique",
26703              XMINCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"),
26704              XMAXCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"),
26705            ),
26706          ),
26707
26708
26709 #      DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE
26710 #      ********************************************
26711
26712          CONVERGENCE        =FACT(statut='f',min=1,max=1,
26713            KGTEST              =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0,
26714                                      fr="Parametre de l'algorithme iteratif [kgtest]" ),
26715            ITER_GLOB_MAXI      =SIMP(statut='f',typ='I',defaut= 400,
26716                                      fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ),
26717            CRIT_CONV_DEBI      =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5,
26718                                      fr="Critere de convergence en debit [precdb]" ),
26719          ),
26720
26721
26722 #      GENERAL
26723 #      *******
26724
26725          COURBES            =SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE",
26726                                   fr="Generation eventuelle des courbes" ),
26727          LOGICIEL           =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),),
26728          VERSION            =SIMP(statut='f',typ='TXM',into = ("3.2.1",) ),
26729          ENTETE             =SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ),
26730          IMPRESSION         =SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ),
26731          INFO               =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
26732
26733 )  ;
26734
26735 # ======================================================================
26736 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
26737 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
26738 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
26739 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
26740 # (AT YOUR OPTION) ANY LATER VERSION.
26741 #
26742 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
26743 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
26744 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
26745 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
26746 #
26747 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
26748 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
26749 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
26750 # ======================================================================
26751 # person_in_charge: marina.bottoni at edf.fr
26752
26753
26754 def macr_ecrevisse_prod(self,TABLE,TEMPER,DEBIT,**args):
26755     # On definit ici les concepts produits
26756     self.type_sdprod(TABLE,table_sdaster)
26757     self.type_sdprod(TEMPER,evol_ther)
26758     self.type_sdprod(DEBIT,table_sdaster)
26759     # concept retourne
26760     return evol_noli
26761
26762
26763 MACR_ECREVISSE=MACRO(nom="MACR_ECREVISSE",
26764                      op=OPS('Macro.macr_ecrevisse_ops.macr_ecrevisse_ops'),
26765                      sd_prod=macr_ecrevisse_prod,
26766                      reentrant='f',
26767                      UIinfo={"groupes":("Résolution","Outils-métier",)},
26768                      fr="Procedure de couplage avec Ecrevisse",
26769
26770        reuse  = SIMP(statut='f',typ='evol_noli'),
26771        regles = (EXCLUS('TEMPER','ETAT_INIT'),
26772                  UN_PARMI('LOGICIEL','VERSION'),),
26773
26774 #      CONCEPT SORTANT
26775 #      ********************************************
26776          TABLE              =SIMP(statut='f',typ=CO),
26777          DEBIT              =SIMP(statut='f',typ=CO),
26778          TEMPER             =SIMP(statut='f',typ=CO),
26779
26780 #      ETAT_INITIAL
26781 #      ********************************************
26782          ETAT_INIT       =FACT(statut='f',
26783              EVOL_NOLI       =SIMP(statut='o',typ=evol_noli),
26784              EVOL_THER       =SIMP(statut='o',typ=evol_ther),
26785              NUME_ORDRE      =SIMP(statut='o',typ='I'),
26786          ),
26787
26788
26789 #      MODELES MECANIQUES
26790 #      ********************************************
26791          MODELE_MECA        =SIMP(statut='o',typ=modele_sdaster),
26792          MODELE_THER        =SIMP(statut='o',typ=modele_sdaster),
26793
26794
26795 #      DONNEES GEOMETRIQUES RELATIVES A LA FISSURE
26796 #      *******************************************
26797          FISSURE            =FACT(statut='o',min=1,max='**',
26798            PREFIXE_FICHIER     =SIMP(statut='f',typ='TXM',validators=LongStr(1,8)),
26799            GROUP_MA            =SIMP(statut='o',typ=grma,validators=NoRepeat(),min=2,max=2,
26800                                      fr="Groupe(s) des noeuds definissant les levres de la fissure"),
26801            GROUP_NO_ORIG       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
26802            GROUP_NO_EXTR       =SIMP(statut='o',typ=grno,validators=NoRepeat(),min=2,max=2),
26803            ZETA                =SIMP(statut='o',typ='R',fr="Coefficient de la perte de charge singuliere a l'entree [zeta]" ),
26804            RUGOSITE            =SIMP(statut='o',typ='R',fr="Rugosite absolu (metres) [eps]" ),
26805            TORTUOSITE          =SIMP(statut='f',typ='R',defaut=1.0, val_min=0., val_max=1.0,
26806                                        fr="Coefficient de tortuosite de la fissure" ),
26807            OUVERT_REMANENTE    =SIMP(statut='o',typ='R',val_min=0.,fr="Ouverture remanente"),
26808            SECTION             =SIMP(statut='o',typ='TXM',into=("ELLIPSE","RECTANGLE"),fr="Type de section [is]" ),
26809            b_section_ellipse   =BLOC(condition="SECTION=='ELLIPSE'",fr="Fissure a section elliptique",
26810              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
26811                                        fr="Liste des cotes des points definissant le petit axe de la section",
26812                                        validators=NoRepeat() ),
26813              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
26814                                        fr="Liste des valeurs des points definissant le petit axe de la section", ),
26815            ),
26816            b_section_rectangle =BLOC(condition="SECTION=='RECTANGLE'",fr="Fissure a section rectangulaire",
26817              LISTE_COTES_BL      =SIMP(statut='f',typ='R',max='**',
26818                                        fr="Liste des cotes des points definissant la largeur de la section",validators=NoRepeat()),
26819              LISTE_VAL_BL        =SIMP(statut='o',typ='R',max='**',
26820                                        fr="Liste des valeurs des points definissant la largeur de la section", ),
26821            ),
26822          ),
26823
26824
26825 #      DONNEES RELATIVES A L"ECOULEMENT
26826 #      ********************************
26827          ECOULEMENT         =FACT(statut='o',min=1,max=1,
26828                                   regles=(UN_PARMI('PRES_ENTREE','PRES_ENTREE_FO'),
26829                                           UN_PARMI('PRES_SORTIE','PRES_SORTIE_FO'),
26830                                           ),
26831            PRES_ENTREE         =SIMP(statut='f',typ='R',fr="Pression de stagnation a l'entree (Pa) [pe]" ),
26832            PRES_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26833                                      fr="Evolution de la pression de stagnation a l'entree (Pa) [pe]" ),
26834            PRES_SORTIE         =SIMP(statut='f',typ='R',fr="Pression de stagnation a la sortie (Pa) [ps]" ),
26835            PRES_SORTIE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26836                                      fr="Evolution de la pression de stagnation a la sortie (Pa) [ps]" ),
26837            FLUIDE_ENTREE       =SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),fr="Condition du fluide a l'entree [iflow]" ),
26838            b_condition_1       =BLOC(condition="FLUIDE_ENTREE==1",
26839                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')),
26840                                      fr="Eau sous-refroidie ou saturee",
26841              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26842              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26843                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
26844            ),
26845            b_condition_2       =BLOC(condition="FLUIDE_ENTREE==2",
26846                                      regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO')),
26847                                      fr="Fluide diphasique",
26848              TITR_MASS           =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
26849              TITR_MASS_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26850                                        fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ),
26851            ),
26852            b_condition_3       =BLOC(condition="FLUIDE_ENTREE==3",
26853                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')),
26854                                      fr="Vapeur saturee ou surchauffee",
26855              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26856              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26857                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
26858            ),
26859            b_condition_4       =BLOC(condition="FLUIDE_ENTREE==4",
26860                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO'),
26861                                              UN_PARMI('PRES_PART', 'PRES_PART_FO')),
26862                                      fr="Air + vapeur surchauffee",
26863              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26864              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26865                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
26866              PRES_PART           =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
26867              PRES_PART_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26868                                        fr="Evolution de la pression partielle air en entree (Pa) [pae]" ),
26869            ),
26870            b_condition_5       =BLOC(condition="FLUIDE_ENTREE==5",
26871                                      regles=(UN_PARMI('TITR_MASS', 'TITR_MASS_FO'),
26872                                              UN_PARMI('PRES_PART', 'PRES_PART_FO')),
26873                                      fr="Air + vapeur saturee",
26874              TITR_MASS           =SIMP(statut='f',typ='R',fr="Titre massique eau vap/eau tot a l'entree [xe]" ),
26875              TITR_MASS_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26876                                        fr="Evolution du titre massique eau vap/eau tot a l'entree [xe]" ),
26877              PRES_PART           =SIMP(statut='f',typ='R',fr="Pression partielle air en entree (Pa) [pae]" ),
26878              PRES_PART_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26879                                        fr="Evolution de la pression partielle air en entree (Pa) [pae]" ),
26880            ),
26881            b_condition_6       =BLOC(condition="FLUIDE_ENTREE==6",
26882                                      regles=(UN_PARMI('TEMP_ENTREE', 'TEMP_ENTREE_FO')),
26883                                      fr="Air seul",
26884              TEMP_ENTREE         =SIMP(statut='f',typ='R',fr="Temperature a l'entree (degres C) [te]" ),
26885              TEMP_ENTREE_FO      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
26886                                        fr="Evolution de la temperature a l'entree (degres C) [te]" ),
26887            ),
26888          ),
26889
26890          LIST_INST =SIMP(statut='f',typ=(listr8_sdaster), fr="Liste des instants de calcul imposes" ),
26891
26892 #      CHOIX DES MODELES
26893 #      *****************
26894
26895          MODELE_ECRE        =FACT(statut='o',min=1,max=1,
26896            IVENAC              =SIMP(statut='f', typ='I', into=(0,1), defaut=0,
26897                                      fr="Calcul ECREVISSE avec prise en compte de la vena contracta"),
26898            ECOULEMENT          =SIMP(statut='o',typ='TXM',into=("SATURATION","GELE"),
26899                                      fr="Type de modele d'ecoulement diphasique [imod]" ),
26900            b_ecou_gele         =BLOC(condition="ECOULEMENT=='GELE'",fr="Modele d'ecoulement gele",
26901              PRESS_EBULLITION  =SIMP(statut='o',typ='R',fr="Pression d'ebullition [corrp*psat(t)]" ),
26902            ),
26903            FROTTEMENT          =SIMP(statut='o',typ='I',into=(-4,-3,-2,-1,0,1,2,3,4,11,12,13,14),fr="Correlation de frottement [ifrot]" ),
26904            b_frottement        =BLOC(condition="FROTTEMENT<0",fr="Modele d'ecoulement gele",
26905              REYNOLDS_LIM        =SIMP(statut='o',typ='R',fr="Coefficient de Reynolds limite [relim]" ),
26906              FROTTEMENT_LIM      =SIMP(statut='o',typ='R',fr="Coefficient de frottement impose [frtlim]" ),
26907            ),
26908
26909            TRANSFERT_CHAL      =SIMP(statut='o',typ='I',into=(-12,-11,-2,-1,0,1,2,11,12),fr="Transfert de chaleur [ichal]" ),
26910            b_transchal         =BLOC(condition="TRANSFERT_CHAL<0", fr="Cas diphasique",
26911              XMINCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux min [xminch]"),
26912              XMAXCH              =SIMP(statut='o',typ='R',fr="Titre massique gazeux max [xmaxch]"),
26913            ),
26914          ),
26915
26916
26917 #      CRITERE DE CONVERGENCE
26918 #      **********************
26919
26920          CONV_CRITERE       =FACT(statut='o',min=1,max=1,
26921            TEMP_REF            =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Temperature de reference pour le calcul du critere"),
26922            PRES_REF            =SIMP(statut='o',typ='R',val_min=1.0E-5,fr="Pression de reference pour le calcul du critere"),
26923            CRITERE             =SIMP(statut='o',typ='TXM',defaut="TEMP_PRESS",into=("TEMP_PRESS","EXPLICITE","TEMP","PRESS"),
26924                                      fr="La nature du critere pour la convergence"),
26925            b_critere_autre     =BLOC(condition="CRITERE=='TEMP_PRESS' or CRITERE=='TEMP' or CRITERE=='PRESS'",
26926                                      fr="Critere de convergence temp_press, temp, ou press",
26927              SUBD_NIVEAU         =SIMP(statut='f',typ='I',val_min=2,defaut=3,
26928                                        fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
26929              SUBD_PAS_MINI       =SIMP(statut='f',typ='R',val_min=0.0, fr="Pas de temps en dessous duquel on ne subdivise plus"),
26930              NUME_ORDRE_MIN      =SIMP(statut='f',typ='I',val_min=-1,defaut=-1,
26931                                        fr="Numero d'ordre a partir duquel le critere est pris en compte"),
26932              PREC_CRIT           =SIMP(statut='f',typ='R',val_min=1.0E-2,defaut=1.0,
26933                                        fr="Valeur du critere pour l'erreur de convergence"),
26934            ),
26935          ),
26936
26937
26938 #      DONNEES RELATIVES A LA CONVERGENCE NUMERIQUE
26939 #      ********************************************
26940
26941          CONVERGENCE_ECREVISSE =FACT(statut='f',min=1,max=1,
26942            KGTEST                 =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 0.5E+0,
26943                                         fr="Parametre de l'algorithme iteratif [kgtest]" ),
26944            ITER_GLOB_MAXI         =SIMP(statut='f',typ='I',defaut= 400,
26945                                         fr="Nombre maximum d'iterations de la methode de Newton [itnmax]" ),
26946            CRIT_CONV_DEBI         =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=1.E+0,defaut= 1.E-5,
26947                                         fr="Critere de convergence en debit [precdb]" ),
26948          ),
26949
26950
26951 #      GENERAL
26952 #      *******
26953
26954          COURBES            = SIMP(statut='f',typ='TXM',into=("INTERACTIF","POSTSCRIPT","AUCUNE"),defaut="AUCUNE",
26955                                   fr="Generation eventuelle des courbes" ),
26956          LOGICIEL           = SIMP(statut='f',typ='TXM',validators=LongStr(1,255),),
26957          VERSION            = SIMP(statut='f',typ='TXM',into = ("3.2.1",) ),
26958          ENTETE             = SIMP(statut='f',typ='TXM',max='**',defaut="Titre du calcul Ecrevisse" ),
26959          IMPRESSION         = SIMP(statut='f',typ='TXM',defaut='NON',into=( 'OUI','NON') ),
26960          INFO               = SIMP(statut='f',typ='I',defaut="1",into=(1,2) ),
26961
26962 #      DONNEES POUR STAT_NON_LINE ET THER_NON_LINE
26963 #      *******************************************
26964
26965          # copie de stat_non_line.capy des options des mots cles qui nous interessent
26966
26967          # donnees communes
26968
26969          CHAM_MATER         =SIMP(statut='o',typ=cham_mater),
26970          CARA_ELEM          =SIMP(statut='f',typ=cara_elem),
26971
26972          # donnees specifiques a stat_non_line
26973
26974          EXCIT_MECA         =FACT(statut='o',max='**',
26975            CHARGE              =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
26976            FONC_MULT           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
26977            TYPE_CHARGE         =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
26978                                      into=("FIXE_CSTE","SUIV","DIDI")),
26979          ),
26980
26981          CONTACT            = SIMP(statut='o',typ=char_contact),
26982
26983          COMPORTEMENT          = C_COMPORTEMENT(),
26984          NEWTON             = FACT(statut='d',
26985            REAC_INCR           =SIMP(statut='f',typ='I',defaut= 1 ),
26986            PREDICTION          =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
26987            MATRICE             =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
26988            PAS_MINI_ELAS       =SIMP(statut='f',typ='R',defaut=0.0E+0),
26989            REAC_ITER           =SIMP(statut='f',typ='I',defaut=0),
26990            REAC_ITER_ELAS      =SIMP(statut='f',typ='I',defaut=0),
26991            EVOL_NOLI           =SIMP(statut='f',typ=evol_noli),
26992          ),
26993          CONVERGENCE        = FACT(statut='d',regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
26994            b_refe_rela         =BLOC(condition = "RESI_REFE_RELA != None",
26995                                      regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
26996                                                          'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),
26997                                             ),
26998              SIGM_REFE           =SIMP(statut='f',typ='R'),
26999              EPSI_REFE           =SIMP(statut='f',typ='R'),
27000              FLUX_THER_REFE      =SIMP(statut='f',typ='R'),
27001              FLUX_HYD1_REFE      =SIMP(statut='f',typ='R'),
27002              FLUX_HYD2_REFE      =SIMP(statut='f',typ='R'),
27003              VARI_REFE           =SIMP(statut='f',typ='R'),
27004            ),
27005            RESI_REFE_RELA   =SIMP(statut='f',typ='R'),
27006            RESI_GLOB_MAXI   =SIMP(statut='f',typ='R'),
27007            RESI_GLOB_RELA   =SIMP(statut='f',typ='R'),
27008            ITER_GLOB_MAXI   =SIMP(statut='f',typ='I',defaut=10),
27009            ITER_GLOB_ELAS   =SIMP(statut='f',typ='I',defaut=25),
27010            ARRET            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
27011          ),
27012
27013          ENERGIE         =FACT(statut='f',max=1,
27014            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
27015          ),
27016
27017          # donnees specifiques a ther_lineaire
27018
27019          EXCIT_THER         =FACT(statut='o',max='**',
27020            CHARGE              =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
27021            FONC_MULT           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
27022          ),
27023          PARM_THETA         =SIMP(statut='f',typ='R',defaut= 0.57),
27024
27025 )
27026
27027 # ======================================================================
27028 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
27029 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27030 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27031 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27032 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27033 #
27034 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27035 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27036 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27037 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27038 #
27039 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27040 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27041 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27042 # ======================================================================
27043 # person_in_charge: mathieu.corus at edf.fr
27044
27045 MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
27046                     fr="Definition d'un macro element pour analyse modale ou harmonique par sous structuration dynamique",
27047                     reentrant='n',
27048             UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
27049          regles=(
27050                  # AMOR_REDUIT et MATR_AMOR sont redondants
27051                  EXCLUS('MATR_AMOR','AMOR_REDUIT' ),
27052                  
27053                  # Si MODELE_MESURE, on ne rentre pas de donnees pour le calcul
27054                  EXCLUS('MODELE_MESURE','MATR_RIGI' ),
27055                  EXCLUS('MODELE_MESURE','MATR_MASS' ),
27056                  EXCLUS('MODELE_MESURE','MATR_AMOR' ),
27057                  EXCLUS('MODELE_MESURE','AMOR_REDUIT' ),
27058                  EXCLUS('MODELE_MESURE','MATR_IMPE' ),
27059                  EXCLUS('MODELE_MESURE','MATR_IMPE_RIGI' ),
27060                  EXCLUS('MODELE_MESURE','MATR_IMPE_MASS' ),
27061                  EXCLUS('MODELE_MESURE','MATR_IMPE_AMOR' ),
27062                  
27063                  PRESENT_ABSENT('MATR_IMPE','MATR_IMPE_RIGI'),
27064                  PRESENT_ABSENT('MATR_IMPE','MATR_IMPE_MASS'),
27065                  PRESENT_ABSENT('MATR_IMPE','MATR_IMPE_AMOR'),
27066                  PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),
27067                  PRESENT_ABSENT('MATR_IMPE_MASS','MATR_RIGI','MATR_MASS'),
27068                  PRESENT_ABSENT('MATR_IMPE_RIGI','MATR_RIGI','MATR_MASS'),
27069                  PRESENT_ABSENT('MATR_IMPE_AMOR','MATR_RIGI','MATR_MASS'),),
27070          BASE_MODALE     =SIMP(statut='o',typ=mode_meca ),
27071          MATR_RIGI       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c),),
27072          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
27073          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
27074          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'), 
27075          SANS_GROUP_NO   =SIMP(statut='f',typ=grno ),
27076          MATR_IMPE       =SIMP(statut='f',typ=matr_asse_gene_c ),
27077          MATR_IMPE_RIGI  =SIMP(statut='f',typ=matr_asse_gene_c ),
27078          MATR_IMPE_MASS  =SIMP(statut='f',typ=matr_asse_gene_c ),
27079          MATR_IMPE_AMOR  =SIMP(statut='f',typ=matr_asse_gene_c ),
27080          MODELE_MESURE   =FACT(statut='f',
27081            FREQ            =SIMP(statut='o',typ='R',max='**' ),
27082            MASS_GENE       =SIMP(statut='o',typ='R',max='**' ),
27083            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
27084                               ),
27085          b_matr_impe     =BLOC(condition = "MATR_IMPE != None",
27086              FREQ_EXTR       =SIMP(statut='o',typ='R' ),
27087              AMOR_SOL        =SIMP(statut='f',typ='R',defaut=0.E+0 ),
27088              MATR_IMPE_INIT  =SIMP(statut='f',typ=matr_asse_gene_c ),
27089            ),
27090          CAS_CHARGE      =FACT(statut='f',max='**',
27091            NOM_CAS         =SIMP(statut='o',typ='TXM'),
27092            VECT_ASSE_GENE  =SIMP(statut='o',typ=vect_asse_gene ),
27093          ),
27094 )  ;
27095
27096 # ======================================================================
27097 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
27098 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27099 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27100 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27101 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27102 #
27103 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27104 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27105 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27106 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27107 #
27108 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27109 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27110 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27111 # ======================================================================
27112 # person_in_charge: jacques.pellet at edf.fr
27113 MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f',
27114             UIinfo={"groupes":("Matrices et vecteurs",)},
27115                     fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration",
27116         regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),
27117                 ENSEMBLE('DEFINITION','EXTERIEUR'),),
27118          DEFINITION      =FACT(statut='f',
27119            regles=(PRESENT_PRESENT('PROJ_MESU','MODE_MESURE'),),
27120            MODELE          =SIMP(statut='o',typ=modele_sdaster),
27121            CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
27122            CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
27123            CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
27124            INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
27125            NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),
27126            NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),
27127            PROJ_MESU       =SIMP(statut='f',typ=(mode_gene,tran_gene,harm_gene),max=1),
27128 #           MODE_MESURE     =SIMP(statut='f',typ=( mode_meca,base_modale) ),
27129            MODE_MESURE     =SIMP(statut='f',typ= mode_meca ), 
27130          ),
27131          EXTERIEUR       =FACT(statut='f',
27132            regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
27133            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
27134            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27135          ),
27136          RIGI_MECA       =FACT(statut='f',
27137          ),
27138          MASS_MECA       =FACT(statut='f',
27139          ),
27140          AMOR_MECA       =FACT(statut='f',
27141          ),
27142          CAS_CHARGE      =FACT(statut='f',max='**',
27143            NOM_CAS         =SIMP(statut='o',typ='TXM'),
27144            SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
27145            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
27146            INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
27147          ),
27148
27149 )  ;
27150
27151 # ======================================================================
27152 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
27153 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27154 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27155 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27156 # (AT YOUR OPTION) ANY LATER VERSION.
27157 #
27158 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27159 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27160 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27161 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27162 #
27163 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27164 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27165 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27166 # ======================================================================
27167 # person_in_charge: gerald.nicolas at edf.fr
27168 #
27169 MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",
27170                      op=OPS('Macro.macr_adap_mail_ops.macr_adap_mail_ops'),
27171                      docu="U7.03.02",UIinfo={"groupes":("Maillage",)},
27172                      fr="Donner des informations sur un maillage.",
27173                      ang="To give information about a mesh.",
27174 #
27175 # 1. Le niveau d'information
27176 #
27177   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)),
27178 #
27179 # 2. Le nom du maillage a analyser
27180 #
27181   MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,
27182                   fr="Maillage à analyser.",
27183                   ang="Mesh to be checked." ),
27184 #
27185 # 3. Suivi d'une frontiere
27186 #
27187   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
27188                            fr="Maillage de la frontiere à suivre",
27189                            ang="Boundary mesh" ),
27190 #
27191   b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
27192                       fr="Information complémentaire sur la frontière",
27193                       ang="Further information about boundary",
27194 #
27195     GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
27196                           fr="Groupes de mailles définissant la frontière",
27197                           ang="Mesh groups which define the boundary" ),
27198 #
27199                     ) ,
27200 #
27201 # 4. Les options ; par defaut, on controle tout, sauf l'interpénétration
27202 # 4.1. Nombre de noeuds et mailles
27203 #
27204   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
27205                         fr="Nombre de noeuds et de mailles du maillage",
27206                         ang="Number of nodes and meshes in the mesh" ),
27207 #
27208 # 4.2. Determination de la qualite des mailles du maillage
27209 #
27210   QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
27211                         fr="Qualité du maillage",
27212                         ang="Quality of the mesh" ),
27213 #
27214 # 4.3. Connexite du maillage
27215 #
27216   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
27217                         fr="Connexité du maillage.",
27218                         ang="Connexity of the mesh." ),
27219 #
27220 # 4.4. Taille des sous-domaines du maillage
27221 #
27222   TAILLE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
27223                         fr="Tailles des sous-domaines du maillage.",
27224                         ang="Sizes of mesh sub-domains." ),
27225 #
27226 # 4.5. Controle de la non-interpénétration des mailles
27227 #
27228   INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI",),
27229                         fr="Controle de la non interpénétration des mailles.",
27230                         ang="Overlapping checking." ),
27231 #
27232 # 4.6. Propriétés du maillage de calcul
27233 #
27234   PROP_CALCUL    = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
27235                         fr="Propriétés du maillage de calcul.",
27236                         ang="Properties of the calculation mesh." ),
27237 #
27238 # 4.7. Determination des diametres des mailles du maillage
27239 #
27240   DIAMETRE       = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",),
27241                         fr="Diamètre du maillage",
27242                         ang="Diameters of the mesh" ),
27243 #
27244 # 5. Les options avancées
27245 # 5.1. Langue des messages issus de HOMARD
27246 #
27247   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",
27248                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
27249                 fr="Langue des messages issus de HOMARD.",
27250                 ang="Language for HOMARD messages." ),
27251 #
27252 # 5.2. Gestion des mailles acceptees dans le maillage initial
27253 #       "HOMARD" : exclusivement les mailles pouvant etre decoupees (defaut)
27254 #       "IGNORE_PYRA" : elles sont ignorées
27255 #
27256   ELEMENTS_ACCEPTES = SIMP(statut='f',typ='TXM',defaut="HOMARD",into=("HOMARD", "IGNORE_PYRA"),
27257                             fr="Acceptation des mailles dans le maillage initial",
27258                             ang="Elements in the very first mesh" ),
27259 #
27260 # 5.3. Version de HOMARD
27261 #
27262   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V10_6",
27263                         into=("V10_6", "V10_N", "V10_N_PERSO"),
27264                         fr="Version de HOMARD",
27265                         ang="HOMARD release"),
27266 #
27267 # 5.4. Exécutable pilotant HOMARD
27268 #
27269   LOGICIEL = SIMP(statut='f',typ='TXM',
27270                   fr="Logiciel pilotant HOMARD",
27271                   ang="HOMARD software"),
27272 #
27273 # 5.5. Unite logique d'un fichier à ajouter a HOMARD.Configuration
27274 #
27275   b_unite = BLOC( condition = " (VERSION_HOMARD == 'V10_N') or \
27276                                 (VERSION_HOMARD == 'V10_N_PERSO') " ,
27277                                 fr="Fichier supplementaire.",
27278                                 ang="Additional file.",
27279 #
27280   UNITE = SIMP(statut='f',typ='I',
27281                fr="Unite logique a ajouter a HOMARD.Configuration",
27282                ang="Additional file to HOMARD.Configuration" ),
27283 #
27284   ) ,
27285 #
27286 )  ;
27287
27288 # ======================================================================
27289 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
27290 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27291 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27292 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27293 # (AT YOUR OPTION) ANY LATER VERSION.
27294 #
27295 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27296 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27297 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27298 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27299 #
27300 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27301 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27302 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27303 # ======================================================================
27304 # person_in_charge: josselin.delmas at edf.fr
27305
27306
27307 MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",
27308                       op=OPS('Macro.macr_lign_coupe_ops.macr_lign_coupe_ops'),
27309                       sd_prod=table_sdaster,
27310                       reentrant='n',
27311                       UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
27312                       fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur " \
27313                          "des lignes de coupe définies par deux points et un intervalle",
27314             regles=(UN_PARMI("RESULTAT","CHAM_GD"),),
27315
27316          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca) ),
27317          CHAM_GD         =SIMP(statut='f',typ=(cham_gd_sdaster)),
27318
27319          b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
27320                                  regles=(EXCLUS('NUME_ORDRE','NUME_MODE','LIST_ORDRE','INST','LIST_INST',), ),
27321              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
27322              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
27323              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
27324              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
27325              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
27326              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
27327              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
27328                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
27329              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
27330                  PRECISION       =SIMP(statut='o',typ='R',),),
27331            ),
27332
27333 # extraction des résultats
27334          b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli,mode_meca)",fr="résultat mécanique",
27335            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),defaut='SIGM_NOEU',into=C_NOM_CHAM_INTO(),),
27336          ),
27337          b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
27338            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),defaut='TEMP',into=("TEMP",
27339                                  "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU",
27340                                  "META_ELNO","META_NOEU",
27341                                  "DURT_ELNO","DURT_NOEU",
27342                                  "HYDR_ELNO","HYDR_NOEU",
27343                                  "DETE_ELNO","DETE_NOEU",
27344                                  "SOUR_ELGA","COMPORTHER",
27345                                  "ERTH_ELEM","ERTH_ELNO","ERTH_NOEU",),),),
27346          b_cham       =BLOC(condition = "CHAM_GD!=None",
27347            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),),),
27348
27349          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),
27350          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
27351
27352          VIS_A_VIS       =FACT(statut='f',max='**',
27353                              regles=(EXCLUS('GROUP_MA_1','MAILLE_1'),),
27354            GROUP_MA_1        =SIMP(statut='f',typ=grma),
27355            MAILLE_1          =SIMP(statut='f',typ=ma,max='**'),),
27356
27357          LIGN_COUPE     =FACT(statut='o',max='**',
27358             regles=(EXCLUS("NOM_CMP","INVARIANT","ELEM_PRINCIPAUX","RESULTANTE"),
27359                     PRESENT_PRESENT("TRAC_DIR","DIRECTION"),
27360                     EXCLUS("TRAC_DIR","TRAC_NOR"),
27361                     PRESENT_PRESENT("TRAC_DIR","NOM_CMP"),
27362                     PRESENT_PRESENT("TRAC_NOR","NOM_CMP"),),
27363
27364            INTITULE        =SIMP(statut='f',typ='TXM',),
27365            TYPE            =SIMP(statut='o',typ='TXM',max=1,
27366                                  into=("GROUP_NO","SEGMENT","ARC","GROUP_MA"),defaut="SEGMENT"),
27367            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
27368                                 into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
27369            OPERATION       =SIMP(statut='f',typ='TXM',into=("EXTRACTION","MOYENNE",),defaut="EXTRACTION",),
27370
27371            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
27372            INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",),),
27373            ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",),),
27374            RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),
27375            TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
27376            TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
27377            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
27378
27379
27380            b_local        =BLOC(condition = "REPERE=='LOCAL' ",
27381              VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),),
27382
27383            b_utili        =BLOC(condition = "REPERE=='UTILISATEUR'",
27384              ANGL_NAUT       =SIMP(statut='o',typ='R',min=3,max=3),),
27385
27386            b_grno          =BLOC(condition = "TYPE=='GROUP_NO'",
27387              GROUP_NO        =SIMP(statut='o',typ=grno, max=1),),
27388
27389            b_grma          =BLOC(condition = "TYPE=='GROUP_MA'",
27390                                  regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
27391                                          EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
27392              GROUP_MA        =SIMP(statut='o',typ=grma, max=1),
27393              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
27394              # si le groupe de mailles forme une ligne ouverte, on peut choisir le sens de parcours en choissant l'origine:
27395              # si le groupe de mailles forme une ligne fermée, il FAUT choisir l'origine et l'extrémité (= origine):
27396              NOEUD_ORIG      =SIMP(statut='f',typ=no),
27397              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
27398              NOEUD_EXTR      =SIMP(statut='f',typ=no),
27399              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
27400              # si le groupe de mailles forme une ligne fermée, on peut choisir le sens de parcours
27401              VECT_ORIE       =SIMP(statut='f',typ='R',max=3),  # utilisé seulement si NOEUD_ORIG=NOEUD_EXTR
27402              ),
27403
27404            b_segment       =BLOC(condition = "TYPE=='SEGMENT'",
27405              NB_POINTS       =SIMP(statut='o',typ='I',max=1),
27406              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),
27407              COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),),
27408
27409            b_arc           =BLOC(condition = "TYPE=='ARC'",
27410              NB_POINTS       =SIMP(statut='o',typ='I',max=1),
27411              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),
27412              CENTRE          =SIMP(statut='o',typ='R',min=2,max=3),
27413              ANGLE           =SIMP(statut='o',typ='R',max=1),
27414              DNOR            =SIMP(statut='f',typ='R',min=2,max=3),),
27415
27416            b_cylind       =BLOC(condition = ("REPERE=='CYLINDRIQUE' and TYPE!='ARC'"),
27417              ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
27418              AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),),
27419
27420            DISTANCE_MAX    =SIMP(statut='f',typ='R',defaut=0.,
27421                 fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé "
27422                 +"est > DISTANCE_MAX, ce noeud sera ignoré."),
27423
27424          ),
27425 )  ;
27426
27427 # ======================================================================
27428 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
27429 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27430 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27431 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27432 # (AT YOUR OPTION) ANY LATER VERSION.
27433 #
27434 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27435 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27436 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27437 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27438 #
27439 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27440 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27441 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27442 # ======================================================================
27443 # person_in_charge: aimery.assire at edf.fr
27444
27445
27446 def macr_recal_prod(self,**args ):
27447   return listr8_sdaster
27448
27449 MACR_RECAL = MACRO(nom="MACR_RECAL",
27450                    op=OPS('Macro.macr_recal_ops.macr_recal_ops'),
27451                    sd_prod=macr_recal_prod,
27452                    UIinfo={"groupes":("Résolution","Résultats et champs",)},
27453                    fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" \
27454                       " ou sur d'autres résultats de calculs",
27455             regles=(UN_PARMI('PARA_OPTI','LIST_PARA'),
27456                     PRESENT_PRESENT('PARA_OPTI','COURBE'),
27457                     PRESENT_PRESENT('LIST_PARA','RESU_EXP'),
27458                     PRESENT_PRESENT('LIST_PARA','RESU_CALC'),
27459                     EXCLUS('LIST_POIDS','COURBE'),),
27460
27461          UNITE_ESCL      =SIMP(statut='o',typ='I'),
27462          RESU_EXP        =SIMP(statut='f',typ=not_checked,max='**'),
27463          COURBE          =FACT(statut='f',max='**',
27464               FONC_EXP        =SIMP(statut='o',typ=(fonction_sdaster),),
27465               NOM_FONC_CALC   =SIMP(statut='o',typ='TXM',),
27466               PARA_X          =SIMP(statut='o',typ='TXM',),
27467               PARA_Y          =SIMP(statut='o',typ='TXM',),
27468               POIDS           =SIMP(statut='f',typ='R',),
27469          ),
27470          RESU_CALC       =SIMP(statut='f',typ=not_checked,max='**'),
27471          LIST_PARA       =SIMP(statut='f',typ=not_checked,max='**'),
27472          PARA_OPTI       =FACT(statut='f',max='**',
27473              NOM_PARA = SIMP(statut='o',typ='TXM'),
27474              VALE_INI = SIMP(statut='o',typ='R'),
27475              VALE_MIN = SIMP(statut='o',typ='R'),
27476              VALE_MAX = SIMP(statut='o',typ='R'),
27477          ),
27478          LIST_POIDS      =SIMP(statut='f',typ=not_checked,max='**'),
27479
27480          UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
27481          PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.00001),
27482
27483          GRAPHIQUE       =FACT(statut='f',
27484              FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT"),),
27485              AFFICHAGE       =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE"),),
27486
27487              UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
27488                             fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
27489              b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", fr="Mots-clés propres à XMGRACE",
27490                  PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
27491                                        into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
27492                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
27493              ),
27494          ),
27495
27496
27497          # Methodes d'optimisation
27498          # -----------------------
27499          METHODE         =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG", "FMIN", "FMINBFGS", "FMINNCG",
27500                                                                              "GENETIQUE","HYBRIDE")),
27501
27502          b_genetique_options=BLOC(condition = "METHODE == 'GENETIQUE' or METHODE == 'HYBRIDE'" ,
27503              NB_PARENTS       =SIMP(statut='f',typ='I',defaut=10),
27504              NB_FILS          =SIMP(statut='f',typ='I',defaut=5),
27505              ECART_TYPE       =SIMP(statut='f',typ='R',defaut=1.),
27506              GRAINE           =SIMP(statut='f',typ='I'),
27507              ITER_ALGO_GENE   =SIMP(statut='f',typ='I',defaut=10),
27508              RESI_ALGO_GENE   =SIMP(statut='f',typ='R',defaut=1.E-3),
27509          ),
27510
27511
27512          # Criteres d'arret globaux
27513          # -------------------------
27514          ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10,    fr="Nombre maximum d'iterations d'optimisation"),
27515          ITER_FONC_MAXI  =SIMP(statut='f',typ='I',defaut=1000,  fr="Nombre maximum d'evaluations de la focntionnelle"),
27516          RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3, fr="Critere d'arret sur la valeur du residu"),
27517          TOLE_PARA       =SIMP(statut='f',typ='R',defaut=1.E-8, fr="Critere d'arret sur la valeur des parametres"),
27518          TOLE_FONC       =SIMP(statut='f',typ='R',defaut=1.E-8, fr="Critere d'arret sur la valeur de la fonctionnelle"),
27519
27520
27521          # Calculs des gradients
27522          # ---------------------
27523          b_gradient =BLOC(condition = "METHODE == 'FMINBFGS' or METHODE == 'FMINNCG'" ,
27524              GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )),
27525          ),
27526
27527          b_gradient_levenberg =BLOC(condition = "METHODE == 'LEVENBERG'" ,
27528              GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NORMAL', into=( "NORMAL", "ADIMENSIONNE" )),
27529          ),
27530
27531
27532          # Mode d'evaluation de l'esclave
27533          # ------------------------------
27534          CALCUL_ESCLAVE       =FACT(statut='d',
27535 #            regles=(PRESENT_PRESENT('MPI_NBNOEUD','MPI_NBCPU'),),
27536
27537             LANCEMENT         =SIMP(statut='f', typ='TXM', defaut='INCLUSION',into=("DISTRIBUTION","INCLUSION"),),
27538
27539             b_eval_distrib =BLOC(condition = "LANCEMENT == 'DISTRIBUTION'",
27540                 UNITE_SUIVI   =SIMP(statut='f', typ='I',val_min=10,val_max=99,defaut=29,
27541                                   fr="Affichage de l'output et/ou error des jobs esclaves dans ce fichier"),
27542                 MODE          =SIMP(statut='f', typ='TXM',      into=("INTERACTIF","BATCH"),),
27543                 MEMOIRE       =SIMP(statut='f', typ='I',            fr="Memoire demandee pour les calculs esclaves (Mo)"),
27544                 TEMPS         =SIMP(statut='f', typ='I',            fr="Temps demandee pour les calculs esclaves (secondes)"),
27545                 MPI_NBCPU     =SIMP(statut='f', typ='I', val_min=1, fr="Nombre de cpu pour les calculs MPI"),
27546                 MPI_NBNOEUD   =SIMP(statut='f', typ='I',            fr="Nombre de noeuds pour les calculs MPI"),
27547                 CLASSE        =SIMP(statut='f', typ='TXM',          fr="Classe demandee pour les calculs en batch"),
27548                 NMAX_SIMULT   =SIMP(statut='f', typ='I',
27549                                fr="Nombre de calculs esclaves lances en parallele en mode distribution (non precise = automatique)"),
27550             ),
27551          ),
27552
27553          DYNAMIQUE       =FACT(statut='f',
27554                MODE_EXP           =SIMP(statut='o',typ='TXM'),
27555                MODE_CALC          =SIMP(statut='o',typ='TXM'),
27556                APPARIEMENT_MANUEL =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),
27557                                ),
27558
27559          INFO            =SIMP(statut='f',typ='I',defaut=1, into=( 1, 2 ) ),
27560 );
27561
27562 # ======================================================================
27563 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
27564 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27565 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27566 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27567 # (AT YOUR OPTION) ANY LATER VERSION.
27568 #
27569 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27570 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27571 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27572 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27573 #
27574 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27575 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27576 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27577 # ======================================================================
27578 # person_in_charge: francois.voldoire at edf.fr
27579
27580
27581 MACR_SPECTRE=MACRO(nom="MACR_SPECTRE",
27582                    op=OPS('Macro.macr_spectre_ops.macr_spectre_ops'),
27583                    sd_prod=table_sdaster,
27584                    reentrant='n',
27585                    UIinfo={"groupes":("Post-traitements","Outils-métier",)},
27586                    fr="Calcul de spectre, post-traitement de séisme",
27587          MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster,),
27588          PLANCHER      =FACT(statut='o',max='**',
27589             regles=(AU_MOINS_UN('NOEUD','GROUP_NO' ),),
27590             NOM           =SIMP(statut='o',typ='TXM',),
27591             GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27592             NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'), ),
27593          NOM_CHAM      =SIMP(statut='o',typ='TXM' ,into=('ACCE','DEPL')),
27594          CALCUL        =SIMP(statut='o',typ='TXM' ,into=('ABSOLU','RELATIF'),position='global'),
27595          b_acce  =BLOC( condition = "NOM_CHAM=='ACCE'",
27596            regles=(UN_PARMI('LIST_FREQ','FREQ'),),
27597            AMOR_SPEC     =SIMP(statut='o',typ='R',max='**'),
27598            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster ),
27599            LIST_FREQ     =SIMP(statut='f',typ=listr8_sdaster ),
27600            FREQ          =SIMP(statut='f',typ='R',max='**'),
27601            NORME         =SIMP(statut='o',typ='R'),
27602            RESU          =FACT(statut='o',max='**',
27603                 regles=(UN_PARMI('RESU_GENE','RESULTAT','TABLE'),),
27604                 TABLE         =SIMP(statut='f',typ=table_sdaster),
27605                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
27606                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
27607                 b_calc  =BLOC( condition = "CALCUL=='RELATIF'",
27608                    ACCE_X        =SIMP(statut='o',typ=fonction_sdaster),
27609                    ACCE_Y        =SIMP(statut='o',typ=fonction_sdaster),
27610                    ACCE_Z        =SIMP(statut='o',typ=fonction_sdaster),), ),
27611            IMPRESSION    =FACT(statut='f',
27612                 TRI           =SIMP(statut='f',typ='TXM',defaut='AMOR_SPEC',into=("AMOR_SPEC","DIRECTION",),),
27613                 FORMAT        =SIMP(statut='f',typ='TXM',defaut='TABLEAU',into=("TABLEAU","XMGRACE",),),
27614                 UNITE         =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
27615                                     fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
27616                 b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
27617                    PILOTE        =SIMP(statut='f',typ='TXM',defaut='',
27618                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),),),
27619                 TOUT          =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON",),),
27620                               ),
27621          ),
27622          b_depl  =BLOC( condition = "NOM_CHAM=='DEPL'",
27623            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),
27624            RESU          =FACT(statut='o',max=3,
27625                 regles=(UN_PARMI('RESU_GENE','RESULTAT','TABLE'),),
27626                 TABLE         =SIMP(statut='f',typ=table_sdaster),
27627                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
27628                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
27629                 b_calc  =BLOC( condition = "CALCUL=='ABSOLU'",
27630                    DEPL_X        =SIMP(statut='o',typ=fonction_sdaster),
27631                    DEPL_Y        =SIMP(statut='o',typ=fonction_sdaster),
27632                    DEPL_Z        =SIMP(statut='o',typ=fonction_sdaster),),),
27633          ),
27634 )
27635
27636 # ======================================================================
27637 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
27638 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27639 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27640 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27641 # (AT YOUR OPTION) ANY LATER VERSION.
27642 #
27643 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27644 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27645 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27646 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27647 #
27648 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27649 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27650 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27651 # ======================================================================
27652 # person_in_charge: xavier.desroches at edf.fr
27653
27654
27655 def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
27656   if NUME_DDL is not None and NUME_DDL.is_typco():
27657     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
27658   if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
27659   if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
27660   raise AsException("type de concept resultat non prevu")
27661
27662 MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",
27663                       op=OPS('Macro.macro_elas_mult_ops.macro_elas_mult_ops'),
27664                       sd_prod=macro_elas_mult_prod,
27665                       reentrant='f',
27666                       UIinfo={"groupes":("Résolution",)},
27667                       fr="Calculer les réponses statiques linéaires pour différents cas " \
27668                          "de charges ou modes de Fourier",
27669          regles=(UN_PARMI('CHAR_MECA_GLOBAL','LIAISON_DISCRET', ),),
27670          MODELE          =SIMP(statut='o',typ=modele_sdaster),
27671          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
27672          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
27673          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)),
27674          CHAR_MECA_GLOBAL=SIMP(statut='f',typ=(char_meca),validators=NoRepeat(),max='**'),
27675          LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
27676          CAS_CHARGE      =FACT(statut='o',max='**',
27677            regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
27678                    UN_PARMI('CHAR_MECA','VECT_ASSE'),),
27679            NOM_CAS         =SIMP(statut='f',typ='TXM' ),
27680            MODE_FOURIER    =SIMP(statut='f',typ='I' ),
27681            TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
27682            CHAR_MECA       =SIMP(statut='f',typ=(char_meca),validators=NoRepeat(),max='**'),
27683            OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","SANS"),defaut="SIEF_ELGA",max=1,
27684                                  fr="Contraintes aux points de Gauss.",),
27685            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
27686            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
27687          ),
27688          SOLVEUR         =FACT(statut='d',
27689            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
27690            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",
27691                                     fr="Paramètres de la méthode multi frontale",
27692              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
27693            ),
27694            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
27695              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
27696             ),
27697            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
27698                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
27699              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
27700              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
27701            ),
27702          ),
27703          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
27704          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
27705 )  ;
27706
27707 # ======================================================================
27708 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
27709 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
27710 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
27711 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
27712 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
27713 #                                                                       
27714 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
27715 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
27716 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
27717 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
27718 #                                                                       
27719 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
27720 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
27721 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
27722 # ======================================================================
27723 # person_in_charge: albert.alarcon at edf.fr
27724
27725
27726 def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args):
27727     RESU_EXP = MODELE_MESURE['MESURE']
27728     self.type_sdprod(RESU_NX, mode_meca)
27729     for res in (RESU_EX, RESU_ET, RESU_RD):
27730         if res is not None and res.is_typco():
27731             if AsType(RESU_EXP) == mode_meca:
27732                 self.type_sdprod(res, mode_meca)
27733             else:
27734                 self.type_sdprod(res, dyna_harmo)
27735     return None
27736
27737 MACRO_EXPANS=MACRO(nom="MACRO_EXPANS",
27738                    op=OPS('Macro.macro_expans_ops.macro_expans_ops'),
27739                    sd_prod=macro_expans_prod,
27740                    reentrant='n',
27741                    UIinfo={"groupes":("Outils-métier","Dynamique",)},
27742                    fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique",
27743                         MODELE_CALCUL   = FACT(statut='o',
27744                            MODELE          = SIMP(statut='o',typ=(modele_sdaster) ),
27745                            BASE            = SIMP(statut='o',typ=(mode_meca,) ), 
27746                            NUME_MODE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
27747                            NUME_ORDRE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
27748
27749                                              ),
27750                         MODELE_MESURE   = FACT(statut='o',
27751                            MODELE          = SIMP(statut='o',typ=(modele_sdaster) ),
27752                            MESURE          = SIMP(statut='o',typ=(dyna_trans,dyna_harmo,mode_meca,mode_meca_c,) ),
27753                            NOM_CHAM        = SIMP(statut='f',typ='TXM',defaut="DEPL",
27754                                                   into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU",) ),
27755                            NUME_MODE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
27756                            NUME_ORDRE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
27757
27758                                              ),
27759                         NUME_DDL       = SIMP(statut='f',typ=(nume_ddl_sdaster)),
27760                         RESU_NX        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
27761                         RESU_EX        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
27762                         RESU_ET        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
27763                         RESU_RD        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
27764                         RESOLUTION     = FACT(statut='f',
27765                            METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
27766                            b_svd   =BLOC(condition="METHODE=='SVD'",
27767                                          EPS=SIMP(statut='f',typ='R',defaut=0. ),
27768                                         ),
27769                            REGUL   =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
27770                            b_regul =BLOC(condition="REGUL!='NON'",
27771                                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
27772                                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),
27773                                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
27774                                         ),
27775                                              ),
27776                    )
27777
27778 # ======================================================================
27779 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
27780 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27781 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27782 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27783 # (AT YOUR OPTION) ANY LATER VERSION.
27784 #
27785 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27786 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27787 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27788 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27789 #
27790 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27791 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27792 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27793 # ======================================================================
27794 # person_in_charge: nicolas.greffet at edf.fr
27795
27796
27797 def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
27798   self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r)
27799   self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r)
27800   self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r)
27801   if FORC_AJOU != None:
27802     for m in FORC_AJOU:
27803       self.type_sdprod(m['VECTEUR'],vect_asse_gene)
27804
27805   return None
27806
27807 MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",
27808                       op=OPS('Macro.macro_matr_ajou_ops.macro_matr_ajou_ops'),
27809                       sd_prod=macro_matr_ajou_prod,
27810                       UIinfo={"groupes":("Résolution","Matrices et vecteurs",)},
27811                       fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des " \
27812                          "matrices de masse, d'amortissement ou de rigidité ajoutés",
27813       regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
27814               AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
27815               EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
27816               EXCLUS('MONO_APPUI','MODE_STAT',),
27817              ),
27818          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
27819          GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
27820          GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
27821          MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
27822          FLUIDE          =FACT(statut='o',max='**',
27823            RHO             =SIMP(statut='o',typ='R'),
27824            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
27825            GROUP_MA        =SIMP(statut='f',typ=grma),
27826            MAILLE          =SIMP(statut='f',typ=ma),
27827          ),
27828          DDL_IMPO        =FACT(statut='o',max='**',
27829            regles=(UN_PARMI('NOEUD','GROUP_NO'),
27830                    UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
27831            NOEUD           =SIMP(statut='f',typ=no),
27832            GROUP_NO        =SIMP(statut='f',typ=grno),
27833            PRES_FLUIDE     =SIMP(statut='f',typ='R'),
27834            PRES_SORTIE     =SIMP(statut='f',typ='R'),
27835          ),
27836          ECOULEMENT      =FACT(statut='f',
27837            GROUP_MA_1      =SIMP(statut='o',typ=grma),
27838            GROUP_MA_2      =SIMP(statut='o',typ=grma),
27839            VNOR_1          =SIMP(statut='o',typ='R'),
27840            VNOR_2          =SIMP(statut='f',typ='R'),
27841            POTENTIEL       =SIMP(statut='f',typ=evol_ther),
27842          ),
27843          MODE_MECA       =SIMP(statut='f',typ=mode_meca),
27844          DEPL_IMPO       =SIMP(statut='f',typ=cham_no_sdaster),
27845          MODELE_GENE     =SIMP(statut='f',typ=modele_gene),
27846          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene),
27847          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.0E-2),
27848          MATR_MASS_AJOU  =SIMP(statut='f',typ=CO,),
27849          MATR_RIGI_AJOU  =SIMP(statut='f',typ=CO,),
27850          MATR_AMOR_AJOU  =SIMP(statut='f',typ=CO,),
27851          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
27852          MODE_STAT       =SIMP(statut='f',typ=mode_meca,),
27853          FORC_AJOU       =FACT(statut='f',max='**',
27854            DIRECTION     =SIMP(statut='o',typ='R',max=3),
27855            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
27856            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
27857            VECTEUR       =SIMP(statut='o',typ=CO),
27858          ),
27859 #-------------------------------------------------------------------
27860 #        Catalogue commun SOLVEUR
27861          SOLVEUR         =C_SOLVEUR('MACRO_MATR_AJOU'),
27862 #-------------------------------------------------------------------
27863          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
27864          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
27865          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
27866 )
27867
27868 # ======================================================================
27869 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
27870 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27871 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27872 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
27873 # (AT YOUR OPTION) ANY LATER VERSION.
27874 #
27875 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
27876 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
27877 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
27878 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
27879 #
27880 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
27881 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
27882 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
27883 # ======================================================================
27884 # person_in_charge: nicolas.brie at edf.fr
27885
27886 def macro_mode_meca_prod( self, MATR_RIGI,MATR_MASS, **args) :
27887    if ( AsType(MATR_RIGI) == matr_asse_gene_r ):
27888       if ( AsType(MATR_MASS) == matr_asse_gene_r ):
27889          return mode_gene
27890       else:
27891          raise AsException("Matrices d'entrée de types différents : physique / généralisée.")
27892
27893    return mode_meca
27894
27895
27896 MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",
27897                      op=OPS('Macro.macro_mode_meca_ops.macro_mode_meca_ops'),
27898                      sd_prod=macro_mode_meca_prod,
27899                      reentrant='n',fr="Lancer une succession de calculs de modes propres réels",
27900             UIinfo={"groupes":("Résolution","Dynamique",)},
27901          MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r, matr_asse_gene_r) ),
27902          MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r, matr_asse_gene_r) ),
27903          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
27904 #  ce mot cle ne devrait il pas etre dans calc_freq
27905          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
27906                                into=("TRI_DIAG","JACOBI","SORENSEN",) ),
27907          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
27908            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
27909            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
27910            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
27911            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
27912          ),
27913          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
27914            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
27915            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
27916            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
27917            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
27918          ),
27919          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
27920            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
27921            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
27922            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717),
27923          ),
27924
27925          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS") ),
27926
27927          CALC_FREQ       =FACT(statut='o',
27928            FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max='**', ),
27929            DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
27930            COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
27931            NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3 ),
27932            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
27933            SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),
27934            STOP_BANDE_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
27935          ),
27936
27937 #-------------------------------------------------------------------
27938 #        Catalogue commun SOLVEUR
27939          SOLVEUR              =C_SOLVEUR('INFO_MODE'),
27940          NIVEAU_PARALLELISME  =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("PARTIEL","COMPLET") ),
27941 #-------------------------------------------------------------------
27942
27943          VERI_MODE       =FACT(statut='d',min=0,
27944            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
27945            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
27946            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
27947            STURM           =SIMP(statut='f',typ='TXM',defaut="GLOBAL",into=("GLOBAL","LOCAL","NON") ),
27948          ),
27949
27950          b_matr_phys =BLOC( condition = "AsType(MATR_RIGI) == matr_asse_depl_r",
27951          NORM_MODE       =FACT(statut='d',max='**',
27952            NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",
27953                                  into=("MASS_GENE","RIGI_GENE","EUCL",
27954                                        "EUCL_TRAN","TRAN","TRAN_ROTA") ),
27955            INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
27956          ),
27957
27958          FILTRE_MODE     =FACT(statut='f',
27959            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",
27960                                  into=("MASS_EFFE_UN","MASS_GENE") ),
27961            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
27962          ),
27963
27964          IMPRESSION      =FACT(statut='d',
27965            TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
27966            CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
27967            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",
27968                                  into=("MASS_EFFE_UN","MASS_GENE",) ),
27969          ),
27970                           ),
27971 )  ;
27972
27973 # ======================================================================
27974 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
27975 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
27976 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
27977 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
27978 # (AT YOUR OPTION) ANY LATER VERSION.                                 
27979 #
27980 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
27981 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
27982 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
27983 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
27984 #
27985 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
27986 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
27987 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
27988 # ======================================================================
27989 # person_in_charge: j-pierre.lefebvre at edf.fr
27990 #
27991 MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
27992               UIinfo={"groupes":("Gestion du travail",)},
27993               fr="Compilation des catalogues d'éléments et couverture des calculs élémentaires",
27994               regles=(UN_PARMI('ELEMENT','TYPE_ELEM', ),),
27995
27996               ELEMENT     =FACT(statut='f',),
27997
27998               UNITE       =SIMP(statut='f',typ='I',defaut=8),       
27999               TYPE_ELEM   =FACT(statut='f',),
28000 );
28001
28002 # ======================================================================
28003 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
28004 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28005 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28006 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28007 # (AT YOUR OPTION) ANY LATER VERSION.
28008 #
28009 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28010 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28011 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28012 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28013 #
28014 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28015 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28016 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28017 # ======================================================================
28018 # person_in_charge: jacques.pellet at edf.fr
28019 MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
28020                    fr="Résoudre un problème de mécanique statique linéaire",reentrant='f',
28021             UIinfo={"groupes":("Résolution","Mécanique",)},
28022          regles=(EXCLUS("INST","LIST_INST"),
28023                  AU_MOINS_UN('CHAM_MATER','CARA_ELEM',),),
28024          MODELE          =SIMP(statut='o',typ=modele_sdaster),
28025          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,
28026          fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
28027          ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
28028          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,
28029          fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
28030          ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
28031          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28032          EXCIT           =FACT(statut='o',max='**',
28033            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
28034            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
28035            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
28036          ),
28037          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
28038          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
28039          INST_FIN        =SIMP(statut='f',typ='R'),
28040          OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA","SANS"),defaut="SIEF_ELGA",max=1,
28041              fr="Seule option : contraintes aux points de Gauss. Utilisez CALC_CHAMP pour les autres options.",
28042                           ),
28043
28044 #-------------------------------------------------------------------
28045 #        Catalogue commun SOLVEUR
28046          SOLVEUR         =C_SOLVEUR('MECA_STATIQUE'),
28047 #-------------------------------------------------------------------
28048          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
28049 )  ;
28050
28051 # ======================================================================
28052 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
28053 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28054 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28055 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
28056 # (AT YOUR OPTION) ANY LATER VERSION.                                 
28057 #
28058 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
28059 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
28060 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
28061 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
28062 #
28063 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
28064 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
28065 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
28066 # ======================================================================
28067 # person_in_charge: mathieu.corus at edf.fr
28068 MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
28069                     fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir"
28070                         +" d'une base de modes propres réels",
28071                     reentrant='n',
28072             UIinfo={"groupes":("Résolution","Dynamique",)},
28073          BASE_MODALE     =SIMP(statut='o',typ=mode_meca ),
28074          NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
28075          NB_SECTEUR      =SIMP(statut='o',typ='I' ),
28076          LIAISON         =FACT(statut='o',
28077            DROITE          =SIMP(statut='o',typ='TXM' ),
28078            GAUCHE          =SIMP(statut='o',typ='TXM' ),
28079            AXE             =SIMP(statut='f',typ='TXM' ),
28080          ),
28081          VERI_CYCL       =FACT(statut='f',
28082            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
28083            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
28084            DIST_REFE       =SIMP(statut='f',typ='R' ),
28085          ),
28086          CALCUL          =FACT(statut='o',
28087            regles=(UN_PARMI('TOUT_DIAM','NB_DIAM'),),
28088            TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28089            NB_DIAM         =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
28090            OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
28091                                 ,into=("PLUS_PETITE","CENTRE","BANDE") ),
28092            b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
28093              FREQ            =SIMP(statut='o',typ='R',),
28094            ),
28095            b_bande       =BLOC(condition = "OPTION == 'BANDE'",
28096              FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
28097            ),
28098 #  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
28099            NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
28100            PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
28101            PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
28102            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
28103          ),
28104          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
28105 )  ;
28106
28107 # ======================================================================
28108 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
28109 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28110 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28111 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28112 # (AT YOUR OPTION) ANY LATER VERSION.
28113 #
28114 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28115 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28116 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28117 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28118 #
28119 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28120 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28121 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28122 # ======================================================================
28123 #
28124
28125 def mode_iter_inv_prod(TYPE_RESU,**args ):
28126   if (TYPE_RESU not in ["DYNAMIQUE","MODE_FLAMB","GENERAL"]):
28127      # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue
28128      return ASSD
28129   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
28130   if TYPE_RESU == "GENERAL"    : return mode_flamb
28131   # sinon on est dans le cas 'DYNAMIQUE' donc **args doit contenir les mots-clés
28132   # MATR_RIGI et (faculativement) MATR_AMOR, et on peut y accéder
28133   vale_rigi = args['MATR_RIGI']
28134   if (vale_rigi== None) : # si MATR_RIGI non renseigné
28135      # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue
28136      return ASSD
28137   vale_amor = args['MATR_AMOR']
28138   if AsType(vale_amor) == matr_asse_depl_r : return mode_meca_c
28139   if AsType(vale_rigi) == matr_asse_depl_r : return mode_meca
28140   if AsType(vale_rigi) == matr_asse_pres_r : return mode_acou
28141   if AsType(vale_rigi) == matr_asse_gene_r : return mode_gene
28142   raise AsException("type de concept resultat non prevu")
28143
28144 MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
28145                     ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
28146                      reentrant='n',
28147             UIinfo={"groupes":("Résolution","Dynamique",)},
28148
28149          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
28150                                into=("MODE_FLAMB","DYNAMIQUE","GENERAL"),
28151                                fr="Type d analyse" ),
28152
28153          b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
28154            MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28155            MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28156            MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
28157            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
28158
28159              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
28160                                    fr="Choix de l option pour estimer les valeurs propres"  ),
28161              FREQ            =SIMP(statut='o',typ='R',max='**',
28162                                    validators=AndVal((OrdList('croissant'), NoRepeat())),),
28163              AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
28164              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),
28165              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=1 ),
28166              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ),
28167              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=1 ),
28168              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ),
28169
28170              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0 ),
28171              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
28172              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
28173              ),
28174            ),
28175          b_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
28176            MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28177            MATR_RIGI_GEOM  =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28178            ),
28179
28180          b_general      =BLOC(condition = "TYPE_RESU == 'GENERAL'",
28181            MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28182            MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28183            ),
28184
28185          b_flamb_general =BLOC(condition = "(TYPE_RESU == 'MODE_FLAMB') or (TYPE_RESU == 'GENERAL')",
28186            CALC_CHAR_CRIT  =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
28187
28188              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
28189                                  fr="Choix de l option pour estimer les valeurs propres"  ),
28190              CHAR_CRIT       =SIMP(statut='o',typ='R',max='**',
28191                                    validators=AndVal((OrdList('croissant'), NoRepeat())),),
28192              NMAX_CHAR_CRIT  =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),
28193              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I',defaut= 30,val_min=1 ),
28194              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ),
28195              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=1 ),
28196              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=1.E-70 ),
28197
28198              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0 ),
28199              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
28200              SEUIL_CHAR_CRIT =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
28201              ),
28202            ),
28203
28204 #-------------------------------------------------------------------
28205 #        Catalogue commun SOLVEUR
28206          SOLVEUR         =C_SOLVEUR('MODE_ITER_INV'),
28207 #-------------------------------------------------------------------
28208
28209          CALC_MODE       =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres",
28210            OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
28211            PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=1.E-70,fr="Précision de convergence" ),
28212            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30,val_min=1 ),
28213          ),
28214          VERI_MODE       =FACT(statut='d',min=0,
28215            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
28216            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0,
28217                                  fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
28218          ),
28219          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
28220          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
28221 )  ;
28222
28223 # ======================================================================
28224 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
28225 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28226 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28227 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28228 # (AT YOUR OPTION) ANY LATER VERSION.
28229 #
28230 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28231 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28232 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28233 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28234 #
28235 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28236 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28237 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28238 # ======================================================================
28239 #
28240
28241 def mode_iter_simult_prod(TYPE_RESU,**args ):
28242   if (TYPE_RESU not in ["DYNAMIQUE","MODE_FLAMB","GENERAL"]):
28243      # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue
28244      return ASSD
28245   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
28246   if TYPE_RESU == "GENERAL" :    return mode_flamb
28247   # sinon on est dans le cas 'DYNAMIQUE' donc **args doit contenir les mots-clés
28248   # MATR_RIGI et (faculativement) MATR_AMOR, et on peut y accéder
28249   vale_rigi = args['MATR_RIGI']
28250   if (vale_rigi== None) : # si MATR_RIGI non renseigné
28251      # on retourne un type fictif pour que le plantage aie lieu dans la lecture du catalogue
28252      return ASSD
28253   vale_amor = args['MATR_AMOR']
28254   if (AsType(vale_amor)== matr_asse_depl_r) : return mode_meca_c
28255   if (AsType(vale_rigi)== matr_asse_depl_r) : return mode_meca
28256   if (AsType(vale_rigi)== matr_asse_depl_c) : return mode_meca_c
28257   if (AsType(vale_rigi)== matr_asse_pres_r) : return mode_acou
28258   if (AsType(vale_rigi)== matr_asse_gene_r) : return mode_gene
28259   if (AsType(vale_rigi)== matr_asse_gene_c) : return mode_gene
28260
28261   raise AsException("type de concept resultat non prevu")
28262
28263
28264
28265 MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45, sd_prod= mode_iter_simult_prod,
28266                       fr="Calcul des modes propres par itérations simultanées ; valeurs propres et"
28267                          +" modes propres réels ou complexes",
28268                       reentrant='n',
28269             UIinfo={"groupes":("Résolution","Dynamique",)},
28270          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
28271                                into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ),
28272          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
28273            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
28274            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
28275            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
28276            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
28277          ),
28278          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
28279            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
28280            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
28281            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
28282            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
28283          ),
28284          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
28285            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
28286            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
28287            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717),
28288          ),
28289          b_qz =BLOC(condition = "METHODE == 'QZ'",
28290            TYPE_QZ      =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ),
28291          ),
28292          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
28293                                into=("DYNAMIQUE","MODE_FLAMB","GENERAL"),
28294                                fr="Type d analyse" ),
28295          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
28296                                fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
28297
28298
28299          b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
28300            MATR_RIGI          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,
28301                                                     matr_asse_gene_r,matr_asse_gene_c,matr_asse_pres_r ) ),
28302            MATR_MASS          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28303            MATR_AMOR          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
28304            CALC_FREQ       =FACT(statut='d',min=0,
28305              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","PLUS_GRANDE","BANDE","CENTRE","TOUT"),
28306                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
28307              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites fréquences propres",
28308                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut=10,val_min=0 ),
28309              ),
28310              b_plus_grande =BLOC(condition = "OPTION == 'PLUS_GRANDE'",fr="Recherche des plus grandes fréquences propres",
28311                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut=1,val_min=0 ),
28312              ),
28313              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
28314                                   fr="Recherche des fréquences propres les plus proches d'une valeur donnée",
28315                FREQ            =SIMP(statut='o',typ='R',
28316                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
28317                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
28318                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
28319              ),
28320              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
28321                                    fr="Recherche des fréquences propres dans une bande donnée",
28322                FREQ            =SIMP(statut='o',typ='R',min=2,max=2,
28323                                      validators=AndVal((OrdList('croissant'), NoRepeat())),
28324                                      fr="Valeur des deux fréquences délimitant la bande de recherche"),
28325                TABLE_FREQ      =SIMP(statut= 'f',typ=table_sdaster),
28326              ),
28327              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
28328                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
28329              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
28330              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
28331              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
28332              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0 ),
28333              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
28334              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
28335              ),
28336            ),
28337
28338
28339          b_general        =BLOC(condition = "TYPE_RESU == 'GENERAL'",
28340            MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28341            MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28342            ),
28343
28344
28345          b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
28346            MATR_RIGI          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28347            MATR_RIGI_GEOM     =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
28348          ),
28349
28350
28351          b_flamb_general  =BLOC(condition = "(TYPE_RESU == 'MODE_FLAMB') or (TYPE_RESU == 'GENERAL')",
28352            CALC_CHAR_CRIT  =FACT(statut='d',min=0,
28353              OPTION       =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
28354                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
28355              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
28356                NMAX_CHAR_CRIT  =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
28357              ),
28358              b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
28359                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
28360                CHAR_CRIT       =SIMP(statut='o',typ='R',
28361                                      fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
28362                NMAX_CHAR_CRIT  =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
28363              ),
28364              b_bande       =BLOC(condition = "(OPTION == 'BANDE')",
28365                                  fr="Recherche des valeurs propres dans une bande donnée",
28366                CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,max=2,
28367                                      validators=AndVal((OrdList('croissant'), NoRepeat())),
28368                                      fr="Valeur des deux charges critiques délimitant la bande de recherche"),
28369                TABLE_CHAR_CRIT =SIMP(statut= 'f',typ=table_sdaster),
28370
28371              ),
28372              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
28373                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
28374              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
28375              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
28376              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
28377              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 3,val_min=0 ),
28378              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
28379              SEUIL_CHAR_CRIT =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
28380              ),
28381            ),
28382
28383
28384 #-------------------------------------------------------------------
28385 #        Catalogue commun SOLVEUR
28386          SOLVEUR         =C_SOLVEUR('MODE_ITER_SIMULT'),
28387 #-------------------------------------------------------------------
28388 #-------------------------------------------------------------------
28389 #  Mot-cles caches pour activer le parallelisme au sein d'une macro-commande
28390          PARALLELISME_MACRO=FACT(statut='d',min=0,
28391            TYPE_COM   =SIMP(statut='c',typ='I',defaut=-999,into=(-999,1),fr="Type de communication"),
28392            IPARA1_COM  =SIMP(statut='c',typ='I',defaut=-999,fr="Parametre entier n 1 de la communication"),
28393            IPARA2_COM  =SIMP(statut='c',typ='I',defaut=-999,fr="Parametre entier n 2 de la communication"),
28394          ),
28395 #-------------------------------------------------------------------
28396          VERI_MODE       =FACT(statut='d',min=0,
28397            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
28398            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
28399            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
28400                                  fr="Valeur limite admise pour l ereur a posteriori des modes" ),
28401            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
28402          ),
28403          STOP_BANDE_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
28404          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
28405          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28406 )  ;
28407
28408 # ======================================================================
28409 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
28410 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28411 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28412 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28413 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28414 #                                                                       
28415 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28416 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28417 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28418 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28419 #                                                                       
28420 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28421 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28422 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28423 # ======================================================================
28424 MODE_NON_LINE=OPER(nom="MODE_NON_LINE",op=  61,sd_prod=table_container,
28425                      fr="Calcul des modes non-linéaires",
28426                      reentrant='f',
28427            UIinfo={"groupes":("Résolution","Dynamique",)},
28428
28429         reuse =SIMP(statut='f',typ='table_container'),
28430
28431         ETAT_INIT       =FACT(statut='o',max=1,
28432                 regles=( UN_PARMI('MODE_LINE','MODE_NON_LINE'),),
28433                        MODE_LINE = SIMP(statut='f',typ=mode_meca,max = 1),
28434                        MODE_NON_LINE = SIMP(statut='f',typ=table_container,max = 1),
28435                        NUME_ORDRE = SIMP(statut='o',typ='I' ),
28436                        DIR_EVOLUTION    = SIMP(statut='f',typ='I',defaut=-1, into=(-1,1)),
28437                        COEF_AMPL = SIMP(statut='f',typ='R',defaut=1,),
28438                   ),
28439
28440         CHOC = FACT(statut='f',max='**',
28441                 regles=( UN_PARMI('NOEUD','GROUP_NO'),),
28442                     OBSTACLE = SIMP(statut='f',typ='TXM', into=("PLAN","BI_PLAN","CERCLE",)),
28443                     b_cercle = BLOC(condition="OBSTACLE=='CERCLE'",
28444                                      NOM_CMP = SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(),
28445                                                     into=('DX','DY','DZ'),),
28446                                      ORIG_OBST = SIMP(statut='f',typ='R',defaut=(0.,0.,0.),min=3,max=3),
28447                                      ),
28448                     b_bi_plan = BLOC(condition="OBSTACLE=='BI_PLAN'",
28449                                    NOM_CMP = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DY','DZ'),),
28450                                    ),
28451                     b_plan = BLOC(condition="OBSTACLE=='PLAN'",
28452                                    NOM_CMP = SIMP(statut='o',typ='TXM',min=1,max=1,into=('DX','DY','DZ'),),
28453                                     ),
28454                     NOEUD = SIMP(statut='f', typ=no, max=1),
28455                     GROUP_NO = SIMP(statut='f', typ=grno, max=1),
28456                     JEU = SIMP(statut='o',typ='R',max=1 ),
28457                     RIGI_NOR = SIMP(statut='o',typ='R',max=1 ),
28458                     PARA_REGUL = SIMP(statut='f',typ='R',defaut=0.005 ),
28459                 ),
28460
28461         MATR_RIGI = SIMP(statut='o',typ=(matr_asse_depl_r,) ),
28462         MATR_MASS = SIMP(statut='o',typ=(matr_asse_depl_r,) ),
28463
28464         RESOLUTION = FACT(statut='o',max=1,
28465                        METHODE = SIMP(statut='f',typ='TXM',defaut="EHMAN",into=("EHMAN",)),
28466                        b_ehman = BLOC(condition="METHODE=='EHMAN'",
28467                                     NB_HARM_LINE = SIMP(statut='o',typ='I',val_min=1,),
28468                                     NB_HARM_NONL = SIMP(statut='f',typ='I',defaut=201,val_min=1,),
28469                                     NB_BRANCHE = SIMP(statut='o',typ='I',val_min=0),
28470                                     NB_PAS_MAN = SIMP(statut='o',typ='I',val_min=1),
28471                                     NB_ORDRE_MAN = SIMP(statut='f',typ='I',defaut=20,val_min=2),
28472                                     PREC_MAN = SIMP(statut='f',typ='R',defaut=1.E-9,val_min=0.E+0),
28473                                     PREC_NEWTON = SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.E+0),
28474                                     ITER_NEWTON_MAXI = SIMP(statut='f',typ='I',defaut=15,val_min=1),
28475                                     CRIT_ORDR_BIFURCATION = SIMP(statut='f',typ='I',defaut=3,val_min=1),
28476                                     RESI_RELA_BIFURCATION = SIMP(statut='f',typ='R',defaut=1.E-4,val_min=0.E+0),
28477                                    ),
28478                        ),
28479
28480         SOLVEUR = C_SOLVEUR('MODE_NON_LINE'),
28481         
28482         INFO = SIMP(statut='f',typ='I',defaut=1),
28483
28484 )  ;
28485
28486 # ======================================================================
28487 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28488 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28489 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28490 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28491 # (AT YOUR OPTION) ANY LATER VERSION.
28492 #
28493 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28494 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28495 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28496 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28497 #
28498 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28499 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28500 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28501 # ======================================================================
28502 # person_in_charge: georges-cc.devesa at edf.fr
28503
28504 MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_meca,
28505                    fr="Calcul de déformées statiques pour un déplacement, une force ou une accélération unitaire imposé",
28506                    reentrant='n',
28507             UIinfo={"groupes":("Résolution","Dynamique",)},
28508
28509          regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE','MODE_INTERF'),
28510                  PRESENT_PRESENT('MODE_INTERF','MATR_MASS'),
28511                  PRESENT_PRESENT('PSEUDO_MODE','MATR_MASS'),
28512                  ),
28513
28514
28515          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
28516          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
28517
28518
28519
28520          MODE_STAT       =FACT(statut='f',max='**',
28521            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
28522                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
28523            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
28524            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
28525            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
28526            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
28527            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28528            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28529          ),
28530          FORCE_NODALE    =FACT(statut='f',max='**',
28531            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
28532                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
28533            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
28534            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
28535            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
28536            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",), ),
28537            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28538            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28539          ),
28540          PSEUDO_MODE       =FACT(statut='f',max='**',
28541            regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
28542            AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
28543            DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3),
28544            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
28545            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
28546            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
28547            b_dir           =BLOC(condition = "DIRECTION != None",
28548              NOM_DIR         =SIMP(statut='f',typ='TXM' ),),
28549            b_cmp          =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
28550              regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
28551              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28552              AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28553              SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28554            ),
28555          ),
28556          MODE_INTERF    =FACT(statut='f',max='**',
28557            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
28558                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
28559            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
28560            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
28561            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
28562            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28563            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28564            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
28565            NBMOD           =SIMP(statut='o',typ='I',defaut= 1),
28566            SHIFT           =SIMP(statut='o',typ='R',defaut= 1.0),
28567
28568          ),
28569
28570 #-------------------------------------------------------------------
28571 #        Catalogue commun SOLVEUR
28572          SOLVEUR         =C_SOLVEUR('MODE_STATIQUE'),
28573 #-------------------------------------------------------------------
28574
28575          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28576          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
28577 )  ;
28578
28579 # ======================================================================
28580 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
28581 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28582 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28583 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
28584 # (AT YOUR OPTION) ANY LATER VERSION.                                 
28585 #
28586 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
28587 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
28588 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
28589 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
28590 #
28591 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
28592 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
28593 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
28594 # ======================================================================
28595 # person_in_charge: andre.adobes at edf.fr
28596 MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
28597                       reentrant='f',
28598             fr="Définir la base modale d'une structure sous écoulement",
28599             UIinfo={"groupes":("Matrices et vecteurs",)},
28600 #  la commande modi_base _modale : reentrant = f ou o                      
28601          regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
28602          BASE            =SIMP(statut='o',typ=mode_meca ),
28603          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
28604          NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
28605          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
28606          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
28607          AMOR_UNIF       =SIMP(statut='f',typ='R' ),
28608          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
28609          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28610 )  ;
28611
28612 # ======================================================================
28613 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
28614 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28615 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
28616 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28617 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
28618 #                                                                       
28619 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
28620 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
28621 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
28622 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
28623 #                                                                       
28624 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
28625 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
28626 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
28627 # ======================================================================
28628 # person_in_charge: nicolas.greffet at edf.fr
28629 #
28630 #  RECUPERATION DES EFFORTS VIA YACS POUR COUPLAGE IFS
28631 #
28632 MODI_CHAR_YACS=OPER(nom            = "MODI_CHAR_YACS",
28633                    op              = 112,
28634                    sd_prod         = char_meca,
28635                    reentrant       = 'o',
28636                    UIinfo          = {"groupes":("Résultats et champs",)},
28637                    fr              = "Reception des forces nodales via YACS lors du couplage de  Code_Aster et Saturne",
28638                    CHAR_MECA       = SIMP(statut ='o', typ = char_meca),
28639                    MATR_PROJECTION = SIMP(statut ='o', typ = corresp_2_mailla,),
28640                    NOM_CMP_IFS     = SIMP(statut ='o', typ = 'TXM',validators = NoRepeat(), max = '**'),
28641                    VIS_A_VIS       = FACT(statut ='o', max = '**',
28642                                    GROUP_MA_1 = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28643                                    GROUP_NO_2 = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
28644                    INST            = SIMP(statut='o',typ='R', ),
28645                    PAS             = SIMP(statut='o',typ='R', ),
28646                    NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
28647                    INFO            = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
28648 );
28649
28650 # ======================================================================
28651 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
28652 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28653 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28654 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28655 # (AT YOUR OPTION) ANY LATER VERSION.
28656 #
28657 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28658 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28659 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28660 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28661 #
28662 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28663 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28664 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28665 # ======================================================================
28666 # person_in_charge: jacques.pellet at edf.fr
28667 MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
28668                    fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant,"
28669                       +" à l'application d'une pression, à la modélisation du contact,...",
28670                    reentrant='o',
28671             UIinfo={"groupes":("Maillage",)},
28672       regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
28673                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
28674                        'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB','SYMETRIE',
28675                        'ORIE_LIGNE',),
28676               PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
28677                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
28678                        'ORIE_LIGNE'),
28679               PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D',
28680                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
28681                        'ORIE_LIGNE'),
28682               PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D',
28683                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
28684                        'ORIE_LIGNE'),
28685               PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA',
28686                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
28687                        'ORIE_LIGNE'),
28688               PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
28689                        'PLAQ_TUBE','MODI_MAILLE',),
28690               PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
28691                        'PLAQ_TUBE','MODI_MAILLE','ORIE_LIGNE'),
28692               PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
28693                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE','ORIE_LIGNE'),
28694               PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
28695                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','ORIE_LIGNE'),
28696               EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
28697               EXCLUS('EQUE_PIQUA','TUBE_COUDE'),
28698               EXCLUS('ROTATION','MODI_BASE'),
28699               EXCLUS('SYMETRIE','ROTATION'),
28700               EXCLUS('SYMETRIE','TRANSLATION'),
28701               EXCLUS('SYMETRIE','MODI_BASE'),
28702               EXCLUS('SYMETRIE','ECHELLE'),
28703               ),
28704          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
28705
28706          ORIE_FISSURE    =FACT(statut='f',
28707            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28708          ),
28709
28710          DEFORME         =FACT(statut='f',
28711            OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
28712            DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
28713         b_deform        =BLOC(condition = "OPTION=='TRAN_APPUI'",
28714            GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),
28715            GROUP_NO_STRU  = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),),
28716          ),
28717
28718          EQUE_PIQUA      =FACT(statut='f',
28719            GROUP_NO        =SIMP(statut='o',typ=grno),
28720            E_BASE          =SIMP(statut='o',typ='R' ),
28721            DEXT_BASE       =SIMP(statut='o',typ='R' ),
28722            L_BASE          =SIMP(statut='o',typ='R' ),
28723            L_CHANF         =SIMP(statut='o',typ='R' ),
28724            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
28725            H_SOUD          =SIMP(statut='o',typ='R' ),
28726            ANGL_SOUD       =SIMP(statut='o',typ='R' ),
28727            JEU_SOUD        =SIMP(statut='o',typ='R' ),
28728            E_CORP          =SIMP(statut='o',typ='R' ),
28729            DEXT_CORP       =SIMP(statut='o',typ='R' ),
28730            AZIMUT          =SIMP(statut='o',typ='R' ),
28731            RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
28732            X_MAX           =SIMP(statut='o',typ='R' ),
28733          ),
28734          ORIE_PEAU_2D    =FACT(statut='f',max='**',
28735            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28736            GROUP_MA_SURF   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
28737          ),
28738          ORIE_PEAU_3D    =FACT(statut='f',max='**',
28739            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28740            GROUP_MA_VOLU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
28741          ),
28742          ORIE_SHB       =FACT(statut='f',max=1,
28743            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28744          ),
28745          ORIE_NORM_COQUE =FACT(statut='f',max='**',
28746            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28747            VECT_NORM       =SIMP(statut='f',typ='R',max=3),
28748            b_vect_norm     =BLOC(condition = "VECT_NORM != None",
28749              regles=UN_PARMI('NOEUD','GROUP_NO'),
28750              NOEUD           =SIMP(statut='f',typ=no),
28751              GROUP_NO        =SIMP(statut='f',typ=grno),
28752            ),
28753          ),
28754          ORIE_LIGNE =FACT(statut='f',max='**',
28755            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
28756            VECT_TANG       =SIMP(statut='f',typ='R',max=3),
28757            b_vect_tang     =BLOC(condition = "VECT_TANG != None",
28758              regles=UN_PARMI('NOEUD','GROUP_NO'),
28759              NOEUD           =SIMP(statut='f',typ=no),
28760              GROUP_NO        =SIMP(statut='f',typ=grno),
28761            ),
28762          ),
28763          PLAQ_TUBE       =FACT(statut='f',
28764            DEXT            =SIMP(statut='o',typ='R' ),
28765            EPAIS           =SIMP(statut='o',typ='R' ),
28766            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
28767            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
28768            COUTURE         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",)  ),
28769          ),
28770          TUBE_COUDE      =FACT(statut='f',
28771            ANGLE           =SIMP(statut='o',typ='R' ),
28772            R_CINTR         =SIMP(statut='o',typ='R' ),
28773            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
28774          ),
28775          MODI_MAILLE     =FACT(statut='f',max=1,
28776            regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),),
28777            OPTION          =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ),
28778            GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
28779            MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
28780            GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
28781            NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
28782          ),
28783          MODI_BASE       =FACT(statut='f',
28784            VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
28785            VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),
28786          ),
28787          ECHELLE         =SIMP(statut='f',typ='R',),
28788          TRANSLATION     =SIMP(statut='f',typ='R',min=2,max=3),
28789          ROTATION        =FACT(statut='f',max='**',
28790            POIN_1           =SIMP(statut='o',typ='R',min=2,max=3),
28791            ANGLE            =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
28792            regles=(EXCLUS('DIR','POIN_2'),),
28793            POIN_2           =SIMP(statut='f',typ='R',min=2,max=3),
28794            DIR              =SIMP(statut='f',typ='R',min=2,max=3),
28795          ),
28796          SYMETRIE        =FACT(statut='f',max='**',
28797                           fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.",
28798            POINT           =SIMP(statut='o',typ='R',min=2,max=3,
28799                             fr="Point appartenant à la droite ou au plan."),
28800            AXE_1           =SIMP(statut='o',typ='R',min=2,max=3,
28801                             fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."),
28802            AXE_2           =SIMP(statut='f',typ='R',min=3,max=3,
28803                             fr="2nd vecteur appartenant du plan."),
28804          ),
28805          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
28806 )  ;
28807
28808 # ======================================================================
28809 # COPYRIGHT (C) 1991 - 2009  EDF R&D                  WWW.CODE-ASTER.ORG
28810 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28811 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28812 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28813 # (AT YOUR OPTION) ANY LATER VERSION.
28814 #
28815 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28816 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28817 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28818 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28819 #
28820 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28821 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28822 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28823 # ======================================================================
28824 # person_in_charge: jacques.pellet at edf.fr
28825
28826 MODI_MODELE=OPER(nom="MODI_MODELE",op= 103,sd_prod=modele_sdaster,reentrant='o',
28827          UIinfo={"groupes":("Modélisation",)},
28828          fr="Modifier la partition d'un modèle (parallélisme) ",
28829
28830          MODELE          =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,),
28831
28832          PARTITION         =FACT(statut='d',
28833              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="GROUP_ELEM",
28834                                    into=("MAIL_CONTIGU","MAIL_DISPERSE","SOUS_DOMAINE","CENTRALISE","GROUP_ELEM")),
28835              b_dist_maille          =BLOC(condition = "PARALLELISME in ('MAIL_DISPERSE','MAIL_CONTIGU')",
28836                  CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,val_min=0),
28837              ),
28838              b_dist_sd          =BLOC(condition = "PARALLELISME == 'SOUS_DOMAINE'",
28839                  PARTITION       =SIMP(statut='o',typ=sd_partit),
28840                  CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,val_min=0),
28841              ),
28842          ),
28843 )  ;
28844
28845 # ======================================================================
28846 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
28847 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
28848 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28849 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
28850 # (AT YOUR OPTION) ANY LATER VERSION.
28851 #
28852 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28853 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28854 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28855 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28856 #
28857 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28858 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28859 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28860 # ======================================================================
28861 # person_in_charge: samuel.geniaut at edf.fr
28862
28863 MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f',
28864             UIinfo={"groupes":("Modélisation","Rupture",)},
28865                            fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
28866                            
28867     MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,),
28868     FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
28869     CRITERE         =SIMP(statut='f',typ='R',defaut=1.1E-9),
28870     INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
28871     CONTACT        
28872      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),min=1,max=1,),
28873 )  ;
28874
28875 # ======================================================================
28876 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
28877 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28878 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28879 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
28880 # (AT YOUR OPTION) ANY LATER VERSION.
28881 #
28882 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
28883 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
28884 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
28885 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
28886 #
28887 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
28888 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
28889 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
28890 # ======================================================================
28891 # person_in_charge: xavier.desroches at edf.fr
28892 def modi_repere_prod(RESULTAT,**args):
28893   if AsType(RESULTAT) != None : return AsType(RESULTAT)
28894
28895 MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='f',
28896             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
28897                     fr="Calcule des résultats dans le repère cylindrique",
28898          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
28899
28900          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
28901                         'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
28902          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
28903          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
28904          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
28905          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
28906          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
28907
28908          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
28909          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
28910          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
28911          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
28912
28913          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
28914          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
28915              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
28916          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
28917              PRECISION       =SIMP(statut='o',typ='R',),),
28918
28919          MODI_CHAM       =FACT(statut='o',max='**',
28920            TYPE_CHAM       =SIMP(statut='o',typ='TXM',
28921               into=("VECT_2D","VECT_3D","TENS_2D","TENS_3D","COQUE_GENE"),),
28922            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
28923            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
28924               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
28925            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
28926               NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
28927            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
28928               NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
28929            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
28930               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
28931            b_coque_gene    =BLOC(condition = "TYPE_CHAM=='COQUE_GENE'",
28932               NOM_CMP         =SIMP(statut='o',typ='TXM',min=8,max=8 ),),
28933          ),
28934          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : COQUE_INTR_UTIL ou COQUE_UTIL_INTR autorise",
28935            REPERE          =SIMP(statut='o',typ='TXM',position='global',
28936                                  into=("COQUE_INTR_UTIL","COQUE_UTIL_INTR"),),
28937            AFFE     =FACT(statut='o',max='**',
28938             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
28939             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
28940            ),
28941           ),
28942
28943          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant ",
28944            REPERE          =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",position='global',
28945                                  into=("UTILISATEUR","CYLINDRIQUE","COQUE",
28946                                        "COQUE_INTR_UTIL","COQUE_UTIL_INTR"),),
28947
28948            AFFE     =FACT(statut='o',max='**',
28949             b_cyl      =BLOC(condition = "REPERE == 'CYLINDRIQUE'",            
28950               ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
28951               AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),),
28952             b_uti      =BLOC(condition = "REPERE == 'UTILISATEUR'",             
28953                             regles=(UN_PARMI('ANGL_NAUT','VECT_X'),
28954                             ENSEMBLE('VECT_X','VECT_Y')),
28955               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
28956               VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),
28957               VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3 ),),
28958             b_coq      =BLOC(condition = "REPERE == 'COQUE'",             
28959                             regles=(UN_PARMI('ANGL_REP','VECTEUR'),),
28960               ANGL_REP        =SIMP(statut='f',typ='R',min=2,max=2),
28961               VECTEUR         =SIMP(statut='f',typ='R',min=3,max=3),),
28962             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
28963             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
28964             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
28965             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
28966           ),
28967          ),
28968           TITRE           =SIMP(statut='f',typ='TXM',max='**'),
28969          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
28970 )  ;
28971
28972 # ======================================================================
28973 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
28974 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
28975 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
28976 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
28977 # (AT YOUR OPTION) ANY LATER VERSION.                                 
28978 #
28979 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
28980 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
28981 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
28982 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
28983 #
28984 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
28985 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
28986 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
28987 # ======================================================================
28988 # person_in_charge: nicolas.brie at edf.fr
28989
28990 def norm_mode_prod(MODE,**args ):
28991   if AsType(MODE) == mode_meca   : return mode_meca
28992   if AsType(MODE) == mode_meca_c : return mode_meca_c
28993   if AsType(MODE) == mode_flamb  : return mode_flamb
28994   raise AsException("type de concept resultat non prevu")
28995
28996 NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
28997                fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur",
28998                reentrant='f',
28999             UIinfo={"groupes":("Résolution","Dynamique",)},
29000          regles=(UN_PARMI('NORME','GROUP_NO','NOEUD','AVEC_CMP','SANS_CMP'),),
29001          MODE       =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
29002          NORME      =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
29003                           into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
29004          NOEUD      =SIMP(statut='f',typ=no, fr="Composante donnée d'un noeud spécifié égale à 1"),
29005          GROUP_NO   =SIMP(statut='f',typ=grno,fr="Composante donnée d'un groupe contenant un seul noeud spécifié égale à 1"),
29006          b_noeud    =BLOC(condition = "NOEUD != None or GROUP_NO != None",
29007            NOM_CMP    =SIMP(statut='o',typ='TXM' ),
29008          ),
29009          AVEC_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29010          SANS_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29011          MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes",
29012                   regles=(UN_PARMI('GROUP_NO','NOEUD'),),
29013            NOEUD      =SIMP(statut='f',typ=no,fr="Noeud où sera imposé le signe"),
29014            GROUP_NO   =SIMP(statut='f',typ=grno,fr="Groupe d'un seul noeud où sera imposé le signe"),
29015            NOM_CMP    =SIMP(statut='o',typ='TXM',fr="Composante du noeud où sera imposé le signe" ),
29016            SIGNE      =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
29017                             fr="Choix du signe" ),
29018          ),
29019
29020          MASSE = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ),
29021          RAIDE = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ),
29022          AMOR  = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
29023          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
29024          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
29025 )  ;
29026
29027 # ======================================================================
29028 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
29029 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29030 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29031 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29032 # (AT YOUR OPTION) ANY LATER VERSION.
29033 #
29034 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29035 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29036 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29037 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29038 #
29039 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29040 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29041 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29042 # ======================================================================
29043 # person_in_charge: jacques.pellet at edf.fr
29044 NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n',
29045             UIinfo={"groupes":("Matrices et vecteurs",)},
29046               fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
29047                   regles=(UN_PARMI('MATR_RIGI','MODELE'),),
29048          MATR_RIGI       =SIMP(statut='f',validators=NoRepeat(),max=100,
29049                                typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ),
29050          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
29051          b_modele        =BLOC(condition = "MODELE != None",
29052            CHARGE     =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
29053          ),
29054          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","PETSC","MUMPS") ),
29055          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
29056            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
29057          ),
29058          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
29059            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
29060          ),
29061          b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
29062            RENUM        =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","SCOTCH","AUTO")),
29063          ),
29064          b_gcpc          =BLOC(condition="METHODE=='GCPC' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc",
29065            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
29066          ),
29067          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
29068 )  ;
29069
29070 # ======================================================================
29071 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29072 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29073 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29074 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
29075 # (AT YOUR OPTION) ANY LATER VERSION.                                 
29076 #
29077 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
29078 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
29079 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
29080 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
29081 #
29082 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
29083 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
29084 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
29085 # ======================================================================
29086 # person_in_charge: mathieu.corus at edf.fr
29087 NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
29088                    fr="Etablissement de la numérotation des ddl d'un modèle etabli en coordonnées généralisees",
29089                     reentrant='n',
29090             UIinfo={"groupes":("Matrices et vecteurs",)},
29091          regles=UN_PARMI('MODELE_GENE','BASE'),
29092          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
29093              b_modele_gene     =BLOC(condition = "MODELE_GENE != None",
29094                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
29095                METHODE            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE","ELIMINE") ),
29096                                     ),
29097          BASE     =SIMP(statut='f',typ=(mode_meca,mode_gene ) ),
29098              b_base     =BLOC(condition = "BASE != None",
29099                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="PLEIN",into=("DIAG","PLEIN") ),
29100                NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
29101                              ),
29102 )  ;
29103
29104 # ======================================================================
29105 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
29106 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29107 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29108 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29109 # (AT YOUR OPTION) ANY LATER VERSION.
29110 #
29111 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29112 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29113 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29114 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29115 #
29116 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29117 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29118 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29119 # ======================================================================
29120 # person_in_charge: harinaivo.andriambololona at edf.fr
29121
29122 def observation_prod(self, RESULTAT, **args):
29123     if  AsType(RESULTAT) == mode_meca :
29124         return mode_meca
29125     elif AsType(RESULTAT) == evol_elas :
29126         return evol_elas
29127     elif AsType(RESULTAT) == dyna_harmo :
29128         return dyna_harmo
29129     elif AsType(RESULTAT) == dyna_trans :
29130         return dyna_trans
29131     else :
29132         return None
29133
29134 OBSERVATION=MACRO(nom="OBSERVATION",
29135                   op=OPS('Macro.observation_ops.observation_ops'),
29136                   UIinfo={"groupes":("Matrices et vecteurs",)},
29137                   sd_prod=observation_prod,
29138                   fr="Calcul de l'observabilite d'un champ aux noeuds ",
29139 #
29140          MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
29141          MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
29142          RESULTAT        =SIMP(statut='o',typ=(mode_meca,evol_elas,dyna_harmo,dyna_trans,) ),
29143          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
29144
29145 #        ------------------------------------------------------------------
29146
29147          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','FREQ','LIST_FREQ','NUME_MODE','INST','LIST_INST' ),),
29148          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29149          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
29150          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
29151          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
29152          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
29153          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
29154          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
29155          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
29156          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29157
29158 #        ------------------------------------------------------------------
29159 #        OPTIONS DE PROJ_CHAMP (SANS MC FACTEUR PARTICULIER)
29160 #        ------------------------------------------------------------------
29161          PROJECTION     =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="OUI"),
29162          CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
29163          DISTANCE_MAX    =SIMP(statut='f',typ='R',
29164                 fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
29165          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
29166
29167          TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
29168                 fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
29169
29170 #           PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
29171 #                fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger"
29172 #                   +" les champs par zéro la ou la projection ne donne pas de valeurs."),
29173
29174          MATR_RIGI       =SIMP(statut='f',typ=(matr_asse_depl_r) ),
29175          MATR_MASS       =SIMP(statut='f',typ=(matr_asse_depl_r) ),
29176          VIS_A_VIS       =FACT(statut='f',max='**',
29177              regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
29178                      AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
29179              TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29180              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29181              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29182              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
29183              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
29184              TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29185              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29186              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29187              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
29188              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
29189              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
29190              ),
29191
29192 #        ------------------------------------------------------------------
29193 #        MODI_REPERE
29194 #        ------------------------------------------------------------------
29195          MODI_REPERE     =FACT(statut='f',max='**',
29196          regles=(UN_PARMI('REPERE'),
29197                  AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
29198            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29199            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
29200            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29201            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
29202            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29203 #
29204            TYPE_CHAM       =SIMP(statut='f',typ='TXM',
29205                                  into=("VECT_2D","VECT_3D","TENS_2D","TENS_3D"),
29206                                        defaut="VECT_3D"),
29207            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
29208               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
29209            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
29210               NOM_CMP         =SIMP(statut='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),),
29211            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
29212               NOM_CMP         =SIMP(statut='f',typ='TXM',min=4,max=4,defaut=('EPXX','EPYY','EPZZ','EPXY',) ),),
29213            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
29214               NOM_CMP         =SIMP(statut='f',typ='TXM',min=6,max=6,defaut=('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ',),),),
29215
29216            REPERE          =SIMP(statut='o',typ='TXM',
29217                                  into=("UTILISATEUR","CYLINDRIQUE","NORMALE","DIR_JAUGE"),),
29218            b_normale       =BLOC(condition = "REPERE=='NORMALE'",
29219              regles=(UN_PARMI('VECT_X','VECT_Y')),
29220              VECT_X          =SIMP(statut='f',typ='R',min=3,max=3),
29221              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3), ),
29222            b_utilisateur   =BLOC(condition = "REPERE=='UTILISATEUR'",
29223              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3)),
29224            b_cylindrique   =BLOC(condition = "REPERE=='CYLINDRIQUE'",
29225              ORIGINE         =SIMP(statut='o',typ='R',min=2,max=3),
29226              AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3)),
29227            b_dir_jauge       =BLOC(condition = "REPERE=='DIR_JAUGE'",
29228              VECT_X          =SIMP(statut='f',typ='R',min=3,max=3),
29229              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3), ),
29230          ),
29231
29232 #        ------------------------------------------------------------------
29233 #        EPSI_MOYENNE
29234 #        ------------------------------------------------------------------
29235          EPSI_MOYENNE     =FACT(statut='f',max='**',
29236                        regles=(AU_MOINS_UN('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
29237            NOEUD       = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
29238            GROUP_NO     = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
29239            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29240            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29241            SEUIL_VARI      =SIMP(statut='f',typ='R',validators=NoRepeat(),defaut=0.1,),
29242            MASQUE          =SIMP(statut='f',typ='TXM',max=6),
29243          ),
29244
29245 #        ------------------------------------------------------------------
29246 #        FILTRE DES DDL
29247 #        ------------------------------------------------------------------
29248          FILTRE     =FACT(statut='f',max='**',
29249            regles=(UN_PARMI('DDL_ACTIF'),
29250 #                           'MASQUE'),
29251            AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
29252            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29253            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
29254            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29255            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
29256            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29257            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),),
29258
29259 #
29260            DDL_ACTIF       =SIMP(statut='f',typ='TXM',max=6),
29261 # TODO : mettre en place le systeme de masques
29262 #           MASQUE          =SIMP(statut='f',typ='TXM',max=6),
29263          ),
29264 #        ------------------------------------------------------------------
29265
29266          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
29267          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
29268       )  ;
29269
29270 # ======================================================================
29271 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
29272 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
29273 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
29274 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
29275 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
29276 #                                                                       
29277 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
29278 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
29279 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
29280 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
29281 #                                                                       
29282 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
29283 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
29284 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
29285 # ======================================================================
29286 # person_in_charge: romeo.fernandes at edf.fr
29287
29288 PERM_MAC3COEUR = MACRO(nom="PERM_MAC3COEUR",
29289                        op=OPS("Mac3coeur.perm_mac3coeur_ops.perm_mac3coeur_ops"),
29290                        sd_prod=evol_noli,
29291
29292          TYPE_COEUR   = SIMP(statut='o',typ='TXM',into=("MONO","TEST","900","1300","N4","EPR") ),
29293          TABLE_N      = SIMP(statut='o',typ=table_sdaster),         # TABLE INITIALE DES DAMAC A L INSTANT N
29294          RESU_N       = SIMP(statut='o',typ=evol_noli),             # RESULTAT A L INSTANT N A PERMUTER
29295          TABLE_NP1    = SIMP(statut='o',typ=table_sdaster),         # TABLE INITIALE DES DAMAC A L INSTANT N+1
29296          MAILLAGE_NP1 = SIMP(statut='o',typ=maillage_sdaster),);    # MAILLAGE A L INSTANT N+1
29297
29298 # ======================================================================
29299 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29300 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29301 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29302 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29303 # (AT YOUR OPTION) ANY LATER VERSION.
29304 #
29305 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29306 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29307 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29308 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29309 #
29310 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29311 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29312 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29313 # ======================================================================
29314 # person_in_charge: renaud.bargellini at edf.fr
29315
29316 POST_BORDET =MACRO(nom="POST_BORDET",
29317                    op=OPS('Macro.post_bordet_ops.post_bordet_ops'),
29318                    sd_prod=table_sdaster,
29319                    UIinfo={"groupes":("Outils-métier","Rupture",)},
29320                    reentrant='n',
29321                    fr="calcul de la probabilite de clivage via le modele de Bordet",
29322          regles=(UN_PARMI('TOUT','GROUP_MA'),
29323                  UN_PARMI('INST','NUME_ORDRE'),
29324                  ),
29325          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
29326          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
29327                            fr="le calcul ne sera effectué que sur ces mailles"),
29328          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),),
29329          PRECISION =SIMP(statut='f',typ='R',validators=NoRepeat(),val_min=0.,val_max=1E-3,defaut=1E-6),
29330          CRITERE   =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU") ),
29331          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),),
29332          PROBA_NUCL      =SIMP(statut='f',typ='TXM',into=("NON","OUI"), defaut="NON",
29333                       fr="prise en compte du facteur exponentiel"),
29334          b_nucl          =BLOC( condition = "PROBA_NUCL=='OUI'",
29335                           PARAM =FACT(statut='o',
29336                                  M                =SIMP(statut='o',typ='R',val_min=0.E+0),
29337                                  SIGM_REFE         =SIMP(statut='o',typ=(fonction_sdaster),val_min=0.E+0),
29338                                  VOLU_REFE        =SIMP(statut='o',typ='R',val_min=0.E+0),
29339                                  SIG_CRIT         =SIMP(statut='o',typ='R',val_min=0.E+0),
29340                                  SEUIL_REFE       =SIMP(statut='o',typ='R',val_min=0.E+0),
29341                                  SEUIL_CALC       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster)),
29342                                  DEF_PLAS_REFE    =SIMP(statut='o',typ='R'),),),
29343
29344          b_prop          =BLOC( condition = "PROBA_NUCL=='NON'",
29345                           PARAM =FACT(statut='o',
29346                                  M                =SIMP(statut='o',typ='R',val_min=0.E+0),
29347                                  SIGM_REFE         =SIMP(statut='o',typ=fonction_sdaster,val_min=0.E+0),
29348                                  VOLU_REFE        =SIMP(statut='o',typ='R',val_min=0.E+0),
29349                                  SIG_CRIT         =SIMP(statut='o',typ='R',val_min=0.E+0),
29350                                  SEUIL_REFE       =SIMP(statut='o',typ='R',val_min=0.E+0),
29351                                  SEUIL_CALC       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),),
29352                                  ),
29353                                  ),
29354
29355          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
29356                                       fr="Resultat d'une commande globale STAT_NON_LINE"),
29357          TEMP            =SIMP(statut='o',typ=(fonction_sdaster,'R')),
29358          COEF_MULT       =SIMP(statut='f',typ='R', defaut=1.),
29359            )
29360
29361 # ======================================================================
29362 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
29363 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
29364 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
29365 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
29366 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
29367 #                                                                       
29368 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
29369 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
29370 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
29371 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
29372 #                                                                       
29373 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
29374 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
29375 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
29376 # ======================================================================
29377 # person_in_charge: samuel.geniaut at edf.fr
29378 def post_cham_xfem_prod(RESULTAT,**args ):
29379  
29380   if AsType(RESULTAT) == evol_noli  : return evol_noli
29381   if AsType(RESULTAT) == mode_meca  : return mode_meca
29382   if AsType(RESULTAT) == evol_elas  : return evol_elas
29383   if AsType(RESULTAT) == evol_ther  : return evol_ther
29384
29385   raise AsException("type de concept resultat non prevu")
29386
29387 POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=post_cham_xfem_prod,
29388                     reentrant='n',UIinfo={"groupes":("Post-traitements","Rupture",)},
29389             fr="Calcul des champs DEPL, SIEF_ELGA et VARI_ELGA sur le maillage de visualisation (fissuré)",
29390     RESULTAT      = SIMP(statut='o',typ=resultat_sdaster),
29391     MODELE_VISU   = SIMP(statut='o',typ=modele_sdaster,),
29392     INFO          = SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
29393 );                     
29394
29395 # ======================================================================
29396 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
29397 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29398 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29399 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29400 # (AT YOUR OPTION) ANY LATER VERSION.
29401 #
29402 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29403 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29404 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29405 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29406 #
29407 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29408 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29409 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29410 # ======================================================================
29411 # person_in_charge: jacques.pellet at edf.fr
29412
29413 def post_champ_prod(RESULTAT,**args):
29414    if AsType(RESULTAT) != None : return AsType(RESULTAT)
29415    raise AsException("type de concept resultat non prevu")
29416
29417
29418 # liste des options possibles pour les 4 mots clés EXTR_COQUE, EXTR_TUYAY, EXTR_PMF et MIN_MAX_SP :
29419 liste_option_extr=("EPEQ_ELGA","EPEQ_ELNO","EPSI_ELGA","EPSI_ELNO",
29420                    "SIEF_ELGA","SIEF_ELNO",
29421                    "SIEQ_ELGA","SIEQ_ELNO","SIGM_ELGA","SIGM_ELNO",
29422                    "VARI_ELGA","VARI_ELNO",)
29423
29424
29425 POST_CHAMP=OPER(nom="POST_CHAMP",op=155,sd_prod=post_champ_prod, reentrant='n',
29426             UIinfo={"groupes":("Post-traitements","Eléments de structure",)},
29427                  fr="extraction de champs sur un sous-point. ",
29428
29429          regles=(UN_PARMI('EXTR_COQUE','EXTR_TUYAU','EXTR_PMF','MIN_MAX_SP','COQU_EXCENT'),
29430                  EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
29431                         'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS',),
29432                  ),
29433
29434          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
29435                                fr="Resultat d'une commande globale"),
29436
29437
29438 #====
29439 # Sélection des numéros d'ordre pour lesquels on fait le calcul :
29440 #====
29441          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29442          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
29443          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29444          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
29445          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29446          NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29447          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
29448          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
29449          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
29450          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
29451
29452          b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
29453             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29454             b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29455                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29456             b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29457                  PRECISION       =SIMP(statut='o',typ='R',),),
29458          ),
29459
29460
29461 #====
29462 # Sélection de la zone géométrique:
29463 #====
29464          TOUT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
29465          GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29466          MAILLE     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
29467
29468
29469
29470 #====
29471 # Extraction sur un sous-point d'une coque :
29472 #====
29473          EXTR_COQUE  =FACT(statut='f', max=1, fr="extraction sur un sous-point d'une coque",
29474            NOM_CHAM     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
29475                               into=liste_option_extr,),
29476            NUME_COUCHE  =SIMP(statut='o',typ='I',val_min=1,
29477                              fr="numero de couche dans l'épaisseur de la coque" ),
29478            NIVE_COUCHE  =SIMP(statut='o',typ='TXM',into=("SUP","INF","MOY"),
29479                              fr="position dans l'épaisseur de la couche" ),
29480            ),
29481
29482
29483 #====
29484 # Extraction sur un sous-point d'un tuyau :
29485 #====
29486          EXTR_TUYAU  =FACT(statut='f', max=1, fr="extraction sur un sous-point d'un tuyau",
29487            NOM_CHAM     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
29488                               into=liste_option_extr ,),
29489            NUME_COUCHE  =SIMP(statut='o',typ='I',val_min=1,
29490                              fr="numero de couche dans l'épaisseur du tuyau" ),
29491            NIVE_COUCHE  =SIMP(statut='o',typ='TXM',into=("SUP","INF","MOY"),
29492                              fr="position dans l'épaisseur de la couche" ),
29493            ANGLE        =SIMP(statut='o',typ='I',val_min=0,val_max=360,
29494                              fr="angle de dépouillement pour les tuyaux, en degrés à partir de la génératrice" ),
29495            ),
29496
29497
29498 #====
29499 # Extraction sur un sous-point d'une poutre multifibre :
29500 #====
29501          EXTR_PMF  =FACT(statut='f', max=1, fr="extraction sur un sous-point d'une poutre multifibre",
29502            NOM_CHAM     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
29503                               into=liste_option_extr,),
29504            NUME_FIBRE  =SIMP(statut='o',typ='I',val_min=1,
29505                              fr="numéro de la fibre dans la poutre multifibre" ),
29506            ),
29507
29508
29509 #====
29510 # Extraction des min / max sur les sous-points :
29511 #====
29512          MIN_MAX_SP  =FACT(statut='f', max='**', fr="extraction du min/max d'une composante pour un champ",
29513            NOM_CHAM     =SIMP(statut='o',typ='TXM',
29514                               into=liste_option_extr,),
29515            NOM_CMP        =SIMP(statut='o',typ='TXM',fr="nom de la composante",  ),
29516            TYPE_MAXI      =SIMP(statut='o',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS",) ),
29517            NUME_CHAM_RESU = SIMP(statut='o', typ='I', val_min=1, val_max=20,
29518                           fr="Numéro du champ produit. Exemple: 6 produit le champ UT06",),
29519            ),
29520
29521
29522 #====
29523 # Calcul des efforts des coques "excentrées" sur le feuillet moyen de la coque :
29524 #====
29525          COQU_EXCENT  =FACT(statut='f', max=2, fr="Calcul des efforts d'une coque 'excentrée' sur le feuillet moyen de la coque",
29526            NOM_CHAM     =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO","EFGE_ELGA",),),
29527            MODI_PLAN    =SIMP(statut='o',typ='TXM',into=("OUI",),),
29528            ),
29529       )
29530
29531 # ======================================================================
29532 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29533 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29534 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29535 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29536 # (AT YOUR OPTION) ANY LATER VERSION.
29537 #
29538 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29539 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29540 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29541 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29542 #
29543 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29544 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29545 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29546 # ======================================================================
29547 # person_in_charge: xavier.desroches at edf.fr
29548
29549 POST_COQUE=MACRO(nom="POST_COQUE",
29550                  op=OPS('Macro.post_coque_ops.post_coque_ops'),
29551                  sd_prod=table_sdaster,
29552                  reentrant='n',
29553                  UIinfo={"groupes":("Post-traitements",)},
29554                  fr="Calcul des efforts et déformations en un point et une cote " \
29555                     "quelconque de la coque",
29556
29557              regles=(EXCLUS('INST','NUME_ORDRE'),),
29558
29559              # SD résultat et champ à posttraiter :
29560              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à posttraiter",),
29561              CHAM            =SIMP(statut='o',typ='TXM',into=("EFFORT","DEFORMATION",)),
29562              NUME_ORDRE      =SIMP(statut='f',typ='I'),
29563              INST            =SIMP(statut='f',typ='R'),
29564
29565              # points de post-traitement :
29566              COOR_POINT      =FACT(statut='o',max='**',fr="coordonnées et position dans l'épaisseur",
29567                                    COOR=SIMP(statut='o',typ='R',min=3,max=4),),
29568
29569             )
29570
29571 # ======================================================================
29572 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
29573 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29574 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29575 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29576 # (AT YOUR OPTION) ANY LATER VERSION.
29577 #
29578 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29579 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29580 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29581 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29582 #
29583 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29584 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29585 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29586 # ======================================================================
29587 # person_in_charge: Georges-cc.devesa at edf.fr
29588
29589
29590 POST_DECOLLEMENT=MACRO(nom="POST_DECOLLEMENT",
29591                        op=OPS('Macro.post_decollement_ops.post_decollement_ops'),
29592                        sd_prod=table_sdaster,
29593                        fr="calcul du rapport de surfaces de contact radier/sol",
29594                        reentrant='n',
29595                        UIinfo={"groupes":("Post-traitements",)},
29596          RESULTAT   =SIMP(statut='o',typ=(evol_noli) ),
29597          NOM_CHAM   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),defaut='DEPL',into=C_NOM_CHAM_INTO(),max=1),
29598          NOM_CMP    =SIMP(statut='f',typ='TXM',defaut='DZ',max=1),
29599          GROUP_MA   =SIMP(statut='o',typ=grma,max=1),
29600          INFO       =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
29601 )
29602
29603 # ======================================================================
29604 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
29605 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29606 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29607 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29608 # (AT YOUR OPTION) ANY LATER VERSION.
29609 #
29610 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29611 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29612 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29613 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29614 #
29615 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29616 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29617 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29618 # ======================================================================
29619 # person_in_charge: irmela.zentner at edf.fr
29620 POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA",
29621                      op=OPS('Macro.post_dyna_alea_ops.post_dyna_alea_ops'),
29622                      sd_prod=table_sdaster,
29623                      fr="Traitements statistiques de résultats de type interspectre " \
29624                         "et impression sur fichiers",
29625                      reentrant='n',
29626                      UIinfo={"groupes":("Post-traitements","Dynamique",)},
29627          regles=(UN_PARMI('FRAGILITE','INTERSPECTRE'),),
29628          FRAGILITE  =FACT(statut='f',fr="donnees pour courbe de fragilite",max=1,
29629                     TABL_RESU  =SIMP(statut='o',typ=table_sdaster),
29630                     regles=(UN_PARMI('VALE','LIST_PARA'),),
29631                     VALE       = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**' ),
29632                     LIST_PARA  = SIMP(statut='f',typ=listr8_sdaster),
29633                     AM_INI     = SIMP(statut='f',typ='R',defaut= 0.4 ),
29634                     BETA_INI   = SIMP(statut='f',typ='R',defaut= 0.3 ),
29635                     FRACTILE   = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**'),
29636                     b_inte_spec_f  = BLOC(condition="""FRACTILE !=None""",
29637                         NB_TIRAGE =SIMP(statut='f',typ='I' ),),
29638                  ),
29639          INTERSPECTRE  =FACT(statut='f',fr="donnees pour interspectre",max=1,
29640                   regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
29641                    INTE_SPEC       =SIMP(statut='o',typ=interspectre),
29642                    NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**' ),
29643                    NOEUD_I         =SIMP(statut='f',typ=no,max='**'),
29644                    OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG","TOUT",) ),
29645                    b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
29646                        NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),
29647                                 ),
29648                    b_noeud_i      =BLOC(condition = "NOEUD_I != None",
29649                        NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
29650                        NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),
29651                        NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),
29652                                 ),
29653                    MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux "\
29654                                                          "en complément des cinq premiers" ),
29655                    DUREE           =SIMP(statut='f',typ='R',fr="durée de la phase forte "\
29656                                                               "pour facteur de peak" ),
29657                 ),       
29658          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
29659          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
29660 )  ;
29661
29662 # ======================================================================
29663 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
29664 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29665 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29666 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
29667 # (AT YOUR OPTION) ANY LATER VERSION.                                 
29668 #
29669 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
29670 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
29671 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
29672 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
29673 #
29674 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
29675 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
29676 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
29677 # ======================================================================
29678 # person_in_charge: emmanuel.boyere at edf.fr
29679 POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster,
29680                       fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL",
29681                       reentrant='n',
29682             UIinfo={"groupes":("Post-traitements","Dynamique",)},
29683         regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
29684          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
29685          CHOC            =FACT(statut='f',max='**',
29686                                fr="Analyse des non linéarités de choc",
29687            INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
29688            INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
29689            NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
29690            SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
29691            DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
29692            OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
29693            NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
29694          ),
29695          RELA_EFFO_DEPL  =FACT(statut='f',
29696                                fr="Analyse des relationsnon linéaires effort-déplacement",
29697            NOEUD           =SIMP(statut='o',typ=no),
29698            NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
29699          ),
29700          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
29701          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
29702 )  ;
29703
29704 # ======================================================================
29705 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
29706 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
29707 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
29708 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
29709 # (AT YOUR OPTION) ANY LATER VERSION.
29710 #
29711 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
29712 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
29713 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
29714 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
29715 #
29716 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
29717 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
29718 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
29719 # ======================================================================
29720 # person_in_charge: josselin.delmas at edf.fr
29721
29722 POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n',
29723             UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
29724                fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
29725
29726          regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT','MINMAX',
29727                           'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE','NORME',
29728                           'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL','VOLUMOGRAMME',
29729                           'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','ENER_DISS','INTEGRALE'),
29730                 ),
29731
29732          MASS_INER      = FACT(statut='f',max='**',
29733                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29734                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29735                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29736                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29737                                ORIG_INER    = SIMP(statut='f',typ='R',min=3,max=3 ),
29738                               ),
29739          b_mass_iner = BLOC(condition = "( MASS_INER != None )",
29740                        fr="calcul de la masse, les inerties et le centre de gravité",
29741                        regles=(EXCLUS('CHAM_GD','RESULTAT'),
29742                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
29743                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
29744                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29745                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29746                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
29747                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
29748                                         char_ther,char_acou),validators=NoRepeat(),max='**' ),
29749                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
29750                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
29751                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
29752                        GEOMETRIE      = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
29753                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
29754                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
29755                                                              fourier_elas,dyna_trans) ),
29756                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29757                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29758                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29759                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29760                           PRECISION       =SIMP(statut='o',typ='R',),),
29761                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29762                        NUME_ORDRE     = SIMP(statut='f',typ='I',),
29763                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29764                        INST           = SIMP(statut='f',typ='R',),
29765                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29766                        FREQ           = SIMP(statut='f',typ='R',),
29767                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
29768                        NUME_MODE      = SIMP(statut='f',typ='I',),
29769                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2),
29770                        NOM_CAS        = SIMP(statut='f',typ='TXM',),
29771          ),
29772
29773          ENER_POT       = FACT(statut='f',max='**',
29774                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29775                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29776                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29777                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29778                               ),
29779          b_ener_pot = BLOC(condition = "( ENER_POT  != None )",
29780                        fr="calcul de l'énergie potentielle de déformation",
29781                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
29782                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
29783                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
29784                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29785                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29786                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
29787                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
29788                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
29789                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
29790                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
29791                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
29792                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
29793                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
29794                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ),
29795                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29796                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29797                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29798                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29799                           PRECISION       =SIMP(statut='o',typ='R',),),
29800                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29801                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29802                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29803                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29804                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29805                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29806                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
29807                        NUME_MODE      = SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
29808                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29809                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29810          ),
29811
29812          ENER_CIN       = FACT(statut='f',max='**',
29813                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29814                                OPTION       = SIMP(statut='f',typ='TXM',validators=NoRepeat(),
29815                                                    into=("MASS_MECA","MASS_MECA_DIAG"),
29816                                                    defaut="MASS_MECA" ),
29817                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29818                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29819                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29820                               ),
29821          b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
29822                        fr="calcul de l'énergie cinétique",
29823                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
29824                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
29825                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
29826                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29827                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29828                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
29829                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
29830                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
29831                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
29832                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
29833                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
29834                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
29835                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
29836                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
29837                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29838                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29839                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29840                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29841                           PRECISION       =SIMP(statut='o',typ='R',),),
29842                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29843                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29844                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29845                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29846                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29847                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29848                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
29849                        NUME_MODE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29850                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29851                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
29852          ),
29853
29854          ENER_DISS      = FACT(statut='f',max='**',
29855                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29856                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29857                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29858                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29859                               ),
29860          b_ener_diss = BLOC(condition = "( ENER_DISS != None )",
29861                        fr="calcul de l'énergie dissipée",
29862                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29863                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29864                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
29865                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
29866                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
29867                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
29868                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
29869                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
29870                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
29871                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
29872                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29873                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29874                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29875                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29876                           PRECISION       =SIMP(statut='o',typ='R',),),
29877                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29878                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29879                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29880                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29881                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29882          ),
29883
29884
29885          ENER_ELAS      = FACT(statut='f',max='**',
29886                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29887                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29888                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29889                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29890                               ),
29891          b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
29892                        fr="calcul de l'énergie de déformation élastique",
29893                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29894                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29895                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
29896                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
29897                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
29898                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
29899                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
29900                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
29901                        RESULTAT       = SIMP(statut='o',typ=(evol_noli,evol_elas) ),
29902                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
29903                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29904                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29905                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29906                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29907                           PRECISION       =SIMP(statut='o',typ='R',),),
29908                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29909                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29910                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29911                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29912                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29913          ),
29914
29915          ENER_TOTALE    = FACT(statut='f',max='**',
29916                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29917                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29918                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29919                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29920                               ),
29921          b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
29922                        fr="calcul de l'énergie de déformation totale",
29923                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29924                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29925                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
29926                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
29927                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
29928                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
29929                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
29930                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
29931                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
29932                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
29933                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29934                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29935                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29936                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29937                           PRECISION       =SIMP(statut='o',typ='R',),),
29938                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29939                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29940                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29941                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29942                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29943          ),
29944
29945          INTEGRALE  = FACT(statut='f',max='**',
29946                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
29947                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29948                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
29949                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
29950                                NOM_CHAM     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
29951                                NOM_CMP      = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
29952                                DEJA_INTEGRE = SIMP(statut='f',typ='TXM',into=("OUI","NON",),),
29953                               ),
29954          b_integrale = BLOC(condition = "( INTEGRALE != None )",
29955                        fr="calcul de la moyenne d'une composante",
29956                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
29957                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),),
29958                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29959                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29960                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas,evol_char) ),
29961                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
29962                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29963                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29964                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29965                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29966                           PRECISION       =SIMP(statut='o',typ='R',),),
29967                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29968                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
29969                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
29970                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
29971                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
29972          ),
29973
29974          VOLUMOGRAMME  = FACT(statut='f',max='**',
29975                                regles=(UN_PARMI('TOUT','GROUP_MA'),
29976                                        UN_PARMI('NB_INTERV','SEUIL'),),
29977                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
29978                                GROUP_MA     = SIMP(statut='f',typ=grma,max=1),
29979                                TYPE_MAILLE  = SIMP(statut='f',typ='TXM',into=('2D','3D',)),
29980                                NOM_CHAM     = SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
29981                                NOM_CMP      = SIMP(statut='o',typ='TXM'),
29982                                NB_INTERV    = SIMP(statut='f',typ='I'),
29983                                SEUIL        = SIMP(statut='f',typ='R'),
29984                                BORNES       = SIMP(statut='f',typ='R',validators=NoRepeat(),min=2,max=2),
29985                                NORME        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
29986                               ),
29987          b_volumogramme = BLOC(condition = "( VOLUMOGRAMME != None )",
29988                        fr="calcul de la distribution du volume d'une structure vis-à-vis d'une composante",
29989                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
29990                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_ORDRE','LIST_INST'),),
29991                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
29992                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
29993                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas,evol_char) ),
29994                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
29995                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
29996                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
29997                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
29998                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
29999                           PRECISION       =SIMP(statut='o',typ='R',),),
30000                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30001                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30002                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30003                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30004                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30005          ),
30006
30007          NORME  = FACT(statut='f',max=1,
30008                        fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés",
30009                        regles=(UN_PARMI('TOUT','GROUP_MA'),
30010                                UN_PARMI('CHAM_GD','RESULTAT'),
30011                                PRESENT_PRESENT('CHAM_GD','MODELE'),
30012                                PRESENT_PRESENT('RESULTAT','NOM_CHAM'),),
30013                        TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30014                        GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30015                        TYPE_MAILLE  = SIMP(statut='f',typ='TXM',into=('2D','3D',)),
30016                        TYPE_NORM    = SIMP(statut='f',typ='TXM',into=('L2','FROBENIUS')),
30017                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ),
30018                        NOM_CHAM       = SIMP(statut='f',typ='TXM',validators=NoRepeat(),
30019                                              into=("DEPL","TEMP","NEUT_R",
30020                                                    "FLUX_ELGA","FLUX_ELNO","FLUX_NOEU",
30021                                                    "EPSI_ELGA","EPSI_ELNO","EPSI_NOEU",
30022                                                    "SIEF_ELGA","SIEF_ELNO","SIEF_NOEU")),
30023                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
30024                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30025
30026                        b_norme_GD = BLOC(condition = "( CHAM_GD != None )",
30027                               COEF_MULT      = SIMP(statut='f',typ='R',max=30),
30028                               ),
30029
30030                        b_norme = BLOC(condition = "( RESULTAT != None )",
30031                                regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30032                               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30033                               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30034                                   PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30035                               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30036                                   PRECISION       =SIMP(statut='o',typ='R',),),
30037                               TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30038                               NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30039                               LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30040                               INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30041                               LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30042                               ),
30043                        ),
30044
30045
30046          MINMAX  = FACT(statut='f',max=1,
30047                        fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés",
30048                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
30049                                PRESENT_PRESENT('CHAM_GD','MODELE'),
30050                                PRESENT_PRESENT('RESULTAT','NOM_CHAM'),
30051                                UN_PARMI('TOUT','GROUP_MA'),),
30052                        TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30053                        GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30054                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ),
30055                        NOM_CHAM       = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
30056                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
30057                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30058                        NOM_CMP        = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
30059               b_minmax = BLOC(condition = "( RESULTAT != None )",
30060                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30061                               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30062                               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30063                                   PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30064                               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30065                                   PRECISION       =SIMP(statut='o',typ='R',),),
30066                               TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30067                               NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30068                               LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30069                               INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30070                               LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30071                               ),
30072          ),
30073
30074          WEIBULL        = FACT(statut='f',max='**',
30075                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
30076                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30077                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
30078                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30079                                OPTION       = SIMP(statut='f',typ='TXM',validators=NoRepeat(),
30080                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
30081                                                    defaut="SIGM_ELGA"),
30082                                CORR_PLAST   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
30083                                COEF_MULT    = SIMP(statut='f',typ='R',defaut=1.),
30084                               ),
30085          b_weibull = BLOC(condition = "( WEIBULL != None )",
30086                        fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
30087                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
30088                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30089                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30090                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30091                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
30092                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30093                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30094                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
30095                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
30096                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30097                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
30098                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
30099                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30100                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30101                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30102                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30103                           PRECISION       =SIMP(statut='o',typ='R',),),
30104                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30105                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30106                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30107                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30108                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30109          ),
30110
30111          RICE_TRACEY    = FACT(statut='f',max='**',
30112                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
30113                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30114                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
30115                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30116                                OPTION       = SIMP(statut='f',typ='TXM',validators=NoRepeat(),
30117                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
30118                                                    defaut="SIGM_ELGA"),
30119                                LOCAL        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
30120                               ),
30121          b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
30122                        fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
30123                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
30124                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30125                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30126                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30127                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
30128                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30129                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30130                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
30131                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
30132                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30133                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
30134                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
30135                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30136                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30137                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30138                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30139                           PRECISION       =SIMP(statut='o',typ='R',),),
30140                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30141                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30142                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30143                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30144                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30145          ),
30146
30147          INDIC_ENER     = FACT(statut='f',max='**',
30148                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
30149                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30150                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
30151                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30152                               ),
30153          b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
30154                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
30155                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30156                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30157                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30158                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30159                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30160                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
30161                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30162                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30163                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30164                            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30165                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30166                            PRECISION       =SIMP(statut='o',typ='R',),),
30167                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30168                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30169                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30170                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30171                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30172          ),
30173
30174          INDIC_SEUIL    = FACT(statut='f',max='**',
30175                                regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
30176                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30177                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
30178                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30179                               ),
30180          b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
30181                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
30182                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30183                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30184                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30185                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30186                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30187                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
30188                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30189                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30190                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30191                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30192                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30193                           PRECISION       =SIMP(statut='o',typ='R',),),
30194                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30195                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30196                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30197                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30198                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30199          ),
30200
30201          CHAR_LIMITE    = FACT(statut='f',min=0,
30202                                CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
30203                               ),
30204          b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
30205                        fr="post-traitement du calcul de la charge limite",
30206                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30207                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30208                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
30209                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30210                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30211                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30212                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
30213                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
30214                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30215                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30216                           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30217                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30218                           PRECISION       =SIMP(statut='o',typ='R',),),
30219                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30220                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30221                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
30222                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30223                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
30224          ),
30225
30226          CARA_GEOM      = FACT(statut='f',max='**',
30227                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
30228                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30229                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
30230                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30231                                SYME_X       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
30232                                SYME_Y       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
30233                                ORIG_INER    = SIMP(statut='f',typ='R',min=2,max=2),
30234                               ),
30235          b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
30236                        fr="calcul des caractéristiques géométriques d'un section de poutre",
30237                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30238                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30239                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30240                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30241                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30242          ),
30243
30244          CARA_POUTRE    = FACT(statut='f',max='**',
30245                                regles=(UN_PARMI('TOUT','GROUP_MA'),
30246                                        ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
30247                                TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30248                                GROUP_MA      = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30249                                GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
30250                                CARA_GEOM     = SIMP(statut='o',typ=table_sdaster),
30251                                RT            = SIMP(statut='f',typ='R'),
30252                                LAPL_PHI      = SIMP(statut='f',typ=evol_ther),
30253                                LAPL_PHI_Y    = SIMP(statut='f',typ=evol_ther),
30254                                LAPL_PHI_Z    = SIMP(statut='f',typ=evol_ther),
30255                                LIAISON       = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
30256                                LONGUEUR      = SIMP(statut='f',typ='R'),
30257                                MATERIAU      = SIMP(statut='f',typ=mater_sdaster),
30258                                OPTION        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),
30259                                                     into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
30260                              ),
30261          b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
30262                        fr="calcul des caractéristiques mécaniques d'un section de poutre",
30263                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30264                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
30265                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
30266                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
30267                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
30268          ),
30269
30270           AIRE_INTERNE   = FACT(statut='f',max='**',
30271                                 GROUP_MA_BORD  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
30272                                ),
30273          b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
30274                        fr="calcul de l'aire d'un trou dans un maillage 2D",
30275                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
30276          ),
30277
30278          TRAV_EXT       = FACT(statut='f',),
30279          b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
30280                        fr="calcul du travail des efforts extérieurs",
30281                        RESULTAT       = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ),
30282                        CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30283                        b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30284                            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30285                        b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30286                            PRECISION       =SIMP(statut='o',typ='R',),),
30287                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30288          ),
30289
30290          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
30291          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
30292
30293  )  ;
30294
30295 # ======================================================================
30296 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
30297 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30298 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30299 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
30300 # (AT YOUR OPTION) ANY LATER VERSION.
30301 #
30302 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
30303 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
30304 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30305 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
30306 #
30307 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
30308 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
30309 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
30310 # ======================================================================
30311 # person_in_charge: marina.bottoni at edf.fr
30312
30313 # ---------------------------------------------------------------------------
30314 #                  POST_ENDO_FISS
30315 # RECHERCHE DU TRAJET DE FISSURATION SUR UN
30316 #  CHAMP SCALAIRE 2D
30317
30318
30319 def post_endo_fiss_prod(self,TABLE,**args) :
30320     self.type_sdprod(TABLE,table_sdaster)
30321     return maillage_sdaster
30322
30323 POST_ENDO_FISS=MACRO(nom="POST_ENDO_FISS",
30324                      op=OPS('Macro.post_endo_fiss_ops.post_endo_fiss_ops'),
30325                      sd_prod=post_endo_fiss_prod,
30326                      reentrant='n',
30327                      UIinfo={"groupes":("Post-traitements","Outils-métier",)},
30328                      fr="Individuation du trace d'une fissure a partir d'un champ scalaire pertinant",
30329
30330             TABLE  = SIMP(statut = 'o', typ = CO,),
30331
30332             regles = (UN_PARMI("RESULTAT","CHAM_GD"),
30333                       ),
30334             OUVERTURE  = SIMP(statut = 'f', typ = 'TXM', into=('OUI','NON',), defaut = 'NON' ),
30335             b_resultat = BLOC(condition  = "RESULTAT != None",
30336                               regles     = (UN_PARMI('NUME_ORDRE','INST'),),
30337                               NUME_ORDRE = SIMP(statut = 'f', typ = 'I', validators = NoRepeat(), ),
30338                               INST       = SIMP(statut = 'f', typ = 'R', validators = NoRepeat(), ),
30339                               ),
30340
30341             #b_champ    = BLOC(condition = "CHAM_GD != None",),
30342
30343             CHAM_GD         = SIMP(statut = 'f',typ = (cham_gd_sdaster)),
30344             RESULTAT        = SIMP(statut = 'f',typ = (evol_noli)),
30345             NOM_CMP         = SIMP(statut = 'o',typ='TXM',),
30346             NOM_CHAM        = SIMP(statut = 'o', typ = 'TXM',
30347                                    fr = "nom du champ a post-traiter",),
30348
30349             RECHERCHE = FACT(statut = 'o',min=1,max='**',
30350                              regles = (
30351                                        PRESENT_ABSENT('TOUT','GROUP_MA',),
30352                                     ),
30353                               LONG_ORTH  = SIMP(statut='o', typ='R'),
30354                               NB_POINT   = SIMP(statut='f', typ='I', defaut = 500),
30355                               PAS        = SIMP(statut='o', typ='R', ),
30356                               LONG_REG   = SIMP(statut='o', typ='R'),
30357                               BORNE_MIN  = SIMP(statut='f', typ='R', defaut=0.5),
30358                               ANGL_MAX   = SIMP(statut='f', typ='R', defaut=120.),
30359                               TOUT       = SIMP(statut='f', typ='TXM', into=('OUI',) ),
30360                               GROUP_MA   = SIMP(statut='f', typ=grma,  validators=NoRepeat(), ),
30361                               BORNE_MAX  = SIMP(statut='f', typ='R'),
30362                               ),
30363                    )
30364
30365 # ======================================================================
30366 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
30367 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30368 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30369 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
30370 # (AT YOUR OPTION) ANY LATER VERSION.                                 
30371 #
30372 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
30373 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
30374 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
30375 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
30376 #
30377 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
30378 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
30379 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
30380 # ======================================================================
30381 # person_in_charge: irmela.zentner at edf.fr
30382 POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n',
30383             UIinfo={"groupes":("Post-traitements","Rupture",)},
30384                     fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire",
30385          regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
30386                  PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
30387                  UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
30388          MOMENT_SPEC_0   =SIMP(statut='f',typ='R'),  
30389          MOMENT_SPEC_2   =SIMP(statut='f',typ='R'),  
30390          MOMENT_SPEC_4   =SIMP(statut='f',typ='R'),  
30391          TABL_POST_ALEA  =SIMP(statut='f',typ=table_sdaster),
30392          COMPTAGE        =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
30393          DUREE           =SIMP(statut='f',typ='R',defaut= 1.),  
30394          CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
30395          DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
30396          MATER           =SIMP(statut='o',typ=mater_sdaster),
30397          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
30398 )  ;
30399
30400 # ======================================================================
30401 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
30402 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30403 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30404 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
30405 # (AT YOUR OPTION) ANY LATER VERSION.
30406 #
30407 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
30408 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
30409 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30410 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
30411 #
30412 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
30413 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
30414 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
30415 # ======================================================================
30416 # person_in_charge: van-xuan.tran at edf.fr
30417 POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n',
30418             UIinfo={"groupes":("Post-traitements","Rupture",)},
30419                   fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement",
30420
30421          CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","MULTIAXIAL","QUELCONQUE")),
30422
30423          b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
30424                       regles=(PRESENT_PRESENT('CORR_KE','MATER'),
30425                               PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
30426                               PRESENT_PRESENT('DOMMAGE','MATER'),),
30427              HISTOIRE       = FACT(statut='o',
30428                                  regles=(UN_PARMI('SIGM','EPSI'),),
30429                                  SIGM  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30430                                  EPSI  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
30431              COMPTAGE       = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RAINFLOW_MAX","RCCM","NATUREL")),
30432              DELTA_OSCI     = SIMP(statut='f',typ='R',defaut= 0.0E+0),
30433              COEF_MULT      = FACT(statut='f',
30434                                  KT    = SIMP(statut='o',typ='R'),),
30435              CORR_KE        = SIMP(statut='f',typ='TXM',into=("RCCM",)),
30436              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN",
30437                                                               "TAHERI_MANSON","TAHERI_MIXTE")),
30438              MATER          = SIMP(statut='f',typ=mater_sdaster),
30439              CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
30440              TAHERI_NAPPE   = SIMP(statut='f',typ=(nappe_sdaster,formule)),
30441              TAHERI_FONC    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30442              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
30443          ),
30444
30445          b_multiaxial = BLOC( condition = "CHARGEMENT=='MULTIAXIAL'",
30446              HISTOIRE       = FACT(statut='o',
30447                                  regles=(PRESENT_PRESENT('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY','SIGM_XZ','SIGM_YZ'),
30448                                          PRESENT_PRESENT('EPS_XX','EPS_YY','EPS_ZZ','EPS_XY','EPS_XZ','EPS_YZ'),
30449                                          PRESENT_PRESENT('EPSP_XX','EPSP_YY','EPSP_ZZ','EPSP_XY','EPSP_XZ','EPSP_YZ'),
30450                                          AU_MOINS_UN('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY','SIGM_XZ','SIGM_YZ',
30451                                                      'EPS_XX','EPS_YY','EPS_ZZ','EPS_XY','EPS_XZ','EPS_YZ',
30452                                                      'EPSP_XX','EPSP_YY','EPSP_ZZ','EPSP_XY','EPSP_XZ','EPSP_YZ'), 
30453                                                    ),
30454                                  SIGM_XX  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30455                                  SIGM_YY  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30456                                  SIGM_ZZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30457                                  SIGM_XY  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30458                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30459                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30460                                  
30461                                  EPS_XX  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30462                                  EPS_YY  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30463                                  EPS_ZZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30464                                  EPS_XY  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30465                                  EPS_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30466                                  EPS_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30467                                  
30468                                  EPSP_XX  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30469                                  EPSP_YY  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30470                                  EPSP_ZZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30471                                  EPSP_XY  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30472                                  EPSP_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30473                                  EPSP_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30474                                ),
30475                                
30476              TYPE_CHARGE    = SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE")),                            
30477              DOMMAGE         = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_C","FORM_VIE") ), 
30478              
30479              b_fati_pfvie  = BLOC(condition = "(DOMMAGE == 'FORM_VIE')",
30480                                     FORMULE_VIE   =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
30481                                  ),
30482                                  
30483              MATER          = SIMP(statut='f',typ=mater_sdaster),
30484              COEF_CORR      = SIMP(statut='f',typ='R'),
30485              COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0),
30486
30487          
30488              b_period       =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'",
30489                CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","CROSSLAND",
30490                                                                "PAPADOPOULOS","FORMULE_CRITERE") ),
30491  
30492                METHODE       =SIMP(statut='f',typ='TXM',into=("CERCLE_EXACT",) ),                
30493                b_fati_pf  =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')",
30494                    FORMULE_GRDEQ   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
30495                    FORMULE_CRITIQUE = SIMP(statut='f',typ=(fonction_sdaster,formule) ),  
30496                ),
30497              ),
30498            
30499             b_non_period   =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'",
30500                CRITERE       =SIMP(statut='o',typ='TXM',
30501                                    into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","FORMULE_CRITERE") ),
30502                PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
30503                DELTA_OSCI    =SIMP(statut='f',typ='R',defaut= 0.0E+0),
30504                    
30505                b_fati_npf  =BLOC(condition = "(CRITERE == 'FORMULE_CRITERE')",
30506                    FORMULE_GRDEQ   =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
30507                ),
30508             ),
30509
30510          ),
30511
30512          b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
30513              HISTOIRE       = FACT(statut='o',
30514                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
30515                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
30516                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
30517                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
30518                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30519                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
30520                                  EPSP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
30521                                  TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),),
30522              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),),
30523              MATER          = SIMP(statut='o',typ=mater_sdaster),
30524              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
30525          ),
30526
30527          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
30528          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
30529 )  ;
30530
30531 # ======================================================================
30532 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
30533 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30534 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30535 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
30536 # (AT YOUR OPTION) ANY LATER VERSION.
30537 #
30538 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
30539 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
30540 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30541 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
30542 #
30543 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
30544 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
30545 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
30546 # ======================================================================
30547 # person_in_charge: samuel.geniaut at edf.fr
30548
30549 POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",
30550                     op=OPS('Macro.post_k1_k2_k3_ops.post_k1_k2_k3_ops'),
30551                     sd_prod=table_sdaster,
30552                     fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par "\
30553                        "extrapolation des sauts de déplacements sur les lèvres de la fissure",
30554                     reentrant='n',
30555                     UIinfo={"groupes":("Post-traitements","Rupture",)},
30556
30557            regles=(UN_PARMI('FISSURE','FOND_FISS'),),
30558
30559          MODELISATION  =SIMP(statut='o',typ='TXM',
30560                              into=("3D","AXIS","D_PLAN","C_PLAN"),position='global',
30561                              fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
30562          FOND_FISS     =SIMP(statut='f',typ=fond_fiss),
30563          FISSURE       =SIMP(statut='f',typ=fiss_xfem),
30564          RESULTAT      =SIMP(statut='o',typ=(evol_elas,evol_noli,mode_meca),position='global',
30565                              fr="Déplacement des noeuds de la lèvre supérieure et inférieure"),
30566          NB_NOEUD_COUPE=SIMP(statut='f',typ='I',defaut=5,val_min = 3),
30567
30568 #        bloc correspondant a la donnee du fond de fissure pour les fissures maillees
30569          b_fond_fiss   =BLOC (condition="FOND_FISS!= None",
30570
30571               b_no_mod =BLOC (condition="AsType(RESULTAT)!= mode_meca",
30572                         
30573                         EVOL_THER   = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure"),
30574                         b_ref_3D    = BLOC (condition="MODELISATION=='3D' ",
30575                                   TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"),
30576                                   ),  
30577                              ),
30578               b_mod    =BLOC (condition="AsType(RESULTAT)== mode_meca and MODELISATION=='3D'",
30579                                   TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("REGLE",),defaut="REGLE"),
30580                              ),
30581
30582                          NOEUD         = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
30583                          GROUP_NO      = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
30584                          SANS_NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
30585                          SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
30586                          TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
30587                          ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
30588                              fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"),
30589                          ),
30590
30591 #        bloc correspondant a la donnee de la fissure pour les fissures X-FEM
30592          b_fissure     =BLOC (condition="FISSURE!= None",
30593                          NB_POINT_FOND = SIMP(statut='f',typ='I' ,),
30594                          NUME_FOND     = SIMP(statut='f',typ='I',defaut=1),
30595                          ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
30596                              fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"),
30597                          ),
30598
30599          MATER         =SIMP(statut='o',typ=mater_sdaster,
30600                              fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
30601
30602          
30603          PREC_VIS_A_VIS=SIMP(statut='f',typ='R',defaut=0.1),
30604
30605          b_mod_meca  =BLOC (condition="AsType(RESULTAT)== mode_meca ",      
30606          TOUT_ORDRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
30607          NUME_ORDRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30608          LIST_ORDRE    =SIMP(statut='f',typ=listis_sdaster),
30609          TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
30610          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30611          LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
30612          FREQ          =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30613          LIST_FREQ     =SIMP(statut='f',typ=listr8_sdaster),
30614              b_acce_reel     =BLOC(condition="(FREQ!=None) or (LIST_FREQ!=None)",
30615                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
30616                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30617                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30618                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30619                    PRECISION       =SIMP(statut='o',typ='R',),),
30620              ),
30621              ),
30622          b_no_mod_meca  =BLOC (condition="AsType(RESULTAT)!= mode_meca ",
30623          TOUT_ORDRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
30624          NUME_ORDRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30625          LIST_ORDRE    =SIMP(statut='f',typ=listis_sdaster),   
30626          INST          =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30627          LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),
30628              b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
30629                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
30630                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30631                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30632                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30633                    PRECISION       =SIMP(statut='o',typ='R',),),
30634              ),
30635              ),
30636          INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
30637          TITRE         =SIMP(statut='f',typ='TXM',max='**'),
30638 )  ;
30639
30640 # ======================================================================
30641 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
30642 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30643 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30644 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
30645 # (AT YOUR OPTION) ANY LATER VERSION.                                 
30646 #
30647 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
30648 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
30649 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
30650 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
30651 #
30652 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
30653 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
30654 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
30655 # ======================================================================
30656 # person_in_charge: aurore.parrot at edf.fr
30657 #
30658 POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster,
30659                    fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA",
30660                    reentrant='n',
30661             UIinfo={"groupes":("Post-traitements","Rupture",)},
30662          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
30663          MATER_REV     = SIMP(statut='o',typ=mater_sdaster),
30664          EPAIS_REV     = SIMP(statut='o',typ='R'),
30665          FISSURE       = FACT(statut='o',
30666             DECALAGE       = SIMP(statut='f',typ='R',defaut=-2.e-04),
30667             PROFONDEUR     = SIMP(statut='o',typ='R'),
30668             LONGUEUR       = SIMP(statut='o',typ='R'),
30669             ORIENTATION    = SIMP(statut='o',typ='TXM',
30670                                  into=("CIRC","LONGI"),),
30671          ),
30672          K1D           = FACT(statut='o',max='**',
30673             TABL_MECA_REV  = SIMP(statut='o',typ=(table_sdaster)),
30674             TABL_MECA_MDB  = SIMP(statut='o',typ=(table_sdaster)),
30675             TABL_THER      = SIMP(statut='o',typ=(table_sdaster)),
30676             INTITULE       = SIMP(statut='o',typ='TXM' ), 
30677          ),
30678          TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
30679 );
30680
30681 # ======================================================================
30682 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
30683 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30684 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30685 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
30686 # (AT YOUR OPTION) ANY LATER VERSION.
30687 #
30688 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
30689 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
30690 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30691 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
30692 #
30693 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
30694 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
30695 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
30696 # ======================================================================
30697 # person_in_charge: samuel.geniaut at edf.fr
30698
30699
30700 POST_K_TRANS=MACRO(nom="POST_K_TRANS",
30701                    op=OPS('Macro.post_k_trans_ops.post_k_trans_ops'),
30702                    sd_prod=table_sdaster,
30703                    fr="Calcul des facteurs d intensite des contrainte par recombinaison modale",
30704                    reentrant='n',
30705                    UIinfo={"groupes":("Post-traitements","Rupture",)},
30706         RESU_TRANS      =SIMP(statut='o',typ=tran_gene),
30707         K_MODAL         =FACT(statut='o',
30708            TABL_K_MODA     =SIMP(statut='o',typ=table_sdaster,),
30709            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,),
30710            FISSURE         =SIMP(statut='f',typ=fiss_xfem,),
30711            regles=( UN_PARMI('FISSURE','FOND_FISS'), ),
30712            ),
30713            
30714         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
30715         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
30716         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
30717         LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
30718         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30719         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
30720         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
30721         b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30722            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6),),
30723         b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30724            PRECISION       =SIMP(statut='o',typ='R'),),
30725         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
30726         TITRE           =SIMP(statut='f',typ='TXM'),
30727 )
30728
30729 # ======================================================================
30730 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
30731 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30732 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30733 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
30734 # (AT YOUR OPTION) ANY LATER VERSION.
30735 #
30736 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
30737 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
30738 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30739 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
30740 #
30741 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
30742 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
30743 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
30744 # ======================================================================
30745 # person_in_charge: romeo.fernandes at edf.fr
30746
30747 POST_MAC3COEUR = MACRO(nom="POST_MAC3COEUR",
30748                        op=OPS("Mac3coeur.post_mac3coeur_ops.post_mac3coeur_ops"),
30749
30750            TYPE_COEUR   = SIMP(statut='o',typ='TXM',into=("MONO","TEST","900","1300","N4","EPR") ),
30751            RESULTAT     = SIMP(statut='o',typ=evol_noli),                             # SD_RESULTAT
30752            INST         = SIMP(statut='o',typ='R', max=1),                            # INSTANT
30753            
30754            LAME    = FACT(statut='f',max='**',
30755                           fr="Post-traitement des lames d'eau, par grille ou valeurs min/max",
30756                           regles = UN_PARMI('NUME_GRILLE','TYPE_RESU',),
30757                  NUME_GRILLE  = SIMP(statut='f',typ='I', max=1),                      # NUMERO DE LA GRILLE A POST-TRAITER
30758                  TYPE_RESU    = SIMP(statut='f',typ='TXM',into=("MINI","MAXI")),      # EXTREMA POUR LE POST
30759                  FORMAT       = SIMP(statut='o',typ='TXM',into=("GRACE","TABLE")),
30760                  UNITE        = SIMP(statut='o',typ='I', max=1),                   # NUMERO DE L'UNITE LOGIQUE POUR LE POST
30761            ),
30762
30763            DEFORMATION = FACT(statut='f',max='**',
30764                               fr="Post-traitement des deformations, par grille ou valeurs min/max",
30765        
30766                  UNITE        = SIMP(statut='o',typ='I', max=1),   
30767                  FORMAT       = SIMP(statut='o',typ='TXM',into=("GRACE","TABLE")),
30768                  
30769                  b_def_grace  = BLOC(condition = "FORMAT == 'GRACE' ",fr="Paramètres pour le format GRACE",
30770                        regles=UN_PARMI('NUME_GRILLE','TYPE_RESU','POSITION'),
30771                        TYPE_VISU    = SIMP(statut='o',typ='TXM',into=("AMPLITUDE","MODULE","VECTEUR","DEFORME")),
30772                        TYPE_RESU    = SIMP(statut='f',typ='TXM',into=("MINI","MAXI")),
30773                        NUME_GRILLE  = SIMP(statut='f',typ='I', max=1), # NUMERO DE LA GRILLE A POST-TRAITER
30774                        POSITION     = SIMP(statut='f',typ='TXM', max=1),  
30775                        CONCEPTION   = SIMP(statut='f',typ='TXM', max=1),
30776                                    ),
30777                  
30778                  b_def_table  = BLOC(condition = "FORMAT == 'TABLE' ",fr="Paramètres pour le format TABLE",
30779                        NOM_CMP      = SIMP(statut='o',typ='TXM',into=("DY","DZ","NORME")),
30780                                    ),
30781                  
30782
30783            ),
30784 )
30785
30786 # ======================================================================
30787 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
30788 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
30789 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
30790 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
30791 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
30792 #                                                                       
30793 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
30794 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
30795 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
30796 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
30797 #                                                                       
30798 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
30799 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
30800 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
30801 # ======================================================================
30802 # person_in_charge: samuel.geniaut at edf.fr
30803 POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
30804                     reentrant='n',UIinfo={"groupes":("Maillage","Rupture",)},
30805             fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM",
30806     MODELE        = SIMP(statut='o',typ=modele_sdaster),
30807     PREF_NOEUD_X   =SIMP(statut='f',typ='TXM',defaut="NX",validators=LongStr(1,2),),
30808     PREF_NOEUD_M   =SIMP(statut='f',typ='TXM',defaut="NM",validators=LongStr(1,2),),
30809     PREF_NOEUD_P   =SIMP(statut='f',typ='TXM',defaut="NP",validators=LongStr(1,2),),
30810     PREF_MAILLE_X  =SIMP(statut='f',typ='TXM',defaut="MX",validators=LongStr(1,2),),
30811     PREF_GROUP_CO  =SIMP(statut='f',typ=grno ,defaut="NFISSU",),
30812     TITRE         = SIMP(statut='f',typ='TXM',max='**'),
30813     INFO           =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
30814 );
30815
30816 # ======================================================================
30817 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
30818 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
30819 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
30820 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
30821 # (AT YOUR OPTION) ANY LATER VERSION.
30822 #
30823 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
30824 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
30825 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
30826 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
30827 #
30828 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
30829 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
30830 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
30831 # ======================================================================
30832 # person_in_charge: samuel.geniaut at edf.fr
30833
30834 POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster,
30835                fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
30836                reentrant='n',
30837             UIinfo={"groupes":("Post-traitements","Rupture",)},
30838          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ),
30839          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
30840          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
30841          TYPE_RESU_MECA  =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ),
30842
30843 # ======================================================================
30844      b_evolution  =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')",
30845
30846          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
30847                                into=("PM_PB","SN","FATIGUE_ZH210","AMORCAGE") ),
30848          MATER           =SIMP(statut='o',typ=mater_sdaster ),
30849          SY_MAX          =SIMP(statut='f',typ='R',
30850                                fr="limite élastique utilisée pour le calcul du rochet thermique" ),
30851          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
30852                                fr="Ke meca seul ou partition mecanique + thermique" ),
30853                                
30854          TRANSITOIRE     =FACT(statut='o',max='**',fr="transitoire à dépouiller",
30855            regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),
30856                    UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),),
30857            NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,
30858                                  fr="nombre d occurences réelles de ce transitoire" ),
30859            TABL_RESU_MECA  =SIMP(statut='f',typ=table_sdaster,
30860                                  fr="relevé des contraintes sur le chemin"),
30861            TABL_SIGM_THER  =SIMP(statut='f',typ=table_sdaster,
30862                                  fr="résultat sous chargement thermique seul" ),
30863            TABL_RESU_PRES  =SIMP(statut='f',typ=table_sdaster,
30864                                  fr="table relevé des contraintes sous chargement de pression" ),
30865            TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster,
30866                                  fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ),
30867            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
30868            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
30869            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
30870            b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
30871                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
30872                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
30873                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
30874                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
30875                    PRECISION       =SIMP(statut='o',typ='R',),),),
30876            ),
30877          ),
30878
30879 # ======================================================================
30880      b_unitaire  =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')",
30881
30882          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
30883                                into=("PM_PB","SN","FATIGUE") ),
30884          MATER           =SIMP(statut='o',typ=mater_sdaster ),
30885          SY_MAX          =SIMP(statut='f',typ='R',
30886                                fr="limite élastique utilisée pourle calcul du rochet thermique" ),
30887          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
30888                                fr="Ke meca seul ou partition mecanique + thermique" ),
30889          CHAR_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
30890                            regles=(UN_PARMI('MX','MX_TUBU'),),
30891            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
30892            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
30893            MX            =SIMP(statut='f',typ='R',fr="moment suivant x", ),
30894            MX_TUBU       =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ),
30895            b_1_tenseur     =BLOC( condition = "MX != None",
30896              FX            =SIMP(statut='f',typ='R',fr="effort suivant x", ),
30897              FY            =SIMP(statut='f',typ='R',fr="effort suivant y", ),
30898              FZ            =SIMP(statut='f',typ='R',fr="effort suivant z", ),
30899              MY            =SIMP(statut='o',typ='R',fr="moment suivant y", ),
30900              MZ            =SIMP(statut='o',typ='R',fr="moment suivant z", ),
30901            ),
30902            b_2_tenseurs    =BLOC( condition = "MX_TUBU != None",
30903              FX_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ),
30904              FY_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ),
30905              FZ_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ),
30906              MY_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ),
30907              MZ_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ),
30908              FX_CORP       =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ),
30909              FY_CORP       =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ),
30910              FZ_CORP       =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ),
30911              MX_CORP       =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ),
30912              MY_CORP       =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ),
30913              MZ_CORP       =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ),
30914            ),
30915
30916                          ),
30917          RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires",
30918                               regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),),
30919            TABL_MX       =SIMP(statut='f',typ=table_sdaster,
30920                                fr="table relevé des contraintes pour chargement unitaire MX"),
30921            TABL_MX_TUBU  =SIMP(statut='f',typ=table_sdaster,
30922                                fr="table relevé des contraintes pour chargement unitaire MX_TUBU"),
30923            b_1_tenseur     =BLOC( condition = "TABL_MX != None",
30924              TABL_FX       =SIMP(statut='f',typ=table_sdaster,
30925                                  fr="table relevé des contraintes pour chargement unitaire FX"),
30926              TABL_FY       =SIMP(statut='f',typ=table_sdaster,
30927                                  fr="table relevé des contraintes pour chargement unitaire FY"),
30928              TABL_FZ       =SIMP(statut='f',typ=table_sdaster,
30929                                  fr="table relevé des contraintes pour chargement unitaire FZ"),
30930              TABL_MY       =SIMP(statut='o',typ=table_sdaster,
30931                                  fr="table relevé des contraintes pour chargement unitaire MY"),
30932              TABL_MZ       =SIMP(statut='o',typ=table_sdaster,
30933                                  fr="table relevé des contraintes pour chargement unitaire MZ"),
30934            ),
30935            b_2_tenseurs    =BLOC( condition = "TABL_MX_TUBU != None",
30936              TABL_FX_TUBU  =SIMP(statut='f',typ=table_sdaster,
30937                                  fr="table relevé des contraintes pour chargement unitaire FX_TUBU"),
30938              TABL_FY_TUBU  =SIMP(statut='f',typ=table_sdaster,
30939                                  fr="table relevé des contraintes pour chargement unitaire FY_TUBU"),
30940              TABL_FZ_TUBU  =SIMP(statut='f',typ=table_sdaster,
30941                                  fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"),
30942              TABL_MY_TUBU  =SIMP(statut='o',typ=table_sdaster,
30943                                  fr="table relevé des contraintes pour chargement unitaire MY_TUBU"),
30944              TABL_MZ_TUBU  =SIMP(statut='o',typ=table_sdaster,
30945                                  fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"),
30946              TABL_FX_CORP  =SIMP(statut='f',typ=table_sdaster,
30947                                  fr="table relevé des contraintes pour chargement unitaire FX_CORP"),
30948              TABL_FY_CORP  =SIMP(statut='f',typ=table_sdaster,
30949                                  fr="table relevé des contraintes pour chargement unitaire FY_CORP"),
30950              TABL_FZ_CORP  =SIMP(statut='f',typ=table_sdaster,
30951                                  fr="table relevé des contraintes pour chargement unitaire FZ_CORP"),
30952              TABL_MX_CORP  =SIMP(statut='o',typ=table_sdaster,
30953                                  fr="table relevé des contraintes pour chargement unitaire MX_CORP"),
30954              TABL_MY_CORP  =SIMP(statut='o',typ=table_sdaster,
30955                                  fr="table relevé des contraintes pour chargement unitaire MY_CORP"),
30956              TABL_MZ_CORP  =SIMP(statut='o',typ=table_sdaster,
30957                                  fr="table relevé des contraintes pour chargement unitaire MZ_CORP"),
30958            ),
30959            TABL_PRES     =SIMP(statut='o',typ=table_sdaster,
30960                                fr="table relevé des contraintes pour chargement unitaire de pression"),
30961                          ),
30962
30963           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
30964            NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
30965            TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
30966                               fr="table relevé des contraintes sous chargement thermique seul" ),
30967                            ),
30968          SEISME         =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang",
30969               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
30970               NB_CYCL_SEISME   =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ),
30971               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
30972               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
30973               NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ),
30974               CHAR_ETAT        =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
30975                                ),
30976          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
30977               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
30978               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
30979               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
30980               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
30981               NUME_PASSAGE     =SIMP(statut='f',typ='I',min=2,max=2,
30982                                      fr="numéro des situations de passage" ),
30983               NUME_GROUPE      =SIMP(statut='o',typ='I',
30984                                         fr="numéros des groupes de la situation" ),
30985               NUME_RESU_THER   =SIMP(statut='f',typ='I',max=1,fr="numeros de transitoires thermiques" ),
30986               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
30987               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
30988               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
30989               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
30990               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
30991               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
30992                                ),
30993
30994                       ),
30995 # ======================================================================
30996      b_tuyauterie  =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')",
30997
30998          OPTION          =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ),
30999          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
31000          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
31001                                fr="Ke meca seul ou partition mecanique + thermique" ),
31002          MODELE          =SIMP(statut='o',typ=modele_sdaster),
31003          CARA_ELEM       =SIMP(statut='o',typ=cara_elem),
31004          ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
31005             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
31006             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31007             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31008             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31009             ),
31010          RESU_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
31011            regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
31012            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
31013            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
31014            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
31015            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
31016            b_extrac        =BLOC(condition="RESULTAT != None",
31017                                  fr="extraction d un champ de grandeur",
31018              regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),),
31019              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO","SIEF_ELNO"),),
31020              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31021              NUME_ORDRE      =SIMP(statut='f',typ='I',),
31022              INST            =SIMP(statut='f',typ='R',),
31023              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
31024              b_acce_reel     =BLOC(condition="(INST != None)",
31025                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
31026                b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
31027                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
31028                b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
31029                    PRECISION       =SIMP(statut='o',typ='R',),),
31030              ),
31031            ),
31032                           ),
31033          INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes",
31034             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
31035             C1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"),
31036             K1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"),
31037             C2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"),
31038             K2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"),
31039             C3              =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"),
31040             K3              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"),
31041             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),),
31042             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
31043                              fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
31044             MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
31045                              fr="liste des mailles ou sont affectés les indices de contraintes"),
31046             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
31047                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31048                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31049             ),
31050             TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"),
31051                               fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"),
31052                          ),
31053           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
31054             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
31055             NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
31056             TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
31057                               fr="table relevé des températures sur la section"),
31058             TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster,
31059                               fr="table relevé des moyennes sur la section"),
31060             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31061             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31062             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31063             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
31064                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31065                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31066             ),
31067                            ),
31068          SEISME         =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang",
31069               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
31070               NB_CYCL_SEISME   =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ),
31071               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
31072               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
31073               NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ),
31074               CHAR_ETAT        =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
31075               TEMP_REF         =SIMP(statut='f',typ='R',fr="temperature référence"),
31076                                ),
31077          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
31078               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
31079               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
31080               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
31081               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
31082               NUME_GROUPE      =SIMP(statut='o',typ='I',
31083                                      fr="numéros des groupes de la situation" ),
31084               NUME_PASSAGE     =SIMP(statut='f',typ='I',min=2,max=2,
31085                                      fr="numéro des situations de passage" ),
31086               NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
31087               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
31088               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
31089               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
31090               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
31091               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
31092               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
31093                                ),
31094                ),
31095 )  ;
31096
31097 # ======================================================================
31098 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
31099 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31100 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31101 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
31102 # (AT YOUR OPTION) ANY LATER VERSION.
31103 #
31104 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
31105 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
31106 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
31107 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
31108 #
31109 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
31110 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
31111 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
31112 # ======================================================================
31113 # person_in_charge: xavier.desroches at edf.fr
31114 POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f',
31115             fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)"
31116                +" ou pour les exprimer dans d'autres repères",
31117             docu="U4.81.21",UIinfo={"groupes":("Post-traitements","Résultats et champs",)},
31118
31119          ACTION          =FACT(statut='o',max='**',
31120                                regles=(UN_PARMI('RESULTAT','CHAM_GD'),),
31121
31122            OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","MOYENNE_ARITH","EXTREMA"),
31123                                  validators=NoRepeat(), max=2),
31124            INTITULE        =SIMP(statut='o',typ='TXM'),
31125
31126            CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
31127                                                  cham_elem,),),
31128            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
31129
31130            b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
31131                                  regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',
31132                                                 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),
31133              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO(),),
31134              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31135              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
31136              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
31137              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
31138              LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
31139              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
31140              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
31141              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
31142              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
31143              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
31144              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
31145              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
31146              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
31147                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
31148              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
31149                  PRECISION       =SIMP(statut='o',typ='R',),),
31150            ),
31151
31152            b_extrema   =BLOC(condition="au_moins_un(OPERATION, 'EXTREMA')",
31153                              fr="recherche de MIN MAX",
31154                              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
31155               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31156               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31157               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31158               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31159               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31160               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
31161               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
31162            ),
31163
31164            b_MOYENNE_ARITH   =BLOC(condition="au_moins_un(OPERATION, 'MOYENNE_ARITH')",
31165                              fr="moyenne sur des groupes",
31166                              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
31167               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31168               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31169               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31170               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31171               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31172               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
31173               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
31174            ),
31175
31176            b_autre   =BLOC(condition="aucun(OPERATION, ('EXTREMA', 'MOYENNE_ARITH'))",
31177                            fr="extraction et moyenne",
31178                            regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
31179                                    EXCLUS('CHEMIN','GROUP_NO'),
31180                                    EXCLUS('CHEMIN','NOEUD'),
31181                                    PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
31182                                    UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
31183                                    PRESENT_PRESENT('TRAC_DIR','DIRECTION'),
31184                                    ENSEMBLE('MOMENT','POINT'),
31185                                    PRESENT_PRESENT('MOMENT','RESULTANTE'),
31186                                    PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
31187                                    EXCLUS('TRAC_DIR','TRAC_NOR'),
31188                                    PRESENT_PRESENT('ORIGINE','AXE_Z'),),
31189
31190               CHEMIN          =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ),
31191               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31192               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31193               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31194               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31195               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31196
31197               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
31198               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
31199               INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
31200               ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31201               RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),
31202
31203               MOMENT          =SIMP(statut='f',typ='TXM',max='**'),
31204               POINT           =SIMP(statut='f',typ='R',max='**'),
31205
31206               REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
31207                                  into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
31208               ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),
31209               ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),
31210               AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),
31211
31212               TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
31213               TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
31214               DIRECTION       =SIMP(statut='f',typ='R',max='**'),
31215
31216               VECT_Y          =SIMP(statut='f',typ='R',max='**'),
31217               MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
31218            ),
31219
31220            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
31221
31222          ),
31223          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
31224          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
31225 )  ;
31226
31227 # ======================================================================
31228 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
31229 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31230 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31231 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
31232 # (AT YOUR OPTION) ANY LATER VERSION.
31233 #
31234 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
31235 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
31236 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
31237 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
31238 #
31239 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
31240 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
31241 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
31242 # ======================================================================
31243 # person_in_charge: samuel.geniaut at edf.fr
31244
31245 POST_RUPTURE=MACRO(nom="POST_RUPTURE",
31246                    op=OPS("Macro.post_rupture_ops.post_rupture_ops"),
31247                    sd_prod=table_sdaster,
31248                    fr="post-traitements en Rupture",
31249                    reentrant='f',
31250                    UIinfo={"groupes":("Résultats et champs","Rupture",)},
31251
31252       TABLE     = SIMP(statut='o',typ=table_sdaster,max='**'),
31253
31254 #     rq : il est impossible de proposer le bon choix pour OPERATION suivant la valeur de reuse...
31255       OPERATION = SIMP(statut='o',typ='TXM',into=(
31256                                                   'ABSC_CURV_NORM',
31257                                                   'ANGLE_BIFURCATION',
31258                                                   'K_EQ',
31259                                                   'DELTA_K_EQ',
31260                                                   'COMPTAGE_CYCLES',
31261                                                   'LOI_PROPA',
31262                                                   'CUMUL_CYCLES',
31263                                                   'PILO_PROPA',
31264                                                   'K1_NEGATIF',
31265                                                  )
31266                        ),
31267
31268 #-----------------------------------------------------------------------------------------------------------------------------------
31269 #                 'ABSC_CURV_NORM'
31270 #-----------------------------------------------------------------------------------------------------------------------------------
31271
31272
31273       b_absc = BLOC(condition="OPERATION == 'ABSC_CURV_NORM'",fr="normalise l'abscisse curviligne",
31274
31275                    NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="ABSC_CURV_NORM",fr="Nom de la nouvelle colonne"),
31276
31277                    ),
31278
31279 #-----------------------------------------------------------------------------------------------------------------------------------
31280 #                 'ANGLE_BIFURCATION'
31281 #-----------------------------------------------------------------------------------------------------------------------------------
31282
31283       b_angle = BLOC(condition="OPERATION == 'ANGLE_BIFURCATION'  ",fr="Angle de bifurcation",
31284
31285                    NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="BETA",fr="Nom de la nouvelle colonne"),
31286                    CRITERE  = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX",into=('SITT_MAX','K1_MAX','K2_NUL','PLAN'),),
31287                    ),
31288
31289 #-----------------------------------------------------------------------------------------------------------------------------------
31290 #                 'K_EQ'
31291 #-----------------------------------------------------------------------------------------------------------------------------------
31292
31293       b_Keq = BLOC(condition="OPERATION == 'K_EQ'  ",fr="Cumul sur les modes : calcul du K equivalent",
31294
31295                    NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="K_EQ",fr="Nom de la nouvelle colonne"),
31296                    CUMUL    = SIMP(statut='f',typ='TXM',max=1,defaut="CUMUL_G",fr="Formule de cumul des modes",
31297                                    into=('LINEAIRE','QUADRATIQUE','CUMUL_G','MODE_I'),),
31298
31299                      b_mater = BLOC(condition="CUMUL in ('QUADRATIQUE','CUMUL_G')",fr="materiau du fond de fissure",
31300                                     MATER = SIMP(statut='o',typ=mater_sdaster,),
31301                                    ),
31302                    ),
31303
31304 #-----------------------------------------------------------------------------------------------------------------------------------
31305 #                 'DELTA_K_EQ'
31306 #-----------------------------------------------------------------------------------------------------------------------------------
31307                   
31308       b_DeltaKeq = BLOC(condition="OPERATION == 'DELTA_K_EQ'  ",fr="Cumul sur les modes : calcul du DeltaK equivalent",
31309
31310                    NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="DELTA_K_EQ",fr="Nom de la nouvelle colonne"),
31311                    CUMUL    = SIMP(statut='f',typ='TXM',max=1,defaut="CUMUL_G",fr="Formule de cumul des modes",
31312                                        into=('QUADRATIQUE','CUMUL_G','MODE_I'),),
31313
31314                      b_mater = BLOC(condition="CUMUL in ('QUADRATIQUE','CUMUL_G')",fr="materiau du fond de fissure",
31315                                       MATER = SIMP(statut='o',typ=mater_sdaster,),
31316                                     ),
31317                   
31318                    ),
31319
31320 #-----------------------------------------------------------------------------------------------------------------------------------
31321 #                 'COMPTAGE_CYCLES'
31322 #-----------------------------------------------------------------------------------------------------------------------------------
31323
31324       b_Comptage = BLOC(condition="OPERATION == 'COMPTAGE_CYCLES'  ",fr="Comptage des cycles",
31325
31326                    NOM_PARA   = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
31327                                      fr="Nom des quantités sur lesquelles s'effectuent le comptage"),
31328                    COMPTAGE   = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL","UNITAIRE")),
31329                    DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0),
31330
31331                      b_Comptage_Unitaire = BLOC(condition="COMPTAGE=='UNITAIRE'",
31332                                                 fr="comptage unitaire pour les amplitudes constantes",
31333
31334                                                 COEF_MULT_MINI = SIMP(statut='o',typ='R',),
31335                                                 COEF_MULT_MAXI = SIMP(statut='o',typ='R',),
31336
31337                                                ),
31338
31339                    ),
31340
31341 #-----------------------------------------------------------------------------------------------------------------------------------
31342 #                 'LOI_PROPA'
31343 #-----------------------------------------------------------------------------------------------------------------------------------
31344
31345       b_Loi_Propa   = BLOC(condition="OPERATION == 'LOI_PROPA'  ",fr="calcul de l'incrément d'avancée de fissure par cycle",
31346
31347                    NOM_PARA       = SIMP(statut='f',typ='TXM',defaut="DELTA_A"   ,max=1,fr="Nom de la nouvelle colonne"),
31348                    NOM_DELTA_K_EQ = SIMP(statut='f',typ='TXM',defaut="DELTA_K_EQ",max=1,
31349                                                                               fr="Nom de la quantité correspondant au Delta_K_eq"),
31350                    LOI            = SIMP(statut='o',typ='TXM',into=("PARIS",)),
31351
31352                      b_paris = BLOC(condition = "LOI=='PARIS'",
31353                                     C = SIMP(statut='o',typ='R',),
31354                                     M = SIMP(statut='o',typ='R',),
31355                                    ),
31356
31357       ),
31358
31359 #-----------------------------------------------------------------------------------------------------------------------------------
31360 #                 'CUMUL_CYCLES'
31361 #-----------------------------------------------------------------------------------------------------------------------------------
31362
31363       b_cumul = BLOC(condition="OPERATION == 'CUMUL_CYCLES'  ",fr="Cumul sur les cycles",
31364
31365                    NOM_PARA = SIMP(statut='f',typ='TXM',max=1,defaut="DELTA_A",fr="Nom de la colonne à traiter"),
31366                    CUMUL    = SIMP(statut='f',typ='TXM',max=1,defaut="LINEAIRE",into=('LINEAIRE',)),
31367
31368                    ),
31369
31370 #-----------------------------------------------------------------------------------------------------------------------------------
31371 #                 'PILO_PROPA'
31372 #-----------------------------------------------------------------------------------------------------------------------------------
31373                   
31374       b_pilo_propa = BLOC(condition="OPERATION == 'PILO_PROPA'  ",fr="Pilotage de la propagation",
31375
31376                    regles      = UN_PARMI('DELTA_A_MAX','DELTA_N'),
31377                    DELTA_A_MAX = SIMP(statut='f',typ='R',max=1,val_min=0.,fr="Pilotage en incrément d'avancée max"),
31378                    DELTA_N     = SIMP(statut='f',typ='R',max=1,val_min=1 ,fr="Pilotage en incrément de nombre de blocs"),
31379                   
31380                    ),
31381
31382 #-----------------------------------------------------------------------------------------------------------------------------------
31383 #                 'K1_NEGATIF'
31384 #-----------------------------------------------------------------------------------------------------------------------------------
31385
31386       b_k1_neg = BLOC(condition="OPERATION == 'K1_NEGATIF'  ",fr="Mise a zero des valeurs negatives de K1",
31387
31388                    MODELISATION = SIMP(statut='o',typ='TXM',into=("C_PLAN","D_PLAN","3D","AXIS")),
31389                    MATER        = SIMP(statut='o',typ=mater_sdaster,),
31390
31391                    ),
31392
31393 #-----------------------------------------------------------------------------------------------------------------------------------
31394
31395 )  ;
31396
31397 # ======================================================================
31398 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
31399 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31400 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31401 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
31402 # (AT YOUR OPTION) ANY LATER VERSION.
31403 #
31404 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
31405 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
31406 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
31407 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
31408 #
31409 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
31410 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
31411 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
31412 # ======================================================================
31413 # person_in_charge: irmela.zentner at edf.fr
31414 POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f',
31415             UIinfo={"groupes":("Post-traitements",)},
31416                 fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure",
31417          regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'),
31418                  PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'),
31419                  PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),),
31420          TUBE_NEUF       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31421          ETAT_INIT       =FACT(statut='f',
31422            TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
31423            INST_INIT       =SIMP(statut='f',typ='R'),
31424                          ),
31425          RESU_GENE       =SIMP(statut='f',typ=tran_gene),
31426          NOEUD           =SIMP(statut='f',typ=no,),
31427          INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),
31428          INST_FIN        =SIMP(statut='f',typ='R'),
31429          NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),
31430          PUIS_USURE      =SIMP(statut='f',typ='R'),
31431          LOI_USURE       =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
31432          b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
31433            regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'),
31434                    EXCLUS('MATER_USURE','OBSTACLE'),
31435                    EXCLUS('MOBILE','USURE_OBST'),),
31436            MOBILE          =FACT(statut='f',
31437              COEF_USURE      =SIMP(statut='o',typ='R'),
31438            ),
31439            OBSTACLE        =FACT(statut='f',
31440              COEF_USURE      =SIMP(statut='o',typ='R'),
31441            ),
31442            SECTEUR         =FACT(statut='f',max='**',
31443              CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
31444                                                               "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
31445                                                               "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
31446              COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),
31447              COEF_USUR_OBST  =SIMP(statut='f',typ='R'),
31448              ANGL_INIT       =SIMP(statut='f',typ='R'),
31449              ANGL_FIN        =SIMP(statut='f',typ='R'),
31450            ),
31451            MATER_USURE     =SIMP(statut='f',typ='TXM'),
31452            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
31453          ),
31454          b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
31455            regles=(UN_PARMI('MOBILE','MATER_USURE'),
31456                    EXCLUS('MATER_USURE','OBSTACLE'),
31457                    EXCLUS('MOBILE','USURE_OBST'),),
31458            MOBILE          =FACT(statut='f',
31459              COEF_FNOR       =SIMP(statut='f',typ='R'),
31460              COEF_VTAN       =SIMP(statut='f',typ='R'),
31461              COEF_USURE      =SIMP(statut='f',typ='R'),
31462              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),
31463              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),
31464            ),
31465            OBSTACLE        =FACT(statut='f',
31466              COEF_FNOR       =SIMP(statut='f',typ='R' ),
31467              COEF_VTAN       =SIMP(statut='f',typ='R' ),
31468              COEF_USURE      =SIMP(statut='o',typ='R'),
31469              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),
31470              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),
31471            ),
31472            MATER_USURE     =SIMP(statut='f',typ='TXM'),
31473            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
31474            FNOR_MAXI       =SIMP(statut='f',typ='R' ),
31475            VTAN_MAXI       =SIMP(statut='f',typ='R' ),
31476          ),
31477          b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
31478            regles=(UN_PARMI('MOBILE','MATER_USURE'),
31479                    EXCLUS('MATER_USURE','OBSTACLE'),
31480                    EXCLUS('MOBILE','USURE_OBST'),),
31481            MOBILE          =FACT(statut='f',
31482              COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),
31483              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),
31484              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),
31485              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),
31486            ),
31487            OBSTACLE        =FACT(statut='f',
31488              COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13),
31489              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),
31490              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),
31491              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),
31492            ),
31493            MATER_USURE     =SIMP(statut='f',typ='TXM'),
31494            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
31495          ),
31496          b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
31497             TABL_USURE      =SIMP(statut='o',typ=table_sdaster),
31498          ),
31499          CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",
31500                                                           "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",
31501                                                           "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
31502          RAYON_MOBILE    =SIMP(statut='f',typ='R'),
31503          RAYON_OBST      =SIMP(statut='f',typ='R'),
31504          LARGEUR_OBST    =SIMP(statut='f',typ='R'),
31505          ANGL_INCLI      =SIMP(statut='f',typ='R'),
31506          ANGL_ISTHME     =SIMP(statut='f',typ='R'),
31507          ANGL_IMPACT     =SIMP(statut='f',typ='R'),
31508          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
31509          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
31510          COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),
31511          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
31512          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
31513 )  ;
31514
31515 # ======================================================================
31516 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
31517 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31518 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31519 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
31520 # (AT YOUR OPTION) ANY LATER VERSION.
31521 #
31522 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
31523 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
31524 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
31525 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
31526 #
31527 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
31528 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
31529 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
31530 # ======================================================================
31531 # person_in_charge: j-pierre.lefebvre at edf.fr
31532
31533 POURSUITE=MACRO(nom="POURSUITE",
31534                 op=OPS("Cata.ops.build_poursuite"),
31535                 repetable='n',
31536                 fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX " \
31537                    "ou HDF de sa base globale",
31538                 sd_prod = ops.POURSUITE,
31539                 UIinfo={"groupes":("Gestion du travail",)},
31540                 op_init=ops.POURSUITE_context,
31541                 fichier_ini=1,
31542          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
31543                                typ='TXM',defaut="NON",into=("OUI","NON",) ),
31544          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
31545                            into=("OUI","NON"),defaut="OUI"),
31546          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
31547                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
31548
31549          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
31550                                statut='f',min=1,max=2,
31551            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
31552            TITRE           =SIMP(statut='f',typ='TXM'),
31553            CAS             =SIMP(statut='f',typ='TXM'),
31554            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
31555            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
31556            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
31557          ),
31558
31559 # Le mot cle CATALOGUE n'est jamais utilise en POURSUITE mais sa presence est necessaire au bon fonctionnement
31560 # de la commande, le code source etant commun aux commandes DEBUT et POURSUITE.
31561 #
31562          CATALOGUE       =FACT(statut='f',min=1,max=10,
31563            FICHIER         =SIMP(statut='o',typ='TXM'),
31564            UNITE           =SIMP(statut='f',typ='I'),
31565          ),
31566
31567          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
31568            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
31569          ),
31570
31571          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
31572                                statut='f',min=1,max=1,
31573            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
31574                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
31575            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
31576                                  statut='f',typ='TXM',into=('OUI','NON')),
31577            JEVEUX          =SIMP(fr="force les déchargement sur disque",
31578                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
31579            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
31580                                  statut='f',typ='TXM',into=('TEST',)),
31581            HIST_ETAPE = SIMP(fr="permet de conserver toutes les étapes du jeu de commandes",
31582                              statut='f', typ='TXM', into=('OUI', 'NON'), defaut='NON'),
31583          ),
31584
31585          MESURE_TEMPS     =FACT(fr="Pour choisir les mesures de temps consommé dans les commandes",
31586                                statut='d',min=1,max=1,
31587            NIVE_DETAIL      =SIMP(fr="niveau de détail des impressions",
31588                                  statut='f',typ='I',into=(0,1,2,3),defaut=1),
31589                                  # 0 : rien
31590                                  # 1 : impression en fin de commande des mesures principales
31591                                  # 2 : impression en fin de commande des mesures principales et secondaires
31592                                  # 3 : impression des mesures principales et secondaires pour chaque pas de temps
31593            MOYENNE     =SIMP(fr="affichage des moyennes et écart-types en parallèle",
31594                                   statut='f',typ='TXM',into=('OUI','NON',),defaut='NON'),
31595          ),
31596
31597          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1,
31598            TAILLE_BLOC       =SIMP(statut='f',typ='R',defaut=800.),
31599            TAILLE_GROUP_ELEM =SIMP(statut='f',typ='I',defaut=1000),
31600          ),
31601
31602          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
31603            regles=(EXCLUS('VALE','POURCENTAGE'),),
31604            VALE            =SIMP(statut='f',typ='I',val_min=0),
31605 #                            valeur par défaut fixée à 10. dans le FORTRAN si CODE présent
31606            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
31607 #                           valeur par défaut fixée à 10% dans le FORTRAN
31608            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=900) ),
31609 #          valeur en pourcentage du temps maximum bornée à 900 secondes
31610
31611          CODE            =SIMP(statut='f',typ='TXM',into=('OUI', 'NON'),defaut='NON',
31612                                fr="paramètre réservé aux cas-tests"),
31613
31614          IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
31615
31616          LANG = SIMP(statut='f', typ='TXM',
31617                      fr="Permet de choisir la langue utilisée pour les messages (si disponible)",
31618                      ang="Allows to choose the language used for messages (if available)"),
31619
31620          INFO     = SIMP(statut='f', typ='I', defaut=1, into=(1,2),),
31621 )  ;
31622
31623 # ======================================================================
31624 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
31625 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31626 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31627 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
31628 # (AT YOUR OPTION) ANY LATER VERSION.                                 
31629 #
31630 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
31631 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
31632 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
31633 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
31634 #
31635 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
31636 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
31637 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
31638 # ======================================================================
31639 # person_in_charge: mathieu.courtois at edf.fr
31640
31641 PRE_GIBI=PROC(nom="PRE_GIBI",op=49,
31642             UIinfo={"groupes":("Gestion du travail",)},
31643               fr="Conversion d'un fichier de maillage GIBI au format Aster",
31644          UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
31645          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
31646 )  ;
31647
31648 # ======================================================================
31649 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
31650 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31651 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31652 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
31653 # (AT YOUR OPTION) ANY LATER VERSION.                                 
31654 #
31655 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
31656 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
31657 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
31658 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
31659 #
31660 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
31661 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
31662 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
31663 # ======================================================================
31664 # person_in_charge: mathieu.courtois at edf.fr
31665
31666 PRE_GMSH=PROC(nom="PRE_GMSH",op=47,
31667             UIinfo={"groupes":("Gestion du travail",)},
31668                fr="Conversion d'un fichier de maillage GMSH au format Aster",
31669          UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
31670          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
31671 )  ;
31672
31673 # ======================================================================
31674 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
31675 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31676 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31677 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
31678 # (AT YOUR OPTION) ANY LATER VERSION.                                 
31679 #
31680 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
31681 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
31682 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
31683 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
31684 #
31685 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
31686 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
31687 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
31688 # ======================================================================
31689 # person_in_charge: alexei.mikchevitch at edf.fr
31690 PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
31691             UIinfo={"groupes":("Gestion du travail",)},
31692                fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster",
31693          UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
31694          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
31695          CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
31696 )  ;
31697
31698 # ======================================================================
31699 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
31700 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31701 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31702 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
31703 # (AT YOUR OPTION) ANY LATER VERSION.                                 
31704 #
31705 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
31706 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
31707 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
31708 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
31709 #
31710 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
31711 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
31712 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
31713 # ======================================================================
31714 # person_in_charge: jacques.pellet at edf.fr
31715
31716 PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster,
31717                     fr="Effectuer le produit d'une matrice par un vecteur",
31718                     reentrant='n',
31719             UIinfo={"groupes":("Post-traitements","Matrices et vecteurs",)},
31720          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ),
31721          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
31722          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
31723 )  ;
31724
31725 # ======================================================================
31726 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
31727 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
31728 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
31729 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
31730 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
31731 #                                                                       
31732 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
31733 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
31734 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
31735 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
31736 #                                                                       
31737 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
31738 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
31739 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
31740 # ======================================================================
31741
31742 # person_in_charge: emmanuel.boyere at edf.fr
31743
31744
31745 def proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,
31746                    RESU_GENE, NUME_DDL_GENE,
31747                    STOCKAGE,**args ):
31748   if NUME_DDL_GENE is not None and NUME_DDL_GENE.is_typco():
31749       self.type_sdprod(NUME_DDL_GENE, nume_ddl_gene)
31750   if MATR_ASSE_GENE != None:
31751     for m in MATR_ASSE_GENE:
31752       self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
31753   if VECT_ASSE_GENE != None:
31754     for v in VECT_ASSE_GENE:
31755       self.type_sdprod(v['VECTEUR'],vect_asse_gene)
31756   if RESU_GENE != None:
31757     for v in RESU_GENE:
31758       self.type_sdprod(v['RESULTAT'],tran_gene)
31759   return None
31760
31761 PROJ_BASE=MACRO(nom="PROJ_BASE",
31762                 op=OPS('Macro.proj_base_ops.proj_base_ops'),
31763                 regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE','RESU_GENE')),
31764                 UIinfo={"groupes":("Matrices et vecteurs","Dynamique",)},
31765                 sd_prod=proj_base_prod,
31766          fr="Projection des matrices et/ou vecteurs assembles sur une base (modale ou de RITZ)",
31767          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene) ),
31768          NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),
31769          STOCKAGE        =SIMP(statut='f',typ='TXM',defaut="PLEIN",into=("PLEIN","DIAG") ),
31770          NUME_DDL_GENE   =SIMP(statut='f',typ=(nume_ddl_gene,CO),defaut=None),
31771          MATR_ASSE_GENE  =FACT(statut='f',max='**',
31772            MATRICE         =SIMP(statut='o',typ=CO,),
31773            regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),),
31774            MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r),
31775            MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
31776          ),
31777          VECT_ASSE_GENE  =FACT(statut='f',max='**',
31778            VECTEUR         =SIMP(statut='o',typ=CO,),
31779            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),),
31780            TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
31781            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
31782            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
31783          ),
31784          RESU_GENE  =FACT(statut='f',max='**',
31785            RESULTAT        =SIMP(statut='o',typ=CO,),
31786            TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
31787            RESU            =SIMP(statut='o',typ=dyna_trans),
31788          ),
31789          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
31790 )  ;
31791
31792 # ======================================================================
31793 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
31794 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
31795 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
31796 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
31797 # (AT YOUR OPTION) ANY LATER VERSION.
31798 #
31799 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
31800 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
31801 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
31802 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
31803 #
31804 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
31805 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
31806 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
31807 # ======================================================================
31808 # person_in_charge: jacques.pellet at edf.fr
31809 def proj_champ_prod(RESULTAT=None,CHAM_GD=None,METHODE=None,**args ):
31810     if (RESULTAT == None and CHAM_GD == None) : return corresp_2_mailla
31811     if  RESULTAT != None                      : return AsType(RESULTAT)
31812     if  CHAM_GD  != None and METHODE == 'SOUS_POINT' :
31813         return cham_elem
31814     else :
31815         return AsType(CHAM_GD)
31816     raise AsException("type de concept resultat non prevu")
31817
31818
31819
31820
31821 PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
31822         UIinfo={"groupes":("Résultats et champs",)},
31823             fr="Projeter des champs d'un maillage sur un autre",
31824
31825      # faut-il projeter les champs ?
31826      PROJECTION      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),),
31827
31828      # pour projeter avec une sd_corresp_2_mailla deja calculée :
31829      MATR_PROJECTION   =SIMP(statut='f',typ=corresp_2_mailla,),
31830
31831
31832
31833      #-----------------------------------------------------------------------------------------------------------
31834      # 1er cas : on fait tout d'un coup : creation de la sd_corresp_2_mailla + projection des champs
31835      #-----------------------------------------------------------------------------------------------
31836      b_1_et_2   =BLOC(condition= "PROJECTION == 'OUI' and MATR_PROJECTION == None",
31837          regles=(UN_PARMI('RESULTAT','CHAM_GD'),
31838                  UN_PARMI('MODELE_1','MAILLAGE_1'),
31839                  UN_PARMI('MODELE_2','MAILLAGE_2'),
31840                  ),
31841          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
31842          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)),
31843
31844          METHODE         =SIMP(statut='f',typ='TXM',defaut="AUTO",
31845                                into=("NUAGE_DEG_0","NUAGE_DEG_1","AUTO","COLLOCATION","ECLA_PG","SOUS_POINT") ),
31846
31847
31848          MODELE_1        =SIMP(statut='f',typ=modele_sdaster),
31849          MAILLAGE_1      =SIMP(statut='f',typ=(maillage_sdaster,squelette)),
31850
31851          MODELE_2        =SIMP(statut='f',typ=modele_sdaster),
31852          MAILLAGE_2      =SIMP(statut='f',typ=maillage_sdaster),
31853
31854          # Cas de la projection NUAGE_DEG_0/1 :
31855          #--------------------------------------------
31856          b_nuage         =BLOC(condition="METHODE in ('NUAGE_DEG_0','NUAGE_DEG_1')",
31857              CHAM_NO_REFE    =SIMP(statut='o',typ=cham_no_sdaster),
31858          ),
31859
31860
31861          # Cas de la projection COLLOCATION :
31862          #--------------------------------------------
31863          b_elem          =BLOC(condition="METHODE in ('COLLOCATION','ECLA_PG','AUTO')",
31864              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",),
31865                   fr="Pour indiquer au programme le type de projection souhaité"),
31866              DISTANCE_MAX    =SIMP(statut='f',typ='R',
31867                   fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
31868
31869              TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31870                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31871                      " aux noeuds du MODELE_1 avant la projection."),
31872              TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31873                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31874                      " aux noeuds du MODELE_2 avant la projection."),
31875
31876              ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
31877
31878              TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
31879                   fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
31880
31881              PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
31882                   fr="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."),
31883          ),
31884
31885          # Cas de la projection SOUS_POINT :
31886          #--------------------------------------------
31887          b_sous_point         =BLOC(condition="METHODE == 'SOUS_POINT'" ,
31888              CARA_ELEM    =SIMP(statut='o',typ=cara_elem),
31889              PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
31890                   fr="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."),
31891              TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31892                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31893                      " aux noeuds du MODELE_1 avant la projection."),
31894              TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31895                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31896                      " aux noeuds du MODELE_2 avant la projection."),
31897          ),
31898
31899
31900          # Cas de la projection d'une sd_resultat :
31901          #--------------------------------------------
31902          b_resultat      =BLOC(condition="RESULTAT != None",
31903            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
31904                    EXCLUS('TOUT_CHAM','NOM_CHAM',),),
31905            NOM_PARA        =SIMP(statut='f',typ='TXM', max='**'),
31906            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31907            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
31908
31909            NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster),
31910                 fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."),
31911
31912            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31913            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
31914            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
31915            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
31916            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
31917            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
31918            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
31919            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
31920            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
31921
31922            b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
31923               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
31924               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
31925                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
31926               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
31927                    PRECISION       =SIMP(statut='o',typ='R',),),
31928            ),
31929          ),
31930
31931
31932          VIS_A_VIS       =FACT(statut='f',max='**',
31933            regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
31934                    AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
31935            TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31936            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31937            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31938            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31939            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31940            TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
31941            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
31942            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
31943            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
31944            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
31945
31946            # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier:
31947                CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
31948                TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31949                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31950                        " aux noeuds du MODELE_1 avant la projection."),
31951                TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31952                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31953                        " aux noeuds du MODELE_2 avant la projection."),
31954          ),
31955      ), # fin bloc b_1_et_2
31956
31957
31958
31959      #-----------------------------------------------------------------------------------------------------------
31960      # 2eme cas : on s'arrete apres la creation de la sd_corresp_2_mailla
31961      #-----------------------------------------------------------------------------------------------
31962      b_1   =BLOC(condition="PROJECTION == 'NON'",
31963
31964          METHODE         =SIMP(statut='f',typ='TXM',defaut="COLLOCATION",
31965                                into=("COLLOCATION","COUPLAGE",) ),
31966
31967          regles=(UN_PARMI('MODELE_1','MAILLAGE_1'),
31968                  UN_PARMI('MODELE_2','MAILLAGE_2'),
31969                  ),
31970          MODELE_1        =SIMP(statut='f',typ=modele_sdaster),
31971          MAILLAGE_1      =SIMP(statut='f',typ=maillage_sdaster),
31972
31973          MODELE_2        =SIMP(statut='f',typ=modele_sdaster),
31974          MAILLAGE_2      =SIMP(statut='f',typ=maillage_sdaster),
31975
31976
31977          # Cas de la projection COLLOCATION :
31978          #--------------------------------------------
31979          b_elem          =BLOC(condition="METHODE in ('COLLOCATION',)",
31980              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",),
31981                   fr="Pour indiquer au programme le type de projection souhaité"),
31982              DISTANCE_MAX    =SIMP(statut='f',typ='R',
31983                   fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
31984
31985              TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31986                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31987                      " aux noeuds du MODELE_1 avant la projection."),
31988              TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
31989                   fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
31990                      " aux noeuds du MODELE_2 avant la projection."),
31991
31992              ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
31993
31994          ),
31995
31996          VIS_A_VIS       =FACT(statut='f',max='**',
31997            regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
31998                    AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
31999            TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32000            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
32001            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
32002            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
32003            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
32004            TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32005            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
32006            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
32007            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
32008            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
32009
32010            # les mots clés suivants ne sont actifs que si METHODE='COLLOCATION' mais on ne peut pas le vérifier:
32011                CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
32012                TRANSF_GEOM_1   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
32013                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
32014                        " aux noeuds du MODELE_1 avant la projection."),
32015                TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
32016                     fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
32017                        " aux noeuds du MODELE_2 avant la projection."),
32018          ),
32019      ), # fin bloc b_1
32020
32021
32022
32023      #-----------------------------------------------------------------------------------------------------------
32024      # 3eme cas : on projette les champs avec une sd_corresp_2_mailla déjé calculée
32025      #-----------------------------------------------------------------------------------------------
32026      b_2   =BLOC(condition="MATR_PROJECTION != None",
32027          regles=(UN_PARMI('RESULTAT','CHAM_GD'),),
32028          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
32029          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem)),
32030
32031          TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
32032               fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
32033
32034          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster),
32035               fr="Parfois utile en dynamique pour pouvoir imposer la numérotation des cham_no."),
32036
32037          # nécessaire si l'on projette des cham_elem :
32038          MODELE_2        =SIMP(statut='f',typ=modele_sdaster),
32039
32040          PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
32041               fr="Pour prolonger les champs par zéro là où la projection ne donne pas de valeurs."),
32042
32043
32044
32045          # Cas de la projection d'une sd_resultat :
32046          #--------------------------------------------
32047          b_resultat      =BLOC(condition="RESULTAT != None",
32048            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
32049                    EXCLUS('TOUT_CHAM','NOM_CHAM',),),
32050
32051            NOM_PARA        =SIMP(statut='f',typ='TXM', max='**'),
32052            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32053            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO(),),
32054
32055
32056            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32057            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
32058            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
32059            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
32060            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
32061            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
32062            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
32063            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
32064            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
32065
32066            b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
32067               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
32068               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
32069                    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
32070               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
32071                    PRECISION       =SIMP(statut='o',typ='R',),),
32072            ),
32073
32074          ),
32075      ), # fin bloc b_2
32076
32077
32078
32079      TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
32080      INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
32081 )  ;
32082
32083 # ======================================================================
32084 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
32085 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32086 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32087 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32088 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32089 #
32090 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32091 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32092 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32093 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32094 #
32095 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32096 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32097 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32098 # ======================================================================
32099 # person_in_charge: emmanuel.boyere at edf.fr
32100 def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
32101   if AsType(MATR_ASSE) == matr_asse_depl_r  : return matr_asse_gene_r
32102   if AsType(MATR_ASSE_GENE) == matr_asse_gene_r  : return matr_asse_gene_r
32103   if AsType(MATR_ASSE) == matr_asse_depl_c  : return matr_asse_gene_c
32104   if AsType(MATR_ASSE_GENE) == matr_asse_gene_c  : return matr_asse_gene_c
32105   raise AsException("type de concept resultat non prevu")
32106
32107 PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
32108                     fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)",
32109                     reentrant='n',
32110             UIinfo={"groupes":("Matrices et vecteurs",)},
32111          regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
32112          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene ) ),
32113          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
32114          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
32115          MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
32116 )  ;
32117
32118 # ======================================================================
32119 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
32120 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32121 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32122 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32123 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32124 #
32125 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32126 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32127 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32128 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32129 #
32130 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32131 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32132 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32133 # ======================================================================
32134 # person_in_charge: harinaivo.andriambololona at edf.fr
32135 def proj_mesu_modal_prod(MODELE_MESURE,**args):
32136      vale=MODELE_MESURE['MESURE']
32137      if  AsType(vale) == dyna_trans   : return tran_gene
32138      if  AsType(vale) == dyna_harmo   : return harm_gene
32139      if  AsType(vale) == mode_meca    : return mode_gene
32140      if  AsType(vale) == mode_meca_c  : return mode_gene
32141 #     if  AsType(vale) == base_modale  : return mode_gene
32142      raise AsException("type de concept resultat non prevu")
32143
32144 PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
32145                      sd_prod=proj_mesu_modal_prod,
32146                      reentrant='n',
32147             UIinfo={"groupes":("Résultats et champs",)},
32148                      fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection",
32149
32150          MODELE_CALCUL   =FACT(statut='o',
32151            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
32152 #           BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,) ),          
32153            BASE            =SIMP(statut='o',typ= mode_meca, ),
32154                          ),
32155          MODELE_MESURE   =FACT(statut='o',
32156            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
32157 #           MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
32158            MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,mode_meca,mode_meca_c,) ),
32159            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE",
32160                                  "SIEF_NOEU","EPSI_NOEU",),max='**'),
32161                          ),
32162          CORR_MANU       =FACT(statut='f',max='**',
32163            regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
32164            NOEU_CALCUL     =SIMP(statut='f',typ=no),
32165            NOEU_MESURE     =SIMP(statut='f',typ=no),
32166                          ),
32167          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
32168          RESOLUTION      =FACT(statut='f',
32169            METHODE         =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
32170            b_svd =BLOC(condition="METHODE=='SVD'",
32171                        EPS=SIMP(statut='f',typ='R',defaut=0. ),
32172                       ),
32173            REGUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
32174            b_regul =BLOC(condition="REGUL!='NON'",
32175                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
32176                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),  
32177                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
32178                         ),
32179              ),
32180
32181           ); 
32182
32183 # ======================================================================
32184 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
32185 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
32186 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
32187 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
32188 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
32189 #                                                                       
32190 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
32191 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
32192 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
32193 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
32194 #                                                                       
32195 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
32196 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
32197 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
32198 # ======================================================================
32199 # person_in_charge: albert.alarcon at edf.fr
32200
32201 PROJ_RESU_BASE=OPER(nom="PROJ_RESU_BASE",op=  79,sd_prod=tran_gene,
32202                     fr="Projection d'une sd resultat assemblee sur une base (modale ou de RITZ)",
32203                     reentrant='n',
32204             UIinfo={"groupes":("Matrices et vecteurs",)},
32205          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene) ),
32206          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
32207          TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
32208          RESU            =SIMP(statut='o',typ=dyna_trans),
32209 )  ;
32210
32211 # ======================================================================
32212 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
32213 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32214 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32215 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32216 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32217 #
32218 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32219 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32220 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32221 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32222 #
32223 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32224 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32225 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32226 # ======================================================================
32227 # person_in_charge: andre.adobes at edf.fr
32228 PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=interspectre,reentrant='n',
32229             UIinfo={"groupes":("Matrices et vecteurs",)},
32230             fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ",
32231       regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
32232               UN_PARMI('TOUT','GROUP_MA','MAILLE'),
32233               PRESENT_PRESENT('CHAM_NO','MODELE_INTERFACE'),),
32234          SPEC_TURB      =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ),
32235          TOUT_CMP       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
32236          BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ),
32237          b_fluide = BLOC(condition="BASE_ELAS_FLUI !=None",
32238            VITE_FLUI      =SIMP(statut='o',typ='R'),
32239            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
32240          ),
32241          MODE_MECA      =SIMP(statut='f',typ=mode_meca ),
32242          CHAM_NO        =SIMP(statut='f',typ=cham_no_sdaster),
32243          FREQ_INIT      =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
32244          FREQ_FIN       =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
32245          NB_POIN        =SIMP(statut='o',typ='I' ),  
32246          OPTION         =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
32247          TOUT           =SIMP(statut='f',typ='TXM',into=("OUI",), ),
32248          GROUP_MA       =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
32249          MAILLE         =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
32250 #  Quel est le type attendu derriere  MODELE_INTERFACE         
32251          MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster),
32252          VECT_X         =SIMP(statut='f',typ='R',min=3,max=3 ),
32253          VECT_Y         =SIMP(statut='f',typ='R',min=3,max=3 ),
32254          ORIG_AXE       =SIMP(statut='f',typ='R',min=3,max=3 ),  
32255          TITRE          =SIMP(statut='f',typ='TXM',max='**' ),  
32256 );
32257
32258 # ======================================================================
32259 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
32260 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32261 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32262 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32263 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32264 #
32265 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32266 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32267 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32268 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32269 #
32270 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32271 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32272 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32273 # ======================================================================
32274 # person_in_charge: emmanuel.boyere at edf.fr
32275
32276 PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
32277                     fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)",
32278                     reentrant='n',
32279             UIinfo={"groupes":("Matrices et vecteurs",)},
32280          regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
32281          BASE            =SIMP(statut='o',typ=(mode_meca,mode_gene) ),
32282          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
32283          TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
32284          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
32285          VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
32286 )  ;
32287
32288 # ======================================================================
32289 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
32290 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32291 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32292 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
32293 # (AT YOUR OPTION) ANY LATER VERSION.
32294 #
32295 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
32296 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
32297 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
32298 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
32299 #
32300 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
32301 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
32302 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
32303 # ======================================================================
32304 # person_in_charge: samuel.geniaut at edf.fr
32305
32306
32307 def propa_fiss_prod(self,**args):
32308   if  args.has_key('MAIL_TOTAL')  :
32309       MAIL_TOTAL = args['MAIL_TOTAL']
32310       self.type_sdprod(MAIL_TOTAL,maillage_sdaster)
32311   if  args.has_key('MAIL_FISS')  :
32312       MAIL_FISS = args['MAIL_FISS']
32313       self.type_sdprod(MAIL_FISS,maillage_sdaster)
32314   if args.has_key('FISSURE') :
32315       FISSURE = args['FISSURE']
32316       for numfis in FISSURE :
32317         if (args['METHODE_PROPA']=='MAILLAGE') :
32318           self.type_sdprod(numfis['MAIL_PROPAGE'],maillage_sdaster)
32319         else :
32320           self.type_sdprod(numfis['FISS_PROPAGEE'],fiss_xfem)
32321   return None
32322
32323 PROPA_FISS=MACRO(nom="PROPA_FISS",
32324                  op=OPS('Macro.propa_fiss_ops.propa_fiss_ops'),
32325                  sd_prod=propa_fiss_prod,
32326                  fr="Propagation de fissure avec X-FEM",reentrant='n',
32327                  UIinfo={"groupes":("Post-traitements","Rupture",)},
32328
32329         METHODE_PROPA = SIMP(statut='o',typ='TXM',
32330                                into=("SIMPLEXE","UPWIND","MAILLAGE","INITIALISATION","GEOMETRIQUE") ),
32331
32332         b_hamilton = BLOC(condition="(METHODE_PROPA=='SIMPLEXE') or (METHODE_PROPA=='UPWIND') or (METHODE_PROPA=='GEOMETRIQUE') ",
32333               MODELE        = SIMP(statut='o',typ=modele_sdaster),
32334               TEST_MAIL     = SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"),
32335               DA_MAX        = SIMP(statut='o',typ='R',max=1,val_min=0.0),
32336               RAYON         = SIMP(statut='o',typ='R',),
32337               ZONE_MAJ      = SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"),
32338               b_tore        = BLOC(condition = "ZONE_MAJ == 'TORE' ",
32339                                    RAYON_TORE    = SIMP(statut='f',typ='R',max=1,val_min=0.0),
32340                                   ),
32341               b_propagation = BLOC(condition = "TEST_MAIL == 'NON' ",
32342                                    FISSURE   = FACT(statut='o',min=1,max='**',
32343                                                     FISS_ACTUELLE  = SIMP(statut='o',typ=fiss_xfem,max=1),
32344                                                     FISS_PROPAGEE  = SIMP(statut='o',typ=CO,max=1),
32345                                                     NB_POINT_FOND  = SIMP(statut='f',typ='I',max='**',val_min=2),
32346                                                     TABLE          = SIMP(statut='o',typ=table_sdaster,max=1),
32347                                                     ),
32348                                    LOI_PROPA = FACT(statut='o',max=1,
32349                                                     LOI     = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
32350                                                     b_paris = BLOC(condition = "LOI=='PARIS'",
32351                                                                    C = SIMP(statut='o',typ='R',),
32352                                                                    M = SIMP(statut='o',typ='R',),
32353                                                                   ),
32354                                                     MATER = SIMP(statut='o',typ=mater_sdaster,),
32355                                                    ),
32356                                    COMP_LINE = FACT(statut='o',max=1,
32357                                                     COEF_MULT_MINI = SIMP(statut='o',typ='R',),
32358                                                     COEF_MULT_MAXI = SIMP(statut='o',typ='R',),
32359                                                    ),
32360                                    CRIT_ANGL_BIFURCATION = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX",
32361                                                               into=('SITT_MAX','K1_MAX','K2_NUL','PLAN','ANGLE_IMPO'),),
32362                                    ),
32363
32364               b_test_const  = BLOC(condition = "TEST_MAIL == 'OUI' ",
32365                                    FISSURE   = FACT(statut='o',min=1,max='**',
32366                                                     FISS_ACTUELLE  = SIMP(statut='o',typ=fiss_xfem,max=1),
32367                                                     FISS_PROPAGEE  = SIMP(statut='o',typ=CO,max=1),
32368                                                     ),
32369                                    ITERATIONS     = SIMP(statut='f',typ='I',max=1,val_min=3,defaut=5),
32370                                    TOLERANCE      = SIMP(statut='f',typ='R',max=1,val_min=0.0,val_max=100.0,defaut=5.0),
32371                                   ),
32372
32373                          ),
32374
32375         b_maillage    =BLOC(condition="(METHODE_PROPA=='MAILLAGE')",
32376                MAIL_STRUC       = SIMP(statut='o',typ=maillage_sdaster),
32377                ITERATION      = SIMP(statut='o',typ='I',max=1),
32378                DA_MAX        = SIMP(statut='o',typ='R',max=1),
32379                FISSURE   = FACT(statut='o',min=1,max='**',
32380                                 MAIL_ACTUEL    = SIMP(statut='o',typ=maillage_sdaster,max=1),
32381                                 GROUP_MA_FOND    = SIMP(statut='f',typ=grma,defaut="FOND"),
32382                                 GROUP_MA_FISS    = SIMP(statut='f',typ=grma,defaut="FISS"),
32383                                 FISS_ACTUELLE  = SIMP(statut='o',typ=fiss_xfem,max=1),
32384                                 MAIL_PROPAGE  = SIMP(statut='f',typ=CO,max=1),
32385                                 TABLE          = SIMP(statut='o',typ=table_sdaster,max=1),
32386                                                     ),
32387                MAIL_TOTAL        = SIMP(statut='o',typ=CO),
32388                LOI_PROPA = FACT(statut='o',max=1,
32389                                 LOI     = SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
32390                                 b_paris = BLOC(condition = "LOI=='PARIS'",
32391                                                C = SIMP(statut='o',typ='R',),
32392                                                M = SIMP(statut='o',typ='R',),
32393                                               ),
32394                                 MATER = SIMP(statut='o',typ=mater_sdaster,),
32395                                                    ),
32396                COMP_LINE = FACT(statut='o',max=1,
32397                                 COEF_MULT_MINI = SIMP(statut='o',typ='R',),
32398                                 COEF_MULT_MAXI = SIMP(statut='o',typ='R',),
32399                                                    ),
32400                CRIT_ANGL_BIFURCATION = SIMP(statut='f',typ='TXM',max=1,defaut="SITT_MAX",
32401                                                 into=('SITT_MAX','K1_MAX','K2_NUL','PLAN','ANGLE_IMPO'),),
32402                                 ),
32403
32404         b_init    =BLOC(condition="(METHODE_PROPA=='INITIALISATION')",
32405                MAIL_STRUC    = SIMP(statut='o',typ=maillage_sdaster),
32406                FORM_FISS   = SIMP(statut='o',typ='TXM', into=("DEMI_DROITE","DEMI_PLAN","ELLIPSE"), ),
32407                GROUP_MA_FOND    = SIMP(statut='f',typ=grma,defaut="FOND"),
32408                GROUP_MA_FISS    = SIMP(statut='f',typ=grma,defaut="FISS"),
32409                MAIL_TOTAL     = SIMP(statut='o',typ=CO),
32410                MAIL_FISS       = SIMP(statut='f',typ=CO),
32411
32412                b_droite = BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",
32413                   PFON        = SIMP(statut='o',typ='R',max=3),
32414                   DTAN        = SIMP(statut='o',typ='R',min=3,max=3),
32415                ),
32416
32417                b_plan = BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",
32418                   DTAN        = SIMP(statut='o',typ='R',min=3,max=3),
32419                   POINT_ORIG        = SIMP(statut='o',typ='R',min=3,max=3),
32420                   POINT_EXTR        = SIMP(statut='o',typ='R',min=3,max=3),
32421                   NB_POINT_FOND     = SIMP(statut='o',typ='I',),
32422                ),
32423
32424                b_ellipse = BLOC(condition = "FORM_FISS == 'ELLIPSE' ",
32425                   CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
32426                   DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
32427                   DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
32428                   VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
32429                   VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
32430                   ANGLE_ORIG        = SIMP(statut='o',typ='R',),
32431                   ANGLE_EXTR        = SIMP(statut='o',typ='R',),
32432                   NB_POINT_FOND     = SIMP(statut='o',typ='I',)
32433                ),
32434              ),
32435
32436         INFO = SIMP(statut='f',typ='I',defaut=1,into=(0,1,2)),
32437 )
32438
32439 # ======================================================================
32440 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
32441 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
32442 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
32443 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
32444 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
32445 #                                                                       
32446 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
32447 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
32448 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
32449 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
32450 #                                                                       
32451 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
32452 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
32453 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
32454 # ======================================================================
32455 # person_in_charge: samuel.geniaut at edf.fr
32456
32457 PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n',
32458                 UIinfo={"groupes":("Post-traitements","Rupture",)},
32459                 fr="Propagation de fissure avec X-FEM",
32460     
32461     MODELE        =SIMP(statut='o',typ=modele_sdaster),
32462
32463     TEST_MAIL     =SIMP(statut='f',typ='TXM',into=("NON","OUI",),defaut="NON"),
32464
32465     DA_MAX        =SIMP(statut='o',typ='R'),
32466
32467     FISS_PROP     =SIMP(statut='o',typ=fiss_xfem),
32468
32469     ZONE_MAJ      =SIMP(statut='f',typ='TXM',into=("TOUT","TORE"),defaut="TORE"),
32470
32471     RAYON_TORE    =SIMP(statut='f',typ='R'),
32472
32473     LISTE_FISS    =SIMP(statut='o',typ=fiss_xfem,min=1,max='**'),
32474
32475     ANGLE         =SIMP(statut='f',typ='R',max='**'),
32476     VITESSE       =SIMP(statut='f',typ='R',max='**'),
32477     DA_FISS       =SIMP(statut='f',typ='R'),
32478     NB_CYCLES     =SIMP(statut='f',typ='R'),        
32479
32480     b_test_mail_const =BLOC( condition = "TEST_MAIL == 'OUI' ",
32481                              FISS_INITIALE =SIMP(statut='o',typ=fiss_xfem,max=1),
32482                              DISTANCE      =SIMP(statut='o',typ='R',max=1),
32483                              TOLERANCE     =SIMP(statut='o',typ='R',max=1),
32484                            ),
32485             
32486     RAYON          =SIMP(statut='o',typ='R',),
32487           
32488     METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND","GEOMETRIQUE"),defaut="UPWIND"),
32489
32490     INFO           =SIMP(statut='f',typ='I',defaut= 0,into=(0,1,2) ),
32491 )  ;
32492
32493 # ======================================================================
32494 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
32495 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
32496 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
32497 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
32498 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
32499 #                                                                       
32500 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
32501 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
32502 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
32503 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
32504 #                                                                       
32505 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
32506 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
32507 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
32508 # ======================================================================
32509 # person_in_charge: renaud.bargellini at edf.fr
32510
32511 RAFF_GP =MACRO(nom="RAFF_GP",
32512                    op=OPS('Macro.raff_gp_ops.raff_gp_ops'),
32513                    sd_prod=maillage_sdaster,
32514                    UIinfo={"groupes":("Outils-métier","Rupture",)},
32515                    reentrant='n',
32516                    fr="Preparation du maillage pour calcul du Gp en 2D",
32517          MAILLAGE_N   = SIMP(statut='o',typ=maillage_sdaster,
32518                       fr="Maillage avant adaptation",
32519                       ang="Mesh before adaptation" ),           
32520          TRANCHE_2D  = FACT(statut='0',max = 1,
32521                            CENTRE           =SIMP(statut='o',typ='R',max=2),
32522                            RAYON       =SIMP(statut='o',typ='R',max=1),
32523                            ANGLE            =SIMP(statut='o',typ='R',max=1),
32524                            TAILLE          =SIMP(statut='o',typ='R',max=1),
32525                            NB_ZONE        =SIMP(statut='o',typ='I',),
32526                              ),
32527          NB_RAFF      = SIMP(statut='f',typ='I',defaut=4),         
32528 )
32529
32530 # ======================================================================
32531 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
32532 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32533 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32534 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
32535 # (AT YOUR OPTION) ANY LATER VERSION.
32536 #
32537 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
32538 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
32539 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
32540 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
32541 #
32542 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
32543 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
32544 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
32545 # ======================================================================
32546 # person_in_charge: samuel.geniaut at edf.fr
32547
32548 # determination du type de sd produite par la commande
32549 def raff_xfem_prod(self,TYPE,**args):
32550   if TYPE == 'DISTANCE' :
32551      return cham_no_sdaster
32552   elif TYPE == 'ZONE' :
32553      return carte_sdaster
32554   else :
32555      raise AsException("type de concept non prevu")
32556
32557
32558 RAFF_XFEM=MACRO(nom="RAFF_XFEM",
32559                 op=OPS('Macro.raff_xfem_ops.raff_xfem_ops'),
32560                 sd_prod=raff_xfem_prod,
32561                 fr="Calcul d'un indicateur pour le raffinement",
32562                 reentrant='n',
32563                 UIinfo={"groupes":("Résultats et champs","Rupture",)},
32564
32565                 TYPE   =SIMP(statut='f',typ='TXM',into=('DISTANCE','ZONE'),defaut='DISTANCE'),
32566                 FISSURE=SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
32567
32568                 b_zone =BLOC(condition = "TYPE == 'ZONE' ",fr="Paramètres de la zone",
32569                    RAYON =SIMP(statut='o',typ='R',val_min=0.),
32570                             ),
32571                 
32572                 )  ;
32573
32574 # ======================================================================
32575 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
32576 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
32577 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
32578 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
32579 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
32580 #                                                                       
32581 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
32582 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
32583 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
32584 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
32585 #                                                                       
32586 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
32587 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
32588 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
32589 # ======================================================================
32590 # person_in_charge: samuel.geniaut at edf.fr
32591
32592 # commande cachee appelee uniquement par la macro RAFF_XFEM
32593
32594 RAFF_XFEM_ZONE=OPER(nom="RAFF_XFEM_ZONE",
32595                     op=188,
32596 #                    sd_prod=cham_elem,
32597                     sd_prod=carte_sdaster,
32598                     fr="Calcul d'un indicateur binaire pour le raffinement",
32599                     reentrant='n',
32600                     UIinfo={"groupes":("Résultats et champs","Rupture",)},
32601
32602                     FISSURE=SIMP(statut='o',typ=fiss_xfem,min=1,max=1),
32603                     RAYON  =SIMP(statut='o',typ='R',val_min=0.),                
32604
32605                     )  ;
32606
32607 # ======================================================================
32608 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
32609 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32610 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32611 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32612 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32613 #
32614 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32615 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32616 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32617 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32618 #
32619 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32620 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32621 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32622 # ======================================================================
32623 # person_in_charge: aurore.parrot at edf.fr
32624 RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster,
32625                      fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n',
32626             UIinfo={"groupes":("Post-traitements",)},
32627          LIST_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ),
32628          RESU            =FACT(statut='o',max='**',
32629            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),
32630                    AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
32631            EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
32632            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
32633            CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
32634            TEMPE           =SIMP(statut='f',typ='R' ),
32635            LIST_INST_RUPT  =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
32636            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32637            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
32638            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
32639            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
32640            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32641            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
32642            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
32643            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),
32644                          ),
32645          OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
32646          CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
32647          METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
32648          INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
32649          ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
32650          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
32651                        )  ;
32652
32653 # ======================================================================
32654 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
32655 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32656 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32657 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
32658 # (AT YOUR OPTION) ANY LATER VERSION.
32659 #
32660 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
32661 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
32662 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
32663 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
32664 #
32665 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
32666 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
32667 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
32668 # ======================================================================
32669 # person_in_charge: mathieu.courtois at edf.fr
32670 def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None,
32671                        BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None,
32672                        INTE_SPEC=None,NOEUD_J=None,NUME_ORDRE_J=None,
32673                        NOM_CMP_J=None,NOM_CMP_I=None,NUME_ORDRE_I=None,NOEUD_I=None,
32674                        NOM_PARA_TABL=None,**args):
32675    if AsType(RESULTAT)  == dyna_harmo or \
32676       AsType(RESU_GENE) == harm_gene or \
32677       (INTE_SPEC and NUME_ORDRE_J and (NUME_ORDRE_I != NUME_ORDRE_J) ) or \
32678       (INTE_SPEC and NOEUD_J and ((NOEUD_I != NOEUD_J) or (NOM_CMP_I != NOM_CMP_J)) ) or \
32679       (TABLE != None and NOM_PARA_TABL == "FONCTION_C"):
32680       return fonction_c
32681    else:
32682       return fonction_sdaster
32683
32684 RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
32685                    fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre",
32686                    reentrant='f',
32687             UIinfo={"groupes":("Résultats et champs","Fonctions",)},
32688          regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE','INTE_SPEC'),),
32689
32690          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem,),),
32691          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
32692          RESU_GENE       =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)),
32693          TABLE           =SIMP(statut='f',typ=(table_sdaster,table_fonction)),
32694          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
32695          NAPPE           =SIMP(statut='f',typ=nappe_sdaster),
32696          INTE_SPEC       =SIMP(statut='f',typ=interspectre),
32697
32698 # ======= ACCES A LA SD RESULTAT =================================================
32699          b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)",
32700                           fr="acces a une SD résultat",
32701 # on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran
32702            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32703            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
32704            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
32705            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32706            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
32707            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
32708            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
32709            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
32710            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
32711            b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
32712              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
32713              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
32714                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
32715              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
32716                  PRECISION       =SIMP(statut='o',typ='R',),),
32717              INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
32718            ),
32719          ),
32720 # ======= BASE_ELAS_FLUI =================================================
32721          b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
32722                                    fr="Récupération de la fonction à partir d un concept melasflu",
32723            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
32724            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32725            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
32726            NUME_MODE       =SIMP(statut='o',typ='I' ),
32727            PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
32728            PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),
32729          ),
32730
32731 # ======= INTERSPECTRE =================================================
32732          b_inte_spec = BLOC ( condition = "INTE_SPEC != None",
32733                               fr="Récupération de fonction dans un concept interspectre",
32734            regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
32735            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
32736            NOEUD_I         =SIMP(statut='f',typ=no,max=1),
32737            NUME_ORDRE_I    =SIMP(statut='f',typ='I',max=1 ),
32738            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None",
32739              NUME_ORDRE_J    =SIMP(statut='f',typ='I',max=1 ),
32740            ),
32741            b_noeud_i = BLOC (condition = "NOEUD_I != None",
32742              NOEUD_J         =SIMP(statut='f',typ=no,max=1),
32743              NOM_CMP_I       =SIMP(statut='o',typ='TXM',max=1 ),
32744              NOM_CMP_J       =SIMP(statut='f',typ='TXM',max=1 ),
32745            ),
32746          ),
32747
32748 # ======= TABLE =================================================
32749          b_table = BLOC ( condition = "TABLE != None",
32750                           fr="Récupération de la fonction à partir d un concept table",
32751                           regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
32752                                   PRESENT_PRESENT('PARA_X','PARA_Y'),),
32753            PARA_X        = SIMP(statut='f',typ='TXM',
32754                                  fr="1ère colonne de la table qui définit la fonction à récupérer", ),
32755            PARA_Y        = SIMP(statut='f',typ='TXM',
32756                                  fr="2ème colonne de la table qui définit la fonction à récupérer", ),
32757            #b_tabl_fonc = BLOC(condition = "AsType(TABLE) == table_fonction",
32758            NOM_PARA_TABL = SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C"),
32759                                 fr="Nom du paramètre de la table contenant la fonction" ),
32760            #),
32761
32762            FILTRE        = FACT(statut='f',max='**',
32763               NOM_PARA        =SIMP(statut='o',typ='TXM' ),
32764               CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
32765                                     into=("EQ","LT","GT","NE","LE","GE","VIDE",
32766                                           "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS") ),
32767               b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
32768                  regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
32769                  VALE            =SIMP(statut='f',typ='R' ),
32770                  VALE_I          =SIMP(statut='f',typ='I' ),
32771                  VALE_C          =SIMP(statut='f',typ='C' ),
32772                  VALE_K          =SIMP(statut='f',typ='TXM' ),),
32773
32774               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
32775               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
32776            ),
32777          ),
32778
32779 # ======= RESULTAT =================================================
32780          b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
32781                          regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
32782            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
32783            NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
32784            b_cham = BLOC ( condition = "NOM_CHAM != None",
32785                            regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
32786                                    PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
32787                                    PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
32788                                    EXCLUS('GROUP_MA','MAILLE'),
32789                                    EXCLUS('GROUP_NO','NOEUD'),),
32790              NOM_CMP         =SIMP(statut='o',typ='TXM' ),
32791              MAILLE          =SIMP(statut='f',typ=ma),
32792              GROUP_MA        =SIMP(statut='f',typ=grma),
32793              NOEUD           =SIMP(statut='f',typ=no),
32794              GROUP_NO        =SIMP(statut='f',typ=grno),
32795              POINT           =SIMP(statut='f',typ='I' ),
32796              SOUS_POINT      =SIMP(statut='f',typ='I' ),
32797            ),
32798          ),
32799
32800 # ======= RESU_GENE =================================================
32801          b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene",
32802                               fr="Récupération d'une fonction à partir d un concept TRAN_GENE",
32803                               regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),),
32804              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=("DEPL","VITE","ACCE","PTEM") ),
32805              NOEUD_CHOC      =SIMP(statut='f',typ=no),
32806              GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
32807            b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')",
32808                            regles=(UN_PARMI('GROUP_NO','NOEUD','NUME_CMP_GENE',),
32809                                    UN_PARMI('NOM_CMP','NUME_CMP_GENE',),
32810                                    EXCLUS('MULT_APPUI','CORR_STAT'),),
32811              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
32812              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
32813              NOEUD           =SIMP(statut='f',typ=no),
32814              GROUP_NO        =SIMP(statut='f',typ=grno),
32815              MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32816              CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
32817              ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)),
32818            ),
32819            b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)",
32820                            regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),),
32821              PARA_X          =SIMP(statut='o',typ='TXM',
32822                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
32823              PARA_Y          =SIMP(statut='o',typ='TXM',
32824                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
32825              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
32826              INTITULE        =SIMP(statut='f',typ='TXM' ),
32827              SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
32828            ),
32829          ),
32830          b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene",
32831                               fr="Récupération d'une fonction à partir d un concept HARM_GENE",
32832                               regles=(UN_PARMI('NOM_CMP','NUME_CMP_GENE'),
32833                                       UN_PARMI('GROUP_NO','NOEUD','NUME_CMP_GENE',),),
32834              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=("DEPL","VITE","ACCE") ),
32835              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
32836              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
32837              NOEUD           =SIMP(statut='f',typ=no),
32838              GROUP_NO        =SIMP(statut='f',typ=grno),
32839          ),
32840          # b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene",
32841          #                      fr="Récupération d'une fonction à partir d un concept HARM_GENE",
32842          #                      regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
32843          #     NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
32844          #     NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
32845          #   b_cham = BLOC ( condition = "NOM_CHAM != None",
32846          #                   regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
32847          #     NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
32848          #     NOM_CMP         =SIMP(statut='f',typ='TXM' ),
32849          #     b_cmp = BLOC ( condition = "NOM_CMP != None",
32850          #                    regles=(UN_PARMI('NOEUD','GROUP_NO'),),
32851          #       NOEUD         =SIMP(statut='f',typ=no),
32852          #       GROUP_NO      =SIMP(statut='f',typ=grno),
32853          #     ),
32854          #   ),
32855          # ),
32856          b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene",
32857                               fr="Récupération d'une fonction à partir d un concept MODE_GENE",
32858                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
32859              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
32860              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
32861            b_cham = BLOC ( condition = "NOM_CHAM != None",
32862                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
32863              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
32864              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
32865              b_cmp = BLOC ( condition = "NOM_CMP != None",
32866                             regles=(UN_PARMI('NOEUD','GROUP_NO'),
32867                                     UN_PARMI('SQUELETTE','SOUS_STRUC'),),
32868                NOEUD         =SIMP(statut='f',typ=no),
32869                GROUP_NO      =SIMP(statut='f',typ=grno),
32870                SQUELETTE     =SIMP(statut='f',typ=squelette ),
32871                SOUS_STRUC    =SIMP(statut='f',typ='TXM' ),  
32872              ),
32873            ),
32874          ),
32875
32876 # ======= CHAM_GD =================================================
32877          b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
32878                             regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
32879                                     PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
32880                                     PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
32881                                     EXCLUS('GROUP_MA','MAILLE'),
32882                                     EXCLUS('GROUP_NO','NOEUD'),),
32883            NOM_CMP         =SIMP(statut='o',typ='TXM' ),
32884            MAILLE          =SIMP(statut='f',typ=ma),
32885            GROUP_MA        =SIMP(statut='f',typ=grma),
32886            NOEUD           =SIMP(statut='f',typ=no),
32887            GROUP_NO        =SIMP(statut='f',typ=grno),
32888            POINT           =SIMP(statut='f',typ='I' ),
32889            SOUS_POINT      =SIMP(statut='f',typ='I' ),
32890          ),
32891
32892 # ======= NAPPE =================================================
32893          b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de NAPPE",
32894          VALE_PARA_FONC  =SIMP(statut='o',typ='R' ),
32895          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
32896          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
32897          ),
32898
32899 # ======= SURCHARGE DES ATTRIBUTS =================================================
32900          NOM_PARA        =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ),
32901          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
32902          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
32903          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
32904          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
32905
32906          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
32907          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
32908 )  ;
32909
32910 # ======================================================================
32911 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
32912 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32913 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32914 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32915 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32916 #
32917 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32918 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32919 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32920 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32921 #
32922 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32923 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32924 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32925 # ======================================================================
32926 # person_in_charge: emmanuel.boyere at edf.fr
32927 RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,reentrant='n',
32928                UIinfo={"groupes":("Résultats et champs",)},
32929                fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
32930                   +" en coordonnées généralisées",
32931                regles=(UN_PARMI('FREQ','INST',),),
32932          RESU_GENE       =SIMP(statut='o',typ=(tran_gene,harm_gene),),
32933          INST            =SIMP(statut='f',typ='R',),
32934          FREQ            =SIMP(statut='f',typ='R',),
32935          NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE",),),
32936          b_interp_temp=BLOC(condition="INST != None and FREQ == None",
32937              INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",),),
32938              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
32939              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
32940                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
32941              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
32942                  PRECISION       =SIMP(statut='o',typ='R',),),),
32943 )  ;
32944
32945 # ======================================================================
32946 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
32947 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
32948 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
32949 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
32950 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
32951 #                                                                       
32952 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
32953 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
32954 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
32955 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
32956 #                                                                       
32957 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
32958 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
32959 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
32960 # ======================================================================
32961 # person_in_charge: nicolas.greffet at edf.fr
32962 #
32963 # RECUPERATION DE PARAMETRES DE COUPLAGE VIA YACS
32964
32965 RECU_PARA_YACS=OPER(nom="RECU_PARA_YACS",op=114,sd_prod=listr8_sdaster,
32966                    reentrant = 'n',
32967                     UIinfo={"groupes":("Fonction",)},
32968                    fr        = "Gestion des scalaires via YACS pour le coupleur IFS",
32969           DONNEES = SIMP(statut='o',typ='TXM',into=("INITIALISATION","CONVERGENCE","FIN","PAS",) ),
32970           b_init   = BLOC(condition= "DONNEES=='INITIALISATION'",
32971                      PAS             = SIMP(statut='o',typ='R', ),),
32972           b_noinit = BLOC(condition= "(DONNEES=='CONVERGENCE')or(DONNEES=='FIN')",
32973                      NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
32974                      INST         = SIMP(statut='o',typ='R', ),
32975                      PAS             = SIMP(statut='o',typ='R', ),),
32976           b_pastps = BLOC(condition= "(DONNEES=='PAS')",
32977                      NUME_ORDRE_YACS = SIMP(statut='o', typ='I',),
32978                      INST         = SIMP(statut='o',typ='R', ),
32979                      PAS             = SIMP(statut='o',typ='R', ),),
32980          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
32981          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
32982 );
32983
32984 # ======================================================================
32985 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
32986 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
32987 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
32988 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
32989 # (AT YOUR OPTION) ANY LATER VERSION.                                 
32990 #
32991 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
32992 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
32993 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
32994 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
32995 #
32996 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
32997 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
32998 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
32999 # ======================================================================
33000 # person_in_charge: mathieu.courtois at edf.fr
33001 RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
33002          fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue"
33003             +" dans une autre SD pour celles qui le permettent",
33004          UIinfo={"groupes":("Résultats et champs","Tables",)},reentrant='n',
33005          CO              =SIMP(statut='o',typ=assd),
33006          regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
33007          NOM_TABLE       =SIMP(statut='f',typ='TXM' ),
33008          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
33009          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
33010 )  ;
33011
33012 # ======================================================================
33013 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33014 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33015 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33016 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33017 # (AT YOUR OPTION) ANY LATER VERSION.
33018 #
33019 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33020 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33021 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33022 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33023 #
33024 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33025 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33026 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33027 # ======================================================================
33028 # person_in_charge: jacques.pellet at edf.fr
33029
33030 RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f',
33031                fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+
33032                   "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
33033                UIinfo={"groupes":("Résolution",)},
33034          MATR           =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
33035                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
33036          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
33037          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
33038
33039          # mot-clé commun aux solveurs MUMPS, GCPC et PETSc:
33040          RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
33041
33042          # mot-clé pour les posttraitements de la phase de solve de MUMPS
33043          POSTTRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO","FORCE")),
33044
33045          # mot-clé commun aux solveurs GCPC et PETSc:
33046          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
33047          MATR_PREC       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
33048
33049          # mots-clés pour solveur PETSc:
33050          ALGORITHME      =SIMP(statut='f',typ='TXM',into=("CG", "CR", "GMRES", "GCR", ),defaut="GMRES" ),
33051
33052          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
33053          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
33054 )  ;
33055
33056 # ======================================================================
33057 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
33058 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
33059 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
33060 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
33061 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
33062 #                                                                       
33063 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
33064 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
33065 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
33066 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
33067 #                                                                       
33068 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
33069 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
33070 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
33071 # ======================================================================
33072  
33073 # person_in_charge: Georges-cc.devesa at edf.fr
33074 def rest_cond_tran_prod(RESULTAT,TYPE_RESU,**args ):
33075  
33076   if AsType(RESULTAT) == dyna_trans  : return dyna_trans
33077   if (AsType(RESULTAT) == evol_noli and TYPE_RESU == "DYNA_TRANS") : return dyna_trans
33078   if (AsType(RESULTAT) == evol_noli and TYPE_RESU == "EVOL_NOLI") : return evol_noli
33079
33080   raise AsException("type de concept resultat non prevu")
33081
33082 REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op=  78,sd_prod=rest_cond_tran_prod,
33083                     fr="Restituer dans la base physique des résultats issus d'un calcul" 
33084                         +"non-lineaire avec projection modale ou d'un calcul transitoire linear"
33085                         +"avec condensation dynamique",
33086                     reentrant='f',
33087             UIinfo={"groupes":("Matrices et vecteurs",)},
33088         regles=(
33089                 EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
33090                 EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),),
33091          RESULTAT        =SIMP(statut='f',typ=(evol_noli,dyna_trans) ),
33092          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNA_TRANS",
33093                           into=("DYNA_TRANS","EVOL_NOLI") ),
33094          BASE_MODALE     =SIMP(statut='f',typ=mode_meca),
33095 #         NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
33096          MACR_ELEM_DYNA  =SIMP(statut='f',typ=macr_elem_dyna),
33097          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33098          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
33099          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
33100          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33101          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
33102          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
33103          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
33104              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
33105          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
33106              PRECISION       =SIMP(statut='o',typ='R',),),
33107          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
33108          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33109          b_nom_cham=BLOC(condition="TOUT_CHAM == None",
33110              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,defaut="ACCE",into=("DEPL",
33111                                    "VITE","ACCE",),),),
33112          b_base_moda=BLOC(condition="BASE_MODALE != None",
33113              CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
33114              CARA_ELEM       =SIMP(statut='f',typ=cara_elem),),
33115              RESU_FINAL      =SIMP(statut='f',typ=(evol_noli,dyna_trans) ),
33116          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
33117 )  ;
33118
33119 # ======================================================================
33120 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
33121 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
33122 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
33123 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
33124 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
33125 #                                                                       
33126 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
33127 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
33128 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
33129 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
33130 #                                                                       
33131 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
33132 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
33133 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
33134 # ======================================================================
33135
33136 # person_in_charge: emmanuel.boyere at edf.fr
33137
33138 def rest_gene_phys_prod(RESU_GENE,**args ):
33139   if AsType(RESU_GENE) == tran_gene : return dyna_trans
33140   if AsType(RESU_GENE) == mode_gene : return mode_meca
33141   if AsType(RESU_GENE) == harm_gene : return dyna_harmo
33142   
33143   raise AsException("type de concept resultat non prevu")
33144
33145 REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op=  75,sd_prod=rest_gene_phys_prod,
33146                     fr="Restituer dans la base physique des résultats en coordonnées généralisées",
33147                     reentrant='n',
33148             UIinfo={"groupes":("Matrices et vecteurs",)},
33149         regles=(
33150                 EXCLUS('INST','LIST_INST','TOUT_INST',
33151                        'TOUT_ORDRE','NUME_ORDRE','NUME_MODE',),
33152                 EXCLUS('FREQ','LIST_FREQ'),
33153                 EXCLUS('MULT_APPUI','CORR_STAT'),
33154                 EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
33155                 EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
33156                 EXCLUS('NOEUD','GROUP_NO'),
33157                 EXCLUS('MAILLE','GROUP_MA'),
33158                 PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
33159          RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,harm_gene) ), 
33160          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
33161          NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
33162          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33163          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), 
33164          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
33165          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33166          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
33167          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), 
33168          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
33169          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
33170          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
33171          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
33172              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
33173          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
33174              PRECISION       =SIMP(statut='o',typ='R',),),
33175          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
33176          MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33177          CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33178          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33179          b_nom_cham=BLOC(condition="TOUT_CHAM == None",
33180              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",into=("DEPL",
33181                                    "VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA",),),),
33182          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
33183          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
33184          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
33185          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
33186          ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
33187          DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
33188          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
33189 )  ;
33190
33191 # ======================================================================
33192 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
33193 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
33194 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
33195 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
33196 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
33197 #                                                                       
33198 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
33199 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
33200 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
33201 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
33202 #                                                                       
33203 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
33204 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
33205 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
33206 # ======================================================================
33207 def rest_mode_nonl_prod(TYPE_RESU,**args):
33208     if TYPE_RESU == 'DYNA_TRANS' : return dyna_trans
33209     elif TYPE_RESU == 'MODE_MECA' : return mode_meca
33210     raise AsException("type de concept resultat non prevu")
33211
33212 REST_MODE_NONL=OPER(nom="REST_MODE_NONL", op=63,
33213          sd_prod=rest_mode_nonl_prod, reentrant='n',
33214          fr="Post traitement de mode_non_line : \
33215              recuperation resultats ",
33216          UIinfo={"groupes":("Post-traitements",)},
33217
33218          MODE_NON_LINE    =SIMP(statut='o',typ=table_container,max=1),
33219          TYPE_RESU    =SIMP(statut='o',typ='TXM',into=('MODE_MECA','DYNA_TRANS'),defaut='DYNA_TRANS',max=1),
33220          NUME_ORDRE      =SIMP(statut='o',typ='I',max=1),
33221          b_dyna_trans  =BLOC(condition="TYPE_RESU=='DYNA_TRANS'",
33222                 NB_INST =SIMP(statut='f',typ='I',max=1,defaut=512),),
33223          INFO          =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
33224
33225 )  ;
33226
33227
33228
33229 # ======================================================================
33230 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
33231 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
33232 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
33233 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
33234 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
33235 #                                                                       
33236 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
33237 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
33238 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
33239 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
33240 #                                                                       
33241 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
33242 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
33243 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
33244 # ======================================================================
33245
33246 # person_in_charge: mathieu.corus at edf.fr
33247 def rest_sous_struc_prod(RESU_GENE,RESULTAT,**args ):
33248   if AsType(RESU_GENE) == tran_gene : return dyna_trans
33249   if AsType(RESU_GENE) == mode_gene : return mode_meca
33250   if AsType(RESU_GENE) == mode_cycl : return mode_meca
33251   if AsType(RESU_GENE) == harm_gene : return dyna_harmo
33252   if AsType(RESULTAT)  == evol_noli      : return evol_noli
33253   if AsType(RESULTAT)  == dyna_trans     : return dyna_trans
33254   if AsType(RESULTAT)  == mode_meca      : return mode_meca
33255   raise AsException("type de concept resultat non prevu")
33256
33257 REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op=  77,sd_prod=rest_sous_struc_prod,
33258           fr="Restituer dans la base physique des résultats obtenus par sous-structuration",
33259                     reentrant='n',
33260             UIinfo={"groupes":("Matrices et vecteurs",)},
33261         regles=(UN_PARMI('RESU_GENE','RESULTAT'),
33262 # ajout d'une regle de Ionel et Nicolas:
33263 #                UN_PARMI('NOM_CHAM','TOUT_CHAM'),
33264 #
33265               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST','NUME_MODE',
33266                      'FREQ', 'LIST_FREQ'),
33267 #  Doc U à revoir
33268               EXCLUS('NOEUD','GROUP_NO'),
33269               EXCLUS('MAILLE','GROUP_MA'),
33270               PRESENT_PRESENT('RESULTAT','SQUELETTE'),
33271               UN_PARMI('SQUELETTE','SOUS_STRUC','SECTEUR'),
33272
33273                 ),
33274          RESULTAT        =SIMP(statut='f',typ=(evol_noli,dyna_trans,
33275                                             mode_meca) ),
33276          RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
33277          NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
33278          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
33279          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33280          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
33281          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
33282          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33283          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
33284          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
33285          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
33286          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
33287          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
33288          b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
33289              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
33290          b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
33291              PRECISION       =SIMP(statut='o',typ='R',),),
33292          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
33293          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33294          b_nom_cham=BLOC(condition="TOUT_CHAM == None",
33295              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",into=("DEPL",
33296                                    "VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA",) ),),
33297          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
33298          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
33299          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
33300          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
33301          CYCLIQUE    =FACT(statut='f',max='**',
33302            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
33303            NUME_DIAMETRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
33304            RESULTAT2       =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
33305                                                mode_meca) ),
33306          ),
33307
33308          SQUELETTE       =SIMP(statut='f',typ=squelette ),
33309          SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
33310          SECTEUR         =SIMP(statut='f',typ='I'),  
33311          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
33312 )  ;
33313
33314 # ======================================================================
33315 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33316 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33317 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33318 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
33319 # (AT YOUR OPTION) ANY LATER VERSION.                                 
33320 #
33321 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
33322 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
33323 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
33324 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
33325 #
33326 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
33327 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
33328 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
33329 # ======================================================================
33330 # person_in_charge: andre.adobes at edf.fr
33331 REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=interspectre,
33332                     reentrant='n',
33333             fr="Calculer la réponse d'une structure dans la base physique",
33334             UIinfo={"groupes":("Matrices et vecteurs",)},
33335          regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),        
33336          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
33337          b_fluide = BLOC(condition="BASE_ELAS_FLUI !=None",
33338            VITE_FLUI      =SIMP(statut='o',typ='R'),
33339            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
33340          ),
33341          MODE_MECA       =SIMP(statut='f',typ=mode_meca,),
33342          BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
33343          NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),
33344          TOUT_ORDRE       =SIMP(statut='f',typ='TXM',defaut="NON",  into=("OUI","NON")  ),
33345          INTE_SPEC_GENE  =SIMP(statut='o',typ=interspectre),
33346          NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
33347          MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
33348          NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
33349          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,into=("DEPL",
33350                                "VITE","ACCE","EFGE_ELNO","SIPO_ELNO","SIGM_ELNO","FORC_NODA") ),
33351          MODE_STAT       =SIMP(statut='f',typ=mode_meca ),
33352          EXCIT           =FACT(statut='f',
33353            NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
33354            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
33355          ),
33356          MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
33357          OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
33358                                into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
33359          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
33360 )  ;
33361
33362 # ======================================================================
33363 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
33364 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
33365 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
33366 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
33367 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
33368 #                                                                       
33369 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
33370 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
33371 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
33372 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
33373 #                                                                       
33374 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
33375 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
33376 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
33377 # ======================================================================
33378 # person_in_charge: Georges-cc.devesa at edf.fr
33379 def rest_spec_temp_prod(RESU_GENE,RESULTAT,**args):
33380   if AsType(RESULTAT) == dyna_harmo    : return dyna_trans
33381   if AsType(RESU_GENE) == harm_gene    : return tran_gene
33382   if AsType(RESULTAT) == dyna_trans    : return dyna_harmo
33383   if AsType(RESU_GENE) == tran_gene    : return harm_gene
33384   raise AsException("type de concept resultat non prevu")
33385
33386
33387 REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod,
33388               fr="Transformée de Fourier d'un résultat",
33389               reentrant='n',
33390             UIinfo={"groupes":("Matrices et vecteurs",)},
33391          regles=UN_PARMI('RESU_GENE','RESULTAT'),
33392          RESU_GENE       =SIMP(statut='f',typ=(harm_gene,tran_gene,) ),
33393          RESULTAT        =SIMP(statut='f',typ=(dyna_harmo,dyna_trans,) ),
33394          METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ),
33395          SYMETRIE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
33396          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
33397          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
33398 );
33399
33400 # ======================================================================
33401 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33402 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33403 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33404 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33405 # (AT YOUR OPTION) ANY LATER VERSION.
33406 #
33407 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33408 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33409 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33410 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33411 #
33412 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33413 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33414 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33415 # ======================================================================
33416 # person_in_charge: jean-michel.proix at edf.fr
33417
33418
33419 SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT",
33420                      op=OPS('Macro.simu_point_mat_ops.simu_point_mat_ops'),
33421                      sd_prod=table_sdaster,
33422                      UIinfo={"groupes":("Résolution",)},
33423                      fr="Calcul de l'évolution mécanique, en quasi-statique," \
33424                         " d'un point matériel en non linéaire",
33425    COMPORTEMENT       =C_COMPORTEMENT(),
33426    MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
33427
33428 ## ANGLE : rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées.
33429    ANGLE      =SIMP(statut='f',typ='R',max=1, defaut=0.),
33430 # --MASSIF : orientation du materiau (monocristal, orthotropie)
33431    MASSIF          =FACT(statut='f',max='**',
33432      regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
33433      ANGL_REP        =SIMP(statut='f',typ='R',min=1,max=3),
33434      ANGL_EULER      =SIMP(statut='f',typ='R',min=1,max=3),
33435    ),
33436    INCREMENT       =C_INCREMENT('MECANIQUE'),
33437    NEWTON          =C_NEWTON(),
33438    CONVERGENCE     =C_CONVERGENCE(),
33439
33440    SUPPORT= SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",),defaut=("POINT"),),
33441
33442    b_PM = BLOC(condition="SUPPORT ==  'POINT'",fr="Simulation sans élément fini",
33443       FORMAT_TABLE  =SIMP(statut='f',typ='TXM',max=1,into=("CMP_COLONNE","CMP_LIGNE",),defaut=("CMP_COLONNE"),),
33444       NB_VARI_TABLE  =SIMP(statut='f',typ='I',max=1,),
33445       OPER_TANGENT  =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON",),defaut="NON",),
33446        ARCHIVAGE    =FACT(statut='f',
33447        LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
33448        INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
33449        PAS_ARCH        =SIMP(statut='f',typ='I' ),
33450        PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-6),
33451                            ),
33452      # on permet certaines variables de commandes scalaires, définies par une fonction du temps
33453      # on permet ici seulementn celles qui sont validees
33454       AFFE_VARC    = FACT(statut='f',max='**',
33455          NOM_VARC    =SIMP(statut='o',typ='TXM', into=("TEMP","IRRA","SECH")),
33456          VALE_FONC   = SIMP(statut='f',typ=(fonction_sdaster,formule) ),
33457
33458          # VALE_REF est nécessaire pour certaines VARC :
33459          B_VALE_REF          =BLOC(condition="NOM_VARC in ('TEMP', 'SECH')",
33460             VALE_REF         =SIMP(statut='o',typ='R'),
33461                                   ),
33462                          ),
33463         # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
33464       LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","IRRA","SECH")),
33465
33466                ),
33467    b_EF = BLOC(condition="SUPPORT ==  'ELEMENT'",fr="Simulation sur un élément fini",
33468       MODELISATION  =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN","D_PLAN",)),
33469       RECH_LINEAIRE   =C_RECH_LINEAIRE(),
33470       ARCHIVAGE       =C_ARCHIVAGE(),
33471       SUIVI_DDL       =C_SUIVI_DDL(),
33472
33473      # on permet certaines variables de commandes scalaires, définies par une fonction du temps
33474      # a priori toutes doivent fonctionner
33475       AFFE_VARC    = FACT(statut='f',max='**',
33476          NOM_VARC        =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC",
33477                                                            "EPSA","NEUT1","NEUT2")),
33478          VALE_FONC   = SIMP(statut='f',typ=(fonction_sdaster,formule) ),
33479          VALE_REF    = SIMP(statut='f',typ='R'),
33480
33481              b_ZIRC = BLOC(condition="NOM_VARC=='M_ZIRC'",
33482               V1   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33483               V2   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33484               V3   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33485               V4   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33486                           ),
33487
33488              b_ACIER = BLOC(condition="NOM_VARC=='M_ACIER'",
33489               V1   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33490               V2   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33491               V3   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33492               V4   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33493               V5   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33494               V6   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33495               V7   = SIMP(statut='o',typ=(fonction_sdaster,formule) ),
33496                           ),
33497                          ),
33498         # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
33499       LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA",
33500                                                               "M_ACIER","M_ZIRC","NEUT1","NEUT2")),
33501
33502       SIGM_IMPOSE=FACT(statut='f',
33503             SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33504             SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33505             SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33506             SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33507             SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33508             SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33509                        ),
33510       EPSI_IMPOSE=FACT(statut='f',
33511             EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33512             EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33513             EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33514             EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33515             EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33516             EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33517                        ),
33518
33519             ),
33520    b_COEF = BLOC(condition="SUPPORT ==  'POINT'",fr="matrice de coefficients",
33521      regles = (PRESENT_ABSENT('SIGM_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'),
33522                PRESENT_ABSENT('EPSI_IMPOSE','MATR_C1','MATR_C2','VECT_IMPO'),
33523                PRESENT_ABSENT('MATR_C1','SIGM_IMPOSE','EPSI_IMPOSE'),
33524                PRESENT_ABSENT('MATR_C2','SIGM_IMPOSE','EPSI_IMPOSE'),
33525                PRESENT_ABSENT('VECT_IMPO', 'SIGM_IMPOSE','EPSI_IMPOSE'),
33526                EXCLUS('EPSI_IMPOSE','GRAD_IMPOSE'),
33527                EXCLUS('SIGM_IMPOSE','GRAD_IMPOSE'),
33528                ),
33529
33530      SIGM_IMPOSE=FACT(statut='f',
33531            SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33532            SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33533            SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33534            SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33535            SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33536            SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33537                       ),
33538      EPSI_IMPOSE=FACT(statut='f',
33539            EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33540            EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33541            EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33542            EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33543            EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33544            EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33545                       ),
33546      GRAD_IMPOSE=FACT(statut='f',
33547            regles = ( ENSEMBLE('F11','F12','F13','F21','F22','F23','F31','F32','F33',),),
33548            F11 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33549            F12 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33550            F13 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33551            F21 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33552            F22 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33553            F23 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33554            F31 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33555            F32 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33556            F33 = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
33557                       ),
33558      MATR_C1=FACT(statut='f',max='**',
33559            VALE          =SIMP(statut='o',typ='R',max=1, ),
33560            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
33561            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
33562                               ),
33563      MATR_C2=FACT(statut='f',max='**',
33564            VALE          =SIMP(statut='o',typ='R',max=1, ),
33565            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
33566            NUME_COLONNE  =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=12 ),
33567                               ),
33568      VECT_IMPO=FACT(statut='f',max='**',
33569            VALE          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max=1, ),
33570            NUME_LIGNE    =SIMP(statut='o',typ='I',max=1,val_min=1,val_max=6 ),
33571                               ),
33572                     ),
33573    SIGM_INIT=FACT(statut='f',
33574           SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
33575           SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
33576           SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
33577           SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
33578           SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
33579           SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
33580                      ),
33581    EPSI_INIT=FACT(statut='f',
33582           EPXX = SIMP(statut='o',typ='R',max=1),
33583           EPYY = SIMP(statut='o',typ='R',max=1),
33584           EPZZ = SIMP(statut='o',typ='R',max=1),
33585           EPXY = SIMP(statut='o',typ='R',max=1),
33586           EPXZ = SIMP(statut='o',typ='R',max=1),
33587           EPYZ = SIMP(statut='o',typ='R',max=1),
33588                      ),
33589    VARI_INIT=FACT(statut='f',
33590           VALE = SIMP(statut='o',typ='R',max='**'),
33591                      ),
33592
33593    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
33594 )
33595
33596 # ======================================================================
33597 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
33598 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33599 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33600 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33601 # (AT YOUR OPTION) ANY LATER VERSION.
33602 #
33603 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33604 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33605 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33606 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33607 #
33608 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33609 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33610 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33611 # ======================================================================
33612 # person_in_charge: aimery.assire at edf.fr
33613
33614
33615 STANLEY=MACRO(nom="STANLEY",
33616               op=OPS('Macro.stanley_ops.stanley_ops'),
33617               sd_prod=None,
33618               reentrant='n',
33619               UIinfo={"groupes":("Post-traitements",)},
33620               fr="Outil de post-traitement interactif Stanley ",
33621          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,dyna_harmo,dyna_trans) ),
33622          MODELE          =SIMP(statut='f',typ=modele_sdaster),
33623          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
33624          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
33625          DISPLAY         =SIMP(statut='f',typ='TXM'),
33626          UNITE_VALIDATION=SIMP(statut='f',typ='I',val_min=10,val_max=90,
33627                                fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
33628
33629 )  ;
33630
33631 # ======================================================================
33632 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33633 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33634 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33635 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33636 # (AT YOUR OPTION) ANY LATER VERSION.
33637 #
33638 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33639 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33640 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33641 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33642 #
33643 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33644 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33645 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33646 # ======================================================================
33647 # person_in_charge: mickael.abbas at edf.fr
33648 #
33649 STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
33650                    fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
33651                       +" d'une structure en non linéaire",
33652                    reentrant='f',
33653             UIinfo={"groupes":("Résolution","Mécanique",)},
33654
33655          MODELE          =SIMP(statut='o',typ=modele_sdaster),
33656          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
33657          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
33658          EXCIT           =FACT(statut='o',max='**',
33659            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
33660            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
33661            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
33662                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
33663          ),
33664          CONTACT         =SIMP(statut='f',typ=char_contact),
33665          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
33666                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
33667                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
33668                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
33669                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
33670                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
33671               ),
33672 #-------------------------------------------------------------------
33673          COMPORTEMENT =C_COMPORTEMENT('STAT_NON_LINE'),
33674 #-------------------------------------------------------------------
33675          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
33676            ETAT_INIT       =FACT(statut='o',
33677              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
33678                   #   EXCLUS('EVOL_NOLI','DEPL',),
33679                   #   EXCLUS('EVOL_NOLI','SIGM',),
33680                   #   EXCLUS('EVOL_NOLI','VARI',),
33681                      EXCLUS('NUME_ORDRE','INST'), ),
33682              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
33683              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
33684              VARI            =SIMP(statut='f',typ=cham_elem),
33685              STRX            =SIMP(statut='f',typ=cham_elem),
33686              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
33687              NUME_ORDRE      =SIMP(statut='f',typ='I'),
33688              INST            =SIMP(statut='f',typ='R'),
33689              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
33690              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
33691                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
33692              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
33693                  PRECISION       =SIMP(statut='o',typ='R',),),
33694              NUME_DIDI       =SIMP(statut='f',typ='I'),
33695              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
33696          ),),
33697          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
33698            ETAT_INIT       =FACT(statut='f',
33699              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
33700                    #  EXCLUS('EVOL_NOLI','DEPL',),
33701                    #  EXCLUS('EVOL_NOLI','SIGM',),
33702                    #  EXCLUS('EVOL_NOLI','VARI',),
33703                      EXCLUS('NUME_ORDRE','INST'), ),
33704              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
33705              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
33706              VARI            =SIMP(statut='f',typ=cham_elem),
33707              STRX            =SIMP(statut='f',typ=cham_elem),
33708              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
33709              NUME_ORDRE      =SIMP(statut='f',typ='I'),
33710              INST            =SIMP(statut='f',typ='R'),
33711              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
33712              b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
33713                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
33714              b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
33715                  PRECISION       =SIMP(statut='o',typ='R',),),
33716              NUME_DIDI       =SIMP(statut='f',typ='I'),
33717              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
33718          ),),
33719 #-------------------------------------------------------------------
33720          INCREMENT       =C_INCREMENT('MECANIQUE'),
33721 #-------------------------------------------------------------------
33722          METHODE         =SIMP(statut='d',typ='TXM',defaut="NEWTON",into=("NEWTON","IMPLEX","NEWTON_KRYLOV")),
33723              b_meth_newton = BLOC(condition = "METHODE == 'NEWTON' or METHODE == 'NEWTON_KRYLOV'",
33724                                   NEWTON = C_NEWTON(),
33725                                   ),
33726 #-------------------------------------------------------------------
33727          RECH_LINEAIRE   =C_RECH_LINEAIRE(),
33728 #-------------------------------------------------------------------
33729          PILOTAGE        =C_PILOTAGE(),
33730 #-------------------------------------------------------------------
33731          CONVERGENCE     =C_CONVERGENCE(),
33732 #-------------------------------------------------------------------
33733          SOLVEUR         =C_SOLVEUR('STAT_NON_LINE'),
33734 #-------------------------------------------------------------------
33735          OBSERVATION     =C_OBSERVATION(),
33736 #-------------------------------------------------------------------
33737          SUIVI_DDL       =C_SUIVI_DDL(),
33738 #-------------------------------------------------------------------
33739          ARCHIVAGE       =C_ARCHIVAGE(),
33740 #-------------------------------------------------------------------
33741          CRIT_QUALITE    =FACT(statut='f',max=1,
33742            ERRE_TEMPS_THM  =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
33743                                  fr="Adaptation temporelle pour les modélisations HM instationnaires",
33744                                  ang="Time adaptation for unstationary HM models"),
33745          ),
33746 #-------------------------------------------------------------------
33747          ENERGIE         =FACT(statut='f',max=1,
33748            CALCUL          =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
33749          ),
33750 #-------------------------------------------------------------------
33751          AFFICHAGE       =C_AFFICHAGE(),
33752 #-------------------------------------------------------------------
33753          CRIT_STAB      =FACT(statut='f',min=1,max=1,
33754            NB_FREQ         =SIMP(statut='f',typ='I',max=1,val_min=1,defaut=3),
33755            COEF_DIM_ESPACE =SIMP(statut='f',typ='I',max=1,val_min=2,defaut=5),
33756            RIGI_GEOM    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
33757            MODI_RIGI    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
33758            b_char_crit  =BLOC(condition="(RIGI_GEOM=='OUI')",
33759               CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,
33760                                  fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
33761                               ),
33762            TYPE         =SIMP(statut='f',typ='TXM',defaut="FLAMBEMENT",into=("FLAMBEMENT","STABILITE")),
33763            PREC_INSTAB   =SIMP(statut='f',typ='R',defaut=1.E-6,max=1,),
33764            SIGNE         =SIMP(statut='f',typ='TXM',defaut=("POSITIF_NEGATIF"),into=("NEGATIF","POSITIF","POSITIF_NEGATIF"),max=1,),
33765            b_rigi_geom  =BLOC(condition="(RIGI_GEOM=='NON')",
33766               DDL_EXCLUS      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=40,
33767                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
33768                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
33769                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
33770                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
33771                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
33772                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
33773                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
33774                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
33775                                           'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG')),),
33776            b_type_stab  =BLOC(condition= "TYPE == 'STABILITE' and RIGI_GEOM == 'NON'",
33777               DDL_STAB        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=40,
33778                                     into=('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
33779                                           'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
33780                                           'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
33781                                           'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
33782                                           'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
33783                                           'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
33784                                           'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
33785                                           'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
33786                                           'PRES31','PRES32','PRES33','VARI','LAG_GV','DAMG')),),
33787            regles         = (EXCLUS('PAS_CALC','LIST_INST','INST'),),
33788            LIST_INST      = SIMP(statut='f',typ=(listr8_sdaster) ),
33789            INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
33790            PAS_CALC       = SIMP(statut='f',typ='I' ),
33791            CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
33792               b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
33793                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
33794               b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
33795                  PRECISION       =SIMP(statut='o',typ='R',),),
33796          ),
33797          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
33798          b_info=BLOC(condition="INFO==2",
33799                fr="filtre les messages émis dans le .mess selon le type de message demandé",
33800                INFO_DBG = SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
33801                                into=("CONTACT",
33802                                      "MECA_NON_LINE",
33803                                      "PILOTAGE",
33804                                      "FACTORISATION",
33805                                      "APPARIEMENT"),
33806                              ),
33807                     ),
33808          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
33809  )
33810
33811 # ======================================================================
33812 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33813 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33814 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33815 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33816 # (AT YOUR OPTION) ANY LATER VERSION.
33817 #
33818 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33819 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33820 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33821 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33822 #
33823 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33824 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33825 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33826 # ======================================================================
33827 # person_in_charge: jean-michel.proix at edf.fr
33828
33829
33830 #              MACRO "TEST_THERMOPLASTIQUE"
33831 #           ----------------------------
33832 # def test_compor_sdprod(self, COMPORTEMENT, **kwargs):
33833 #     """Ne produit une table qu'en présence de COMPORTEMENT."""
33834 #     if COMPORTEMENT:
33835 #         return table_sdaster
33836 #     return None
33837
33838
33839 TEST_COMPOR =MACRO(nom="TEST_COMPOR",
33840                    op=OPS('Macro.test_compor_ops.test_compor_ops'),
33841                   # sd_prod=test_compor_sdprod,
33842                    sd_prod=table_sdaster,
33843                    docu="",reentrant='n',
33844                    fr="macro de test des comportements incrementaux dependant de la temperature",
33845
33846          OPTION         =SIMP(statut='f',typ='TXM',into=("THER","MECA"),defaut="THER"),
33847
33848          COMPORTEMENT       =C_COMPORTEMENT('SIMU_POINT_MAT'),
33849          NEWTON          =C_NEWTON(),
33850          CONVERGENCE     =C_CONVERGENCE(),
33851
33852          b_ther          =BLOC(condition = "OPTION == 'THER'",
33853             regles=(EXCLUS('C_PRAG','D_SIGM_EPSI'),),
33854             MATER           =SIMP(statut='o',typ=mater_sdaster,max=1,fr="materiau dependant de la temperature"),
33855             ALPHA           =SIMP(statut='o',typ=fonction_sdaster,
33856                                   fr="coefficient de dilatation fonction de la temperature"),
33857             YOUNG           =SIMP(statut='o',typ=fonction_sdaster,
33858                                   fr="module d'Young fonction de la temperature"),
33859             LIST_MATER      =SIMP(statut='o',typ=mater_sdaster,max='**',
33860                                           fr="liste des materiaux constants interpolés à chaque température"),
33861             TEMP_INIT       =SIMP(statut='o',typ='R', fr="temperature initiale et de reference"),
33862             TEMP_FIN        =SIMP(statut='o',typ='R', fr="temperature finale"),
33863             INST_FIN        =SIMP(statut='f',typ='R',defaut=1.,fr="instant final"),
33864             SUPPORT         =SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",),defaut=("POINT"),),
33865             NB_VARI         =SIMP(statut='o',typ='I', fr="nombre de variables internes - 0 en elasticité"),
33866             VARI_TEST       =SIMP(statut='f',typ='TXM',max='**',
33867                                   fr="liste de variables internes à tester - par defaut, toutes"),
33868
33869 #           special ecrouissage cinematique
33870             D_SIGM_EPSI     =SIMP(statut='f',typ=fonction_sdaster,
33871                                   fr="module tangent fonction de la temperature- VMIS_CINE_LINE"),
33872             C_PRAG          =SIMP(statut='f',typ=fonction_sdaster,
33873                                   fr="constante de Prager fonction de la temperature- VMIS_ECMI_*"),
33874                         ),
33875          b_meca          =BLOC(condition = "OPTION == 'MECA'",
33876             LIST_MATER      =SIMP(statut='o',typ=mater_sdaster,max=2,min=2,
33877                                           fr="liste des materiaux en Pa puis MPa "),
33878             YOUNG           =SIMP(statut='o',typ='R',fr="module d'Young"),
33879             POISSON         =SIMP(statut='o',typ='R',fr="coef de Poisson"),
33880             LIST_NPAS       =SIMP(statut='f',typ='I',max='**',
33881                                   fr="nombre de pas de temps pour chaque discretisation"),
33882             LIST_TOLE       =SIMP(statut='f',typ='R',max='**',),
33883             PREC_ZERO       =SIMP(statut='f',typ='R',max='**',),
33884             VARI_TEST       =SIMP(statut='f',typ='TXM',max='**',defaut=('V1','VMIS','TRACE'),
33885                                   fr="liste des CMP à tester "),
33886             SUPPORT         =SIMP(statut='f',typ='TXM',max=1,into=("POINT","ELEMENT",)),
33887             MODELISATION    =SIMP(statut='f',typ='TXM',max=1,into=("3D","C_PLAN"),defaut="3D",),
33888             ANGLE           =SIMP(statut='f',typ='R',max=1, defaut=0.,
33889              fr='Rotation de ANGLE autour de Z uniquement, et seulement pour les déformations imposées',),
33890             MASSIF          =FACT(statut='f',max='**',fr='orientation du materiau (monocristal, orthotropie)',
33891               regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
33892               ANGL_REP        =SIMP(statut='f',typ='R',min=1,max=3),
33893               ANGL_EULER      =SIMP(statut='f',typ='R',min=1,max=3),
33894                                  ),
33895             TEST_TANGENTE   =SIMP(statut='f',typ='TXM',max=1,into=("OUI","NON"),defaut="OUI",),
33896             VERI_MATR_OPTION  =FACT(statut='f',max=1,fr='options pour le test de la matrice tangente',
33897               VALE_PERT_RELA  =SIMP(statut='f',typ='R',defaut=1.E-5),
33898               PRECISION       =SIMP(statut='f',typ='R',defaut=1.E-4 ),
33899               PREC_ZERO       =SIMP(statut='f',typ='R',defaut=1.E-12 ),
33900                                  ),
33901                                ),
33902             INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
33903                  )
33904
33905 # ======================================================================
33906 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33907 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33908 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33909 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33910 # (AT YOUR OPTION) ANY LATER VERSION.
33911 #
33912 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33913 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33914 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33915 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33916 #
33917 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33918 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33919 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33920 # ======================================================================
33921 # person_in_charge: mathieu.courtois at edf.fr
33922
33923 TEST_FICHIER=MACRO(nom="TEST_FICHIER",
33924                    op=OPS('Macro.test_fichier_ops.test_fichier_ops'),
33925                    UIinfo={"groupes":("Utilitaires",)},
33926                    fr="Tester la non régression de fichiers produits par des commandes aster",
33927    FICHIER          =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)),
33928    EXPR_IGNORE      =SIMP(statut='f',typ='TXM',max='**',
33929                           fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"),
33930    NB_VALE         =SIMP(statut='o',typ='I',),
33931
33932    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
33933    **C_TEST_REFERENCE('FICHIER', max=1)
33934 )
33935
33936 # ======================================================================
33937 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
33938 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33939 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33940 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33941 # (AT YOUR OPTION) ANY LATER VERSION.
33942 #
33943 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33944 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33945 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33946 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33947 #
33948 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33949 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33950 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33951 # ======================================================================
33952 # person_in_charge: nicolas.sellenet at edf.fr
33953
33954 TEST_FONCTION=MACRO(nom="TEST_FONCTION",
33955                     op=OPS('Macro.test_fonction_ops.test_fonction_ops'),
33956                     sd_prod=None,
33957             fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
33958             UIinfo={"groupes":("Fonctions","Utilitaires",)},
33959          TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
33960          VALEUR          =FACT(statut='f',max='**',
33961                                fr="Tester la valeur d une fonction ou d une nappe",
33962            regles=(UN_PARMI('VALE_PARA','INTERVALLE'),),
33963            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
33964            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
33965            VALE_PARA       =SIMP(statut='f',typ='R'  ,validators=NoRepeat(),max=2),
33966            INTERVALLE      =SIMP(statut='f',typ='R'  ,validators=NoRepeat(),min=2,max=2),
33967            **C_TEST_REFERENCE('FONCTION', max='**')
33968          ),
33969          ATTRIBUT        =FACT(statut='f',max='**',
33970                                fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
33971            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
33972            PARA            =SIMP(statut='f',typ='R' ),
33973            CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
33974            PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
33975            ATTR            =SIMP(statut='o',typ='TXM',
33976                                  into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
33977                                        "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
33978            ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
33979            REFERENCE       =SIMP(statut='f',typ='TXM',
33980                                  into=("ANALYTIQUE","SOURCE_EXTERNE","AUTRE_ASTER") ),
33981          ),
33982 )
33983
33984 # ======================================================================
33985 # COPYRIGHT (C) 1991 - 2013  EDF R&D                  WWW.CODE-ASTER.ORG
33986 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
33987 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
33988 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
33989 # (AT YOUR OPTION) ANY LATER VERSION.
33990 #
33991 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
33992 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
33993 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
33994 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
33995 #
33996 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
33997 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
33998 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
33999 #
34000 #
34001 # ======================================================================
34002 # person_in_charge: j-pierre.lefebvre at edf.fr
34003 TEST_RESU=PROC(nom="TEST_RESU",op=23,
34004             UIinfo={"groupes":("Résultats et champs","Utilitaires",)},
34005          fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
34006          regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','CARTE','RESU','GENE','OBJET','TEST_NAN',)),
34007
34008          CHAM_NO         =FACT(statut='f',max='**',
34009            regles=(EXCLUS('NOEUD','GROUP_NO'),  # EXCLUS avec 'TYPE_TEST' dans trchno.f
34010                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
34011                    PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),),
34012            CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
34013            NOEUD           =SIMP(statut='f',typ=no   ),
34014            GROUP_NO        =SIMP(statut='f',typ=grno ),
34015            NOM_CMP         =SIMP(statut='f',typ='TXM',max=1),
34016            **C_TEST_REFERENCE('CHAM_NO', max='**')
34017          ),
34018
34019          CARTE      =FACT(statut='f',max='**',
34020            CHAM_GD         =SIMP(statut='o',typ=carte_sdaster),
34021            MAILLE          =SIMP(statut='o',typ=ma),
34022            NOM_CMP         =SIMP(statut='o',typ='TXM',max=1),
34023            **C_TEST_REFERENCE('CARTE', max=1)
34024          ),
34025
34026          CHAM_ELEM       =FACT(statut='f',max='**',
34027            regles=(#UN_PARMI('MAILLE','TYPE_TEST',) dans trchel.f
34028                    EXCLUS('NOEUD','GROUP_NO','POINT'),
34029                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
34030                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
34031                    PRESENT_PRESENT('POINT','NOM_CMP'),),
34032            CHAM_GD         =SIMP(statut='o',typ=cham_elem),
34033            MAILLE          =SIMP(statut='f',typ=ma),
34034            POINT           =SIMP(statut='f',typ='I' ),
34035            SOUS_POINT      =SIMP(statut='f',typ='I'),
34036            NOEUD           =SIMP(statut='f',typ=no),
34037            GROUP_NO        =SIMP(statut='f',typ=grno),
34038            NOM_CMP         =SIMP(statut='f',typ='TXM',max=1),
34039            **C_TEST_REFERENCE('CHAM_ELEM', max='**')
34040          ),
34041
34042          RESU            =FACT(statut='f',max='**',
34043            regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGLE'),
34044                    UN_PARMI('NOM_CHAM','PARA'),
34045                    PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP',),
34046                    PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
34047                    EXCLUS('NOEUD','GROUP_NO','POINT'),  # EXCLUS avec 'TYPE_TEST' dans trresu.f
34048                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
34049                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
34050                    PRESENT_PRESENT('POINT','NOM_CMP'),),
34051            RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
34052            NUME_ORDRE      =SIMP(statut='f',typ='I'),
34053            INST            =SIMP(statut='f',typ='R'),
34054            FREQ            =SIMP(statut='f',typ='R'),
34055            NUME_MODE       =SIMP(statut='f',typ='I'),
34056            NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
34057            NOM_CAS         =SIMP(statut='f',typ='TXM'),
34058            ANGLE           =SIMP(statut='f',typ='R'),
34059            PARA            =SIMP(statut='f',typ='TXM'),
34060            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
34061            NOM_CMP         =SIMP(statut='f',typ='TXM',max=1),
34062            MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
34063            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
34064            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
34065            POINT           =SIMP(statut='f',typ='I'),
34066            SOUS_POINT      =SIMP(statut='f',typ='I'),
34067            **C_TEST_REFERENCE('RESU', max='**')
34068          ),
34069
34070          GENE            =FACT(statut='f',max='**',
34071            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
34072            b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene",
34073              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
34074            ),
34075            b_mode          =BLOC(condition = "AsType(RESU_GENE) == mode_gene",
34076                             regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
34077                                     UN_PARMI('NOM_CHAM','PARA'),
34078                                     PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
34079              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
34080              NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
34081              PARA            =SIMP(statut='f',typ='TXM'),
34082              NUME_ORDRE      =SIMP(statut='f',typ='I'),
34083              NUME_MODE       =SIMP(statut='f',typ='I'),
34084              FREQ            =SIMP(statut='f',typ='R'),
34085            ),
34086            b_harm          =BLOC(condition = "AsType(RESU_GENE) == harm_gene",
34087                             regles=(UN_PARMI('NUME_ORDRE','FREQ') ,),
34088              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
34089              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
34090              NUME_ORDRE      =SIMP(statut='f',typ='I'),
34091              FREQ            =SIMP(statut='f',typ='R'),
34092            ),
34093            b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
34094                             regles=(UN_PARMI('NUME_ORDRE','INST') ,),
34095              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),into=C_NOM_CHAM_INTO()),
34096              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
34097              NUME_ORDRE      =SIMP(statut='f',typ='I'),
34098              INST            =SIMP(statut='f',typ='R'),
34099            ),
34100            **C_TEST_REFERENCE('GENE', max='**')
34101          ),
34102
34103          OBJET           =FACT(statut='f',max='**',
34104            NOM             =SIMP(statut='o',typ='TXM'),
34105            **C_TEST_REFERENCE('OBJET', max=1)
34106          ),
34107
34108          TEST_NAN        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
34109 )
34110
34111 # ======================================================================
34112 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
34113 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
34114 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
34115 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
34116 # (AT YOUR OPTION) ANY LATER VERSION.                                 
34117 #
34118 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
34119 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
34120 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
34121 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
34122 #
34123 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
34124 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
34125 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
34126 # ======================================================================
34127 # person_in_charge: mathieu.courtois at edf.fr
34128 TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
34129                 UIinfo={"groupes":("Tables","Utilitaires",)},
34130                 fr="Tester une cellule ou une colonne d'une table",
34131 #  concept table_sdaster à tester
34132          TABLE           =SIMP(statut='o',typ=table_sdaster),
34133          FILTRE          =FACT(statut='f',max='**',
34134            NOM_PARA        =SIMP(statut='o',typ='TXM' ),
34135            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
34136                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
34137                                        "NON_VIDE","MAXI","MAXI_ABS","MINI","MINI_ABS") ),
34138            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
34139               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
34140               VALE            =SIMP(statut='f',typ='R',),
34141               VALE_I          =SIMP(statut='f',typ='I',),
34142               VALE_C          =SIMP(statut='f',typ='C',),
34143               VALE_K          =SIMP(statut='f',typ='TXM' ),),
34144
34145            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
34146            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
34147          ),
34148          NOM_PARA        =SIMP(statut='o',typ='TXM' ),
34149          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
34150          **C_TEST_REFERENCE('TABLE', max='**')
34151 )  ;
34152
34153 # ======================================================================
34154 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
34155 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
34156 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
34157 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
34158 # (AT YOUR OPTION) ANY LATER VERSION.
34159 #
34160 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
34161 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
34162 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
34163 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
34164 #
34165 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
34166 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
34167 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
34168 # ======================================================================
34169 # person_in_charge: mathieu.courtois at edf.fr
34170
34171 TEST_TEMPS=MACRO(nom="TEST_TEMPS",
34172                  op=OPS('Macro.test_temps_ops.test_temps_ops'),
34173                  sd_prod=None,
34174                  UIinfo={"groupes":("Utilitaires",)},
34175                  fr="Permet de vérifier le temps passé dans les commandes",
34176                  reentrant='n',
34177
34178    RESU = FACT(statut='o',max='**',
34179       COMMANDE   = SIMP(statut='o', typ='TXM',
34180             fr="Nom de la commande testee"),
34181       NUME_ORDRE = SIMP(statut='f', typ='I', defaut=1, val_min=1,
34182             fr="Numero de l'occurrence de la commande testee"),
34183       MACHINE    = SIMP(statut='o', typ='TXM', max='**',
34184             fr="Liste des machines dont on a la référence"),
34185       VALE       = SIMP(statut='o', typ='R', max='**',
34186             fr="Temps CPU sur les machines listees en secondes"),
34187       CRITERE    = SIMP(statut='f', typ='TXM', defaut='RELATIF', into=('ABSOLU', 'RELATIF')),
34188       PRECISION  = SIMP(statut='f', typ='R', defaut=0.01, max='**',
34189             fr="Ecart admissible pour chaque machine"),
34190       TYPE_TEST  = SIMP(statut='o', typ='TXM', into=('USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'),
34191             defaut='USER+SYS',
34192             fr="Valeur testee parmi 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'"),
34193    ),
34194
34195    INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
34196 )
34197
34198 # ======================================================================
34199 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
34200 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
34201 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
34202 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
34203 # (AT YOUR OPTION) ANY LATER VERSION.
34204 #
34205 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
34206 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
34207 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
34208 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
34209 #
34210 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
34211 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
34212 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
34213 # ======================================================================
34214 # person_in_charge: jessica.haelewyn at edf.fr
34215 THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
34216             UIinfo={"groupes":("Résolution","Thermique",)},
34217                    fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
34218          MODELE          =SIMP(statut='o',typ=modele_sdaster),
34219          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
34220          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
34221          EXCIT           =FACT(statut='o',max='**',
34222            CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
34223            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
34224          ),
34225          ETAT_INIT       =FACT(statut='f',
34226            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
34227            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
34228            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
34229            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
34230            VALE            =SIMP(statut='f',typ='R'),
34231            NUME_ORDRE      =SIMP(statut='f',typ='I'),
34232            INST            =SIMP(statut='f',typ='R'),
34233            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
34234            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
34235               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
34236            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
34237               PRECISION       =SIMP(statut='o',typ='R',),),
34238            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
34239          ),
34240 #-------------------------------------------------------------------
34241          INCREMENT       =C_INCREMENT('THERMIQUE'),
34242 #-------------------------------------------------------------------
34243 #        Catalogue commun SOLVEUR
34244          SOLVEUR         =C_SOLVEUR('THER_LINEAIRE'),
34245 #-------------------------------------------------------------------
34246          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
34247 #-------------------------------------------------------------------
34248          ARCHIVAGE       =C_ARCHIVAGE(),
34249 #-------------------------------------------------------------------
34250          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
34251          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
34252 )  ;
34253
34254 # ======================================================================
34255 # COPYRIGHT (C) 1991 - 2012  EDF R&D                  WWW.CODE-ASTER.ORG
34256 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
34257 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
34258 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
34259 # (AT YOUR OPTION) ANY LATER VERSION.
34260 #
34261 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
34262 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
34263 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
34264 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
34265 #
34266 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
34267 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
34268 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
34269 # ======================================================================
34270 # person_in_charge: jessica.haelewyn at edf.fr
34271 THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
34272             UIinfo={"groupes":("Résolution","Thermique",)},
34273                    fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
34274                       +" stationnaire ou transitoire" ,
34275          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
34276          CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
34277          CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
34278          COMPORTEMENT    =FACT(statut='d',max='**',
34279            RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
34280                                  into=("THER_NL",
34281                                        "THER_HYDR",
34282                                        "SECH_GRANGER",
34283                                        "SECH_MENSI",
34284                                        "SECH_BAZANT",
34285                                        "SECH_NAPPE"
34286                                        ) ),
34287          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
34288            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
34289            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
34290            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
34291          ),
34292          EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
34293          EXCIT           =FACT(statut='o',max='**',
34294            CHARGE          =SIMP(statut='o',typ=char_ther),
34295            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
34296          ),
34297 #-------------------------------------------------------------------
34298          INCREMENT       =C_INCREMENT('THERMIQUE'),
34299 #-------------------------------------------------------------------
34300          ETAT_INIT       =FACT(statut='f',
34301            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
34302            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
34303            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
34304            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
34305            VALE            =SIMP(statut='f',typ='R'),
34306            NUME_ORDRE      =SIMP(statut='f',typ='I'),
34307            INST            =SIMP(statut='f',typ='R'),
34308            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
34309            b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
34310               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
34311            b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
34312               PRECISION       =SIMP(statut='o',typ='R',),),
34313            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
34314          ),
34315          NEWTON          =FACT(statut='d',
34316            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ,val_min=0),
34317            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
34318            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
34319          ),
34320          CONVERGENCE     =FACT(statut='d',
34321            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
34322            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
34323            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
34324          ),
34325 #-------------------------------------------------------------------
34326 #        Catalogue commun SOLVEUR
34327          SOLVEUR         =C_SOLVEUR('THER_NON_LINE'),
34328 #-------------------------------------------------------------------
34329          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
34330 #-------------------------------------------------------------------
34331          ARCHIVAGE       =C_ARCHIVAGE(),
34332 #-------------------------------------------------------------------
34333          OBSERVATION     =C_OBSERVATION(),
34334 #------------------------------------------------------------------- 
34335          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
34336          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
34337
34338 )  ;
34339
34340 # ======================================================================
34341 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
34342 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
34343 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
34344 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
34345 # (AT YOUR OPTION) ANY LATER VERSION.
34346 #
34347 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
34348 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
34349 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
34350 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
34351 #
34352 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
34353 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
34354 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
34355 # ======================================================================
34356 # person_in_charge: jessica.haelewyn at edf.fr
34357 THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
34358                      fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
34359                         +" stationnaire avec chargement mobile",
34360                      reentrant='n',
34361             UIinfo={"groupes":("Résolution","Thermique",)},
34362          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
34363          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
34364          CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
34365          EXCIT           =FACT(statut='o',max='**',
34366            CHARGE          =SIMP(statut='o',typ=char_ther ),
34367            FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
34368          ),
34369          ETAT_INIT       =FACT(statut='f',
34370            EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
34371            NUME_ORDRE      =SIMP(statut='f',typ='I',defaut= 0 ),
34372          ),
34373          CONVERGENCE     =FACT(statut='d',
34374            CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
34375            CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
34376            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
34377            ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
34378          ),
34379 #-------------------------------------------------------------------
34380 #        Catalogue commun SOLVEUR
34381          SOLVEUR         =C_SOLVEUR('THER_NON_LINE_MO'),
34382 #-------------------------------------------------------------------
34383          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
34384          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
34385 )  ;
34386
34387 # ======================================================================
34388 # COPYRIGHT (C) 1991 - 2011  EDF R&D                  WWW.CODE-ASTER.ORG
34389 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
34390 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
34391 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
34392 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
34393 #                                                                       
34394 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
34395 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
34396 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
34397 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
34398 #                                                                       
34399 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
34400 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
34401 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
34402 # ======================================================================
34403 # person_in_charge: mathieu.courtois at edf.fr
34404
34405 # Vérification des imports et définitions non autorisés dans le catalogue
34406 UNAUTHORIZED = ("numpy", "UTMESS", "Table", "Graph")
34407
34408 for _name in UNAUTHORIZED:
34409     _obj = globals().get(_name, None)
34410     assert _obj is None, "Definition de '%s' interdite dans le catalogue." % _name
34411
34412 assert aster_exists or aster is None
34413