]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA8/cata.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA8 / cata.py
1 #& MODIF ENTETE  DATE 07/05/2008   AUTEUR MACOCCO K.MACOCCO 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
10 #
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 #
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
20
21 import os
22 import Accas
23 from Accas import *
24 from Accas import _F
25 import string
26 from types import TupleType, ListType, StringType, InstanceType
27 import Numeric
28 from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10
29 from math import sqrt,pi
30 import ops
31
32 try:
33   import aster
34 except:
35   pass
36
37 __version__="$Name:  $"
38
39 EnumTypes = (ListType, TupleType)
40
41 # -----------------------------------------------------------------------------
42 JdC = JDC_CATA(code='ASTER',
43                execmodul=None,
44                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
45                          AU_MOINS_UN('FIN'),
46                          A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
47 # Type le plus general
48 class entier   (ASSD):
49    def __init__(self,valeur=None,**args):
50       ASSD.__init__(self,**args)
51       self.valeur=valeur
52
53    def __adapt__(self,validator):
54       if validator.name == "list":
55           #validateur liste,cardinalité
56           return (self,)
57       elif validator.name == "type":
58           #validateur type
59           return validator.adapt(self.valeur or 0)
60       else:
61           #validateur into et valid
62           return self
63
64 class reel(ASSD):
65    def __init__(self,valeur=None,**args):
66       ASSD.__init__(self,**args)
67       self.valeur=valeur
68
69    def __call__(self):
70       return self.valeur
71
72    def __adapt__(self,validator):
73       if validator.name == "list":
74           #validateur liste,cardinalité
75           return (self,)
76       elif validator.name == "type":
77           #validateur type
78           return validator.adapt(self.valeur or 0.)
79       else:
80           #validateur into et valid
81           return self
82
83
84 # -----------------------------------------------------------------------------
85 # Type geometriques
86 class no  (GEOM):pass
87 class grno(GEOM):pass
88 class ma  (GEOM):pass
89 class grma(GEOM):pass
90
91 # -----------------------------------------------------------------------------
92 # Autres
93 class cabl_precont    (ASSD):pass
94 class cara_elem       (ASSD):pass
95 class cham_mater      (ASSD):pass
96 class char_acou       (ASSD):pass
97 class char_cine_acou  (ASSD):pass
98 class char_cine_meca  (ASSD):pass
99 class char_cine_ther  (ASSD):pass
100 class char_meca       (ASSD):pass
101 class char_ther       (ASSD):pass
102 class compor_sdaster  (ASSD):pass
103 class courbe_sdaster  (ASSD):pass
104 class fiss_xfem       (ASSD):pass
105 class fond_fiss       (ASSD):pass
106 class interf_dyna_clas(ASSD):pass
107 class interspfact     (ASSD):pass
108 class listis_sdaster  (ASSD):pass
109 class melasflu_sdaster(ASSD):pass
110 class nume_ddl_sdaster(ASSD):pass
111 class nume_ddl_gene   (ASSD):pass
112 class sd_feti_sdaster (ASSD):pass
113 class spectre_sdaster (ASSD):pass
114 class surface_sdaster (ASSD):pass
115 class tran_gene       (ASSD):pass
116 class type_flui_stru  (ASSD):pass
117
118 # -----------------------------------------------------------------------------
119 # modeles :
120 class modele_sdaster  (ASSD):pass
121 class modele_gene     (ASSD):
122   def LIST_SOUS_STRUCT(self) :
123     """ retourne la liste des sous structures du modele generalise
124         la liste des macro-elements sous-jacents"""
125     if self.par_lot():
126       raise Accas.AsException("Erreur dans modele_gene.LIST_SOUS_STRUCT en PAR_LOT='OUI'")
127     nommodgen=self.get_name()
128     ncham=nommodgen+(8-len(nommodgen))*' '
129     ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO')
130     ssme=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.SSME')
131     return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))]
132   def LIST_LIAIS_STRUCT(self) :
133     """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme :
134         [ (ss1, nom_liais1,  ss2 , nom_liais2), ...] """
135     if self.par_lot() :
136       raise Accas.AsException("Erreur dans modele_gene.LIST_LIAIS_STRUCT en PAR_LOT='OUI'")
137     nommodgen=self.get_name()
138     ncham=nommodgen+(8-len(nommodgen))*' '
139     lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF')
140     return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf]
141
142
143 # -----------------------------------------------------------------------------
144 # materiau
145 class mater_sdaster(ASSD):
146    def RCVALE(self, phenomene, nompar=(), valpar=(), nomres=(), stop='F'):
147       """Appel à la routine fortran RCVALE pour récupérer les valeurs des
148       propriétés du matériau.
149       """
150       if self.par_lot() :
151          raise Accas.AsException("Erreur dans mater.RCVALE en PAR_LOT='OUI'")
152       from Utilitai.Utmess import UTMESS
153       # vérification des arguments
154       if not type(nompar) in EnumTypes:
155          nompar = [nompar,]
156       if not type(valpar) in EnumTypes:
157          valpar = [valpar,]
158       if not type(nomres) in EnumTypes:
159          nomres = [nomres,]
160       nompar = tuple(nompar)
161       valpar = tuple(valpar)
162       nomres = tuple(nomres)
163       if len(nompar) != len(valpar):
164          UTMESS('F', 'RCVALE', """Arguments incohérents :
165       Nom des paramètres : %s
166    Valeur des paramètres : %s""" \
167          % (', '.join(nompar), ', '.join([repr(v) for v in valpar])))
168       if len(nomres) < 1:
169          UTMESS('F', 'RCVALE', 'Argument invalide : "nomres" vide !')
170       # appel à l'interface Python/C
171       return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop)
172
173 # -----------------------------------------------------------------------------
174 # macro-elements :
175 class macr_elem_dyna  (ASSD):
176   def NBRE_MODES(self) :
177     """ retourne le nombre de modes total, dynamiques et d'interface """
178     if self.par_lot() :
179       raise Accas.AsException("Erreur dans macr_elem_dyna.NBRE_MODES en PAR_LOT='OUI'")
180     nommacr=self.get_name()
181     ncham=nommacr+(8-len(nommacr))*' '
182     ncham=nommacr+(8-len(nommacr))*' '+'.MAEL'
183     nombase=aster.getvectjev(ncham+'_REFE')[0]
184     nbmode=Numeric.array(aster.getvectjev(nombase[0:8]+(19-len(nombase[0:8]))*' '+'.UTIL'))
185     nbmodtot=nbmode[1]
186     nbmoddyn=nbmode[2]
187     nbmodint=nbmode[3]
188     return [nbmodtot,nbmoddyn,nbmodint]
189
190   def EXTR_MATR_GENE(self,typmat) :
191     """ retourne les valeurs des matrices generalisees reelles
192     dans un format Numerical Array
193         typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
194         typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
195         typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
196         Attributs retourne
197           - self.valeurs : Numeric.array contenant les valeurs """
198     if self.par_lot() :
199       raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'")
200
201     nommacr=self.get_name()
202     if (typmat=='MASS_GENE') :
203        ext='.MAEL_MASS'
204     elif (typmat=='RIGI_GENE') :
205        ext='.MAEL_RAID'
206     elif (typmat=='AMOR_GENE') :
207        ext='.MAEL_AMOR'
208     else:
209        raise Accas.AsException("Le type de la matrice est incorrect")
210     ncham=nommacr+(8-len(nommacr))*' '+ext
211     desc=Numeric.array(aster.getvectjev(ncham+'_DESC'))
212
213     # On teste si le DESC du vecteur existe
214     if (desc==None):
215        raise Accas.AsException("L'objet matrice n'existe pas ou \
216        est mal cree par Code Aster")
217
218     tmp=Numeric.array(aster.getvectjev(ncham+'_VALE'))
219     matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
220     for j in range(desc[1]+1):
221       for i in range(j):
222         k=j*(j-1)/2+i
223         matrice[j-1,i]=tmp[k]
224     matrice=(matrice+Numeric.transpose(matrice))
225     for i in range(desc[1]):
226       matrice[i,i]=0.5*matrice[i,i]
227     return matrice
228
229   def RECU_MATR_GENE(self,typmat,matrice) :
230     """ envoie les valeurs d'un Numerical Array dans des matrices generalisees
231     reelles definies dans jeveux
232         typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
233         typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
234         typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
235         Attributs ne retourne rien """
236     if self.par_lot() :
237       raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'")
238     from Utilitai.Utmess import UTMESS
239
240     # avertissement generique
241     UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
242
243     nommacr=self.get_name()
244     if (typmat=='MASS_GENE') :
245        ext='.MAEL_MASS'
246     elif (typmat=='RIGI_GENE') :
247        ext='.MAEL_RAID'
248     elif (typmat=='AMOR_GENE') :
249        ext='.MAEL_AMOR'
250     else:
251        raise Accas.AsException("Le type de la matrice \
252                                 est incorrect")
253     ncham=nommacr+(8-len(nommacr))*' '+ext
254     desc=Numeric.array(aster.getvectjev(ncham+'_DESC'))
255
256     # On teste si le DESC de la matrice jeveux existe
257     if (desc==None):
258        raise Accas.AsException("L'objet matrice n'existe pas ou \
259                                 est mal cree par Code Aster")
260     Numeric.asarray(matrice)
261
262     # On teste si la matrice python est de dimension 2
263     if (len(Numeric.shape(matrice))<>2):
264        raise Accas.AsException("La dimension de la matrice \
265                                 est incorrecte")
266
267     # On teste si les tailles de la matrice jeveux et python sont identiques
268     if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
269        raise Accas.AsException("La dimension de la matrice \
270                                 est incorrecte")
271     taille=desc[1]*desc[1]/2.0+desc[1]/2.0
272     tmp=Numeric.zeros([int(taille)],Numeric.Float)
273     for j in range(desc[1]+1):
274       for i in range(j):
275         k=j*(j-1)/2+i
276         tmp[k]=matrice[j-1,i]
277     aster.putvectjev(ncham+'_VALE',len(tmp),tuple((
278     range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
279     return
280
281 class macr_elem_stat  (ASSD):pass
282
283
284 # -----------------------------------------------------------------------------
285 # liste :
286 class listr8_sdaster   (ASSD):
287    def Valeurs(self) :
288       """
289       Retourne la liste des valeurs : [val1, ..., valN]
290       """
291       if not self.par_lot():
292          vale='%-19s.VALE' % self.get_name()
293          t_vale = aster.getvectjev(vale)
294          if t_vale == None:
295             UTMESS('F', 'listr8.Valeurs', "Objet '%s' inexistant" % vale)
296          return list(t_vale)
297       else:
298          raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'")
299
300
301 # -----------------------------------------------------------------------------
302 # post-traitement :
303 class post_comp_cham_el :
304   def __init__(self,valeurs,maille=None,point=None,sous_point=None) :
305     self.valeurs=valeurs
306     self.maille=maille
307     self.point=point
308     self.sous_point=sous_point
309
310 class post_comp_cham_no :
311   def __init__(self,valeurs,noeud=None) :
312     self.valeurs=valeurs
313     self.noeud=noeud
314
315 # -----------------------------------------------------------------------------
316 # maillage :
317 class maillage_sdaster(ASSD):
318   def LIST_GROUP_NO(self) :
319       """ retourne la liste des groupes de noeuds sous la forme :
320         [ (gno1, nb noeuds  gno1), ...] """
321       if self.par_lot() :
322          raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'")
323       nommail=self.get_name()
324       dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO")
325       return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno]
326   def LIST_GROUP_MA(self) :
327       """ retourne la liste des groupes de mailles sous la forme :
328         [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """
329       if self.par_lot() :
330          raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'")
331       nommail=self.get_name()
332       nommail=nommail.ljust(8)
333       ngpma=[]
334       ltyma =aster.getvectjev("&CATA.TM.NOMTM")
335       catama=aster.getcolljev("&CATA.TM.TMDIM")
336       dic_gpma=aster.getcolljev(nommail+".GROUPEMA")
337       dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")]
338       for grp in dic_gpma.keys():
339          dim=max([dimama[ma-1] for ma in dic_gpma[grp]])
340          ngpma.append((grp.strip(),len(dic_gpma[grp]),dim))
341       return ngpma
342
343 class squelette     (maillage_sdaster):pass
344
345
346 # -----------------------------------------------------------------------------
347 # champ_gd/carte
348 class cham_gd_sdaster(ASSD):pass
349 class carte_sdaster  (cham_gd_sdaster):pass
350
351 # -----------------------------------------------------------------------------
352 # cham_elem
353 class cham_elem(cham_gd_sdaster):
354   def EXTR_COMP(self,comp,lgma,topo=0) :
355       """ retourne les valeurs de la composante comp du champ sur la liste
356         de groupes de mailles lgma avec eventuellement l'info de la
357         topologie si topo>0. Si lgma est une liste vide, c'est equivalent
358         a un TOUT='OUI' dans les commandes aster
359         Attributs retourne
360           - self.valeurs : Numeric.array contenant les valeurs
361         Si on a demande la topo  :
362           - self.maille  : numero de mailles
363           - self.point   : numero du point dans la maille
364           - self.sous_point : numero du sous point dans la maille """
365       if self.par_lot() :
366          raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'")
367
368       ncham=self.get_name()
369       ncham=ncham+(8-len(ncham))*' '
370       nchams=ncham[0:7]+'S'
371       ncmp=comp+(8-len(comp))*' '
372
373       aster.prepcompcham(ncham,nchams,ncmp,"EL      ",topo,lgma)
374
375       valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
376
377       if (topo>0) :
378          maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M'))
379          point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P'))
380          sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP'))
381       else :
382          maille=None
383          point=None
384          sous_point=None
385
386       aster.prepcompcham("__DETR__",nchams,ncmp,"EL      ",topo,lgma)
387
388       return post_comp_cham_el(valeurs,maille,point,sous_point)
389
390 # -----------------------------------------------------------------------------
391 # cham_no :
392 class cham_no_sdaster(cham_gd_sdaster):
393
394   def EXTR_COMP(self,comp,lgno,topo=0) :
395       """ retourne les valeurs de la composante comp du champ sur la liste
396         de groupes de noeuds lgno avec eventuellement l'info de la
397         topologie si topo>0. Si lgno est une liste vide, c'est equivalent
398         a un TOUT='OUI' dans les commandes aster
399         Attributs retourne
400           - self.valeurs : Numeric.array contenant les valeurs
401         Si on a demande la topo (i.e. self.topo = 1) :
402           - self.noeud  : numero de noeud """
403       if self.par_lot() :
404          raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'")
405
406       ncham=self.get_name()
407       ncham=ncham+(8-len(ncham))*' '
408       nchams=ncham[0:7]+'S'
409       ncmp=comp+(8-len(comp))*' '
410
411       aster.prepcompcham(ncham,nchams,ncmp,"NO      ",topo,lgno)
412
413       valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
414
415       if (topo>0) :
416          noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N'))
417       else :
418          noeud=None
419
420       aster.prepcompcham("__DETR__",nchams,ncmp,"NO      ",topo,lgno)
421
422       return post_comp_cham_no(valeurs,noeud)
423
424 # -----------------------------------------------------------------------------
425 # resultat_sdaster : (evol_sdaster,mode_stat,mode_meca)
426 class resultat_sdaster(ASSD):
427   def LIST_CHAMPS (self) :
428     if self.par_lot() :
429       raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'")
430     return aster.GetResu(self.get_name(), "CHAMPS")
431   def LIST_NOM_CMP (self) :
432     if self.par_lot() :
433       raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'")
434     return aster.GetResu(self.get_name(), "COMPOSANTES")
435   def LIST_VARI_ACCES (self) :
436     if self.par_lot() :
437       raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'")
438     return aster.GetResu(self.get_name(), "VARI_ACCES")
439   def LIST_PARA (self) :
440     if self.par_lot() :
441       raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'")
442     return aster.GetResu(self.get_name(), "PARAMETRES")
443
444 class resultat_jeveux(resultat_sdaster):
445    """Classe permettant d'accéder à un resultat jeveux qui n'a pas d'ASSD associée,
446    c'est le cas des concepts résultats (table, evol_xxxx) dérivés."""
447    def __init__(self,nom_jeveux):
448       self.nom=nom_jeveux
449
450 # -----------------------------------------------------------------------------
451 class acou_harmo    (resultat_sdaster):pass
452 class base_modale   (resultat_sdaster):pass
453 class comb_fourier  (resultat_sdaster):pass
454 class dyna_harmo    (resultat_sdaster):pass
455 class dyna_trans    (resultat_sdaster):pass
456 class fourier_elas  (resultat_sdaster):pass
457 class fourier_ther  (resultat_sdaster):pass
458 class harm_gene     (resultat_sdaster):pass
459 class mode_acou     (resultat_sdaster):pass
460 class mode_cycl     (resultat_sdaster):pass
461 class mode_flamb    (resultat_sdaster):pass
462 class mode_gene     (resultat_sdaster):pass
463 class mult_elas     (resultat_sdaster):pass
464 class theta_geom    (resultat_sdaster):pass
465
466 # -----------------------------------------------------------------------------
467 # resultat_sdaster/evol_sdaster :
468 class evol_sdaster(resultat_sdaster):pass
469 class evol_char(evol_sdaster):pass
470 class evol_elas(evol_sdaster):pass
471 class evol_noli(evol_sdaster):pass
472 class evol_ther(evol_sdaster):pass
473 class evol_varc(evol_sdaster):pass
474
475 # -----------------------------------------------------------------------------
476 # resultat_sdaster/mode_stat :
477 class mode_stat(resultat_sdaster):pass
478 class mode_stat_depl(mode_stat):pass
479 class mode_stat_acce(mode_stat):pass
480 class mode_stat_forc(mode_stat):pass
481
482
483 # -----------------------------------------------------------------------------
484 # resultat_sdaster/mode_meca :
485 class mode_meca(resultat_sdaster):pass
486 class mode_meca_c(mode_meca):pass
487
488
489 # -----------------------------------------------------------------------------
490 # types 'fonction' :
491 class fonction_class(ASSD):
492    def Valeurs(self):pass
493    def Parametres(self):
494       """
495       Retourne un dictionnaire contenant les parametres de la fonction ;
496       le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne,
497       le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel.
498       """
499       if not self.par_lot():
500         TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
501         objev = '%-19s.PROL' % self.get_name()
502         prol = aster.getvectjev(objev)
503         if prol == None:
504            UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev)
505         dico={
506          'INTERPOL'    : [prol[1][0:3],prol[1][4:7]],
507          'NOM_PARA'    : string.strip(prol[2][0:16]),
508          'NOM_RESU'    : string.strip(prol[3][0:16]),
509          'PROL_DROITE' : TypeProl[prol[4][1]],
510          'PROL_GAUCHE' : TypeProl[prol[4][0]],
511         }
512       elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' :
513         dico={
514          'INTERPOL'    : self.etape['INTERPOL'],
515          'NOM_PARA'    : self.etape['NOM_PARA'],
516          'NOM_RESU'    : self.etape['NOM_RESU'],
517          'PROL_DROITE' : self.etape['PROL_DROITE'],
518          'PROL_GAUCHE' : self.etape['PROL_GAUCHE'],
519         }
520         if   type(dico['INTERPOL'])==TupleType :
521                   dico['INTERPOL']=list(dico['INTERPOL'])
522         elif type(dico['INTERPOL'])==StringType :
523                   dico['INTERPOL']=[dico['INTERPOL'],]
524         if len(dico['INTERPOL'])==1 :
525            dico['INTERPOL']=dico['INTERPOL']*2
526       else:
527          raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'")
528       return dico
529    def Trace(self,FORMAT='TABLEAU',**kargs):
530       """Tracé d'une fonction"""
531       if self.par_lot() :
532          raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'")
533       from Utilitai.Graph import Graph
534       gr=Graph()
535       gr.AjoutCourbe(Val=self.Valeurs(),
536             Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']],
537             Leg=os.linesep.join(self.TITR.get()) )
538       gr.Trace(FORMAT=FORMAT,**kargs)
539
540 class fonction_sdaster(fonction_class):
541    def convert(self,arg='real'):
542       """
543       Retourne un objet de la classe t_fonction
544       représentation python de la fonction
545       """
546       from Utilitai.t_fonction import t_fonction,t_fonction_c
547       if arg=='real' :
548         return t_fonction(self.Absc(),
549                           self.Ordo(),
550                           self.Parametres())
551       elif arg=='complex' :
552         return t_fonction_c(self.Absc(),
553                             self.Ordo(),
554                             self.Parametres())
555    def Valeurs(self) :
556       """
557       Retourne deux listes de valeurs : abscisses et ordonnees
558       """
559       if not self.par_lot():
560         vale = '%-19s.VALE' % self.get_name()
561         lbl = aster.getvectjev(vale)
562         if lbl == None:
563            UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale)
564         lbl = list(lbl)
565         dim = len(lbl)/2
566         lx = lbl[0:dim]
567         ly = lbl[dim:2*dim]
568       elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' :
569          if self.etape['VALE'] != None:
570             lbl = list(self.etape['VALE'])
571             dim = len(lbl)
572             lx = [lbl[i] for i in range(0,dim,2)]
573             ly = [lbl[i] for i in range(1,dim,2)]
574          elif self.etape['VALE_PARA']!=None:
575             lx = self.etape['VALE_PARA'].Valeurs()
576             ly = self.etape['VALE_FONC'].Valeurs()
577       else:
578          raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \
579                "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
580                "dans le jdc courant.")
581       return [lx, ly]
582    def Absc(self):
583       """Retourne la liste des abscisses"""
584       return self.Valeurs()[0]
585    def Ordo(self):
586       """Retourne la liste des ordonnées"""
587       return self.Valeurs()[1]
588    def __call__(self,val):
589       ### Pour EFICAS : substitution de l'instance de classe
590       ### parametre par sa valeur
591       if type(val)==InstanceType:
592          val=val.valeur
593       ###
594       __ff=self.convert()
595       return __ff(val)
596
597 class para_sensi(fonction_sdaster): pass
598
599 class fonction_c(fonction_class):
600    def convert(self,arg='real'):
601       """
602       Retourne un objet de la classe t_fonction ou t_fonction_c,
603       représentation python de la fonction complexe
604       """
605       from Utilitai.t_fonction import t_fonction,t_fonction_c
606       if arg=='real' :
607         return t_fonction(self.Absc(),
608                           self.Ordo(),
609                           self.Parametres())
610       elif arg=='imag' :
611         return t_fonction(self.Absc(),
612                           self.OrdoImg(),
613                           self.Parametres())
614       elif arg=='modul' :
615         modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2)
616         return t_fonction(self.Absc(),
617                           modul,
618                           self.Parametres())
619       elif arg=='phase' :
620         phase=Numeric.arctan2(Numeric.array(self.OrdoImg()),Numeric.array(self.Ordo()))
621         phase=phase*180./pi
622         return t_fonction(self.Absc(),
623                           phase,
624                           self.Parametres())
625       elif arg=='complex' :
626         return t_fonction_c(self.Absc(),
627                             map(complex,self.Ordo(),self.OrdoImg()),
628                             self.Parametres())
629    def Valeurs(self) :
630       """
631       Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires.
632       """
633       if not self.par_lot():
634          vale = '%-19s.VALE' % self.get_name()
635          lbl = aster.getvectjev(vale)
636          if lbl == None:
637             UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale)
638          lbl = list(lbl)
639          dim=len(lbl)/3
640          lx=lbl[0:dim]
641          lr=[]
642          li=[]
643          for i in range(dim):
644             lr.append(lbl[dim+2*i])
645             li.append(lbl[dim+2*i+1])
646       elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION':
647          lbl=list(self.etape['VALE_C'])
648          dim=len(lbl)
649          lx=[lbl[i] for i in range(0,dim,3)]
650          lr=[lbl[i] for i in range(1,dim,3)]
651          li=[lbl[i] for i in range(2,dim,3)]
652       else:
653          raise Accas.AsException("Erreur (fonction_c.Valeurs) : ne fonctionne en " \
654                "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
655                "dans le jdc courant.")
656       return [lx, lr, li]
657    def Absc(self):
658       """Retourne la liste des abscisses"""
659       return self.Valeurs()[0]
660    def Ordo(self):
661       """Retourne la liste des parties réelles des ordonnées"""
662       return self.Valeurs()[1]
663    def OrdoImg(self):
664       """Retourne la liste des parties imaginaires des ordonnées"""
665       return self.Valeurs()[2]
666    def Trace(self,FORMAT='TABLEAU',**kargs):
667       """Tracé d'une fonction complexe"""
668       if self.par_lot() :
669          raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'")
670       from Utilitai.Graph import Graph
671       para = self.Parametres()
672       gr=Graph()
673       gr.AjoutCourbe(Val=self.Valeurs(),
674        Lab=[para['NOM_PARA'], '%s_R' % para['NOM_RESU'], '%s_I' % para['NOM_RESU']],
675        Leg=os.linesep.join(self.TITR.get()) )
676       gr.Trace(FORMAT=FORMAT,**kargs)
677    def __call__(self,val):
678       ### Pour EFICAS : substitution de l'instance de classe
679       ### parametre par sa valeur
680       if type(val)==InstanceType:
681          val=val.valeur
682       ###
683       __ff=convert(self)
684       return __ff(val)
685
686 class nappe_sdaster(fonction_class):
687    def convert(self):
688       """
689       Retourne un objet de la classe t_nappe, représentation python de la nappe
690       """
691       from Utilitai.t_fonction import t_fonction,t_nappe
692       para=self.Parametres()
693       vale=self.Valeurs()
694       l_fonc=[]
695       i=0
696       for pf in para[1] :
697           para_f={'INTERPOL'    : pf['INTERPOL_FONC'],
698                   'PROL_DROITE' : pf['PROL_DROITE_FONC'],
699                   'PROL_GAUCHE' : pf['PROL_GAUCHE_FONC'],
700                   'NOM_PARA'    : para[0]['NOM_PARA_FONC'],
701                   'NOM_RESU'    : para[0]['NOM_RESU'],
702                  }
703           l_fonc.append(t_fonction(vale[1][i][0],vale[1][i][1],para_f))
704           i+=1
705       return t_nappe(vale[0],
706                      l_fonc,
707                      para[0])
708    def Valeurs(self):
709       """
710       Retourne la liste des valeurs du parametre,
711       et une liste de couples (abscisses,ordonnees) de chaque fonction.
712       """
713       if self.par_lot():
714          raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'")
715       nsd = '%-19s' % self.get_name()
716       dicv=aster.getcolljev(nsd+'.VALE')
717       # les cles de dicv sont 1,...,N (indice du parametre)
718       lpar=aster.getvectjev(nsd+'.PARA')
719       if lpar == None:
720          UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % (nsd+'.PARA'))
721       lval=[]
722       for k in range(len(dicv)):
723          lbl=dicv[k+1]
724          dim=len(lbl)/2
725          lval.append([lbl[0:dim],lbl[dim:2*dim]])
726       return [list(lpar),lval]
727    def Parametres(self):
728       """
729       Retourne un dictionnaire contenant les parametres de la nappe,
730       le type jeveux (NAPPE) n'est pas retourne,
731       le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel,
732       et une liste de dictionnaire des parametres de chaque fonction.
733       """
734       if self.par_lot():
735          raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'")
736       TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
737       objev = '%-19s.PROL' % self.get_name()
738       prol=aster.getvectjev(objev)
739       if prol == None:
740          UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev)
741       dico={
742          'INTERPOL'      : [prol[1][0:3],prol[1][4:7]],
743          'NOM_PARA'      : string.strip(prol[2][0:16]),
744          'NOM_RESU'      : string.strip(prol[3][0:16]),
745          'PROL_DROITE'   : TypeProl[prol[4][1]],
746          'PROL_GAUCHE'   : TypeProl[prol[4][0]],
747          'NOM_PARA_FONC' : string.strip(prol[5][0:4]),
748       }
749       lparf=[]
750       nbf=(len(prol)-6)/2
751       for i in range(nbf):
752          dicf={
753             'INTERPOL_FONC'    : [prol[6+i*2][0:3],prol[6+i*2][4:7]],
754             'PROL_DROITE_FONC' : TypeProl[prol[7+i*2][1]],
755             'PROL_GAUCHE_FONC' : TypeProl[prol[7+i*2][0]],
756          }
757          lparf.append(dicf)
758       return [dico,lparf]
759    def Absc(self):
760       """Retourne la liste des abscisses"""
761       return self.Valeurs()[0]
762    def Trace(self,FORMAT='TABLEAU',**kargs):
763       """Tracé d'une nappe"""
764       if self.par_lot():
765          raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'")
766       from Utilitai.Graph import Graph
767       gr=Graph()
768       lv=self.Valeurs()[1]
769       dp=self.Parametres()[0]
770       for lx,ly in lv:
771          gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']],
772          Leg=os.linesep.join(self.TITR.get()) )
773       gr.Trace(FORMAT=FORMAT,**kargs)
774
775 # -----------------------------------------------------------------------------
776 # matr_asse :
777 class matr_asse(ASSD):pass
778 class matr_asse_gene(matr_asse):pass
779
780 class matr_asse_gene_r(matr_asse_gene):
781   def EXTR_MATR_GENE(self) :
782     """ retourne les valeurs de la matrice generalisee reelle
783     dans un format Numerical Array
784         Attributs retourne
785           - self.valeurs : Numeric.array contenant les valeurs """
786     if self.par_lot():
787        raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'")
788
789     ncham=self.get_name()
790     ncham=ncham+(8-len(ncham))*' '
791     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
792     # On teste si le DESC de la matrice existe
793     if (desc==None):
794        raise Accas.AsException("L'objet matrice n'existe pas ou \
795                                 est mal cree par Code Aster")
796     # Si le stockage est plein
797     if desc[2]==2 :
798       tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
799       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
800       for j in range(desc[1]+1):
801         for i in range(j):
802           k=j*(j-1)/2+i
803           valeur[j-1,i]=tmp[k]
804       valeur=(valeur+Numeric.transpose(valeur))
805       for i in range(desc[1]):
806         valeur[i,i]=0.5*valeur[i,i]
807     # Si le stockage est diagonal
808     elif desc[2]==1 :
809       tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
810       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
811       for i in range(desc[1]):
812         valeur[i,i]=tmp[i]
813     # Sinon on arrete tout
814     else:
815       raise KeyError
816     return valeur
817
818   def RECU_MATR_GENE(self,matrice) :
819     """ envoie les valeurs d'un Numerical Array dans des matrices
820     generalisees reelles definies dans jeveux
821         Attributs ne retourne rien """
822     if self.par_lot():
823        raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'")
824     from Utilitai.Utmess import UTMESS
825
826     # avertissement generique
827     UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
828
829     ncham=self.get_name()
830     ncham=ncham+(8-len(ncham))*' '
831     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
832
833     # On teste si le DESC de la matrice existe
834     if (desc==None):
835        raise Accas.AsException("L'objet matrice n'existe pas ou \
836                                 est mal cree par Code Aster")
837     Numeric.asarray(matrice)
838
839     # On teste si la dimension de la matrice python est 2
840     if (len(Numeric.shape(matrice))<>2) :
841        raise Accas.AsException("La dimension de la matrice est incorrecte ")
842
843     # On teste si les tailles des matrices jeveux et python sont identiques
844     if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
845        raise Accas.AsException("La taille de la matrice est incorrecte ")
846
847     # Si le stockage est plein
848     if desc[2]==2 :
849       taille=desc[1]*desc[1]/2.0+desc[1]/2.0
850       tmp=Numeric.zeros([int(taille)],Numeric.Float)
851       for j in range(desc[1]+1):
852         for i in range(j):
853           k=j*(j-1)/2+i
854           tmp[k]=matrice[j-1,i]
855       aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\
856       range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
857     # Si le stockage est diagonal
858     elif desc[2]==1 :
859       tmp=Numeric.zeros(desc[1],Numeric.Float)
860       for j in range(desc[1]):
861           tmp[j]=matrice[j,j]
862       aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\
863       range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
864     # Sinon on arrete tout
865     else:
866       raise KeyError
867     return
868
869
870 class matr_asse_gene_c(matr_asse_gene):
871   def EXTR_MATR_GENE(self) :
872     """ retourne les valeurs de la matrice generalisee complexe
873     dans un format Numerical Array
874         Attributs retourne
875           - self.valeurs : Numeric.array contenant les valeurs """
876     if self.par_lot():
877        raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'")
878
879     ncham=self.get_name()
880     ncham=ncham+(8-len(ncham))*' '
881     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
882     if (desc==None):
883        raise Accas.AsException("L'objet matrice n'existe pas ou \
884        est mal cree par Code Aster ")
885     # Si le stockage est plein
886     if desc[2]==2 :
887       tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
888       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex)
889       for j in range(desc[1]+1):
890         for i in range(j):
891           k=j*(j-1)/2+i
892           valeur[j-1,i]=tmp[k]
893       valeur=(valeur+Numeric.transpose(valeur))
894       for i in range(desc[1]):
895         valeur[i,i]=0.5*valeur[i,i]
896     # Si le stockage est diagonal
897     elif desc[2]==1 :
898       tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
899       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex)
900       for i in range(desc[1]):
901         valeur[i,i]=tmp[i]
902     # Sinon on arrete tout
903     else:
904       raise KeyError
905     return valeur
906
907   def RECU_MATR_GENE(self,matrice) :
908     """ envoie les valeurs d'un Numerical Array dans des matrices
909     generalisees reelles definies dans jeveux
910         Attributs ne retourne rien """
911     if self.par_lot():
912        raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'")
913     from Utilitai.Utmess import UTMESS
914
915     # avertissement generique
916     UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
917
918     Numeric.asarray(matrice)
919     ncham=self.get_name()
920     ncham=ncham+(8-len(ncham))*' '
921     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
922
923     # On teste si le DESC de la matrice existe
924     if (desc==None):
925        raise Accas.AsException("L'objet matrice n'existe pas ou \
926        est mal cree par Code Aster")
927     Numeric.asarray(matrice)
928
929     # On teste si la dimension de la matrice python est 2
930     if (len(Numeric.shape(matrice))<>2) :
931        raise Accas.AsException("La dimension de la matrice est incorrecte ")
932
933     # On teste si la taille de la matrice jeveux et python est identique
934     if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
935        raise Accas.AsException("La taille de la matrice est incorrecte ")
936
937     # Si le stockage est plein
938     if desc[2]==2 :
939       taille=desc[1]*desc[1]/2.0+desc[1]/2.0
940       tmpr=Numeric.zeros([int(taille)],Numeric.Float)
941       tmpc=Numeric.zeros([int(taille)],Numeric.Float)
942       for j in range(desc[1]+1):
943         for i in range(j):
944           k=j*(j-1)/2+i
945           tmpr[k]=matrice[j-1,i].real
946           tmpc[k]=matrice[j-1,i].imag
947       aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\
948                        range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
949     # Si le stockage est diagonal
950     elif desc[2]==1 :
951       tmpr=Numeric.zeros(desc[1],Numeric.Float)
952       tmpc=Numeric.zeros(desc[1],Numeric.Float)
953       for j in range(desc[1]):
954           tmpr[j]=matrice[j,j].real
955           tmpc[j]=matrice[j,j].imag
956       aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\
957                        range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
958     # Sinon on arrete tout
959     else:
960       raise KeyError
961     return
962
963 # -----------------------------------------------------------------------------
964 class matr_asse_gd(matr_asse):pass
965 class matr_asse_depl_c(matr_asse_gd):pass
966 class matr_asse_depl_r(matr_asse_gd):pass
967 class matr_asse_pres_c(matr_asse_gd):pass
968 class matr_asse_pres_r(matr_asse_gd):pass
969 class matr_asse_temp_c(matr_asse_gd):pass
970 class matr_asse_temp_r(matr_asse_gd):pass
971
972 # -----------------------------------------------------------------------------
973 # matr_elem :
974 class matr_elem(ASSD):pass
975 class matr_elem_depl_c(matr_elem):pass
976 class matr_elem_depl_r(matr_elem):pass
977 class matr_elem_pres_c(matr_elem):pass
978 class matr_elem_temp_r(matr_elem):pass
979
980 # -----------------------------------------------------------------------------
981 # table :
982 class table_sdaster(ASSD):
983    def __getitem__(self,key):
984       from Utilitai.Utmess import UTMESS
985       if self.par_lot():
986          raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'")
987       requete = '%-24s' % key[0]
988       tblp = '%-19s.TBLP' % self.get_name()
989       tabnom = aster.getvectjev(tblp)
990       if tabnom == None:
991          UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tblp)
992       for i in range(len(tabnom)) :
993          if tabnom[i]==requete: break
994       resu=aster.getvectjev(tabnom[i+2])
995       if resu == None:
996          UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+2])
997       exist=aster.getvectjev(tabnom[i+3])
998       if exist == None:
999          UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+3])
1000       if key[1]>len(resu) or exist[key[1]-1]==0:
1001          raise KeyError
1002       else:
1003          return resu[key[1]-1]
1004    
1005    def TITRE(self):
1006       """Retourne le titre d'une table Aster
1007       (Utile pour récupérer le titre et uniquement le titre d'une table dont
1008       on souhaite manipuler la dérivée).
1009       """
1010       if self.par_lot():
1011          raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'")
1012       titj=aster.getvectjev('%-19s.TITR' % self.get_name())
1013       if titj<>None:
1014          titr='\n'.join(titj)
1015       else:
1016          titr=''
1017       return titr
1018       
1019    def EXTR_TABLE(self) :
1020       """Produit un objet Table à partir du contenu d'une table Aster
1021       """
1022       def Nonefy(l1,l2) :
1023           if l2==0 : return None
1024           else     : return l1
1025       if self.par_lot():
1026          raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'")
1027       from Utilitai.Table import Table
1028       # titre
1029       titr = self.TITRE()
1030       # récupération des paramètres
1031       v_tblp = aster.getvectjev('%-19s.TBLP' % self.get_name())
1032       if v_tblp == None:
1033          # retourne une table vide
1034          return Table(titr=titr)
1035       tabnom=list(v_tblp)
1036       nparam=len(tabnom)/4
1037       lparam=[tabnom[4*i:4*i+4] for i in range(nparam)]
1038       dval={}
1039       # liste des paramètres et des types
1040       lpar=[]
1041       ltyp=[]
1042       for i in lparam :
1043          value=list(aster.getvectjev(i[2]))
1044          exist=aster.getvectjev(i[3])
1045          dval[string.strip(i[0])]=map(Nonefy,value,exist)
1046          lpar.append(string.strip(i[0]))
1047          ltyp.append(string.strip(i[1]))
1048       n=len(dval[lpar[0]])
1049       # contenu : liste de dict
1050       lisdic=[]
1051       for i in range(n) :
1052         d={}
1053         for p in lpar : d[p]=dval[p][i]
1054         lisdic.append(d)
1055       return Table(lisdic, lpar, ltyp, titr)
1056
1057 # -----------------------------------------------------------------------------
1058 class table_fonction(table_sdaster):
1059    """Table contenant en plus une colonne FONCTION et/ou FONCTION_C dont les
1060    valeurs des cellules sont des noms de fonction_sdaster ou fonction_c.
1061    """
1062
1063 class table_jeveux(table_sdaster):
1064    """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée,
1065    c'est le cas des concepts résultats (table, evol_xxxx) dérivés."""
1066    def __init__(self,nom_jeveux):
1067       self.nom=nom_jeveux
1068
1069 # -----------------------------------------------------------------------------
1070 # vect_asse :
1071 class vect_asse(ASSD):pass
1072
1073 class vect_asse_gene(vect_asse):
1074   def EXTR_VECT_GENE_R(self) :
1075     """ retourne les valeurs du vecteur generalisee
1076     dans un format Numerical Array
1077         Attributs retourne
1078           - self.valeurs : Numeric.array contenant les valeurs """
1079     if self.par_lot():
1080        raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'")
1081     ncham=self.get_name()
1082     ncham=ncham+(8-len(ncham))*' '
1083     valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
1084     return valeur
1085
1086   def RECU_VECT_GENE_R(self,vecteur) :
1087     """ envoie les valeurs d'un Numerical Array dans un vecteur generalise
1088     reel definie dans jeveux
1089         Attributs ne retourne rien """
1090     if self.par_lot():
1091        raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'")
1092     from Utilitai.Utmess import UTMESS
1093
1094     # avertissement generique
1095     UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
1096
1097     Numeric.asarray(vecteur)
1098     ncham=self.get_name()
1099     ncham=ncham+(8-len(ncham))*' '
1100     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
1101     # On teste si le DESC du vecteur existe
1102     if (desc==None):
1103        raise Accas.AsException("L'objet vecteur n'existe pas ou \
1104        est mal cree par Code Aster")
1105     # On teste si la taille du vecteur jeveux et python est identique
1106     if desc[1]<>Numeric.shape(vecteur)[0] :
1107        raise Accas.AsException("La taille du vecteur python est incorrecte")
1108     aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\
1109     range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1)
1110     return
1111
1112   def EXTR_VECT_GENE_C(self) :
1113     """ retourne les valeurs du vecteur generalisee
1114     dans un format Numerical Array
1115         Attributs retourne
1116           - self.valeurs : Numeric.array contenant les valeurs """
1117     if self.par_lot():
1118        raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'")
1119
1120     ncham=self.get_name()
1121     ncham=ncham+(8-len(ncham))*' '
1122     valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'),Numeric.Complex)
1123
1124     return valeur
1125
1126   def RECU_VECT_GENE_C(self,vecteur) :
1127     """ envoie les valeurs d'un Numerical Array dans un vecteur generalise
1128     complexe definie dans jeveux
1129         Attributs ne retourne rien """
1130     if self.par_lot():
1131        raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'")
1132     from Utilitai.Utmess import UTMESS
1133
1134     # avertissement generique
1135     UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
1136
1137     Numeric.asarray(vecteur)
1138     ncham=self.get_name()
1139     ncham=ncham+(8-len(ncham))*' '
1140     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
1141     # On teste si le DESC de la matrice existe
1142     if (desc==None):
1143        raise Accas.AsException("L'objet vecteur n'existe pas ou \
1144        est mal cree par Code Aster")
1145     # On teste si la taille de la matrice jeveux et python est identique
1146     if desc[1]<>Numeric.shape(vecteur)[0] :
1147        raise Accas.AsException("La taille du vecteur python est incorrecte")
1148     tmpr=vecteur.real
1149     tmpc=vecteur.imag
1150     aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((
1151     range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
1152     return
1153
1154 # -----------------------------------------------------------------------------
1155 # vect_elem :
1156 class vect_elem(ASSD):pass
1157 class vect_elem_depl_r(vect_elem):pass
1158 class vect_elem_pres_c(vect_elem):pass
1159 class vect_elem_pres_r(vect_elem):pass
1160 class vect_elem_temp_r(vect_elem):pass
1161
1162 #& MODIF COMMUN  DATE 07/11/2006   AUTEUR MARKOVIC D.MARKOVIC 
1163 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1164 # RESPONSABLE JMBHH01 J.M.PROIX
1165 # ======================================================================
1166 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
1167 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1168 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1169 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1170 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1171 #                                                                       
1172 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1173 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1174 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1175 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1176 #                                                                       
1177 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1178 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1179 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1180 # ======================================================================
1181 def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
1182            RELATION        =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
1183                                  into=( "ELAS",
1184                                         "ELAS_HYPER",
1185                                         "VMIS_ISOT_TRAC",
1186                                         "VISC_ISOT_TRAC",
1187                                         "VMIS_ISOT_LINE",
1188                                         "VISC_ISOT_LINE",
1189                                         "VMIS_ISOT_PUIS",
1190                                         "VMIS_ECMI_TRAC",
1191                                         "VMIS_ECMI_LINE",
1192                                         "LABORD_1D",
1193                                         "ENDO_FRAGILE",
1194                                         "ENDO_ISOT_BETON",
1195                                         "ENDO_ORTH_BETON",
1196                                         "BETON_REGLE_PR",
1197                                         "MAZARS",
1198                                         "JOINT_BA",
1199                                         "RUPT_FRAG",
1200                                         "CZM_EXP_REG",
1201                                         "CZM_EXP",
1202                                         "META_P_IL",
1203                                         "META_P_IL_PT",
1204                                         "META_P_IL_RE",
1205                                         "META_P_IL_PT_RE",
1206                                         "META_V_IL",
1207                                         "META_V_IL_PT",
1208                                         "META_V_IL_RE",
1209                                         "META_V_IL_PT_RE",
1210                                         "META_P_INL",
1211                                         "META_P_INL_PT",
1212                                         "META_P_INL_RE",
1213                                         "META_P_INL_PT_RE",
1214                                         "META_V_INL",
1215                                         "META_V_INL_PT",
1216                                         "META_V_INL_RE",
1217                                         "META_V_INL_PT_RE",
1218                                         "META_P_CL",
1219                                         "META_P_CL_PT",
1220                                         "META_P_CL_RE",
1221                                         "META_P_CL_PT_RE",
1222                                         "META_V_CL",
1223                                         "META_V_CL_PT",
1224                                         "META_V_CL_RE",
1225                                         "META_V_CL_PT_RE",
1226                                         "VMIS_CINE_LINE",
1227                                         "VISC_TAHERI",
1228                                         "VISCOCHAB",
1229                                         "VMIS_CIN1_CHAB",
1230                                         "VMIS_CIN2_CHAB",
1231                                         "VISC_CIN1_CHAB",
1232                                         "VISC_CIN2_CHAB",
1233                                         "LMARC",
1234                                         "LMARC_IRRA",
1235                                         "ROUSSELIER",
1236                                         "ROUSS_PR",
1237                                         "ROUSS_VISC",
1238                                         "VMIS_POU_LINE",
1239                                         "VMIS_POU_FLEJOU",
1240                                         "ARME",
1241                                         "ASSE_CORN",
1242                                         "NORTON_HOFF",
1243                                         "LEMAITRE",
1244                                         "LEMAITRE_IRRA",
1245                                         "LEMA_SEUIL",
1246                                         "IRRAD3M",
1247                                         "ZIRC_CYRA2",
1248                                         "VISC_IRRA_LOG",
1249                                         "GRAN_IRRA_LOG",
1250                                         "ZIRC_EPRI",
1251                                         "VENDOCHAB",
1252                                         "NADAI_B",
1253                                         "DIS_CONTACT",
1254                                         "DIS_CHOC",
1255                                         "DIS_GRICRA",
1256                                         "DIS_GOUJ2E_PLAS",
1257                                         "DIS_GOUJ2E_ELAS",
1258                                         "GRILLE_ISOT_LINE",
1259                                         "GRILLE_CINE_LINE",
1260                                         "GRILLE_PINTO_MEN",
1261                                         "PINTO_MENEGOTTO",
1262                                         "CJS",
1263                                         "CAM_CLAY",
1264                                         "BARCELONE",
1265                                         "LAIGLE",
1266                                         "DRUCKER_PRAGER",
1267                                         "HOEK_BROWN",
1268                                         "HOEK_BROWN_EFF",
1269                                         "HOEK_BROWN_TOT",
1270                                         "GRANGER_FP",
1271                                         "GRANGER_FP_INDT",
1272                                         "GRANGER_FP_V",
1273                                         "BAZANT_FD",
1274                                         "BETON_UMLV_FP",
1275                                         "BETON_DOUBLE_DP",
1276                                         "KIT_HM",
1277                                         "KIT_HHM",
1278                                         "KIT_THH",
1279                                         "KIT_THV",
1280                                         "KIT_THM",
1281                                         "KIT_THHM",
1282                                         "VMIS_ASYM_LINE",
1283                                         "ELAS_THER",
1284                                         "KIT_DDI",
1285                                         "GLRC_DAMAGE",
1286                                         "GLRC_DM",
1287                                         "SANS",
1288                                         "CORR_ACIER",
1289                                         "MONOCRISTAL",
1290                                         "POLYCRISTAL",
1291                                         "ZMAT",
1292                                         "GATT_MONERIE",
1293                                      ) ),
1294           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1295           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1296           SANS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1297           CORR_ACIER      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),        
1298           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1299           VISC_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1300           VMIS_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1301           VISC_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1302           VMIS_ISOT_PUIS  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1303           VMIS_ECMI_TRAC  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
1304           VMIS_ECMI_LINE  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
1305           LABORD_1D       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
1306           ENDO_FRAGILE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1307           ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1308           ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
1309           BETON_REGLE_PR  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1310           MAZARS          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1311           JOINT_BA        =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1312           RUPT_FRAG       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1313           CZM_EXP_REG      =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1314           CZM_EXP          =SIMP(statut='c',typ='I',defaut=7,into=(7,)),                              
1315           META_P_IL         =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1316           META_P_IL_PT       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1317           META_P_IL_RE       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1318           META_P_IL_PT_RE    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1319           META_V_IL          =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1320           META_V_IL_PT       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1321           META_V_IL_RE       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1322           META_V_IL_PT_RE    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1323           META_P_INL         =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1324           META_P_INL_PT      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1325           META_P_INL_RE      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1326           META_P_INL_PT_RE   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1327           META_V_INL         =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1328           META_V_INL_PT      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1329           META_V_INL_RE      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1330           META_V_INL_PT_RE   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1331           META_P_CL          =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1332           META_P_CL_PT       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1333           META_P_CL_RE       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1334           META_P_CL_PT_RE    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1335           META_V_CL          =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1336           META_V_CL_PT       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1337           META_V_CL_RE       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1338           META_V_CL_PT_RE    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1339           VMIS_CINE_LINE  =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
1340           VISCOCHAB       =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
1341           VMIS_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
1342           VMIS_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
1343           VISC_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
1344           VISC_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
1345           LMARC           =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
1346           LMARC_IRRA      =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
1347           VISC_TAHERI     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
1348           ROUSSELIER      =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
1349           ROUSS_PR        =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1350           ROUSS_VISC      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1351           VMIS_POU_LINE   =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
1352           VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
1353           ASSE_CORN       =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
1354           ARME            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1355           NORTON_HOFF     =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1356           LEMAITRE        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1357           LEMA_SEUIL      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1358           IRRAD3M         =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
1359           LEMAITRE_IRRA   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1360           ZIRC_CYRA2      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1361           ZIRC_EPRI       =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1362           VISC_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1363           GRAN_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1364           NADAI_B         =SIMP(statut='c',typ='I',defaut=34,into=(34,)),
1365           VENDOCHAB       =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
1366           GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1367           GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1368           GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)),
1369           DIS_CONTACT     =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
1370           DIS_CHOC        =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
1371           DIS_GRICRA     =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
1372           DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1373           DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1374           PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
1375           CJS             =SIMP(statut='c',typ='I',defaut=16,into=(16,)),
1376           CAM_CLAY        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1377           BARCELONE       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
1378           LAIGLE          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1379           DRUCKER_PRAGER  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1380           HOEK_BROWN      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1381           HOEK_BROWN_EFF  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1382           HOEK_BROWN_TOT  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1383           GRANGER_FP      =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
1384           GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
1385           GRANGER_FP_V    =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
1386           BAZANT_FD       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1387           BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1388           KIT_HM          =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
1389           KIT_HHM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
1390           KIT_THH         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
1391           KIT_THV         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
1392           KIT_THM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
1393           KIT_THHM        =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
1394           VMIS_ASYM_LINE  =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1395           BETON_UMLV_FP   =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
1396           GLRC_DAMAGE     =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
1397           GLRC_DM         =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
1398           GATT_MONERIE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1399
1400            b_monox     = BLOC(condition = "RELATION == 'MONOCRISTAL' ",
1401                                  fr="SD issue de DEFI_COMPOR",
1402                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
1403 #          
1404            b_polyx     = BLOC(condition = "RELATION == 'POLYCRISTAL' ",
1405                                  fr="SD issue de DEFI_COMPOR",
1406                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
1407 #          
1408            b_zmat      = BLOC(condition = "RELATION == 'ZMAT' ",
1409                                  fr="Comportement de la bibliotheque Zmat",
1410                    NB_VARI =SIMP(statut='o',typ='I',max=1),
1411                    UNITE =SIMP(statut='o',typ='I',max=1),),
1412
1413
1414
1415            RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
1416                                  into=(
1417 # MECA
1418                                        "ELAS",
1419                                        "CJS",
1420                                        "CAM_CLAY",
1421                                        "BARCELONE",
1422                                        "LAIGLE",
1423                                        "DRUCKER_PRAGER",
1424                                        "HOEK_BROWN_EFF",
1425                                        "HOEK_BROWN_TOT",
1426                                        "ELAS_THER",
1427                                        "MAZARS",
1428                                        "ENDO_ISOT_BETON",
1429 # THMC
1430                                        "GAZ",
1431                                        "LIQU_SATU",
1432                                        "LIQU_GAZ_ATM",
1433                                        "LIQU_VAPE_GAZ",
1434                                        "LIQU_AD_GAZ_VAPE",
1435                                        "LIQU_VAPE",
1436                                        "LIQU_GAZ",
1437 # HYDR
1438                                        "HYDR_UTIL",
1439                                        "HYDR",
1440                                        "HYDR_ENDO",
1441 # MECA_META
1442                                        "ACIER",
1443                                        "ZIRC",
1444 # MECA KIT_DDI
1445                                        "VMIS_ISOT_TRAC",
1446                                        "VMIS_ISOT_LINE",
1447                                        "VMIS_ISOT_CINE",
1448                                        "VMIS_ISOT_PUIS",
1449                                        "GRANGER_FP",
1450                                        "GRANGER_FP_INDT",
1451                                        "GRANGER_FP_V",
1452                                        "BETON_UMLV_FP",
1453                                        "ROUSS_PR",
1454                                        "NADAI_B",
1455                                        "BETON_DOUBLE_DP",
1456                                        ),),
1457                             
1458                                         
1459            ELAS_THER       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1460            GAZ             =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1461            LIQU_SATU       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1462            LIQU_GAZ_ATM    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1463            LIQU_VAPE_GAZ   =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1464            LIQU_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1465            LIQU_VAPE       =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1466            LIQU_GAZ        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
1467            HYDR_UTIL       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1468            HYDR            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1469            HYDR_ENDO       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
1470            ACIER           =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
1471            ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
1472
1473            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",
1474                              into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL","REAC_GEOM")),
1475            ALGO_C_PLAN     =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
1476            ALGO_1D         =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
1477       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
1478            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1479            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1480            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1481            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
1482            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
1483            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
1484            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
1485                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
1486            PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
1487          ) ;
1488 #& MODIF COMMUN  DATE 07/11/2006   AUTEUR CIBHHLV L.VIVAN 
1489 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1490 # ======================================================================
1491 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
1492 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1493 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1494 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1495 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1496 #                                                                       
1497 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1498 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1499 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1500 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1501 #                                                                       
1502 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1503 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1504 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1505 # ======================================================================
1506 # RESPONSABLE VABHHTS J.PELLET
1507 # ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM
1508 # c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD)
1509 def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
1510                         "ACCE_ABSOLU",
1511                         "ALPH0_ELGA_EPSP",
1512                         "ALPHP_ELGA_ALPH0",
1513                         "ARCO_ELNO_SIGM",
1514                         "ARCO_NOEU_SIGM",
1515                         "COMPORTEMENT",
1516                         "COMPORTHER",
1517                         "CRIT_ELNO_RUPT",
1518                         "DCHA_ELGA_SIGM",
1519                         "DCHA_ELNO_SIGM",
1520                         "DCHA_NOEU_SIGM",
1521                         "DEDE_ELNO_DLDE",
1522                         "DEDE_NOEU_DLDE",
1523                         "DEGE_ELNO_DEPL",
1524                         "DEGE_NOEU_DEPL",
1525                         "DEPL",
1526                         "DEPL_ABSOLU",
1527                         "DESI_ELNO_DLSI",
1528                         "DESI_NOEU_DLSI",
1529                         "DETE_ELNO_DLTE",
1530                         "DETE_NOEU_DLTE",
1531                         "DURT_ELGA_META",
1532                         "DURT_ELNO_META",
1533                         "DURT_NOEU_META",
1534                         "ECIN_ELEM_DEPL",
1535                         "EFGE_ELNO_CART",
1536                         "EFGE_ELNO_DEPL",
1537                         "EFGE_NOEU_CART",
1538                         "EFGE_NOEU_DEPL",
1539                         "ENDO_ELGA",
1540                         "ENDO_ELNO_ELGA",
1541                         "ENDO_ELNO_SIGA",
1542                         "ENDO_ELNO_SINO",
1543                         "ENDO_NOEU_SINO",
1544                         "ENEL_ELGA",
1545                         "ENEL_ELNO_ELGA",
1546                         "ENEL_NOEU_ELGA",
1547                         "EPEQ_ELNO_TUYO",
1548                         "EPVC_ELGA",
1549                         "EPVC_ELNO",
1550                         "EPFD_ELGA",
1551                         "EPFD_ELNO",
1552                         "EPFP_ELGA",
1553                         "EPFP_ELNO",
1554                         "EPME_ELGA_DEPL",
1555                         "EPME_ELNO_DEPL",
1556                         "EPMG_ELGA_DEPL",
1557                         "EPMG_ELNO_DEPL",
1558                         "EPMG_NOEU_DEPL",
1559                         "EPOT_ELEM_DEPL",
1560                         "EPSA_ELNO",
1561                         "EPSA_NOEU",
1562                         "EPSG_ELGA_DEPL",
1563                         "EPSG_ELNO_DEPL",
1564                         "EPSG_NOEU_DEPL",
1565                         "EPSI_ELGA_DEPL",
1566                         "EPSI_ELNO_DEPL",
1567                         "EPSI_ELNO_TUYO",
1568                         "EPSI_NOEU_DEPL",
1569                         "EPSP_ELGA",
1570                         "EPSP_ELNO",
1571                         "EPSP_ELNO_ZAC",
1572                         "EPSP_NOEU",
1573                         "EPSP_NOEU_ZAC",
1574                         "EQUI_ELGA_EPME",
1575                         "EQUI_ELGA_EPSI",
1576                         "EQUI_ELGA_SIGM",
1577                         "EQUI_ELNO_EPME",
1578                         "EQUI_ELNO_EPSI",
1579                         "EQUI_ELNO_SIGM",
1580                         "EQUI_NOEU_EPME",
1581                         "EQUI_NOEU_EPSI",
1582                         "EQUI_NOEU_SIGM",
1583                         "ERRE_ELEM_SIGM",
1584                         "ERRE_ELEM_TEMP",
1585                         "ERRE_ELNO_ELEM",
1586                         "ERRE_NOEU_ELEM",
1587                         "ERZ1_ELEM_SIGM",
1588                         "ERZ2_ELEM_SIGM",
1589                         "QIRE_ELEM_SIGM",
1590                         "QIRE_ELNO_ELEM",
1591                         "QIZ1_ELEM_SIGM",
1592                         "QIZ2_ELEM_SIGM",
1593                         "SING_ELEM",
1594                         "SING_ELNO_ELEM",
1595                         "ETOT_ELEM",
1596                         "ETOT_ELGA",
1597                         "ETOT_ELNO_ELGA",
1598                         "EXTR_ELGA_VARI",
1599                         "EXTR_ELNO_VARI",
1600                         "EXTR_NOEU_VARI",
1601                         "FLUX_ELGA_TEMP",
1602                         "FLUX_ELNO_TEMP",
1603                         "FLUX_NOEU_TEMP",
1604                         "FORC_NODA",
1605                         "FSUR_2D",
1606                         "FSUR_3D",
1607                         "FVOL_2D",
1608                         "FVOL_3D",
1609                         "GRAD_NOEU_THETA",
1610                         "HYDR_ELNO_ELGA",
1611                         "HYDR_NOEU_ELGA",
1612                         "INDI_LOCA_ELGA",
1613                         "INTE_ELNO_ACTI",
1614                         "INTE_ELNO_REAC",
1615                         "INTE_NOEU_ACTI",
1616                         "INTE_NOEU_REAC",
1617                         "IRRA",
1618                         "LANL_ELGA",
1619                         "META_ELGA_TEMP",
1620                         "META_ELNO_TEMP",
1621                         "META_NOEU_TEMP",
1622                         "MODE_FLAMB",
1623                         "PMPB_ELGA_SIEF",
1624                         "PMPB_ELNO_SIEF",
1625                         "PMPB_NOEU_SIEF",
1626                         "PRES",
1627                         "PRES_DBEL_DEPL",
1628                         "PRES_ELNO_DBEL",
1629                         "PRES_ELNO_IMAG",
1630                         "PRES_ELNO_REEL",
1631                         "PRES_NOEU_DBEL",
1632                         "PRES_NOEU_IMAG",
1633                         "PRES_NOEU_REEL",
1634                         "RADI_ELGA_SIGM",
1635                         "RADI_ELNO_SIGM",
1636                         "RADI_NOEU_SIGM",
1637                         "REAC_NODA",
1638                         "SIEF_ELGA",
1639                         "SIEF_ELGA_DEPL",
1640                         "SIEF_ELNO",
1641                         "SIEF_ELNO_ELGA",
1642                         "SIEF_NOEU",
1643                         "SIEF_NOEU_ELGA",
1644                         "SIEQ_ELNO_TUYO",
1645                         "SIGM_ELNO_CART",
1646                         "SIGM_ELNO_COQU",
1647                         "SIGM_ELNO_DEPL",
1648                         "SIGM_ELNO_SIEF",
1649                         "SIGM_ELNO_TUYO",
1650                         "SIGM_ELNO_ZAC",
1651                         "SIGM_NOEU_CART",
1652                         "SIGM_NOEU_COQU",
1653                         "SIGM_NOEU_DEPL",
1654                         "SIGM_NOEU_SIEF",
1655                         "SIGM_NOEU_ZAC",
1656                         "SIGM_NOZ1_ELGA",
1657                         "SIGM_NOZ2_ELGA",
1658                         "SIPO_ELNO_DEPL",
1659                         "SIPO_ELNO_SIEF",
1660                         "SIPO_NOEU_DEPL",
1661                         "SIPO_NOEU_SIEF",
1662                         "SIRE_ELNO_DEPL",
1663                         "SIRE_NOEU_DEPL",
1664                         "SOUR_ELGA_ELEC",
1665                         "TEMP",
1666                         "THETA",
1667                         "VALE_CONT",
1668                         "VALE_NCOU_MAXI",
1669                         "VARI_ELGA",
1670                         "VARI_ELGA_ZAC",
1671                         "VARI_ELNO",
1672                         "VARI_ELNO_COQU",
1673                         "VARI_ELNO_ELGA",
1674                         "VARI_ELNO_TUYO",
1675                         "VARI_NOEU",
1676                         "VARI_NOEU_ELGA",
1677                         "VARI_NON_LOCAL",
1678                         "VITE",
1679                         "VITE_ABSOLU",
1680                         "VITE_VENT",
1681                         )
1682 #& MODIF COMMUN  DATE 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
1683 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1684 # ======================================================================
1685 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
1686 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1687 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1688 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1689 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1690 #                                                                       
1691 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1692 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1693 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1694 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1695 #                                                                       
1696 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1697 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1698 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1699 # ======================================================================
1700 # ce fichier contient la liste des  noms des grandeurs de CODE_ASTER
1701 def C_NOM_GRANDEUR() : return  ( #COMMUN# 
1702 "ABSC_R",
1703 "ADRSJEVE",
1704 "ADRSJEVN",
1705 "CAARPO",
1706 "CACABL",
1707 "CACOQU",
1708 "CADISA",
1709 "CADISK",
1710 "CADISM",
1711 "CAFI_R",
1712 "CAGEBA",
1713 "CAGEPO",
1714 "CAGNBA",
1715 "CAGNPO",
1716 "CAMASS",
1717 "CAORIE",
1718 "CAPOUF",
1719 "CARCRI",
1720 "CASECT",
1721 "CHLI_R",
1722 "CODE_I",
1723 "COEH_F",
1724 "COEH_R",
1725 "COMPOR",
1726 "CORR_R",
1727 "CRRU_R",
1728 "DBEL_R",
1729 "DCEL_I",
1730 "DDLI_C",
1731 "DDLI_F",
1732 "DDLI_R",
1733 "DDLM_C",
1734 "DDLM_R",
1735 "DEPL_C",
1736 "DEPL_F",
1737 "DEPL_R",
1738 "DOMMAG",
1739 "DURT_R",
1740 "ENER_R",
1741 "EPSI_F",
1742 "EPSI_R",
1743 "ERREUR",
1744 "FACY_R",
1745 "FELECR",
1746 "FISS_R",
1747 "FLAPLA",
1748 "FLUN_F",
1749 "FLUN_R",
1750 "FLUX_F",
1751 "FLUX_R",
1752 "FORC_C",
1753 "FORC_F",
1754 "FORC_R",
1755 "FREQ_R",
1756 "FTHM_F",
1757 "FTHM_R",
1758 "G",
1759 "GEOM_R",
1760 "G_DEPL_R",
1761 "HARMON",
1762 "HYDR_R",
1763 "IMPE_C",
1764 "IMPE_F",
1765 "IMPE_R",
1766 "IND_LOCA",
1767 "INFC_R",
1768 "INST_R",
1769 "INTE_R",
1770 "INTLOC",
1771 "IRRA_R",
1772 "ITECREL",
1773 "ITEDEC",
1774 "J",
1775 "LISTMA",
1776 "MACOMP",
1777 "MASS_R",
1778 "MATE_F",
1779 "NBSP_I",
1780 "NEUT_F",
1781 "NEUT_I",
1782 "NEUT_K16",
1783 "NEUT_K24",
1784 "NEUT_K8",
1785 "NEUT_R",
1786 "NUMC_I",
1787 "NUMMOD",
1788 "ONDE_F",
1789 "ONDE_R",
1790 "PESA_R",
1791 "PILO_K",
1792 "PILO_R",
1793 "POSI",
1794 "PREC",
1795 "PRES_C",
1796 "PRES_F",
1797 "PRES_R",
1798 "RAYO_F",
1799 "RAYO_R",
1800 "RCCM_K",
1801 "RCCM_R",
1802 "RESCREL",
1803 "RICE_TRA",
1804 "ROTA_R",
1805 "SECTION",
1806 "SIEF_C",
1807 "SIEF_R",
1808 "SIZZ_R",
1809 "SOUR_F",
1810 "SOUR_R",
1811 "SPMA_R",
1812 "STAOUDYN",
1813 "TEMP_C",
1814 "TEMP_F",
1815 "TEMP_R",
1816 "THETA",
1817 "VALO_R",
1818 "VANL_R",
1819 "VAR2_R",
1820 "VARI_R",
1821 "VENTCX_F",
1822 "VNOR_C",
1823 "VNOR_F",
1824 "VOISIN",
1825 "WEIBULL",
1826 "XCONTAC",
1827                                  )
1828 #& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
1829 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1830 # ======================================================================
1831 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
1832 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1833 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1834 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1835 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1836 #                                                                       
1837 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1838 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1839 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1840 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1841 #                                                                       
1842 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1843 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1844 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1845 # ======================================================================
1846 # ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
1847 def C_PARA_FONCTION() : return  ( #COMMUN#
1848                    "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
1849                    "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
1850                    "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
1851                    "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",
1852                    "NEUT1","NEUT2",)
1853 #& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
1854 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1855 # ======================================================================
1856 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
1857 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1858 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1859 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1860 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1861 #                                                                       
1862 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1863 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1864 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1865 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1866 #                                                                       
1867 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1868 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1869 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1870 # ======================================================================
1871 #
1872 # ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
1873 def C_TYPE_CHAM_INTO() : #COMMUN#
1874    l=[]
1875    for gd in C_NOM_GRANDEUR() :
1876         for typ in ("ELEM","ELNO","ELGA","CART","NOEU") :
1877              l.append(typ+"_"+gd)
1878    return tuple(l)
1879
1880 #& MODIF COMMANDE  DATE 09/05/2007   AUTEUR SALMONA L.SALMONA 
1881 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1882 # ======================================================================
1883 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
1884 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
1885 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
1886 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
1887 # (AT YOUR OPTION) ANY LATER VERSION.                                 
1888 #
1889 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
1890 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
1891 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
1892 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
1893 #
1894 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
1895 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
1896 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
1897 # ======================================================================
1898 # RESPONSABLE MJBHHPE J.L.FLEJOU
1899 AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
1900                     fr="Affectation de caractéristiques à des éléments de structure",
1901                     reentrant='n',
1902             UIinfo={"groupes":("Modélisation",)},
1903          regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF',
1904                              'GRILLE','AFFE_SECT','AFFE_FIBRE','RIGI_PARASOL'),),
1905          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
1906          INFO            =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
1907          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ),
1908
1909 #============================================================================
1910          POUTRE          =FACT(statut='f',max='**',
1911            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
1912            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1913            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1914            SECTION         =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
1915            PREC_AIRE       =SIMP(statut='f',typ='R',defaut=0.01),
1916            PREC_INERTIE    =SIMP(statut='f',typ='R',defaut=0.1),
1917            b_generale      =BLOC( condition = "SECTION=='GENERALE'",
1918              VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"),
1919              b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
1920                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15,
1921                                  fr="A,IY,IZ,JX sont des paramètres obligatoires",
1922                                  into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
1923                                        "JG","IYR2","IZR2","AI") ),
1924                VALE            =SIMP(statut='o',typ='R',min=4 ,max=15),
1925              ),
1926              b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
1927                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30,
1928                                  fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires",
1929                                  into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
1930                                        "RZ1","RT1","JG1","IYR21","IZR21","AI1",
1931                                        "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
1932                                        "RZ2","RT2","JG2","IYR22","IZR22","AI2") ),
1933                VALE            =SIMP(statut='o',typ='R',min=8 ,max=30),
1934              ),
1935            ),
1936            b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
1937              VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"),
1938              b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
1939                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4,
1940                                  into=("H","EP", "HY","HZ","EPY","EPZ") ),
1941                VALE            =SIMP(statut='o',typ='R',min=1 ,max=4),
1942              ),
1943              b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
1944                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8,
1945                                      into=("H1","HZ1","HY1","EP1","EPY1","EPZ1",
1946                                            "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
1947                VALE            =SIMP(statut='o',typ='R',min=2 ,max=8),
1948              ),
1949              b_affine =BLOC( condition = "VARI_SECT=='AFFINE'",
1950                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6,
1951                                      into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ),
1952                VALE            =SIMP(statut='o',typ='R',min=3 ,max=6),
1953              ),
1954            ),
1955            b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
1956              VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"),
1957              b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
1958                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2,
1959                                  fr="R est un paramètre obligatoire",
1960                                      into=("R","EP") ),
1961                VALE            =SIMP(statut='o',typ='R',min=1 ,max=2),
1962              ),
1963              b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
1964                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4,
1965                                  fr="R1, R2 sont des paramètres obligatoires",
1966                                      into=("R1","R2","EP1","EP2") ),
1967                VALE            =SIMP(statut='o',typ='R',min=2 ,max=4),
1968              ),
1969              MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
1970              FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1971              TUYAU_NSEC      =SIMP(statut='f',typ='I',val_max=32,defaut=16),
1972              TUYAU_NCOU      =SIMP(statut='f',typ='I',val_max=10,defaut=3),
1973            ),
1974          ),
1975
1976 #============================================================================
1977          BARRE           =FACT(statut='f',max='**',
1978            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
1979            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1980            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1981            SECTION         =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
1982            b_generale      =BLOC( condition = "SECTION=='GENERALE'",
1983              CARA            =SIMP(statut='o',typ='TXM',into=("A",) ),
1984              VALE            =SIMP(statut='o',typ='R',min=1,max=1 ),
1985            ),
1986            b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
1987              CARA            =SIMP(statut='o',typ='TXM',into=("H","EP",
1988                                                               "HZ","HY","EPY","EPZ"),
1989                                                         validators=NoRepeat(),min=1,max=4 ),
1990              VALE            =SIMP(statut='o',typ='R',min=1,max=4 ),
1991            ),
1992            b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
1993              CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ),
1994              VALE            =SIMP(statut='o',typ='R',min=1,max=2 ),
1995            ),
1996            FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1997          ),
1998
1999 #============================================================================
2000          COQUE           =FACT(statut='f',max='**',
2001            regles=(UN_PARMI('MAILLE','GROUP_MA' ),
2002                    PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),
2003                    EXCLUS('ANGL_REP','VECTEUR'),),
2004            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2005            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2006            EPAIS           =SIMP(statut='o',typ='R' ),
2007            ANGL_REP        =SIMP(statut='f',typ='R',min=2,max=2),
2008            VECTEUR         =SIMP(statut='f',typ='R',min=3,max=3),
2009            A_CIS           =SIMP(statut='c',typ='R',defaut= 0.8333333E0),
2010            COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
2011            COQUE_NCOU      =SIMP(statut='f',typ='I',defaut= 1 ),
2012            EXCENTREMENT    =SIMP(statut='f',typ='R' ),
2013            INER_ROTA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2014            MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2015          ),
2016
2017 #============================================================================
2018          CABLE           =FACT(statut='f',max='**',
2019            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
2020            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2021            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2022            N_INIT          =SIMP(statut='f',typ='R',defaut= 5000. ),
2023            SECTION         =SIMP(statut='f',typ='R' ),
2024            FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2025          ),
2026
2027 #============================================================================
2028          DISCRET         =FACT(statut='f',max='**',
2029            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
2030            AMOR_HYST       =SIMP(statut='f',typ='R' ),
2031            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
2032           fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
2033                                  into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
2034                                        "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
2035                                        "M_T_D_N","M_TR_D_N","M_T_N",
2036                                        "M_T_L",  "M_TR_N",  "M_TR_L",
2037                                        "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
2038                                        "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
2039
2040 # affection des caractéristiques de RIGIDITE/AMORTISSEMENT
2041               b_K_T_D_N  =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
2042                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2043                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2044                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2045                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2046                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2047                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2048                                VALE     =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2049                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2050               b_K_T_D_L  =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')",
2051                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2052                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2053                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2054                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2055                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2056                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2057               b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')",
2058                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2059                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2060                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2061                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2062                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2063                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2064                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
2065                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2066               b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')",
2067                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2068                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2069                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2070                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2071                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
2072                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2073               b_K_T_N    =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')",
2074                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2075                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2076                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2077                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2078                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2079                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2080                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
2081                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2082               b_K_T_L    =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')",
2083                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2084                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2085                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2086                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2087                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2088                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2089               b_K_TR_N   =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')",
2090                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2091                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2092                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2093                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2094                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2095                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2096                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2097                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2098               b_K_TR_L   =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')",
2099                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2100                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2101                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2102                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2103                                VALE =SIMP(statut='f',typ='R',min=78,max=78),
2104                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
2105
2106 # affection des caractéristiques de MASSE
2107               b_M_T_D_N  =BLOC(condition = "CARA=='M_T_D_N'",
2108           fr="NOEUD: 1 valeur de masse",
2109                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2110                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2111                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2112                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2113                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2114                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2115                                VALE =SIMP(statut='f',typ='R',min=1 ,max=1 ),
2116                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),),
2117               b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'",
2118           fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité",
2119                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2120                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2121                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2122                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2123                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2124                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2125                                VALE =SIMP(statut='f',typ='R',min=10,max=10),
2126                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
2127               b_M_T_N    =BLOC(condition = "CARA=='M_T_N'",
2128           fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)",
2129                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2130                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2131                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2132                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2133                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2134                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2135                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
2136                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2137               b_M_T_L    =BLOC(condition = "CARA=='M_T_L'",
2138           fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)",
2139                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2140                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2141                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2142                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2143                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2144                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2145               b_M_TR_N   =BLOC(condition = "CARA=='M_TR_N'",
2146           fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)",
2147                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2148                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2149                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2150                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2151                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2152                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2153                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2154                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2155               b_M_TR_L   =BLOC(condition = "CARA=='M_TR_L'",
2156           fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)",
2157                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2158                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2159                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2160                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2161                                VALE =SIMP(statut='f',typ='R',min=78,max=78),
2162                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
2163          ),
2164
2165 #============================================================================
2166          DISCRET_2D      =FACT(statut='f',max='**',
2167            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
2168            AMOR_HYST       =SIMP(statut='f',typ='R' ),
2169            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
2170           fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
2171                                  into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
2172                                        "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
2173                                        "M_T_D_N","M_T_N",  "M_TR_D_N",
2174                                        "M_T_L",  "M_TR_N",  "M_TR_L",
2175                                        "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
2176                                        "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
2177
2178 # affection des caractéristiques de RIGIDITE/AMORTISSEMENT
2179               b_K_T_D_N  =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
2180                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2181                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2182                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2183                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2184                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2185                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2186                                VALE =SIMP(statut='f',typ='R',min=2 ,max=2 ),
2187                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),),
2188               b_K_T_D_L  =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')",
2189                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2190                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2191                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2192                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2193                                VALE =SIMP(statut='f',typ='R',min=2 ,max=2 ),
2194                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),),
2195               b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')",
2196                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2197                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2198                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2199                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2200                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2201                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2202                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2203                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2204               b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')",
2205                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2206                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2207                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2208                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2209                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2210                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2211               b_K_T_N    =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')",
2212                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2213                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2214                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2215                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2216                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2217                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2218                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2219                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2220               b_K_T_L    =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')",
2221                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2222                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2223                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2224                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2225                                VALE =SIMP(statut='f',typ='R',min=10,max=10),
2226                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
2227               b_K_TR_N   =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')",
2228                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2229                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2230                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2231                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2232                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2233                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2234                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6),
2235                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2236               b_K_TR_L   =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')",
2237                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2238                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2239                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2240                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2241                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2242                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2243
2244 # affection des caractéristiques de MASSE
2245               b_M_T_D_N  =BLOC(condition = "CARA=='M_T_D_N'",
2246           fr="NOEUD: 1 valeur de masse",
2247                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2248                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2249                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2250                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2251                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2252                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2253                                VALE =SIMP(statut='f',typ='R',min=1 ,max=1 ),
2254                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),),
2255               b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'",
2256           fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ",
2257                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2258                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2259                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2260                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2261                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2262                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2263                                VALE =SIMP(statut='f',typ='R',min=4 ,max=4 ),
2264                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),),
2265               b_M_T_N    =BLOC(condition = "CARA=='M_T_N'",
2266           fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)",
2267                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2268                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2269                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2270                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2271                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2272                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2273                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2274                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2275               b_M_T_L    =BLOC(condition = "CARA=='M_T_L'",
2276           fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)",
2277                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2278                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2279                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2280                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2281                                VALE =SIMP(statut='f',typ='R',min=10,max=10),
2282                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
2283               b_M_TR_N   =BLOC(condition = "CARA=='M_TR_N'",
2284           fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)",
2285                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2286                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2287                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2288                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2289                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2290                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2291                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
2292                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2293               b_M_TR_L   =BLOC(condition = "CARA=='M_TR_L'",
2294           fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)",
2295                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2296                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2297                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2298                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2299                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2300                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2301          ),
2302
2303 #============================================================================
2304          ORIENTATION     =FACT(statut='f',max='**',
2305            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
2306            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2307            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2308            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2309            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2310            CARA            =SIMP(statut='o',typ='TXM',
2311                                  into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
2312            VALE            =SIMP(statut='o',typ='R',max='**'),
2313            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
2314            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2315          ),
2316
2317 #============================================================================
2318          DEFI_ARC        =FACT(statut='f',max='**',
2319            regles=(UN_PARMI('MAILLE','GROUP_MA'),
2320                    UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
2321                             'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
2322                    PRESENT_PRESENT('ORIE_ARC','RAYON'),
2323                    EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
2324                    EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
2325                    EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
2326                    EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
2327                    PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
2328                    PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
2329            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2330            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2331            ORIE_ARC        =SIMP(statut='f',typ='R'),
2332            CENTRE          =SIMP(statut='f',typ='R',max='**'),
2333            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
2334            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
2335            POIN_TANG       =SIMP(statut='f',typ='R',max='**'),
2336            NOEUD_POIN_TANG =SIMP(statut='f',typ=no),
2337            GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno),
2338            RAYON           =SIMP(statut='f',typ='R'),
2339            COEF_FLEX       =SIMP(statut='f',typ='R'),
2340            INDI_SIGM       =SIMP(statut='f',typ='R'),
2341            COEF_FLEX_XY    =SIMP(statut='f',typ='R'),
2342            INDI_SIGM_XY    =SIMP(statut='f',typ='R'),
2343            COEF_FLEX_XZ    =SIMP(statut='f',typ='R'),
2344            INDI_SIGM_XZ    =SIMP(statut='f',typ='R'),
2345            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
2346            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2347          ),
2348
2349 #============================================================================
2350          MASSIF          =FACT(statut='f',max='**',
2351            regles=(UN_PARMI('MAILLE','GROUP_MA'),
2352                    UN_PARMI('ANGL_REP','ANGL_AXE','ANGL_EULER'),
2353                    EXCLUS('ANGL_REP','ANGL_EULER'),
2354                    EXCLUS('ANGL_REP','ANGL_AXE'),
2355                    EXCLUS('ANGL_REP','ORIG_AXE'),
2356                    PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
2357            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2358            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2359            ANGL_REP        =SIMP(statut='f',typ='R',max=3),
2360            ANGL_EULER      =SIMP(statut='f',typ='R',min=3,max=3),
2361            ANGL_AXE        =SIMP(statut='f',typ='R',max=2),
2362            ORIG_AXE        =SIMP(statut='f',typ='R',max=3),
2363          ),
2364
2365
2366 #============================================================================
2367          POUTRE_FLUI     =FACT(statut='f',max='**',
2368            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
2369            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2370            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2371            B_T             =SIMP(statut='o',typ='R'),
2372            B_N             =SIMP(statut='o',typ='R'),
2373            B_TN            =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
2374            A_FLUI          =SIMP(statut='o',typ='R'),
2375            A_CELL          =SIMP(statut='o',typ='R'),
2376            COEF_ECHELLE    =SIMP(statut='o',typ='R'),
2377          ),
2378
2379 #============================================================================
2380          GRILLE          =FACT(statut='f',max='**',
2381            regles=(UN_PARMI('MAILLE','GROUP_MA'),
2382                    EXCLUS('ANGL_REP','ORIG_AXE'),
2383                    ENSEMBLE('ORIG_AXE','AXE')),
2384            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2385            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2386            SECTION         =SIMP(statut='o',typ='R'),
2387            ANGL_REP        =SIMP(statut='f',typ='R',max=2),
2388            EXCENTREMENT    =SIMP(statut='f',typ='R'),
2389            ORIG_AXE        =SIMP(statut='f',typ='R',max='**'),
2390            AXE             =SIMP(statut='f',typ='R',max='**'),
2391            COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
2392            GRILLE_NCOU     =SIMP(statut='f',typ='I',defaut= 1,),
2393          ),
2394
2395 #============================================================================
2396          RIGI_PARASOL    =FACT(statut='f',max='**',
2397             regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
2398                     UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
2399                     EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),),
2400             GROUP_MA        =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**',
2401                fr="Surface servant à répartir les caractéristiques des discrets"),
2402             GROUP_MA_POI1   =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1,
2403                fr="Mailles de type point correspondant aux discrets"),
2404             GROUP_MA_SEG2   =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1,
2405                fr="Mailles de type seg2 correspondant aux discrets"),
2406             FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2407             COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
2408             REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
2409             CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,
2410                             into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
2411                                   "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L") ),
2412             VALE            =SIMP(statut='o',typ='R',max='**'),
2413             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
2414             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
2415             COOR_CENTRE     =SIMP(statut='f',typ='R',min=2,max=3),
2416          ),
2417          
2418 #============================================================================
2419          RIGI_MISS_3D    =FACT(statut='f',max='**',
2420            GROUP_MA_POI1   =SIMP(statut='o',typ=ma,max=1),
2421            GROUP_MA_SEG2   =SIMP(statut='f',typ=ma,max=1),
2422            FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
2423            UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
2424          ),
2425          
2426 #============================================================================
2427          AFFE_SECT     =FACT(statut='f',max='**',
2428               regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
2429                       AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
2430                       PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
2431
2432               NOM             =SIMP(statut='f',typ='TXM'),
2433
2434               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2435               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2436
2437               TOUT_SECT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2438               GROUP_MA_SECT     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2439               MAILLE_SECT       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2440
2441               MAILLAGE_SECT     =SIMP(statut='o',typ=maillage_sdaster),
2442               COOR_AXE_POUTRE    =SIMP(statut='o',typ='R',min=2,max=2),
2443          ),
2444
2445
2446 #============================================================================
2447          AFFE_FIBRE     =FACT(statut='f',max='**',
2448               regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
2449
2450               NOM             =SIMP(statut='f',typ='TXM'),
2451
2452               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2453               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2454
2455               CARA              =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
2456               VALE              =SIMP(statut='o',typ='R',max='**'),
2457               COOR_AXE_POUTRE    =SIMP(statut='o',typ='R',min=2,max=2),
2458          ),
2459
2460
2461 ) ;
2462 #& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
2463 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2464 # ======================================================================
2465 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2466 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2467 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2468 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
2469 # (AT YOUR OPTION) ANY LATER VERSION.                                 
2470 #
2471 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
2472 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
2473 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
2474 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
2475 #
2476 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
2477 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
2478 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
2479 # ======================================================================
2480 AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
2481                     fr="Affectation de charges et conditions aux limites acoustiques constantes",
2482                     reentrant='n',
2483             UIinfo={"groupes":("Modélisation",)},
2484          regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
2485          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2486          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2487          PRES_IMPO       =FACT(statut='f',max='**',
2488            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2489            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2490            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2491            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2492            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2493            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2494            PRES            =SIMP(statut='o',typ='C' ),
2495          ),
2496          VITE_FACE       =FACT(statut='f',max='**',
2497              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2498                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2499            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2500            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2501            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2502            VNOR            =SIMP(statut='o',typ='C' ),
2503          ),
2504          IMPE_FACE       =FACT(statut='f',max='**',
2505              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2506                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2507            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2508            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2509            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2510            IMPE            =SIMP(statut='o',typ='C' ),
2511          ),
2512          LIAISON_UNIF    =FACT(statut='f',max='**',
2513            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),),
2514            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2515            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2516            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2517            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2518            DDL             =SIMP(statut='o',typ='TXM',max='**'),
2519          ),
2520 )  ;
2521 #& MODIF COMMANDE  DATE 27/11/2006   AUTEUR PELLET J.PELLET 
2522 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2523 # ======================================================================
2524 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2525 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2526 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2527 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2528 # (AT YOUR OPTION) ANY LATER VERSION.
2529 #
2530 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2531 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2532 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2533 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2534 #
2535 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2536 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2537 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2538 # ======================================================================
2539 # RESPONSABLE VABHHTS J.PELLET
2540 def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
2541   if MECA_IMPO != None  : return char_cine_meca
2542   if THER_IMPO != None  : return char_cine_ther
2543   if ACOU_IMPO != None  : return char_cine_acou
2544   raise AsException("type de concept resultat non prevu")
2545
2546 AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
2547                     ,fr="Affectation de conditions aux limites cinématiques constantes pour un traitement sans dualisation",
2548                      reentrant='n',
2549             UIinfo={"groupes":("Modélisation",)},
2550          regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'),
2551                  EXCLUS('MECA_IMPO','THER_IMPO'),
2552                  EXCLUS('MECA_IMPO','ACOU_IMPO'),
2553                  EXCLUS('THER_IMPO','ACOU_IMPO'),),
2554          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2555          MECA_IMPO       =FACT(statut='f',max='**',
2556            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2557                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2558                                'TEMP'),),
2559              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2560              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2561              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2562              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2563              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2564              DX              =SIMP(statut='f',typ='R' ),
2565              DY              =SIMP(statut='f',typ='R' ),
2566              DZ              =SIMP(statut='f',typ='R' ),
2567              DRX             =SIMP(statut='f',typ='R' ),
2568              DRY             =SIMP(statut='f',typ='R' ),
2569              DRZ             =SIMP(statut='f',typ='R' ),
2570              GRX             =SIMP(statut='f',typ='R' ),
2571              PRES            =SIMP(statut='f',typ='R' ),
2572              PHI             =SIMP(statut='f',typ='R' ),
2573              TEMP            =SIMP(statut='f',typ='R' ),
2574          ),
2575          THER_IMPO       =FACT(statut='f',max='**',
2576            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2577                    AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
2578            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2579            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2580            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2581            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2582            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2583            TEMP_SUP        =SIMP(statut='f',typ='R' ),
2584            TEMP            =SIMP(statut='f',typ='R' ),
2585            TEMP_INF        =SIMP(statut='f',typ='R' ),
2586          ),
2587          ACOU_IMPO       =FACT(statut='f',max='**',
2588            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2589            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2590            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2591            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2592            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2593            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2594            PRES            =SIMP(statut='o',typ='C' ),
2595          ),
2596          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2597 )  ;
2598 #& MODIF COMMANDE  DATE 05/09/2005   AUTEUR CIBHHLV L.VIVAN 
2599 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2600 # ======================================================================
2601 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2602 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2603 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2604 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2605 # (AT YOUR OPTION) ANY LATER VERSION.
2606 #
2607 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2608 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2609 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2610 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2611 #fon
2612 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2613 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2614 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2615 # ======================================================================
2616 def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
2617   if MECA_IMPO != None  : return char_cine_meca
2618   if THER_IMPO != None  : return char_cine_ther
2619   raise AsException("type de concept resultat non prevu")
2620
2621 AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod,
2622                       fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres"
2623                         +" pour un traitement sans dualisation",
2624                      reentrant='n',
2625             UIinfo={"groupes":("Modélisation",)},
2626          regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'),
2627                  EXCLUS('MECA_IMPO','THER_IMPO'),),
2628          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2629          MECA_IMPO       =FACT(statut='f',max='**',
2630            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2631                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
2632            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2633            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2634            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2635            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2636            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2637            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2638            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2639            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2640            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2641            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2642            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2643            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2644            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2645            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2646            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2647          ),
2648          THER_IMPO       =FACT(statut='f',max='**',
2649            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2650                    AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
2651            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2652            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2653            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2654            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2655            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2656            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2657            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2658            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2659          ),
2660          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2661 )  ;
2662 #& MODIF COMMANDE  DATE 02/06/2008   AUTEUR DESOZA T.DESOZA 
2663 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2664 # ======================================================================
2665 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2666 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2667 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2668 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2669 # (AT YOUR OPTION) ANY LATER VERSION.
2670 #
2671 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2672 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2673 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2674 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2675 #
2676 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2677 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2678 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2679 # ======================================================================
2680 # RESPONSABLE G8BHHXD X.DESROCHES
2681 AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
2682                     fr="Affectation de charges et conditions aux limites mécaniques constantes",
2683                      reentrant='n',
2684             UIinfo={"groupes":("Modélisation",)},
2685          regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE',
2686                              'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
2687                              'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE',
2688                              'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',
2689                              'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT',
2690                              'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP','LIAISON_SOLIDE',
2691                              'LIAISON_ELEM','ONDE_FLUI','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
2692                              'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU',
2693                              'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE',
2694                              'LIAISON_UNILATER'),
2695                          ),
2696          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2697          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
2698          TEMP_CALCULEE   =SIMP(statut='f',fr="Champ de température issu d'un autre calcul",
2699                                typ=(evol_ther,cham_no_sdaster,carte_sdaster) ),
2700          EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
2701                                typ=evol_char ),
2702
2703          PESANTEUR       =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4),
2704          ROTATION        =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4),
2705          b_rotation      =BLOC ( condition = "ROTATION != None",
2706            CENTRE          =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),),
2707
2708          DDL_IMPO        =FACT(statut='f',max='**',
2709              fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
2710              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2711                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2712                                  'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
2713                                  'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
2714                                  'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
2715                                  'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
2716                                  'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
2717                                  'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),),
2718              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2719              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2720              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2721              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2722              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2723              LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
2724              DX              =SIMP(statut='f',typ='R' ),
2725              DY              =SIMP(statut='f',typ='R' ),
2726              DZ              =SIMP(statut='f',typ='R' ),
2727              DRX             =SIMP(statut='f',typ='R' ),
2728              DRY             =SIMP(statut='f',typ='R' ),
2729              DRZ             =SIMP(statut='f',typ='R' ),
2730              GRX             =SIMP(statut='f',typ='R' ),
2731              PRES            =SIMP(statut='f',typ='R' ),
2732              PHI             =SIMP(statut='f',typ='R' ),
2733              TEMP            =SIMP(statut='f',typ='R' ),
2734              PRE1            =SIMP(statut='f',typ='R' ),
2735              PRE2            =SIMP(statut='f',typ='R' ),
2736              UI2             =SIMP(statut='f',typ='R' ),
2737              UI3             =SIMP(statut='f',typ='R' ),
2738              UI4             =SIMP(statut='f',typ='R' ),
2739              UI5             =SIMP(statut='f',typ='R' ),
2740              UI6             =SIMP(statut='f',typ='R' ),
2741              UO2             =SIMP(statut='f',typ='R' ),
2742              UO3             =SIMP(statut='f',typ='R' ),
2743              UO4             =SIMP(statut='f',typ='R' ),
2744              UO5             =SIMP(statut='f',typ='R' ),
2745              UO6             =SIMP(statut='f',typ='R' ),
2746              VI2             =SIMP(statut='f',typ='R' ),
2747              VI3             =SIMP(statut='f',typ='R' ),
2748              VI4             =SIMP(statut='f',typ='R' ),
2749              VI5             =SIMP(statut='f',typ='R' ),
2750              VI6             =SIMP(statut='f',typ='R' ),
2751              VO2             =SIMP(statut='f',typ='R' ),
2752              VO3             =SIMP(statut='f',typ='R' ),
2753              VO4             =SIMP(statut='f',typ='R' ),
2754              VO5             =SIMP(statut='f',typ='R' ),
2755              VO6             =SIMP(statut='f',typ='R' ),
2756              WI2             =SIMP(statut='f',typ='R' ),
2757              WI3             =SIMP(statut='f',typ='R' ),
2758              WI4             =SIMP(statut='f',typ='R' ),
2759              WI5             =SIMP(statut='f',typ='R' ),
2760              WI6             =SIMP(statut='f',typ='R' ),
2761              WO2             =SIMP(statut='f',typ='R' ),
2762              WO3             =SIMP(statut='f',typ='R' ),
2763              WO4             =SIMP(statut='f',typ='R' ),
2764              WO5             =SIMP(statut='f',typ='R' ),
2765              WO6             =SIMP(statut='f',typ='R' ),
2766              WO              =SIMP(statut='f',typ='R' ),
2767              WI1             =SIMP(statut='f',typ='R' ),
2768              WO1             =SIMP(statut='f',typ='R' ),
2769              GONF            =SIMP(statut='f',typ='R' ),
2770              DCX             =SIMP(statut='f',typ='R' ),
2771              DCY             =SIMP(statut='f',typ='R' ),
2772              DCZ             =SIMP(statut='f',typ='R' ),
2773              H1X             =SIMP(statut='f',typ='R' ),
2774              H1Y             =SIMP(statut='f',typ='R' ),
2775              H1Z             =SIMP(statut='f',typ='R' ),                  
2776              E1X             =SIMP(statut='f',typ='R' ),
2777              E1Y             =SIMP(statut='f',typ='R' ),
2778              E1Z             =SIMP(statut='f',typ='R' ),      
2779              E2X             =SIMP(statut='f',typ='R' ),
2780              E2Y             =SIMP(statut='f',typ='R' ),
2781              E2Z             =SIMP(statut='f',typ='R' ),      
2782              E3X             =SIMP(statut='f',typ='R' ),
2783              E3Y             =SIMP(statut='f',typ='R' ),
2784              E3Z             =SIMP(statut='f',typ='R' ),      
2785              E4X             =SIMP(statut='f',typ='R' ),
2786              E4Y             =SIMP(statut='f',typ='R' ),
2787              E4Z             =SIMP(statut='f',typ='R' ),      
2788              LAGS_C          =SIMP(statut='f',typ='R' ),
2789            ),
2790
2791
2792
2793          DDL_POUTRE    =FACT(statut='f',max='**',
2794              fr="Bloque des DDLs dans un repère local d'une poutre",
2795              regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
2796                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),
2797                      UN_PARMI('VECT_Y','ANGL_VRIL'),),
2798              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2799              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2800              DX              =SIMP(statut='f',typ='R' ),
2801              DY              =SIMP(statut='f',typ='R' ),
2802              DZ              =SIMP(statut='f',typ='R' ),
2803              DRX             =SIMP(statut='f',typ='R' ),
2804              DRY             =SIMP(statut='f',typ='R' ),
2805              DRZ             =SIMP(statut='f',typ='R' ),
2806 #  définition du repère local
2807              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
2808              ANGL_VRIL       =SIMP(statut='f',typ='R',),
2809 #  restriction sur les mailles servant à définir le repère local
2810              GROUP_MA        =SIMP(statut='f',typ=grma,),
2811              MAILLE          =SIMP(statut='f',typ=ma,),
2812                             ),
2813
2814
2815
2816            FACE_IMPO       =FACT(statut='f',max='**',
2817              fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)",
2818              regles=(UN_PARMI('GROUP_MA','MAILLE',),
2819                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2820                                  'TEMP','PRE1','PRE2','DNOR','DTAN'),
2821                      EXCLUS('DNOR','DX'),
2822                      EXCLUS('DNOR','DY'),
2823                      EXCLUS('DNOR','DZ'),
2824                      EXCLUS('DNOR','DRX'),
2825                      EXCLUS('DNOR','DRY'),
2826                      EXCLUS('DNOR','DRZ'),
2827                      EXCLUS('DTAN','DX'),
2828                      EXCLUS('DTAN','DY'),
2829                      EXCLUS('DTAN','DZ'),
2830                      EXCLUS('DTAN','DRX'),
2831                      EXCLUS('DTAN','DRY'),
2832                      EXCLUS('DTAN','DRZ'),),
2833 #  rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
2834              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2835              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2836              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2837              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2838              DX              =SIMP(statut='f',typ='R' ),
2839              DY              =SIMP(statut='f',typ='R' ),
2840              DZ              =SIMP(statut='f',typ='R' ),
2841              DRX             =SIMP(statut='f',typ='R' ),
2842              DRY             =SIMP(statut='f',typ='R' ),
2843              DRZ             =SIMP(statut='f',typ='R' ),
2844              DNOR            =SIMP(statut='f',typ='R' ),
2845              DTAN            =SIMP(statut='f',typ='R' ),
2846              GRX             =SIMP(statut='f',typ='R' ),
2847              PRES            =SIMP(statut='f',typ='R' ),
2848              PHI             =SIMP(statut='f',typ='R' ),
2849              TEMP            =SIMP(statut='f',typ='R' ),
2850              PRE1            =SIMP(statut='f',typ='R' ),
2851              PRE2            =SIMP(statut='f',typ='R' ),
2852            ),
2853
2854          CHAMNO_IMPO  =FACT(statut='f',max='**',
2855              fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster",
2856 #  type de cham_no_sdaster CO()
2857              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
2858              COEF_MULT       =SIMP(statut='o',typ='R' ),
2859              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2860            ),
2861
2862
2863            LIAISON_DDL     =FACT(statut='f',max='**',
2864              fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds",
2865              regles=(UN_PARMI('GROUP_NO','NOEUD'),),
2866              GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
2867              NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
2868              DDL             =SIMP(statut='o',typ='TXM',max='**'),
2869              COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
2870              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2871            ),
2872
2873            LIAISON_OBLIQUE =FACT(statut='f',max='**',
2874              fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante"
2875               +" dans un repère oblique quelconque",
2876              regles=(UN_PARMI('GROUP_NO','NOEUD'),
2877                      UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
2878              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2879              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2880              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
2881              DX              =SIMP(statut='f',typ='R' ),
2882              DY              =SIMP(statut='f',typ='R' ),
2883              DZ              =SIMP(statut='f',typ='R' ),
2884              DRX             =SIMP(statut='f',typ='R' ),
2885              DRY             =SIMP(statut='f',typ='R' ),
2886              DRZ             =SIMP(statut='f',typ='R' ),
2887            ),
2888
2889            LIAISON_GROUP   =FACT(statut='f',max='**',
2890              fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds",
2891              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
2892                      UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
2893                      EXCLUS('GROUP_MA_1','GROUP_NO_2'),
2894                      EXCLUS('GROUP_MA_1','NOEUD_2'),
2895                      EXCLUS('GROUP_NO_1','GROUP_MA_2'),
2896                      EXCLUS('GROUP_NO_1','MAILLE_2'),
2897                      EXCLUS('MAILLE_1','GROUP_NO_2'),
2898                      EXCLUS('MAILLE_1','NOEUD_2'),
2899                      EXCLUS('NOEUD_1','GROUP_MA_2'),
2900                      EXCLUS('NOEUD_1','MAILLE_2'),
2901                      EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
2902
2903                GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2904                MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2905                GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2906                MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2907                GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2908                NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2909                GROUP_NO_2      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2910                NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2911
2912              SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
2913              SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
2914              DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
2915              COEF_MULT_1     =SIMP(statut='o',typ='R'  ,max='**'),
2916              DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
2917              COEF_MULT_2     =SIMP(statut='o',typ='R'  ,max='**'),
2918              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2919              SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2920              TRAN            =SIMP(statut='f',typ='R',max=3),
2921              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
2922              CENTRE          =SIMP(statut='f',typ='R',max=3),
2923            ),
2924
2925            LIAISON_MAIL    =FACT(statut='f',max='**',
2926              fr="Définit des relations linéaires permettant de recoller deux bords d'une structure",
2927              regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
2928                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
2929                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
2930               GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2931               MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2932               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2933               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2934               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2935               NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2936               TRAN            =SIMP(statut='f',typ='R',max=3 ),
2937               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2938               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2939               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2940               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2941               ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2942          ),
2943
2944            LIAISON_CYCL    =FACT(statut='f',max='**',
2945              fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques",
2946              regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'),
2947                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
2948                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),
2949                      ),
2950               GROUP_MA_MAIT1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2951               MAILLE_MAIT1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2952               GROUP_MA_MAIT2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2953               MAILLE_MAIT2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2954               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2955               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2956               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2957               NOEUD_ESCL     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2958               TRAN            =SIMP(statut='f',typ='R',max=3 ),
2959               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2960               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2961               COEF_MAIT1            =SIMP(statut='f',typ='R',max=1 ),
2962               COEF_MAIT2            =SIMP(statut='f',typ='R',max=1 ),
2963               COEF_ESCL            =SIMP(statut='f',typ='R',max=1 ),
2964               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2965               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2966          ),
2967
2968
2969            LIAISON_SOLIDE  =FACT(statut='f',fr="Modélise une partie indéformable d'une structure",max='**',
2970              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
2971              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2972              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2973              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2974              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2975              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2976            ),
2977
2978            LIAISON_ELEM    =FACT(statut='f',max='**',
2979              fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque"
2980               +" avec une poutre ou avec un tuyau",
2981              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
2982                      UN_PARMI('GROUP_NO_2','NOEUD_2'),),
2983              OPTION          =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ),
2984              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2985              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2986              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2987              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2988              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2989              CARA_ELEM       =SIMP(statut='f',typ=(cara_elem) ),
2990              AXE_POUTRE      =SIMP(statut='f',typ='R',max=3),
2991              ANGL_MAX        =SIMP(statut='f',typ='R',defaut= 1. ),
2992            ),
2993
2994            LIAISON_UNIF    =FACT(statut='f',max='**',
2995              fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
2996              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
2997              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2998              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2999              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3000              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3001              DDL             =SIMP(statut='o',typ='TXM',max='**'),
3002            ),
3003
3004          LIAISON_CHAMNO  =FACT(statut='f',max='**',
3005              fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO",
3006 #  type de cham_no_sdaster CO()
3007              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
3008              COEF_IMPO       =SIMP(statut='o',typ='R' ),
3009              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
3010            ),
3011
3012          LIAISON_XFEM      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
3013
3014          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster ),
3015 #
3016 # LIAISON UNILATERALE
3017
3018          LIAISON_UNILATER=FACT(statut='f',max='**',
3019            fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
3020            regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
3021                                          
3022            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3023            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
3024            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
3025            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),   
3026
3027            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3028            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3029                  
3030            NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
3031
3032            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),           
3033            
3034            COEF_IMPO       =SIMP(statut='f',typ='R'),
3035            COEF_MULT       =SIMP(statut='f',typ='R',max='**'),         
3036
3037            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
3038                                  into=("CONTRAINTE","GCPC",) ),
3039            
3040                  
3041         ),
3042 #
3043 # CONTACT
3044 #       
3045          CONTACT         =FACT(statut='f',max='**',
3046            fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
3047            regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
3048            APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
3049                                  into=("NODAL","MAIT_ESCL","MAIT_ESCL_SYME")),
3050            RECHERCHE       =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",
3051                                  into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
3052            LISSAGE         =SIMP(statut='f',typ='TXM',defaut="NON",
3053                                  into=("OUI","NON")),
3054            DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
3055            DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
3056            NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
3057                                  into=("MAIT","MAIT_ESCL")),
3058            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
3059                                  into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ),
3060            PROJECTION      =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",
3061                                  into=("LINEAIRE","QUADRATIQUE") ),
3062            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3063            MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
3064            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3065            MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'), 
3066                     
3067            b_cara         =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
3068                CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
3069            ),
3070          
3071            b_verif         =BLOC(condition = "METHODE == 'VERIF' ",
3072                                  fr="Paramètres de la méthode sans calcul de contact",
3073                 STOP_INTERP     =SIMP(statut='f',typ='TXM',defaut="NON",
3074                                       into=("OUI","NON")),
3075                 TOLE_INTERP     =SIMP(statut='f',typ='R',defaut = 0.),
3076                 DIST_MAIT       =SIMP(statut='f',typ='R'),
3077                 DIST_ESCL       =SIMP(statut='f',typ='R'),
3078                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
3079                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3080            ),
3081
3082            b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
3083                                  fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
3084                 GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
3085                                       into=("OUI","NON")),
3086                 b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",                    
3087                       ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
3088                                  ),
3089                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
3090                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
3091                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
3092                                       into=("OUI","NON")),
3093                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
3094                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
3095                         into=("AUTOMATIQUE","CONTROLE","SANS")),
3096                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",
3097                                  fr="Paramètre de la réactualisation géométrique",
3098                                  ),
3099                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
3100                                  fr="Paramètre de la réactualisation géométrique",
3101                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
3102
3103                                  ),
3104                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
3105                       fr="Paramètre de la réactualisation géométrique auto",
3106                                  ), 
3107                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3108                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3109                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
3110                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
3111                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3112                 DIST_MAIT       =SIMP(statut='f',typ='R'),
3113                 DIST_ESCL       =SIMP(statut='f',typ='R'),
3114
3115            ),
3116            b_lagrangien    =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
3117                                  fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
3118                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
3119                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
3120                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
3121                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
3122                                       into=("OUI","NON")),
3123                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
3124                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I'  ,defaut=4),
3125
3126                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
3127                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
3128                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique",
3129                                  ),
3130                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
3131                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
3132
3133                                  ),
3134                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
3135                       fr="Paramètre de la réactualisation géométrique auto",
3136                                   ), 
3137
3138                
3139                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3140                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3141                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
3142                 DIST_MAIT       =SIMP(statut='f',typ='R'),
3143                 DIST_ESCL       =SIMP(statut='f',typ='R'),
3144                 
3145                 regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
3146                 
3147                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
3148                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3149                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
3150                      COULOMB         =SIMP(statut='o',typ='R',),
3151                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
3152                      ),),
3153            
3154            b_penalisation       =BLOC(condition = "METHODE == 'PENALISATION' ",
3155                                       fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
3156                 E_N             =SIMP(statut='f',typ='R'),
3157                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
3158                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
3159                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
3160                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
3161                                       into=("OUI","NON")),
3162                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
3163                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I',defaut=4),
3164                 
3165                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
3166                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
3167                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique",
3168                                  ),
3169                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
3170                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
3171                                  ),
3172                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
3173                       fr="Paramètre de la réactualisation géométrique auto",
3174                                  ), 
3175
3176                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3177                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3178                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
3179                 DIST_MAIT       =SIMP(statut='f',typ='R'),
3180                 DIST_ESCL       =SIMP(statut='f',typ='R'),
3181                 regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
3182                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
3183                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3184                 
3185                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
3186                      COULOMB         =SIMP(statut='o',typ='R',),
3187                      E_T             =SIMP(statut='f',typ='R',
3188                                            fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
3189                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
3190                      ),),
3191
3192            b_continue      =BLOC(condition = "METHODE == 'CONTINUE' ",
3193                                  fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
3194 #                regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
3195                 GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
3196                                       into=("OUI","NON")),
3197                 b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",                    
3198                       ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
3199                                  ),
3200                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
3201                 COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
3202                 FOND_FISSURE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
3203                 RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
3204
3205                 INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
3206                                                                                                 "NCOTES","NCOTES1","NCOTES2")),
3207                 COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
3208                 MODL_AXIS       =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
3209                 FORMULATION     =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")),
3210                 DIRE_APPA       =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)),
3211                 ITER_GEOM_MAXI  =SIMP(statut='f',typ='I',defaut=2),
3212                 ITER_CONT_MAXI  =SIMP(statut='f',typ='I',defaut=30),
3213                 DIST_MAIT       =SIMP(statut='f',typ='R',defaut=0.),
3214                 DIST_ESCL       =SIMP(statut='f',typ='R',defaut=0.),
3215                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3216                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
3217                 CONTACT_INIT    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
3218                 b_FOND_FISSURE  =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE",
3219                      regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),),
3220                      NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3221                      GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3222                      MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3223                      GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),),
3224                 b_RACCORD_SURF  =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE",
3225                      regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),),
3226                      NOEUD_RACC      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3227                      GROUP_NO_RACC   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
3228  
3229                 b_compliance    =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance",
3230                      ASPERITE        =SIMP(statut='o',typ='R',),
3231                      E_N             =SIMP(statut='o',typ='R',),
3232                      E_V             =SIMP(statut='f',typ='R',defaut=0.E+0),),
3233                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
3234                      COULOMB         =SIMP(statut='o',typ='R',),
3235                      SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3236                      SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3237                      VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
3238                      VECT_Z          =SIMP(statut='f',typ='R',min=3,max=3),
3239                      ITER_FROT_MAXI  =SIMP(statut='f',typ='I',defaut=2),
3240                      COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
3241                      SEUIL_INIT      =SIMP(statut='f',typ='R',defaut=0.E+0),),),
3242
3243            b_gcp        =BLOC(condition = "METHODE == 'GCP' ",
3244                                  fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
3245                 RESI_ABSO       =SIMP(statut='o',typ='R',
3246                                       fr="Critère de convergence (niveau d'interpénétration autorisé)"),
3247                 REAC_ITER       =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
3248                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
3249                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
3250                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
3251                                       into=("OUI","NON")),
3252                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
3253                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
3254
3255                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
3256                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
3257                       
3258                                  ), 
3259                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3260                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3261                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
3262                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
3263                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3264                 DIST_MAIT       =SIMP(statut='f',typ='R'),
3265                 DIST_ESCL       =SIMP(statut='f',typ='R'),
3266            ),
3267          ),
3268
3269          FORCE_NODALE    =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
3270            regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
3271                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
3272            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3273            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3274            FX              =SIMP(statut='f',typ='R' ),
3275            FY              =SIMP(statut='f',typ='R' ),
3276            FZ              =SIMP(statut='f',typ='R' ),
3277            MX              =SIMP(statut='f',typ='R' ),
3278            MY              =SIMP(statut='f',typ='R' ),
3279            MZ              =SIMP(statut='f',typ='R' ),
3280            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
3281          ),
3282
3283          FORCE_FACE      =FACT(statut='f',max='**',
3284              fr="Applique des forces surfaciques sur une face d'élément volumique",
3285              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3286                      AU_MOINS_UN('FX','FY','FZ'),),
3287              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3288              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3289              FX              =SIMP(statut='f',typ='R' ),
3290              FY              =SIMP(statut='f',typ='R' ),
3291              FZ              =SIMP(statut='f',typ='R' ),
3292            ),
3293
3294          FORCE_ARETE     =FACT(statut='f',max='**',
3295          fr="Applique des forces linéiques à une arete d'élément volumique ou de coque",
3296              regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
3297                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
3298              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3299              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3300              FX              =SIMP(statut='f',typ='R' ),
3301              FY              =SIMP(statut='f',typ='R' ),
3302              FZ              =SIMP(statut='f',typ='R' ),
3303              MX              =SIMP(statut='f',typ='R' ),
3304              MY              =SIMP(statut='f',typ='R' ),
3305              MZ              =SIMP(statut='f',typ='R' ),
3306            ),
3307
3308          FORCE_CONTOUR   =FACT(statut='f',max='**',
3309              fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER",
3310              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3311                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3312              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3313              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3314              FX              =SIMP(statut='f',typ='R' ),
3315              FY              =SIMP(statut='f',typ='R' ),
3316              FZ              =SIMP(statut='f',typ='R' ),
3317              MX              =SIMP(statut='f',typ='R' ),
3318              MY              =SIMP(statut='f',typ='R' ),
3319              MZ              =SIMP(statut='f',typ='R' ),
3320            ),
3321
3322          FORCE_INTERNE   =FACT(statut='f',max='**',
3323              fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique",
3324              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3325                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3326                      AU_MOINS_UN('FX','FY','FZ' ),),
3327              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3328              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3329              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3330              FX              =SIMP(statut='f',typ='R' ),
3331              FY              =SIMP(statut='f',typ='R' ),
3332              FZ              =SIMP(statut='f',typ='R' ),
3333            ),
3334
3335          PRES_REP        =FACT(statut='f',max='**',
3336              fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux",
3337              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3338                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3339                      AU_MOINS_UN('PRES','CISA_2D' ),),
3340              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3341              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3342              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3343              PRES            =SIMP(statut='f',typ='R' ),
3344              CISA_2D         =SIMP(statut='f',typ='R' ),
3345            ),
3346
3347          EFFE_FOND       =FACT(statut='f',max='**',
3348            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression",
3349            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3350            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
3351            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3352            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3353            PRES            =SIMP(statut='o',typ='R' ),
3354          ),
3355
3356          EPSI_INIT       =FACT(statut='f',max='**',
3357              fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure",
3358              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3359                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3360                      AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
3361                                  'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
3362              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3363              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3364              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3365              EPXX            =SIMP(statut='f',typ='R' ),
3366              EPYY            =SIMP(statut='f',typ='R' ),
3367              EPZZ            =SIMP(statut='f',typ='R' ),
3368              EPXY            =SIMP(statut='f',typ='R' ),
3369              EPXZ            =SIMP(statut='f',typ='R' ),
3370              EPYZ            =SIMP(statut='f',typ='R' ),
3371              EPX             =SIMP(statut='f',typ='R' ),
3372              KY              =SIMP(statut='f',typ='R' ),
3373              KZ              =SIMP(statut='f',typ='R' ),
3374              EXX             =SIMP(statut='f',typ='R' ),
3375              EYY             =SIMP(statut='f',typ='R' ),
3376              EXY             =SIMP(statut='f',typ='R' ),
3377              KXX             =SIMP(statut='f',typ='R' ),
3378              KYY             =SIMP(statut='f',typ='R' ),
3379              KXY             =SIMP(statut='f',typ='R' ),
3380            ),
3381
3382          ARLEQUIN        =FACT(statut='f',min=1,max='**',
3383            fr="Définit les paramètres de la méthode Arlequin",
3384            GROUP_MA_1     =SIMP(statut='o',typ=grma,max='**'),
3385            GROUP_MA_2     =SIMP(statut='o',typ=grma,max='**'),
3386            GROUP_MA_COLL  =SIMP(statut='f',typ=grma,max='**'),
3387            CARA_ELEM      =SIMP(statut='f',typ=cara_elem ),
3388            COND_LIM       =SIMP(statut='f',typ=char_meca ),
3389            COLLAGE        =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),),
3390            regles         =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),),
3391            POIDS_1        =SIMP(statut='f',typ='R'),
3392            POIDS_2        =SIMP(statut='f',typ='R'),
3393            POIDS_GROSSIER =SIMP(statut='f',typ='R'),
3394            POIDS_FIN      =SIMP(statut='f',typ='R'),),
3395
3396         FORCE_POUTRE    =FACT(statut='f',max='**',
3397              fr="Applique des forces linéiques sur des éléments de type poutre",
3398              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3399                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3400                      AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
3401                      PRESENT_ABSENT('FX','N','VY','VZ'),
3402                      PRESENT_ABSENT('FY','N','VY','VZ'),
3403                      PRESENT_ABSENT('FZ','N','VY','VZ'),
3404                      PRESENT_ABSENT('N','FX','FY','FZ'),
3405                      PRESENT_ABSENT('VY','FX','FY','FZ'),
3406                      PRESENT_ABSENT('VZ','FX','FY','FZ'),),
3407              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3408              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3409              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3410              TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
3411 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
3412                FX              =SIMP(statut='f',typ='R' ),
3413                FY              =SIMP(statut='f',typ='R' ),
3414                FZ              =SIMP(statut='f',typ='R' ),
3415
3416                N               =SIMP(statut='f',typ='R' ),
3417                VY              =SIMP(statut='f',typ='R' ),
3418                VZ              =SIMP(statut='f',typ='R' ),
3419
3420            ),
3421
3422          FORCE_TUYAU     =FACT(statut='f',max='**',
3423              fr="Applique une pression sur des éléments TUYAU",
3424              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3425                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3426              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3427              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3428              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3429              PRES            =SIMP(statut='f',typ='R' ),
3430            ),
3431
3432          FORCE_COQUE     =FACT(statut='f',max='**',
3433              fr="Applique des forces surfaciques sur des éléments de types coques",
3434              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3435                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3436                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
3437                      PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
3438                      PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
3439                      PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
3440                      PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
3441                      PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
3442                      PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
3443                      PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
3444                      PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
3445                      PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
3446                      PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
3447                      PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
3448                      PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
3449 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
3450              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3451              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3452              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3453
3454                FX              =SIMP(statut='f',typ='R' ),
3455                FY              =SIMP(statut='f',typ='R' ),
3456                FZ              =SIMP(statut='f',typ='R' ),
3457                MX              =SIMP(statut='f',typ='R' ),
3458                MY              =SIMP(statut='f',typ='R' ),
3459                MZ              =SIMP(statut='f',typ='R' ),
3460
3461                F1              =SIMP(statut='f',typ='R' ),
3462                F2              =SIMP(statut='f',typ='R' ),
3463                F3              =SIMP(statut='f',typ='R' ),
3464                MF1             =SIMP(statut='f',typ='R' ),
3465                MF2             =SIMP(statut='f',typ='R' ),
3466
3467              PRES            =SIMP(statut='f',typ='R' ),
3468              PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
3469            ),
3470
3471
3472            GRAPPE_FLUIDE   =FACT(statut='f',max='**',
3473              fr="Définit les données de calcul des forces fluides lors des études de chute de grappe",
3474              regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'),
3475                      EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'),
3476                      PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'),
3477                      PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'),
3478                      PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'),
3479                      PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'),
3480                      PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'),
3481                      PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'),
3482                      PRESENT_PRESENT('CARA_PDC','VALE_PDC'),),
3483              GROUP_MA        =SIMP(statut='f',typ=grma,max=1),
3484              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
3485              NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
3486              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
3487              NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
3488              Z0              =SIMP(statut='f',typ='R' ),
3489              CARA_HYDR       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3490                                  fr="définition des données hydrauliques",
3491                                  into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM",
3492                                        "NUML","NUG","P2","P3","P4","CGG","G") ),
3493              VALE_HYDR       =SIMP(statut='f',typ='R',max='**',
3494                                  fr="valeurs des données hydrauliques",),
3495              CARA_GRAPPE     =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3496                                  fr="définition des données géométriques de la grappe",
3497                                  into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT",
3498                                        "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT",
3499                                        "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ),
3500              VALE_GRAPPE     =SIMP(statut='f',typ='R',max='**',
3501                                  fr="valeurs des données géométriques de la grappe",),
3502              CARA_COMMANDE   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3503                                  fr="définition des données géométriques du mécanisme de commande",
3504                                  into=("LI","LML","LG","LIG","DIML","DEML","DCSP",
3505                                        "DG","HRUGML","HRUGCSP","HRUGG") ),
3506              VALE_COMMANDE   =SIMP(statut='f',typ='R',max='**',
3507                                  fr="valeurs des données géométriques du mécanisme de commande",),
3508              CARA_MANCHETTE  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3509                                  fr="définition des données géométriques de la manchette et son adaptateur",
3510                                  into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT",
3511                                        "ROMT","DA","HRUGM","HRUGA") ),
3512              VALE_MANCHETTE  =SIMP(statut='f',typ='R',max='**',
3513                                  fr="valeurs des données géométriques de la manchette et son adaptateur",),
3514              CARA_GUIDE      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3515                                  fr="définition des données géométriques des tubes guides",
3516                                  into=("NRET","L0","L1","L2","L3","L4","DTG","DR",
3517                                        "DOR","D0","D00","HRUGTG") ),
3518              VALE_GUIDE      =SIMP(statut='f',typ='R',max='**',
3519                                  fr="valeurs des données géométriques des tubes guides",),
3520              CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3521                                  fr="définition des données géométriques des assemblages",
3522                                  into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI",
3523                                        "KES","KEI","KF") ),
3524              VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**',
3525                                  fr="valeurs des données géométriques des assemblages",),
3526              CARA_PDC        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3527                                  fr="définition des coefficients de perte de charge singulière",
3528                                  into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML",
3529                                        "CDI","CDG") ),
3530              VALE_PDC        =SIMP(statut='f',typ='R',max='**',
3531                                  fr="valeurs des coefficients de perte de charge singulière",),
3532              APPL_FORC_ARCHI  =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
3533                                  fr="application de la force d'archimède",
3534                                  into=("REPARTIE","CDG") ),
3535              APPL_FORC_FPLAQ  =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
3536                                  fr="application de la force de plaquage dans le guidage continu",
3537                                  into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ),
3538              APPL_FORC_FMEC   =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
3539                                  fr="application de la force dans le mécanisme de levée",
3540                                  into=("REPARTIE","CDG","ZONE","PTREP") ),
3541              APPL_FORC_FTG    =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
3542                                  fr="application de la force tube_guide",
3543                                  into=("REPARTIE","CDG","ZONE","PTREP") ),
3544              DIRE_FORC_FPLAQ  =SIMP(statut='f',typ='R',min=3,max=3,
3545                                  fr="direction d'application de la force de plaquage",),
3546              b_CDG    =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \
3547                                          (APPL_FORC_FMEC  == 'CDG') or (APPL_FORC_FTG   == 'CDG')",
3548                 MASS_INER        =SIMP(statut='o',typ=table_sdaster ),
3549              ),
3550              UNITE_IMPR_FORCE =SIMP(statut='f',typ='I',
3551                                  fr="unité d'impression des forces",),
3552              UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I',
3553                                  fr="unité d'impression des noeuds par zone",),
3554            ),
3555
3556            LIAISON_COQUE   =FACT(statut='f',max='**',
3557              fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
3558              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3559              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3560              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3561              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3562              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3563              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3564              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3565              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3566              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
3567            ),
3568
3569          RELA_CINE_BP    =FACT(statut='f',max='**',
3570            fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier"
3571               +" la prise en compte des contraintes initiales dans les cables",
3572            CABLE_BP        =SIMP(statut='o',typ=cabl_precont ),
3573            SIGM_BPEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
3574            RELA_CINE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3575          ),
3576
3577          FORCE_ELEC      =FACT(statut='f',max='**',
3578              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
3579                  +" secondaire droit",
3580              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3581                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3582
3583              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3584              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3585              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3586
3587              POSITION        =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
3588              b_fxyz  =BLOC ( condition = "POSITION == None",
3589                   FX   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3590                   FY   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3591                   FZ   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3592                        ),
3593
3594              b_para     =BLOC ( condition = "POSITION == 'PARA'",
3595                regles=(UN_PARMI('TRANS','DIST'),),
3596                TRANS           =SIMP(statut='f',typ='R',max=3),
3597                DIST            =SIMP(statut='f',typ='R' ),
3598                b_point2        =BLOC ( condition = "DIST != None",
3599                  POINT2           =SIMP(statut='o',typ='R',max=3),
3600                ),
3601              ),
3602              b_fini_infi     =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
3603                POINT1          =SIMP(statut='o',typ='R',max=3),
3604                POINT2          =SIMP(statut='o',typ='R',max=3),
3605              ),
3606            ),
3607
3608
3609
3610
3611         INTE_ELEC       =FACT(statut='f',max='**',
3612              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
3613                +" secondaire non nécessairement droit",
3614              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3615                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3616                      AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
3617                      EXCLUS('TRANS','SYME'),),
3618              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3619              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3620              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3621              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3622              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3623              TRANS           =SIMP(statut='f',typ='R' ,max='**'),
3624              SYME            =SIMP(statut='f',typ='R' ,max='**'),
3625            ),
3626
3627
3628          IMPE_FACE       =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**',
3629              regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
3630              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3631              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3632              IMPE            =SIMP(statut='o',typ='R' ),
3633            ),
3634
3635          VITE_FACE       =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**',
3636              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3637              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3638              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3639              VNOR            =SIMP(statut='o',typ='R' ),
3640            ),
3641
3642
3643
3644          ONDE_FLUI       =FACT(statut='f',max='**',
3645              fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face",
3646              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3647              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3648              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3649              PRES            =SIMP(statut='o',typ='R' ),
3650            ),
3651
3652          FLUX_THM_REP    =FACT(statut='f',max='**',
3653              fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide"
3654                  +" (flux hydraulique)",
3655              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3656                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3657                      AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
3658              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3659              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3660              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3661              FLUN            =SIMP(statut='f',typ='R' ),
3662              FLUN_HYDR1      =SIMP(statut='f',typ='R' ),
3663              FLUN_HYDR2      =SIMP(statut='f',typ='R' ),
3664            ),
3665
3666          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3667 )  ;
3668
3669
3670 #& MODIF COMMANDE  DATE 24/08/2005   AUTEUR MABBAS M.ABBAS 
3671 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3672 # ======================================================================
3673 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3674 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3675 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3676 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
3677 # (AT YOUR OPTION) ANY LATER VERSION.                                 
3678 #
3679 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
3680 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
3681 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
3682 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
3683 #
3684 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
3685 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
3686 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
3687 # ======================================================================
3688 # RESPONSABLE G8BHHXD X.DESROCHES
3689 AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
3690                      fr="Affectation de charges et conditions aux limites mécaniques complexes",
3691                      reentrant='n',
3692             UIinfo={"groupes":("Modélisation",)},
3693          regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
3694          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
3695          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3696          DDL_IMPO        =FACT(statut='f',max='**',
3697            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
3698            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
3699                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),),
3700            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3701            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3702            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3703            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3704            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3705            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), 
3706            DX              =SIMP(statut='f',typ='C' ),
3707            DY              =SIMP(statut='f',typ='C' ),
3708            DZ              =SIMP(statut='f',typ='C' ),
3709            DRX             =SIMP(statut='f',typ='C' ),
3710            DRY             =SIMP(statut='f',typ='C' ),
3711            DRZ             =SIMP(statut='f',typ='C' ),
3712            GRX             =SIMP(statut='f',typ='C' ),
3713            PRES            =SIMP(statut='f',typ='C' ),
3714            PHI             =SIMP(statut='f',typ='C' ),
3715          ),
3716          FORCE_POUTRE    =FACT(statut='f',max='**',
3717            fr="Applique des forces linéiques sur des éléments de type poutre",
3718            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3719                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3720                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
3721                    PRESENT_ABSENT('FX','N','VY','VZ',),
3722                    PRESENT_ABSENT('FY','N','VY','VZ',),
3723                    PRESENT_ABSENT('FZ','N','VY','VZ',),
3724                    PRESENT_ABSENT('N','FX','FY','FZ',),
3725                    PRESENT_ABSENT('VY', 'FX','FY','FZ',),
3726                    PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
3727            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3728            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3729            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3730            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
3731            FX              =SIMP(statut='f',typ='C' ),
3732            FY              =SIMP(statut='f',typ='C' ),
3733            FZ              =SIMP(statut='f',typ='C' ),
3734            N               =SIMP(statut='f',typ='C' ),
3735            VY              =SIMP(statut='f',typ='C' ),
3736            VZ              =SIMP(statut='f',typ='C' ),
3737          ),
3738          LIAISON_DDL     =FACT(statut='f',max='**',
3739            fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds",
3740            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
3741            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3742            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3743            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3744            COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
3745            COEF_IMPO       =SIMP(statut='o',typ='C' ),
3746          ),
3747          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3748 )  ;
3749 #& MODIF COMMANDE  DATE 02/06/2008   AUTEUR DESOZA T.DESOZA 
3750 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3751 # ======================================================================
3752 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3753 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3754 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3755 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
3756 # (AT YOUR OPTION) ANY LATER VERSION.                                 
3757 #
3758 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
3759 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
3760 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
3761 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
3762 #
3763 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
3764 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
3765 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
3766 # ======================================================================
3767 # RESPONSABLE G8BHHXD X.DESROCHES
3768 AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
3769                       fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres",
3770                       reentrant='n',
3771             UIinfo={"groupes":("Modélisation",)},
3772         regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
3773                             'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
3774                             'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE',
3775                             'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF',
3776                             'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU',
3777                            
3778 'CONTACT','EFFE_FOND','FLUX_THM_REP','LIAISON_UNILATER'),),
3779          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3780          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3781          MODELE          =SIMP(statut='o',typ=modele_sdaster),
3782
3783          DDL_IMPO        =FACT(statut='f',max='**',
3784            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies"
3785                +" par l'intermédiaire d'un concept fonction ",
3786            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
3787                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
3788                                'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X',
3789                                'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
3790                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),),
3791            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3792            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3793            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3794            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3795            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3796            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), 
3797            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3798            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3799            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3800            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3801            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3802            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3803            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3804            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3805            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3806            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3807            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3808            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3809            DCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3810            DCY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3811            DCZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3812            H1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3813            H1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3814            H1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),                  
3815            E1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3816            E1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3817            E1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
3818            E2X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3819            E2Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3820            E2Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
3821            E3X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3822            E3Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3823            E3Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
3824            E4X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3825            E4Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3826            E4Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
3827            LAGS_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),     
3828          ),
3829
3830          FACE_IMPO       =FACT(statut='f',max='**',
3831            fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)"
3832               +" fournies par l'intérmédiaire d'un concept fonction",
3833            regles=(UN_PARMI('GROUP_MA','MAILLE'),
3834                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'),
3835                    EXCLUS('DNOR','DX'),
3836                    EXCLUS('DNOR','DY'),
3837                    EXCLUS('DNOR','DZ'),
3838                    EXCLUS('DNOR','DRX'),
3839                    EXCLUS('DNOR','DRY'),
3840                    EXCLUS('DNOR','DRZ'),
3841                    EXCLUS('DTAN','DX'),
3842                    EXCLUS('DTAN','DY'),
3843                    EXCLUS('DTAN','DZ'),
3844                    EXCLUS('DTAN','DRX'),
3845                    EXCLUS('DTAN','DRY'),
3846                    EXCLUS('DTAN','DRZ'),),
3847 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3848            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3849            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3850            SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3851            SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3852            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3853            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3854            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3855            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3856            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3857            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3858            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3859            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3860            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3861            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3862            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3863            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3864            DNOR            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3865            DTAN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3866          ),
3867          
3868          LIAISON_DDL     =FACT(statut='f',max='**',
3869            fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par"
3870                +" l'intermediaire d'un concept de type fonction",
3871            regles=(UN_PARMI('GROUP_NO','NOEUD'),UN_PARMI('COEF_MULT','COEF_MULT_FONC'),),
3872            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3873            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3874            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3875            COEF_MULT       =SIMP(statut='f',typ='R',max='**'),
3876            COEF_MULT_FONC  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
3877            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3878          ),
3879
3880          LIAISON_OBLIQUE =FACT(statut='f',max='**',
3881            fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique"
3882               +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction",
3883            regles=(UN_PARMI('GROUP_NO','NOEUD'),
3884                    UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
3885            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3886            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3887            ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
3888            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3889            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3890            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3891            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3892            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3893            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3894          ),         
3895          
3896          LIAISON_GROUP   =FACT(statut='f',max='**',
3897            fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par"
3898                +" l'intermédiaire de concept fonction",
3899            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
3900                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
3901                    EXCLUS('GROUP_MA_1','GROUP_NO_2'),
3902                    EXCLUS('GROUP_MA_1','NOEUD_2'),
3903                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
3904                    EXCLUS('GROUP_NO_1','MAILLE_2'),
3905                    EXCLUS('MAILLE_1','GROUP_NO_2'),
3906                    EXCLUS('MAILLE_1','NOEUD_2'),
3907                    EXCLUS('NOEUD_1','GROUP_MA_2'),
3908                    EXCLUS('NOEUD_1','MAILLE_2'),
3909                    EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
3910            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3911            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3912            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3913            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3914            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3915            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3916            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3917            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3918            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3919            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3920            DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
3921            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
3922            DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
3923            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
3924            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3925            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3926            TRAN            =SIMP(statut='f',typ='R',max=3),
3927            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
3928            CENTRE          =SIMP(statut='f',typ='R',max=3),
3929          ),
3930 #
3931 # LIAISON UNILATERALE
3932
3933          LIAISON_UNILATER=FACT(statut='f',max='**',
3934            fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
3935            regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
3936                                          
3937            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3938            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
3939            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
3940            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),   
3941
3942            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3943            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3944                  
3945            NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
3946
3947            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),           
3948            
3949            COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
3950            COEF_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),         
3951
3952            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
3953                                  into=("CONTRAINTE","GCPC",) ),
3954            
3955                  
3956         ),
3957          CONTACT         =FACT(statut='f',
3958            fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs"
3959            +" sont données par l'intermédiaire de concept fonction",max='**',
3960            regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
3961            APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
3962                                  into=("NODAL","MAIT_ESCL","MAIT_ESCL_SYME")),
3963            RECHERCHE       =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
3964            LISSAGE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),                 
3965            DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
3966            DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
3967            NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")),
3968            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",    
3969                                  into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ),           
3970            PROJECTION      =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
3971            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3972            MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3973            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3974            MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3975            b_cara         =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
3976                CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
3977            ),
3978                     
3979            b_verif         =BLOC(condition = "METHODE == 'VERIF' ",
3980                                  fr="Paramètres de la méthode sans calcul de contact",
3981                 STOP_INTERP     =SIMP(statut='f',typ='TXM',defaut="NON",
3982                                       into=("OUI","NON")),
3983                 TOLE_INTERP     =SIMP(statut='f',typ='R',defaut = 0.),
3984                 DIST_MAIT       =SIMP(statut='f',typ='R'),
3985                 DIST_ESCL       =SIMP(statut='f',typ='R'),
3986                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
3987                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
3988            ),
3989
3990            b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
3991                                  fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
3992                 GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
3993                                       into=("OUI","NON")),
3994                 b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",                    
3995                       ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
3996                                  ),
3997                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
3998                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
3999                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
4000                                       into=("OUI","NON")),
4001                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
4002                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
4003                         into=("AUTOMATIQUE","CONTROLE","SANS")),
4004                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",
4005                                  fr="Parametre de la reactualisation geometrique",
4006                       
4007                                  ),
4008                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
4009                                  fr="Parametre de la reactualisation geometrique",
4010                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
4011                       
4012                                  ),
4013                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
4014                       fr="Parametre de la reactualisation geometrique auto",
4015                                  ), 
4016                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4017                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4018                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
4019                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
4020                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
4021                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4022                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4023             ),
4024            b_lagrangien    =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
4025                                  fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
4026                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
4027                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
4028                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
4029                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
4030                                       into=("OUI","NON")),
4031                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
4032                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I'  ,defaut=4),
4033
4034                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
4035                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
4036                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Parametre de la reactualisation geometrique",
4037                                  ),
4038                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique",
4039                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
4040
4041                                  ),
4042                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
4043                       fr="Parametre de la reactualisation geometrique auto",
4044                                  ), 
4045
4046                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4047                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4048                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
4049                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4050                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4051                 regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
4052                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
4053                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),                
4054                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
4055                      COULOMB         =SIMP(statut='o',typ='R',),
4056                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),  
4057                      ),),
4058            b_penalisation       =BLOC(condition = "METHODE == 'PENALISATION' ",
4059                                       fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
4060                 E_N             =SIMP(statut='f',typ='R'), 
4061                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
4062                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
4063                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
4064                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
4065                                       into=("OUI","NON")),
4066                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
4067                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I',defaut=4),
4068                 
4069                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
4070                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
4071                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique",
4072                                  ),
4073                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
4074                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
4075                                  ),
4076                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
4077                      fr="Paramètre de la réactualisation géométrique auto",
4078                                  ), 
4079                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4080                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4081                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
4082                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4083                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4084                 regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
4085                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
4086                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),                
4087                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
4088                      COULOMB         =SIMP(statut='o',typ='R',),
4089                      E_T             =SIMP(statut='f',typ='R',
4090                                            fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
4091                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),  
4092                      ),),
4093            b_continue      =BLOC(condition = "METHODE == 'CONTINUE' ",
4094                                  fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
4095 #                regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
4096                 GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
4097                                       into=("OUI","NON")),
4098                 b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",                    
4099                       ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
4100                                  ),
4101                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), 
4102                 COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
4103                 FOND_FISSURE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
4104                 RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
4105                 
4106                 INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
4107                                                                                                 "NCOTES","NCOTES1","NCOTES2")),
4108                 COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
4109                 FORMULATION     =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")),
4110                 MODL_AXIS       =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
4111                 DIRE_APPA       =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)),
4112                 ITER_GEOM_MAXI  =SIMP(statut='f',typ='I',defaut=2),
4113                 ITER_CONT_MAXI  =SIMP(statut='f',typ='I',defaut=30),
4114                 DIST_MAIT       =SIMP(statut='f',typ='R',defaut=0.),
4115                 DIST_ESCL       =SIMP(statut='f',typ='R',defaut=0.),
4116                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
4117                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
4118                 CONTACT_INIT    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
4119                 b_FOND_FISSURE  =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE",
4120                      regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),),
4121                      NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4122                      GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4123                      MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4124                      GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),),
4125                 b_RACCORD_SURF  =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE",
4126                      regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),),
4127                      NOEUD_RACC      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4128                      GROUP_NO_RACC   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
4129                 
4130                 b_compliance    =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance",
4131                      ASPERITE        =SIMP(statut='o',typ='R',),
4132                      E_N             =SIMP(statut='o',typ='R',),
4133                      E_V             =SIMP(statut='f',typ='R',defaut=0.E+0),),
4134                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
4135                      COULOMB         =SIMP(statut='o',typ='R',),
4136                      SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4137                      SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4138                      VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
4139                      VECT_Z          =SIMP(statut='f',typ='R',min=3,max=3),
4140                      ITER_FROT_MAXI  =SIMP(statut='f',typ='I',defaut=2),
4141                      COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
4142                      SEUIL_INIT      =SIMP(statut='f',typ='R',defaut=0.),),),
4143
4144            b_gcp        =BLOC(condition = "METHODE == 'GCP' ",
4145                                  fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
4146                 RESI_ABSO       =SIMP(statut='o',typ='R',
4147                                       fr="Critère de convergence (niveau d'interpénétration autorisé)"),
4148                 REAC_ITER       =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
4149                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
4150                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
4151                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
4152                                       into=("OUI","NON")),
4153                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
4154                                       into=("AUTOMATIQUE","CONTROLE","SANS")),                      
4155
4156                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
4157                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
4158
4159                                  ),
4160                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4161                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4162                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
4163                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
4164                 VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
4165                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4166                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
4167            ),
4168          ),        
4169          
4170           LIAISON_UNIF    =FACT(statut='f',max='**',
4171            fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
4172            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4173            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4174            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4175            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4176            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4177            DDL             =SIMP(statut='o',typ='TXM',max='**'),
4178          ),
4179
4180          LIAISON_SOLIDE  =FACT(statut='f',max='**',
4181            fr="Modélise une partie indéformable d'une structure",
4182            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4183            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4184            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4185            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4186            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4187            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
4188          ),
4189
4190
4191
4192          FORCE_NODALE    =FACT(statut='f',max='**',
4193            fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire"
4194                +" d'un concept fonction",
4195            regles=(UN_PARMI('GROUP_NO','NOEUD'),
4196                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
4197            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4198            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4199            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4200            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4201            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4202            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4203            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4204            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4205            ANGL_NAUT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ),
4206          ),
4207
4208          FORCE_FACE      =FACT(statut='f',max='**',
4209            fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies"
4210                +" par l'intermédiaire d'un concept fonction",
4211            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
4212                    AU_MOINS_UN('FX','FY','FZ'),),
4213            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4214            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4215            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4216            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4217            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4218          ),
4219          FORCE_ARETE     =FACT(statut='f',max='**',
4220            fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont"
4221                +" fournies par l'intermédiaire d'un concept fonction",
4222            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
4223                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
4224            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4225            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4226            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4227            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4228            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4229            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4230            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4231            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4232          ),
4233          FORCE_CONTOUR   =FACT(statut='f',max='**',
4234            fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes"
4235                +" sont fournies par l'intermédiaire d'un concept fonction",
4236            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
4237                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
4238            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4239            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4240            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4241            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4242            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4243            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4244            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4245            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4246          ),
4247
4248          FORCE_INTERNE   =FACT(statut='f',max='**',
4249            fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies"
4250                +" par l'intermédiaire d'un concept fonction",
4251            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4252                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4253                    AU_MOINS_UN('FX','FY','FZ'),),
4254            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4255            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4256            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4257            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4258            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4259            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4260          ),
4261          
4262          PRES_REP        =FACT(statut='f',max='**',
4263            fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les"
4264                +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction",
4265            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4266                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4267                    AU_MOINS_UN('PRES','CISA_2D'),),
4268            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4269            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4270            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4271            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4272            CISA_2D         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4273          ),
4274
4275          EFFE_FOND       =FACT(statut='f',max='**',
4276            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise"
4277                +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction",
4278            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
4279            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
4280            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4281            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4282            PRES            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4283          ),
4284
4285          EPSI_INIT       =FACT(statut='f',max='**',
4286            fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes"
4287                +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction",
4288            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4289                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4290                    AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
4291            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4292            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4293            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4294            EPXX            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4295            EPYY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4296            EPZZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4297            EPXY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4298            EPXZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4299            EPYZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4300          ),
4301          
4302          FORCE_POUTRE    =FACT(statut='f',max='**',
4303            fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par"
4304                +" l'intermédiaire d'un concept fonction",
4305            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4306                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4307                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
4308                    PRESENT_ABSENT('FX','N','VY','VZ'),
4309                    PRESENT_ABSENT('FY','N','VY','VZ'),
4310                    PRESENT_ABSENT('FZ','N','VY','VZ'),
4311                    PRESENT_ABSENT('N','FX','FY','FZ'),
4312                    PRESENT_ABSENT('VY','FX','FY','FZ'),
4313                    PRESENT_ABSENT('VZ','FX','FY','FZ'),),
4314 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
4315            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4316            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4317            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4318            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
4319            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4320            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4321            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4322            N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4323            VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4324            VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4325          ),
4326
4327          FORCE_TUYAU     =FACT(statut='f',max='**',
4328            fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction",
4329            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4330                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4331            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4332            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4333            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4334            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4335          ),
4336          
4337          FORCE_COQUE     =FACT(statut='f',max='**',
4338            fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par"
4339                +" l'intermédiaires d'un concept fonction",
4340            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4341                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4342                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
4343                    PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
4344                    PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
4345                    PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
4346                    PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
4347                    PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
4348                    PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
4349                    PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'),
4350                    PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'),
4351                    PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'),
4352                    PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'),
4353                    PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'),
4354                    PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
4355 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
4356            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4357            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4358            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4359            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4360            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4361            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4362            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4363            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4364            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4365            F1              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4366            F2              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4367            F3              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4368            MF1             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4369            MF2             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4370            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4371            PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
4372                                  into=("SUP","INF","MOY","MAIL") ),
4373          ),
4374
4375          LIAISON_COQUE   =FACT(statut='f',max='**',
4376            fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
4377            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4378            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4379            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4380            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4381            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4382            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4383            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4384            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4385            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
4386          ),         
4387          
4388
4389          VITE_FACE       =FACT(statut='f',max='**',
4390            fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par"
4391                +" l'intermédiaire d'un concept fonction",
4392            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
4393                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
4394            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4395            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4396            VNOR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4397          ),
4398          IMPE_FACE       =FACT(statut='f',max='**',
4399            fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire"
4400                +" d'un concept fonction",
4401            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
4402                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
4403            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4404            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4405            IMPE            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4406          ),
4407          ONDE_PLANE      =FACT(statut='f',max='**',
4408            fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire"
4409                +" d'un concept fonction",
4410            DIRECTION       =SIMP(statut='o',typ='R',max='**'),
4411            TYPE_ONDE       =SIMP(statut='o',typ='TXM' ),
4412            FONC_SIGNAL     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4413            DIST_ORIG       =SIMP(statut='o',typ='R' ),
4414          ),
4415
4416
4417
4418          FLUX_THM_REP    =FACT(statut='f',max='**',
4419            fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)"
4420                +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction",
4421            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4422                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4423                    AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
4424            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4425            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4426            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4427            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4428            FLUN_HYDR1      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4429            FLUN_HYDR2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4430          ),
4431
4432          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
4433 )  ;
4434
4435
4436 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
4437 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4438 # ======================================================================
4439 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4440 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4441 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4442 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4443 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4444 #
4445 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4446 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4447 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4448 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4449 #
4450 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4451 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4452 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4453 # ======================================================================
4454 AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
4455                       fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION",
4456                       reentrant='n',
4457             UIinfo={"groupes":("Outils métier",)},
4458          regles=(AU_MOINS_UN('CARA_TORSION', ),),
4459          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
4460          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",
4461                                into=("OUI","NON") ),
4462          CARA_TORSION    =FACT(statut='f',max='**',
4463            regles=(UN_PARMI('TOUT','GROUP_MA'),),
4464            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4465            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4466          ),
4467          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4468 )  ;
4469 #& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
4470 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4471 # ======================================================================
4472 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4473 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4474 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4475 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4476 # (AT YOUR OPTION) ANY LATER VERSION.
4477 #
4478 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4479 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4480 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4481 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4482 #
4483 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4484 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4485 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4486 # ======================================================================
4487 AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
4488                     ,fr="Affectation de charges et conditions aux limites thermiques constantes",
4489                     reentrant='n',
4490             UIinfo={"groupes":("Modélisation",)},
4491       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE',
4492                           'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP',
4493                           'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
4494          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
4495
4496          TEMP_IMPO       =FACT(statut='f',max='**',
4497            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
4498                    AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
4499            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4500            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4501            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4502            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4503            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4504            TEMP            =SIMP(statut='f',typ='R'),
4505            TEMP_INF        =SIMP(statut='f',typ='R'),
4506            TEMP_SUP        =SIMP(statut='f',typ='R'), ),
4507
4508          FLUX_REP        =FACT(statut='f',max='**',
4509            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4510                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4511                    PRESENT_PRESENT('CARA_TORSION','GROUP_MA'),
4512                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ),
4513            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4514            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4515            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4516            FLUN            =SIMP(statut='f',typ='R'),
4517            FLUN_INF        =SIMP(statut='f',typ='R'),
4518            FLUN_SUP        =SIMP(statut='f',typ='R'),
4519            CARA_TORSION    =SIMP(statut='f',typ=table_sdaster),
4520          ),
4521
4522
4523          RAYONNEMENT     =FACT(statut='f',max='**',
4524            fr="Attention, exprimer les températures en Celsius si rayonnement",
4525            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4526                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4527            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4528            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4529            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4530            SIGMA           =SIMP(statut='o',typ='R'),
4531            EPSILON         =SIMP(statut='o',typ='R'),
4532            TEMP_EXT        =SIMP(statut='o',typ='R'),
4533          ),
4534
4535          ECHANGE         =FACT(statut='f',max='**',
4536            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4537                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4538                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
4539                    ENSEMBLE('COEF_H','TEMP_EXT',),
4540                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
4541                              ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
4542            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4543            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4544            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4545            COEF_H          =SIMP(statut='f',typ='R'),
4546            TEMP_EXT        =SIMP(statut='f',typ='R'),
4547            COEF_H_INF      =SIMP(statut='f',typ='R'),
4548            TEMP_EXT_INF    =SIMP(statut='f',typ='R'),
4549            COEF_H_SUP      =SIMP(statut='f',typ='R'),
4550            TEMP_EXT_SUP    =SIMP(statut='f',typ='R'),
4551          ),
4552
4553          SOURCE          =FACT(statut='f',max='**',
4554            regles=(UN_PARMI('SOUR','SOUR_CALCULEE',),
4555                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4556                    PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),),
4557            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4558            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4559            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4560            SOUR            =SIMP(statut='f',typ='R'),
4561            SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem) ),
4562          ),
4563
4564          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
4565            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4566                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4567                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
4568            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4569            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4570            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4571            FLUX_X          =SIMP(statut='f',typ='R' ),
4572            FLUX_Y          =SIMP(statut='f',typ='R' ),
4573            FLUX_Z          =SIMP(statut='f',typ='R' ),
4574                          ),
4575
4576          LIAISON_DDL     =FACT(statut='f',max='**',
4577            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
4578            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
4579            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
4580            DDL             =SIMP(statut='f',typ='TXM',max='**',
4581                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4582            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
4583            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4584          ),
4585
4586          LIAISON_GROUP   =FACT(statut='f',max='**',
4587            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
4588                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
4589                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
4590                              EXCLUS('GROUP_MA_1','NOEUD_2'),
4591                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
4592                              EXCLUS('GROUP_NO_1','MAILLE_2'),
4593                              EXCLUS('MAILLE_1','GROUP_NO_2'),
4594                              EXCLUS('MAILLE_1','NOEUD_2'),
4595                              EXCLUS('NOEUD_1','GROUP_MA_2'),
4596                              EXCLUS('NOEUD_1','MAILLE_2'),
4597                              EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
4598            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4599            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4600            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4601            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4602            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4603            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4604            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4605            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4606            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4607            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4608            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4609                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4610            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
4611            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4612                                  into=("TEMP","TEMP_INF","TEMP_SUP",) ),
4613            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
4614            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4615            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4616            TRAN            =SIMP(statut='f',typ='R',max='**'),
4617            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
4618            CENTRE          =SIMP(statut='f',typ='R',max='**'),
4619          ),
4620
4621          LIAISON_MAIL    =FACT(statut='f',max='**',
4622            regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
4623                    AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
4624                                'NOEUD_ESCL'),),
4625            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4626            MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4627            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4628            MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4629            GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4630            NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4631            TRAN            =SIMP(statut='f',typ='R',max='**' ),
4632            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**' ),
4633            CENTRE          =SIMP(statut='f',typ='R',max='**' ),
4634            ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
4635          ),
4636
4637          ECHANGE_PAROI   =FACT(statut='f',max='**',
4638            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
4639                    UN_PARMI('GROUP_MA_2','MAILLE_2'),),
4640            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4641            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4642            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4643            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4644            COEF_H          =SIMP(statut='f',typ='R'),
4645            TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
4646            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4647            CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
4648                          ),
4649
4650          LIAISON_UNIF    =FACT(statut='f',max='**',
4651            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4652            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4653            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4654            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4655            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4656            DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4657                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4658          ),
4659
4660          LIAISON_CHAMNO  =FACT(statut='f',max='**',
4661            CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno"
4662            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4663            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
4664          ),
4665
4666          CONVECTION      =FACT(statut='f',max='**',
4667            VITESSE         =SIMP(statut='o',typ=(cham_no_sdaster) ),
4668          ),
4669
4670
4671          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4672 )  ;
4673 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
4674 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4675 # ======================================================================
4676 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4677 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4678 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4679 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4680 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4681 #
4682 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4683 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4684 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4685 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4686 #
4687 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4688 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4689 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4690 # ======================================================================
4691 AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
4692                      fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)"
4693                          +" paramètres (temps, ...)",
4694                      reentrant='n',
4695             UIinfo={"groupes":("Modélisation",)},
4696       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE',
4697                           'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF',
4698                           'GRAD_TEMP_INIT','RAYONNEMENT'),),
4699          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
4700
4701          TEMP_IMPO       =FACT(statut='f',max='**',
4702            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
4703                    AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'),
4704                    PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),),
4705            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4706            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4707            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4708            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4709            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4710            EVOL_THER       =SIMP(statut='f',typ=(evol_ther) ),
4711            DDL             =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
4712            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4713            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4714            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4715          ),
4716          
4717          FLUX_REP        =FACT(statut='f',max='**',
4718            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4719                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4720                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),),
4721            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4722            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4723            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4724            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4725            FLUN_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4726            FLUN_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4727            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4728            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4729            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4730          ),
4731
4732          FLUX_NL         =FACT(statut='f',max='**',
4733            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4734                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4735            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4736            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4737            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4738            FLUN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4739          ), 
4740          
4741
4742          RAYONNEMENT     =FACT(statut='f',max='**',
4743            fr="Attention, exprimer les températures en Celsius si rayonnement",
4744            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4745                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4746            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4747            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4748            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4749            SIGMA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4750            EPSILON         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4751            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4752          ),
4753          
4754
4755
4756          ECHANGE         =FACT(statut='f',max='**',
4757            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4758                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4759                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
4760                    ENSEMBLE('COEF_H','TEMP_EXT'),
4761                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
4762                    ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
4763            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4764            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4765            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4766            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4767            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4768            COEF_H_INF      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4769            TEMP_EXT_INF    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4770            COEF_H_SUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4771            TEMP_EXT_SUP    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4772          ),
4773          
4774
4775          SOURCE          =FACT(statut='f',max='**',
4776            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4777            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4778            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4779            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4780            SOUR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4781          ),
4782          
4783          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
4784            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4785                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4786                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
4787            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4788            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4789            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4790            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4791            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4792            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4793          ),
4794          
4795          ECHANGE_PAROI   =FACT(statut='f',max='**',
4796            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
4797                         UN_PARMI('GROUP_MA_2','MAILLE_2'),),
4798            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4799            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4800            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4801            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4802            COEF_H          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4803            TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
4804            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4805            CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
4806          ),
4807
4808         LIAISON_DDL     =FACT(statut='f',max='**',
4809            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
4810            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
4811            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
4812            DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ),
4813            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
4814            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4815          ),
4816
4817          LIAISON_GROUP   =FACT(statut='f',max='**',
4818            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
4819                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
4820                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
4821                         EXCLUS('GROUP_MA_1','NOEUD_2'),
4822                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
4823                         EXCLUS('GROUP_NO_1','MAILLE_2'),
4824                         EXCLUS('MAILLE_1','GROUP_NO_2'),
4825                         EXCLUS('MAILLE_1','NOEUD_2'),
4826                         EXCLUS('NOEUD_1','GROUP_MA_2'),
4827                         EXCLUS('NOEUD_1','MAILLE_2'),
4828                         EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
4829            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4830            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4831            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4832            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4833            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4834            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4835            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4836            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4837            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4838            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4839            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4840                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4841            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
4842            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4843                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4844            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
4845            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4846            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4847            TRAN            =SIMP(statut='f',typ='R',max='**'),
4848            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
4849            CENTRE          =SIMP(statut='f',typ='R',max='**'),
4850          ),
4851
4852          LIAISON_UNIF    =FACT(statut='f',max='**',
4853            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4854            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4855            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4856            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4857            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4858            DDL             =SIMP(statut='f',typ='TXM',defaut="TEMP",
4859                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4860          ),
4861
4862          CONVECTION      =FACT(statut='f',max='**',
4863            VITESSE         =SIMP(statut='o',typ=cham_no_sdaster ),
4864          ),
4865
4866          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4867 )  ;
4868 #& MODIF COMMANDE  DATE 28/08/2006   AUTEUR CIBHHPD L.SALMONA 
4869 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4870 # ======================================================================
4871 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4872 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4873 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4874 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4875 # (AT YOUR OPTION) ANY LATER VERSION.
4876 #
4877 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4878 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4879 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4880 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4881 #
4882 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4883 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4884 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4885 # ======================================================================
4886 # RESPONSABLE VABHHTS J.PELLET
4887 AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
4888                    fr="Affecter des matériaux à des zones géométriques d'un maillage",
4889                          reentrant='n',
4890             UIinfo={"groupes":("Modélisation",)},
4891          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
4892          MODELE          =SIMP(statut='f',typ=modele_sdaster),
4893
4894          #  affectation du nom du matériau (par mailles):
4895          #  ----------------------------------------------
4896          AFFE            =FACT(statut='o',max='**',
4897            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4898            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4899            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4900            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4901            MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
4902            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
4903          ),
4904
4905          #  affectation du nom du matériau (par noeuds):
4906          #  ----------------------------------------------
4907          AFFE_NOEUD        =FACT(statut='f',max='**',
4908            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4909            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4910            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4911            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4912            MATER           =SIMP(statut='o',typ=mater_sdaster,max=1),
4913          ),
4914
4915          #  affectation des variables de commande :
4916          #  --------------------------------------------------
4917          # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
4918          LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("CORR","IRRA","HYDR","SECH","EPSA","M_ACIER","M_ZIRC","NEUT1","NEUT2")),
4919
4920          AFFE_VARC    =FACT(statut='f',max='**',
4921           regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4922                   PRESENT_ABSENT('GROUP_MA','TOUT'),
4923                   PRESENT_ABSENT('MAILLE','TOUT'),
4924                   UN_PARMI('EVOL','CHAMP_GD'),),
4925
4926           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut]
4927           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4928           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4929
4930           CHAMP_GD      =SIMP(statut='f',typ=cham_gd_sdaster,),
4931           B_CHAMP_GD    =BLOC(condition="CHAMP_GD!=None",
4932               NOM_VARC    =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC","EPSA","NEUT1","NEUT2")),
4933           ),
4934           EVOL            =SIMP(statut='f',typ=evol_sdaster,),
4935           B_EVOL          =BLOC(condition="EVOL!=None",
4936               NOM_VARC    =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC","EPSA","NEUT1","NEUT2")),
4937               B_NOM_CORR    =BLOC(condition="NOM_VARC=='CORR'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'CORR',),),
4938               B_NOM_IRRA    =BLOC(condition="NOM_VARC=='IRRA'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'IRRA',),),
4939               B_NOM_HYDR    =BLOC(condition="NOM_VARC=='HYDR'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'HYDR_ELNO_ELGA',),),
4940               B_NOM_SECH    =BLOC(condition="NOM_VARC=='SECH'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'TEMP',),),
4941               B_NOM_EPSA    =BLOC(condition="NOM_VARC=='EPSA'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'EPSA_ELNO',),),
4942               B_NOM_M_ACIER =BLOC(condition="NOM_VARC=='M_ACIER'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'META_ELNO_TEMP',),),
4943               B_NOM_M_ZIRC  =BLOC(condition="NOM_VARC=='M_ZIRC'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'META_ELNO_TEMP',),),
4944               B_NOM_NEUT1   =BLOC(condition="NOM_VARC=='NEUT1'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),),
4945               B_NOM_NEUT2   =BLOC(condition="NOM_VARC=='NEUT2'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),),
4946               PROL_DROITE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
4947               PROL_GAUCHE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
4948           ),
4949           VALE_REF          =SIMP(statut='f',typ='R'),
4950          ),
4951
4952          #  mots clés cachés pour les variables de commande NEUTi :
4953          #  -------------------------------------------------------
4954          VARC_NEUT1   =FACT(statut='d',
4955            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT1"),
4956            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
4957            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
4958            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")),
4959          ),
4960          VARC_NEUT2   =FACT(statut='d',
4961            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT2"),
4962            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
4963            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
4964            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")),
4965          ),
4966
4967          #  mots clés cachés pour variable de commande TEMP :
4968          #  --------------------------------------------------
4969          VARC_TEMP    =FACT(statut='d',
4970            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="TEMP"),
4971            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
4972            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4973            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4974          ),
4975
4976          #  mots clés cachés pour variable de commande SECH :
4977          #  --------------------------------------------------
4978          VARC_SECH    =FACT(statut='d',
4979            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="SECH"),
4980            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
4981            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4982            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)),
4983            VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
4984          ),
4985
4986          #  mots clés cachés pour variable de commande HYDR :
4987          #  --------------------------------------------------
4988          VARC_HYDR    =FACT(statut='d',
4989            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="HYDR"),
4990            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="HYDR_R"),
4991            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
4992            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
4993            VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
4994          ),
4995
4996          #  mots clés cachés pour variable de commande CORR :
4997          #  --------------------------------------------------
4998          VARC_CORR    =FACT(statut='d',
4999            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="CORR"),
5000            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="CORR_R"),
5001            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
5002            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
5003          ),
5004
5005          #  mots clés cachés pour variable de commande IRRA :
5006          #  --------------------------------------------------
5007          VARC_IRRA    =FACT(statut='d',
5008            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="IRRA"),
5009            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="IRRA_R"),
5010            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
5011            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
5012            VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
5013          ),
5014
5015          #  mots clés cachés pour variable de commande EPSA :
5016          #  --------------------------------------------------
5017          VARC_EPSA    =FACT(statut='d',
5018            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="EPSA"),
5019            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="EPSI_R"),
5020            CMP_GD          =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)),
5021            CMP_VARC        =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPSAXX","EPSAYY","EPSAZZ","EPSAXY","EPSAXZ","EPSAYZ",)),
5022            VALE_DEF        =SIMP(statut='c',typ='R',max=6,min=6,defaut=( 0.,    0.,    0.,    0.,    0.,    0.,   )),
5023          ),
5024          #  mots clés cachés pour variable de commande metallurgique ACIER :
5025          #  -----------------------------------------------------------------
5026          VARC_M_ACIER  =FACT(statut='d',
5027            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ACIER"),
5028            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
5029            CMP_GD          =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("V1","V2","V3","V4","V5","V6","V7")),
5030            CMP_VARC        =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE",
5031                                                                           "PMARTENS","TAUSTE","TRANSF","TACIER",)),
5032            VALE_DEF        =SIMP(statut='c',typ='R',max=7,min=7,defaut=( 0.,    0.,    0.,    0.,    0.,    0.,   0.    )),
5033          ),
5034          #  mots clés cachés pour variable de commande metallurgique ZIRCALOY :
5035          #  --------------------------------------------------------------------
5036          VARC_M_ZIRC  =FACT(statut='d',
5037            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ZIRC"),
5038            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
5039            CMP_GD          =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("V1","V2","V3")),
5040            CMP_VARC        =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("ALPHPUR","ALPHBETA","TZIRC",)),
5041            VALE_DEF        =SIMP(statut='c',typ='R',max=3,min=3,defaut=( 0.,    0.,    0.  )),
5042          ),
5043 )  ;
5044
5045
5046 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
5047 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5048 # ======================================================================
5049 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5050 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5051 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5052 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5053 # (AT YOUR OPTION) ANY LATER VERSION.
5054 #
5055 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5056 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5057 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5058 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5059 #
5060 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5061 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5062 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5063 # ======================================================================
5064 # RESPONSABLE JMBHH01 J.M.PROIX
5065 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
5066             UIinfo={"groupes":("Modélisation",)},
5067                  fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n',
5068          regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
5069          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
5070          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
5071          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ),
5072          AFFE_SOUS_STRUC =FACT(statut='f',
5073            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
5074            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5075            SUPER_MAILLE    =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
5076            PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
5077          ),
5078          AFFE            =FACT(statut='f',max='**',
5079            regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
5080            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5081            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5082            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5083            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5084            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5085            PHENOMENE       =SIMP(statut='o',typ='TXM',
5086                                  into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
5087                 b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
5088                                         fr="modélisations mécaniques",
5089                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
5090                                                                       "2D_DIS_T",
5091                                                                       "2D_DIS_TR",
5092                                                                       "2D_FLUI_ABSO",
5093                                                                       "2D_FLUI_PESA",
5094                                                                       "2D_FLUI_STRU",
5095                                                                       "2D_FLUIDE",
5096                                                                       "3D",
5097                                                                       "3D_ABSO",
5098                                                                       "3D_FAISCEAU",
5099                                                                       "3D_FLUI_ABSO",
5100                                                                       "3D_FLUIDE",
5101                                                                       "3D_INCO",
5102                                                                       "3D_SI",
5103                                                                       "3D_GRAD_EPSI",
5104                                                                       "3D_GRAD_VARI",
5105                                                                       "3D_XFEM",
5106                                                                       "AXIS",
5107                                                                       "AXIS_FLUI_STRU",
5108                                                                       "AXIS_FLUIDE",
5109                                                                       "AXIS_FOURIER",
5110                                                                       "AXIS_INCO",
5111                                                                       "AXIS_NS",
5112                                                                       "AXIS_SI",
5113                                                                       "AXIS_GRAD_VARI",
5114                                                                       "AXIS_JOINT",
5115                                                                       "AXIS_ELDI",
5116                                                                       "BARRE",
5117                                                                       "2D_BARRE",
5118                                                                       "C_PLAN",
5119                                                                       "C_PLAN_X",
5120                                                                       "C_PLAN_NS",
5121                                                                       "C_PLAN_SI",
5122                                                                       "C_PLAN_GRAD_EPSI",
5123                                                                       "C_PLAN_GRAD_VARI",
5124                                                                       "CABLE",
5125                                                                       "CABLE_POULIE",
5126                                                                       "COQUE_3D",
5127                                                                       "COQUE_AXIS",
5128                                                                       "COQUE_C_PLAN",
5129                                                                       "COQUE_D_PLAN",
5130                                                                       "D_PLAN",
5131                                                                       "D_PLAN_X",
5132                                                                       "D_PLAN_GRAD_EPSI",
5133                                                                       "D_PLAN_GRAD_VARI",
5134                                                                       "D_PLAN_NS",
5135                                                                       "PLAN_JOINT",
5136                                                                       "PLAN_ELDI",
5137                                                                       "D_PLAN_ABSO",
5138                                                                       "D_PLAN_INCO",
5139                                                                       "D_PLAN_SI",
5140                                                                       "DIS_T",
5141                                                                       "DIS_TR",
5142                                                                       "DKT",
5143                                                                       "DKTG",
5144                                                                       "DST",
5145                                                                       "FLUI_STRU",
5146                                                                       "GRILLE",
5147                                                                       "GRILLE_MEMBRANE",
5148                                                                       "POU_C_T",
5149                                                                       "POU_D_E",
5150                                                                       "POU_D_EM",
5151                                                                       "POU_D_T",
5152                                                                       "POU_D_T_GD",
5153                                                                       "POU_D_TG",
5154                                                                       "POU_D_TGM",
5155                                                                       "Q4G",
5156                                                                       "TUYAU_3M",
5157                                                                       "TUYAU_6M",
5158                                                                       "SHB8",
5159                                                                       "D_PLAN_HHM",
5160                                                                       "D_PLAN_HM",
5161                                                                       "D_PLAN_THH",
5162                                                                       "D_PLAN_THHM",
5163                                                                       "D_PLAN_THM",
5164                                                                       "D_PLAN_HHMD",
5165                                                                       "D_PLAN_HH2MD",
5166                                                                       "D_PLAN_HMD",
5167                                                                       "D_PLAN_THHD",
5168                                                                       "D_PLAN_THH2D",
5169                                                                       "D_PLAN_THVD",
5170                                                                       "D_PLAN_THH2MD",
5171                                                                       "D_PLAN_THHMD",
5172                                                                       "D_PLAN_THMD", 
5173                                                                       "D_PLAN_HHMS",
5174                                                                       "D_PLAN_HH2MS",
5175                                                                       "D_PLAN_HMS",
5176                                                                       "D_PLAN_THHS",
5177                                                                       "D_PLAN_THH2S",
5178                                                                       "D_PLAN_THVS",
5179                                                                       "D_PLAN_THH2MS",
5180                                                                       "D_PLAN_THHMS",
5181                                                                       "D_PLAN_THMS", 
5182                                                                       "D_PLAN_HM_P",
5183                                                                       "AXIS_THH",
5184                                                                       "AXIS_THHM",
5185                                                                       "AXIS_THM",
5186                                                                       "AXIS_HHM",
5187                                                                       "AXIS_HM",
5188                                                                       "AXIS_HH2MD",
5189                                                                       "AXIS_HHMD",
5190                                                                       "AXIS_HMD",
5191                                                                       "AXIS_THHD",
5192                                                                       "AXIS_THH2D",
5193                                                                       "AXIS_THVD",
5194                                                                       "AXIS_THHMD",
5195                                                                       "AXIS_THH2MD",
5196                                                                       "AXIS_THMD",
5197                                                                       "AXIS_HH2MS",
5198                                                                       "AXIS_HHMS",
5199                                                                       "AXIS_HMS",
5200                                                                       "AXIS_THHS",
5201                                                                       "AXIS_THH2S",
5202                                                                       "AXIS_THVS",
5203                                                                       "AXIS_THHMS",
5204                                                                       "AXIS_THH2MS",
5205                                                                       "AXIS_THMS",
5206                                                                       "3D_HHM" ,
5207                                                                       "3D_HM",
5208                                                                       "3D_THH",
5209                                                                       "3D_THV",
5210                                                                       "3D_THHM",
5211                                                                       "3D_THM",
5212                                                                       "3D_HHMD",
5213                                                                       "3D_HMD",
5214                                                                       "3D_THHD",
5215                                                                       "3D_THVD",
5216                                                                       "3D_THHMD",
5217                                                                       "3D_THMD",
5218                                                                       "3D_HHMS",
5219                                                                       "3D_HMS",
5220                                                                       "3D_THHS",
5221                                                                       "3D_THVS",
5222                                                                       "3D_THHMS",
5223                                                                       "3D_THMS",
5224                                                                       "3D_THH2MD",
5225                                                                       "3D_THH2MS",
5226                                                                       "3D_HH2MD",
5227                                                                       "3D_HH2MS",
5228                                                                       "3D_THH2S",
5229                                                                       "3D_THH2D",
5230                                                                      )  )  ),
5231
5232                 b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
5233                                         fr="modélisations thermiques",
5234                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
5235                                                                       "3D",
5236                                                                       "3D_DIAG",
5237                                                                       "AXIS",
5238                                                                       "AXIS_DIAG",
5239                                                                       "AXIS_FOURIER",
5240                                                                       "COQUE",
5241                                                                       "COQUE_AXIS",
5242                                                                       "COQUE_PLAN",
5243                                                                       "PLAN",
5244                                                                       "PLAN_DIAG",
5245                                                                       ),),),
5246
5247                 b_acoustique    =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
5248                                         fr="modélisations acoustiques",
5249                      MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
5250                                                                        "3D",
5251                                                                        "PLAN"
5252                                                                        ), ),),
5253
5254          ),
5255 ) ;
5256 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
5257 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5258 # ======================================================================
5259 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5260 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5261 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5262 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5263 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5264 #
5265 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5266 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5267 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5268 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5269 #
5270 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5271 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5272 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5273 # ======================================================================
5274 AIDE=PROC(nom="AIDE",op=42,
5275        UIinfo={"groupes":("Modélisation",)},
5276        fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples"
5277            +" (type d'éléments, option) disponibles dans la version.",
5278        regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
5279        UNITE       =SIMP(statut='f',typ='I',defaut=8),  
5280        TYPE_ELEM   =FACT(fr="couple type_elem option",statut='f',
5281          INITEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
5282                         ),
5283        CONCEPT     =FACT(statut='f',max='**',
5284          NOM          =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"),
5285          OPTION       =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE",
5286                                  into=("TOUT_TYPE","CREER","A_CREER",) ),
5287          ),
5288 ) ;
5289 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
5290 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5291 # ======================================================================
5292 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5293 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5294 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5295 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5296 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5297 #
5298 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5299 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5300 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5301 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5302 #
5303 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5304 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5305 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5306 # ======================================================================
5307 # RESPONSABLE VABHHTS J.PELLET
5308 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
5309                    fr="Assembler deux maillages pour en former un nouveau",
5310                    reentrant='n',
5311                    UIinfo={"groupes":("Maillage",)},
5312          MAILLAGE_1 =  SIMP(statut='o',typ=maillage_sdaster,),
5313          MAILLAGE_2 =  SIMP(statut='o',typ=maillage_sdaster,),
5314          OPERATION  =  SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),),
5315          b_collage  =  BLOC(condition = "OPERATION == 'COLLAGE'",
5316            COLLAGE  =  FACT(statut='o',
5317               GROUP_MA_1     =SIMP(statut='o',typ=grma),
5318               GROUP_MA_2     =SIMP(statut='o',typ=grma),
5319                              ),
5320                            ),
5321 )  ;
5322 #& MODIF COMMANDE  DATE 18/04/2005   AUTEUR NICOLAS O.NICOLAS 
5323 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5324 # ======================================================================
5325 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5326 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5327 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5328 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5329 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5330 #
5331 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5332 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5333 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5334 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5335 #
5336 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5337 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5338 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5339 # ======================================================================
5340 ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r,
5341                     fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée",
5342                     reentrant='n',
5343             UIinfo={"groupes":("Matrices/vecteurs",)},
5344          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
5345          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
5346          b_option     =BLOC(condition = "METHODE == 'CLASSIQUE'",
5347            OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ),
5348            ),
5349 )  ;
5350 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
5351 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5352 # ======================================================================
5353 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5354 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5355 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5356 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5357 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5358 #
5359 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5360 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5361 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5362 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5363 #
5364 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5365 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5366 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5367 # ======================================================================
5368 # RESPONSABLE VABHHTS J.PELLET
5369 def asse_matrice_prod(MATR_ELEM,**args):
5370   if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
5371   if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
5372   if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
5373   if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
5374   raise AsException("type de concept resultat non prevu")
5375
5376 ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
5377                   fr="Construction d'une matrice assemblée",reentrant='n',
5378             UIinfo={"groupes":("Matrices/vecteurs",)},
5379          MATR_ELEM       =SIMP(statut='o',
5380                                typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
5381          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster),
5382          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
5383          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
5384 )  ;
5385 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
5386 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5387 # ======================================================================
5388 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5389 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5390 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5391 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5392 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5393 #
5394 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5395 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5396 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5397 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5398 #
5399 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5400 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5401 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5402 # ======================================================================
5403 # RESPONSABLE VABHHTS J.PELLET
5404
5405 ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster,
5406                   fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n',
5407             UIinfo={"groupes":("Matrices/vecteurs",)},
5408          VECT_ELEM       =SIMP(statut='o',typ=vect_elem,max='**'),
5409          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
5410          INFO            =SIMP(statut='f',typ='I',into=(1,2,) ),
5411 )  ;
5412 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
5413 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5414 # ======================================================================
5415 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5416 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5417 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5418 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5419 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5420 #
5421 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5422 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5423 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5424 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5425 #
5426 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5427 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5428 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5429 # ======================================================================
5430 ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
5431                     fr="Projection des chargements sur la base modale d'une sous structure",
5432                     reentrant='n',
5433             UIinfo={"groupes":("Matrices/vecteurs",)},
5434          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
5435          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
5436          b_nume     =BLOC(condition = "METHODE == 'CLASSIQUE'",
5437              CHAR_SOUS_STRUC =FACT(statut='o',max='**',
5438              SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
5439              VECT_ASSE       =SIMP(statut='o',typ=cham_no_sdaster ),
5440            ),
5441          ),
5442 )  ;
5443 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
5444 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5445 # ======================================================================
5446 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5447 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5448 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5449 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5450 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5451 #
5452 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5453 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5454 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5455 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5456 #
5457 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5458 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5459 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5460 # ======================================================================
5461 CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
5462                      fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
5463                      reentrant='n',
5464             UIinfo={"groupes":("Résolution",)},
5465          ENER_SOL        =FACT(statut='o',
5466            regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
5467                    PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
5468 #  Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
5469                    PRESENT_PRESENT('KRX','KRY'),
5470                    PRESENT_PRESENT('KRX','KRZ'),
5471                    PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
5472                    PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
5473                    PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
5474            METHODE         =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
5475            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
5476            GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5477            GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5478            FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5479            COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
5480            KX              =SIMP(statut='o',typ='R' ),
5481            KY              =SIMP(statut='o',typ='R' ),
5482            KZ              =SIMP(statut='o',typ='R' ),
5483            KRX             =SIMP(statut='f',typ='R' ),
5484            KRY             =SIMP(statut='f',typ='R' ),
5485            KRZ             =SIMP(statut='f',typ='R' ),
5486            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
5487            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
5488            COOR_CENTRE     =SIMP(statut='f',typ='R',max=3),
5489          ),
5490          AMOR_INTERNE    =FACT(statut='o',
5491            ENER_POT        =SIMP(statut='o',typ=table_sdaster ),
5492            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
5493            AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
5494          ),
5495          AMOR_SOL        =FACT(statut='o',
5496            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
5497            FONC_AMOR_GEO   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
5498            HOMOGENE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5499            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
5500          ),
5501 )  ;
5502 #& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
5503 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5504 # ======================================================================
5505 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5506 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5507 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5508 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5509 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5510 #
5511 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5512 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5513 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5514 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5515 #
5516 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5517 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5518 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5519 # ======================================================================
5520 # RESPONSABLE JMBHH01 J.M.PROIX
5521
5522 CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem,
5523                     fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés",
5524                     reentrant='n',
5525             UIinfo={"groupes":("Post traitements",)},
5526          MODELE          =SIMP(statut='o',typ=modele_sdaster),
5527          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
5528          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
5529
5530          regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),),
5531          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5532          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5533          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5534
5535 #
5536 #
5537 #  introduire un mot cle de type modelisation : mécanique,thermique,...
5538 #
5539
5540          OPTION          =SIMP(statut='o',typ='TXM',
5541                                into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
5542                                      "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
5543                                      "COOR_ELGA"), ),
5544
5545          b_thermique  =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)",
5546            TEMP            =SIMP(statut='o',typ=(cham_no_sdaster,)),
5547          ),
5548
5549          b_acoustique  =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)",
5550            PRES            =SIMP(statut='o',typ=(cham_no_sdaster,)),
5551          ),
5552
5553
5554
5555          EXCIT           =FACT(statut='f',max='**',
5556                regles=(EXCLUS('FONC_MULT','COEF_MULT', ),),
5557                CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)),
5558                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5559                COEF_MULT       =SIMP(statut='f',typ='R'), ),
5560
5561          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
5562          ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
5563          NUME_COUCHE     =SIMP(statut='f',typ='I',defaut= 1),
5564          NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
5565          MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
5566          ANGLE           =SIMP(statut='f',typ='I',defaut= 0),
5567 )  ;
5568 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
5569 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5570 # ======================================================================
5571 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5572 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5573 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5574 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5575 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5576 #
5577 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5578 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5579 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5580 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5581 #
5582 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5583 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5584 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5585 # ======================================================================
5586 # RESPONSABLE VABHHTS J.PELLET
5587
5588 CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster,
5589                     fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
5590                     reentrant='n',
5591             UIinfo={"groupes":("Matrices/vecteurs",)},
5592          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
5593          CHAR_CINE       =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ),
5594          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
5595          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
5596 )  ;
5597 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
5598 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5599 # ======================================================================
5600 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5601 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5602 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5603 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5604 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5605 #
5606 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5607 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5608 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5609 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5610 #
5611 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5612 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5613 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5614 # ======================================================================
5615 def calc_char_seisme_prod(MATR_MASS,**args ):
5616   if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster
5617   raise AsException("type de concept resultat non prevu")
5618
5619 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
5620                       reentrant='n',fr="Calcul du chargement sismique",
5621             UIinfo={"groupes":("Matrices/vecteurs",)},
5622          regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
5623          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
5624          DIRECTION       =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"),
5625          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),         
5626          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
5627          b_mode_stat     =BLOC ( condition = "MODE_STAT != None",
5628            regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
5629            NOEUD           =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
5630            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5631          ),
5632          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
5633 )  ;
5634 #& MODIF COMMANDE  DATE 07/11/2006   AUTEUR CIBHHLV L.VIVAN 
5635 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5636 # ======================================================================
5637 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5638 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5639 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5640 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5641 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5642 #
5643 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5644 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5645 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5646 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5647 #
5648 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5649 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5650 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5651 # ======================================================================
5652 # RESPONSABLE JMBHH01 J.M.PROIX
5653 def calc_elem_prod(RESULTAT,**args):
5654    if AsType(RESULTAT) != None : return AsType(RESULTAT)
5655    raise AsException("type de concept resultat non prevu")
5656
5657 CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
5658             UIinfo={"groupes":("Post traitements",)},
5659             fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )",
5660      MODELE          =SIMP(statut='f',typ=modele_sdaster),
5661      CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
5662      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
5663
5664      RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
5665                                 mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,
5666                                 evol_noli,mult_elas,fourier_elas,fourier_ther,
5667                                 evol_ther,base_modale,
5668                                 acou_harmo,mode_acou,mode_flamb) ,
5669                 fr="Résultat d'une commande globale"),
5670                                            
5671      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
5672                     'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
5673              CONCEPT_SENSIBLE("SEPARE"),
5674              DERIVABLE('RESULTAT'),),
5675      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5676      NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5677      NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5678      NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
5679      NOM_CAS         =SIMP(statut='f',typ='TXM' ),
5680
5681      INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5682      FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5683      LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
5684      LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
5685      PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
5686      CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
5687      LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
5688      
5689      TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5690      GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
5691                            fr="le calcul ne sera effectué que sur ces mailles là"),
5692      MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
5693                            fr="le calcul ne sera effectué que sur ces mailles là"),
5694
5695 #    definition d'un repere local 
5696
5697      REPE_COQUE      =FACT(statut='f',max='**',
5698                            fr="définiton du lieu de post-traitement",
5699                            regles=EXCLUS('ANGL_REP','VECTEUR'),
5700           TOUT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5701           GROUP_MA     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',),
5702           MAILLE       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',),
5703
5704           NUME_COUCHE  =SIMP(statut='f',typ='I',defaut= 1,
5705                              fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ),
5706           NIVE_COUCHE  =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
5707                              fr="position dans l'épaisseur de la coque, ou de la couche" ),
5708
5709           ANGLE        =SIMP(statut='f',typ='I',defaut= 0,
5710                              fr="angle de dépouillement pour les tuyaux, en degres à partir de la génératrice" ),
5711
5712           PLAN         =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"),
5713                                fr="Plan de calcul pour les plaques excentrées" ),
5714
5715           ANGL_REP     =SIMP(statut='f',typ='R',min=2,max=2,
5716                            fr="définition du repere de post-traitement, par défaut ANGL_REP=(0.,0.)"),
5717           VECTEUR      =SIMP(statut='f',typ='R',min=3,max=3,
5718                            fr="définition du repere de post-traitement, par défaut VECTEUR=(1.,0.,0.)"),
5719                             ),
5720
5721 #    options pour des resultats lineaires 
5722
5723      b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\
5724                                                                mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\
5725                                                                mult_elas,fourier_elas,base_modale,mode_flamb)",
5726                                                                fr="options mecaniques lineaires",
5727           TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires",
5728                            into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES",
5729                                  "INDI_ERREUR","AUTRES","TOUTES"),
5730                            ),
5731           b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
5732                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA",
5733                               #  contraintes
5734                            into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
5735                                   "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART",
5736                                   "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO","ARCO_ELNO_SIGM",
5737                               # déformations
5738                                  "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL",
5739                                  "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",
5740                                  "EPVC_ELNO","EPVC_ELGA",
5741                               #  ENER    
5742                                  "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
5743                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",
5744                               #  estimateurs erreur 
5745                                  "SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM",
5746                                  "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM",
5747                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5748                                  "SING_ELEM","SING_ELNO_ELEM",
5749                               #  CRIT    
5750                                  "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT",
5751                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5752                                  "ENDO_ELGA","ENDO_ELNO_ELGA",
5753                                  "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5754                               #  derivees    
5755                                  "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI",
5756                               #  autres      
5757                                  "VNOR_ELEM_DEPL","VALE_NCOU_MAXI","PRES_DBEL_DEPL"),),
5758
5759                NOM_CHAM  =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ),
5760                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI",  ),
5761               
5762                 b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5763                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5764                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5765                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5766                     RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
5767
5768                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5769                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5770                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1.,
5771                                   fr="precision demandee pour calculer la carte de taille des elements"),),   
5772                
5773                EXCIT           =FACT(statut='f',max='**',
5774                                      fr="Charges contenant les températures, les efforts répartis pour les poutres...",
5775                                      regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5776                     CHARGE          =SIMP(statut='o',typ=char_meca ),
5777                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5778                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5779                     COEF_MULT       =SIMP(statut='f',typ='R'),
5780                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5781                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5782                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5783                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5784                 
5785                                 
5786                             ),
5787 #             fin bloc b_toutes
5788
5789           b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
5790                                      fr="options de contraintes elasticite 2D et 3D",
5791               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
5792                             fr="option de calcul des contraintes",
5793                            into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),),
5794                            
5795                     b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \
5796                                       (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION ) or \
5797                                       (type(OPTION)==type(()) and  'SIEF_ELGA_DEPL' in OPTION ) ",
5798                                       fr="charge contenant les temperatures ou autre charge",
5799                          EXCIT           =FACT(statut='f',max='**',
5800                          CHARGE          =SIMP(statut='o',typ=char_meca ),),
5801                                     ),
5802                                   ),
5803                                   
5804           b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
5805                                       fr="options de contraintes elasticite poutres, coques, tuyaux",
5806                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
5807                             fr="option de calcul des contraintes ou efforts generalises",
5808                             into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO",
5809                                    "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART",
5810                                    "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),),
5811                            
5812                b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\
5813                                                        'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \
5814                                             (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION ) or \
5815                                             (type(OPTION)==type(()) and  'SIEF_ELGA_DEPL' in OPTION ) or \
5816                                             (type(OPTION)==type(()) and  'SIPO_ELNO_DEPL' in OPTION ) or \
5817                                             (type(OPTION)==type(()) and  'EFGE_ELNO_DEPL' in OPTION ) ",
5818                                             fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre",
5819                     EXCIT           =FACT(statut='f',max='**',
5820                                           regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5821                          CHARGE          =SIMP(statut='f',typ=char_meca ),
5822                          FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5823                          FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5824                          COEF_MULT       =SIMP(statut='f',typ='R'),
5825                          COEF_MULT_C     =SIMP(statut='f',typ='C'),
5826                          PHAS_DEG        =SIMP(statut='f',typ='R'),
5827                          PUIS_PULS       =SIMP(statut='f',typ='I'),
5828                          TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5829                              ),
5830                           
5831                                  
5832                             ),
5833 #          fin bloc contraintes struct
5834
5835           b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
5836                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5837                            into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL",
5838                                  "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO","EPVC_ELNO","EPVC_ELGA",),
5839                                  ),
5840 b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \
5841                                       (type(OPTION)==type(()) and  'EPSI_ELNO_DEPL' in OPTION ) or \
5842                                       (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION ) or \
5843                                       (type(OPTION)==type(()) and  'EPSI_ELGA_DEPL' in OPTION ) or \
5844                                       (type(OPTION)==type(()) and  'EPME_ELNO_DEPL' in OPTION ) or \
5845                                       (type(OPTION)==type(()) and  'EPME_ELGA_DEPL' in OPTION ) ",
5846                                       fr="charge contenant les temperatures",
5847                     EXCIT           =FACT(statut='f',max='**',
5848                          CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5849                                  ),
5850                                        ),
5851           b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
5852                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5853                            into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
5854                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",),
5855                                  ),
5856                b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \
5857                                       (type(OPTION)==type(()) and  'EPOT_ELEM_DEPL' in OPTION ) or \
5858                                       (type(OPTION)==type(()) and  'ENEL_ELGA' in OPTION ) or \
5859                                       (type(OPTION)==type(()) and  'ENEL_ELNO_ELGA' in OPTION ) or \
5860                                       (type(OPTION)==type(()) and  'ECIN_ELEM_DEPL' in OPTION ) ",
5861                                       fr="charge contenant les temperatures",
5862                     EXCIT           =FACT(statut='f',max='**',
5863                          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),),
5864                               ),
5865                                  ),
5866                                  
5867           b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
5868                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5869                            into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
5870                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5871                                  "ENDO_ELGA","ENDO_ELNO_ELGA",
5872                                  "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5873                                  ) ),
5874                 EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5875                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5876                                  ),
5877                                  
5878           b_derivees         =BLOC( condition = "TYPE_OPTION=='DERIVEES'",
5879                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5880                            into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI",
5881                                  ) ),),
5882
5883           b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
5884                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5885                            into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","VNOR_ELEM_DEPL",
5886                                  ) ),
5887                b_maxi    =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
5888                                 (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
5889                     NOM_CHAM  =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
5890                     NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
5891                                  ),
5892
5893           b_indi_erreur        =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
5894                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
5895                            into=("SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM",
5896                                  "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM",
5897                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5898                                  "SING_ELEM","SING_ELNO_ELEM",
5899                                  )),
5900                
5901                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5902                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5903                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5904                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5905                     RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
5906
5907                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5908                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5909                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
5910                                   fr="precision demandee pour calculer la carte de taille des elements" ),),     
5911
5912                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5913                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5914                                  ),
5915                                  ),
5916 #    fin bloc lineaire                                
5917                             
5918                                  
5919 #    statique ou dynamique non lineaire : evol_noli                                
5920      b_noli          =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli",
5921           TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',
5922                            into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT",
5923                                  "VARI","INDI_ERREUR","TOUTES","AUTRES"),
5924                           ),
5925           b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
5926                OPTION      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5927                            into=( "SIEF_ELNO_ELGA",
5928                                   "SIGM_ELNO_TUYO","SIGM_ELNO_COQU","ARCO_ELNO_SIGM",
5929                                   "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART",
5930                                   # EPSI
5931                                   "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
5932                                  "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
5933                                  "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",
5934                                  "EPSP_ELNO","EPSP_ELGA",
5935                                  "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA",
5936                                  "EPFP_ELNO","EPFP_ELGA", 
5937                                  "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT",
5938                                  "EXTR_ELGA_VARI","EXTR_ELNO_VARI",
5939                                  # CRIT
5940                                  "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5941                                  "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
5942                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5943                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5944                                  "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
5945                                  "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM",
5946                                  "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO",
5947                                  "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA",
5948                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"),
5949                                ),
5950                NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
5951                                  into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"),
5952                                  fr="Type de norme pour les options RADI_ et DCHA_"),
5953                                  
5954                NOM_CHAM  =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"),
5955                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),
5956                
5957                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5958                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5959                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5960                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5961                     RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),),
5962
5963                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5964                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5965                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
5966                                   fr="precision demandee pour calculer la carte de taille des elements" ),),     
5967
5968                
5969                b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')",
5970                              NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
5971                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
5972                                "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
5973                                "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),),
5974                             ),
5975                EXCIT           =FACT(statut='f',max='**',
5976                                       regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5977                     CHARGE          =SIMP(statut='o',typ=char_meca ),
5978                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5979                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5980                     COEF_MULT       =SIMP(statut='f',typ='R'),
5981                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5982                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5983                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5984                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5985                          ),
5986                          
5987           b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
5988                                       fr="options de contraintes non lin 2D et 3D",
5989                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5990                               #  contraintes
5991                            into=( "SIEF_ELNO_ELGA",),),
5992                             ),
5993                             
5994           b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
5995                                        fr="options de contraintes non lin poutres, coques",
5996                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5997                               #  contraintes
5998                            into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU",
5999                            "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),),
6000                              ),
6001                              
6002           b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
6003                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6004                            into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
6005                                  "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
6006                                  "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO_DEPL","EPVC_ELNO","EPVC_ELGA",
6007                                  "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA"),
6008                                  ),
6009                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
6010                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
6011                                  ),
6012          b_epstuyo       =BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \
6013                                   (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION) ",
6014               EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
6015                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
6016                                ),
6017                                  
6018           b_vari         =BLOC( condition = "TYPE_OPTION=='VARI'",
6019                                        fr="Calcul et extraction des variables internes",
6020                    OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6021                                    into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU",
6022                                          "EXTR_ELGA_VARI","EXTR_ELNO_VARI"),
6023                                  ),
6024           b_extr         =BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')",
6025                    NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
6026                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
6027                                "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
6028                                "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),),
6029                             ),
6030                            ),
6031                               
6032           b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
6033                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6034                            into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",),
6035                                  ),
6036                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
6037                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
6038                                  ),
6039                                  
6040           b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
6041                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6042                            into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
6043                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
6044                                  "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT",
6045                                  "ENDO_ELGA","ENDO_ELNO_ELGA",
6046                                  "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
6047                                  ) ),
6048                                  ),
6049                                  
6050           b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
6051                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6052                            into=("VALE_NCOU_MAXI",) ),
6053                b_maxi    =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
6054                                 (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
6055                     NOM_CHAM  =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
6056                     NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
6057                                  ),
6058
6059
6060           b_indi_erreur         =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
6061                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
6062                            into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
6063                                  "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
6064                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
6065                                  "SING_ELEM","SING_ELNO_ELEM",) ),
6066                
6067                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
6068                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
6069                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
6070                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
6071                 RESU_DUAL    =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")),
6072
6073                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
6074                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
6075                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
6076                                   fr="precision demandee pour calculer la carte de taille des elements" ),), 
6077                
6078                b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\
6079                                             (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\
6080                                             (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\
6081                                             (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\
6082                                             (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ",
6083                     NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
6084                                  into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
6085                                  ),
6086                                  ),
6087                                  ),
6088 #          fin bloc evol_noli
6089
6090 #           thermique : evol_ther, fourier_ther                                
6091      b_ther          =BLOC( condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,fr="options thermiques",
6092           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6093                            into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
6094                                   "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META",
6095                                   "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),),
6096                EXCIT           =FACT(statut='f',max='**',
6097                     regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
6098                     CHARGE          =SIMP(statut='o',typ=char_ther ),
6099                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6100                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
6101                     COEF_MULT       =SIMP(statut='f',typ='R'),
6102                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
6103                     PHAS_DEG        =SIMP(statut='f',typ='R'),
6104                     PUIS_PULS       =SIMP(statut='f',typ='I'),
6105                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),
6106                                      ),
6107                                  ),
6108                                  
6109 #    acoustique                                
6110      b_acou          =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
6111           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6112                            into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
6113                                  "INTE_ELNO_ACTI","INTE_ELNO_REAC",
6114                                  ),),
6115           EXCIT           =FACT(statut='f',max='**',
6116                 regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
6117                 CHARGE          =SIMP(statut='o',typ=char_acou ),
6118                 FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6119                 FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
6120                 COEF_MULT       =SIMP(statut='f',typ='R'),
6121                 COEF_MULT_C     =SIMP(statut='f',typ='C'),
6122                 PHAS_DEG        =SIMP(statut='f',typ='R'),
6123                 PUIS_PULS       =SIMP(statut='f',typ='I'),
6124                 TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
6125                                  ),
6126              
6127      SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
6128                            fr="Liste des paramètres de sensibilité.",
6129                            ang="List of sensitivity parameters"),
6130      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
6131      TITRE           =SIMP(statut='f',typ='TXM',max='**'),
6132 ) ;
6133 #& MODIF COMMANDE  DATE 31/07/2007   AUTEUR SALMONA L.SALMONA 
6134 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6135 # ======================================================================
6136 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6137 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6138 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6139 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6140 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6141 #
6142 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6143 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6144 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6145 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6146 #
6147 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6148 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6149 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6150 # ======================================================================
6151 def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
6152   if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem
6153   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem
6154   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster
6155   raise AsException("type de calcul non prevu")
6156
6157 CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
6158                   fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique"
6159                       +" dans lequel le cisaillement est maximal.",
6160             UIinfo={"groupes":("Post traitements",)},
6161
6162          TYPE_CALCUL = SIMP(statut='o',typ='TXM',
6163                                into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ),
6164
6165          b_cumul_domma   =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'",
6166                                fr="Calcul d un champ de dommage subi par une structure.",
6167            regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
6168            OPTION          =SIMP(statut='o',typ='TXM',
6169                                  into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
6170                                        "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
6171                                        "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
6172            HISTOIRE        =FACT(statut='o',
6173              RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
6174                                                    evol_noli) ),
6175              EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
6176                                  into=("VMIS_SG","INVA_2_SG") ),
6177            ),
6178            DOMMAGE         =SIMP(statut='o',typ='TXM',
6179                                into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
6180                                      "TAHERI_MIXTE",) ),
6181            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
6182            TAHERI_NAPPE    =SIMP(statut='f',typ=(nappe_sdaster,formule) ),
6183            TAHERI_FONC     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
6184          ),
6185
6186          b_fatigue_multi   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
6187                                  fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.",
6188            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
6189            TYPE_CHARGE   =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ),
6190            OPTION        =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ),
6191            RESULTAT      =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
6192            MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster ),
6193            CHAM_MATER    =SIMP(statut='o',typ=(cham_mater) ),
6194            GROUP_MA      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
6195            MAILLE        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**' ),
6196            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ),
6197            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**' ),
6198            COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0),
6199            b_period       =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'",
6200                CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","VMIS_TRESCA") ),
6201                b_fati_p  =BLOC(condition = "(CRITERE == 'MATAKE_MODI_AC' or CRITERE == 'DANG_VAN_MODI_AC')",
6202                    METHODE       =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
6203                ),
6204            ),
6205            b_non_period   =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'",
6206                CRITERE       =SIMP(statut='o',typ='TXM',
6207                                    into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","VMIS_TRESCA") ),
6208                b_fati_np  =BLOC(condition = 
6209                                "(CRITERE == 'MATAKE_MODI_AV' or CRITERE == 'DANG_VAN_MODI_AV' or CRITERE == 'FATESOCI_MODI_AV')",
6210                    PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
6211                    DELTA_OSCI    =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
6212                ),
6213            ),
6214          ),
6215
6216          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
6217 )  ;
6218 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
6219 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6220 # ======================================================================
6221 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6222 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6223 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6224 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6225 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6226 #
6227 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6228 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6229 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6230 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6231 #
6232 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6233 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6234 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6235 # ======================================================================
6236 CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
6237                     reentrant='n',
6238                     fr="Calculer les paramètres modaux d'une structure soumise à un écoulement",
6239             UIinfo={"groupes":("Matrices/vecteurs",)},
6240          VITE_FLUI       =FACT(statut='f',
6241                                fr="Définir la plage de vitesse fluide étudiée",
6242            VITE_MIN        =SIMP(statut='f',typ='R' ),
6243            VITE_MAX        =SIMP(statut='f',typ='R' ),
6244            NB_POIN         =SIMP(statut='f',typ='I' ),
6245          ),
6246          BASE_MODALE     =FACT(statut='o',
6247                                
6248            regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),),
6249            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
6250            NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
6251            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
6252            AMOR_UNIF       =SIMP(statut='f',typ='R',val_min=0.E+00 ),
6253            AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
6254          ),
6255          TYPE_FLUI_STRU  =SIMP(statut='o',typ=type_flui_stru ),
6256          IMPRESSION      =FACT(statut='f',
6257                                fr="Choix des informations à imprimer dans le fichier RESULTAT",
6258            PARA_COUPLAGE   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6259            DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6260          ),
6261 )  ;
6262 #& MODIF COMMANDE  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
6263 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6264 # ======================================================================
6265 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6266 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6267 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6268 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6269 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6270 #
6271 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6272 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6273 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6274 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6275 #
6276 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6277 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6278 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6279 # ======================================================================
6280 def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args):
6281    if   AsType(FONCTION) == nappe_sdaster:
6282       return nappe_sdaster
6283    elif AsType(FONCTION) == fonction_sdaster:
6284       return fonction_sdaster
6285    elif AsType(FONCTION) == fonction_c:
6286       return fonction_c
6287    elif AsType(FONCTION) == formule:
6288       if NOM_PARA_FONC != None:
6289          return nappe_sdaster
6290       return fonction_sdaster
6291    elif AsType(FONCTION) == para_sensi:
6292       return para_sensi
6293    raise AsException("type de concept resultat non prevu")
6294
6295 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod,
6296                       docu="U4.32.01-e",reentrant='n',
6297            fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables",
6298            UIinfo={"groupes":("Fonction",)},
6299          regles=(UN_PARMI('VALE_PARA','LIST_PARA'),),
6300          FONCTION        =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ),
6301          VALE_PARA       =SIMP(statut='f',typ='R',max='**'),
6302          LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
6303          NOM_RESU        =SIMP(statut='f',typ='TXM'),
6304          NOM_PARA        =SIMP(statut='f',typ='TXM'),
6305          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
6306          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6307          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6308          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM'),
6309          b_eval_nappe    =BLOC(condition = "NOM_PARA_FONC != None",             
6310             regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),),
6311             VALE_PARA_FONC  =SIMP(statut='f',typ='R',max='**'),
6312             LIST_PARA_FONC  =SIMP(statut='f',typ=listr8_sdaster ),
6313             INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")),
6314             PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6315             PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
6316          ),
6317          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
6318          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
6319 )  ;
6320 #& MODIF COMMANDE  DATE 07/11/2006   AUTEUR DURAND C.DURAND 
6321 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6322 # ======================================================================
6323 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6324 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6325 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6326 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6327 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6328 #
6329 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6330 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6331 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6332 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6333 #
6334 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6335 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6336 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6337 # ======================================================================
6338 # RESPONSABLE MCOURTOI M.COURTOIS
6339 from Macro.calc_fonction_ops import calc_fonction_ops
6340 def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C,
6341                        ENVELOPPE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,
6342                        LISS_ENVELOP,ABS, **args):
6343
6344    if (INTEGRE     != None): return fonction_sdaster
6345    if (DERIVE      != None): return fonction_sdaster
6346    if (INVERSE     != None): return fonction_sdaster
6347    if (COMB        != None): 
6348       type_vale=AsType(COMB[0]['FONCTION'])
6349       for mcfact in COMB :
6350           if(AsType(mcfact['FONCTION'])!=type_vale):
6351              raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction")
6352       return type_vale
6353    if (COMB_C      != None):
6354       vale=COMB_C[0]['FONCTION']
6355       if(AsType(vale) == nappe_sdaster):
6356          for mcfact in COMB_C[1:] :
6357              if(AsType(mcfact['FONCTION'])!=nappe_sdaster):
6358                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
6359          return nappe_sdaster
6360       else:
6361          for mcfact in COMB_C :
6362              if(AsType(mcfact['FONCTION'])==nappe_sdaster):
6363                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
6364          return fonction_c
6365    if (ENVELOPPE   != None): return AsType(ENVELOPPE[0]['FONCTION'])
6366    if (EXTRACTION  != None): return fonction_sdaster
6367    if (SPEC_OSCI   != None): return nappe_sdaster
6368    if (COMPOSE     != None): return fonction_sdaster
6369    if (ASSE        != None): return fonction_sdaster
6370    if (FFT         != None):
6371       vale=FFT[0]['FONCTION']
6372       if (AsType(vale) == fonction_sdaster )  : return fonction_c
6373       if (AsType(vale) == fonction_c) : return fonction_sdaster
6374    if (CORR_ACCE   != None): return fonction_sdaster
6375    if (LISS_ENVELOP!= None): return nappe_sdaster
6376    if (PUISSANCE   != None): return AsType(PUISSANCE[0]['FONCTION'])
6377    if (ABS         != None): return fonction_sdaster
6378    raise AsException("type de concept resultat non prevu")
6379
6380 CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod
6381                     ,fr="Effectue des opérations mathématiques sur des concepts de type fonction",
6382                      reentrant='n',
6383             UIinfo={"groupes":("Fonction",)},
6384          regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE',
6385                           'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
6386                           'LISS_ENVELOP','INVERSE','ABS'),),
6387          FFT             =FACT(statut='f',fr="Transformée de Fourier ou de son inverse",
6388            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ),
6389            METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ),
6390            b_syme          =BLOC ( condition = " AsType(FONCTION)==fonction_c ",
6391              SYME           =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),  
6392            ),
6393          ),
6394          DERIVE          =FACT(statut='f',fr="Dérivée d une fonction",
6395            METHODE         =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
6396            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
6397          ),
6398          INTEGRE         =FACT(statut='f',fr="Intégrale d'une fonction",
6399            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
6400            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
6401            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
6402          ),
6403          LISS_ENVELOP    = FACT(statut='f',fr="Lissage d une enveloppe",
6404            NAPPE           =SIMP(statut='o',typ=nappe_sdaster ),
6405            FREQ_MIN        =SIMP(statut='f',typ='R',defaut =0.2),
6406            FREQ_MAX        =SIMP(statut='f',typ='R',defaut =35.5),
6407            ELARG           =SIMP(statut='f',typ='R',defaut =0.1 ),
6408            TOLE_LISS       =SIMP(statut='f',typ='R',defaut =0.25 ),
6409          ),
6410          SPEC_OSCI       =FACT(statut='f',fr="Spectre d'oscillateur",
6411            METHODE         =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
6412            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
6413            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
6414            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
6415            FREQ            =SIMP(statut='f',typ='R',max='**'),
6416            NORME           =SIMP(statut='o',typ='R',fr="Valeur de la norme du spectre d oscillateur" ),
6417            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
6418            NATURE_FONC     =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
6419          ),
6420          ABS             =FACT(statut='f',fr="Valeur absolue d'une fonction",
6421            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,),
6422          ),
6423          COMB            =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions",
6424            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
6425            COEF            =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
6426          ),
6427          COMB_C          =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions",
6428            regles=(UN_PARMI('COEF_R','COEF_C'),),
6429            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ),
6430            COEF_R          =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
6431            COEF_C          =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
6432          ),
6433          b_comb          =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
6434              LIST_PARA      =SIMP(statut='f',typ=listr8_sdaster ),  
6435          ),
6436          COMPOSE         =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)",
6437            FONC_RESU       =SIMP(statut='o',typ=fonction_sdaster),
6438            FONC_PARA       =SIMP(statut='o',typ=fonction_sdaster),
6439          ),
6440          EXTRACTION      =FACT(statut='f',fr="Extraction sur une fonction complexe",
6441            FONCTION        =SIMP(statut='o',typ=fonction_c),
6442            PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"),
6443          ),
6444          ENVELOPPE       =FACT(statut='f',fr="Enveloppe d une famille de fonctions",
6445            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
6446            CRITERE         =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
6447          ),
6448          ASSE            =FACT(statut='f',fr="Concatenation de fonctions",
6449            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ),
6450            SURCHARGE       =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
6451          ),
6452          CORR_ACCE     =FACT(statut='f',fr="Correction d un accelerogramme reel",
6453             CORR_DEPL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
6454             FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
6455          ),
6456          PUISSANCE       =FACT(statut='f',fr="Fonction élevée à une puissance",
6457             FONCTION      =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ),
6458             EXPOSANT      =SIMP(statut='f', typ='I', defaut=1 ),
6459          ),
6460          INVERSE         =FACT(statut='f',fr="Inverse d'une fonction",
6461             FONCTION      =SIMP(statut='o', typ=fonction_sdaster),
6462          ),     
6463          NOM_PARA        =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
6464          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
6465          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
6466          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6467          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6468          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
6469          INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
6470          PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6471          PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
6472          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
6473 )
6474 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
6475 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6476 # ======================================================================
6477 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6478 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6479 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6480 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6481 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6482 #
6483 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6484 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6485 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6486 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6487 #
6488 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6489 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6490 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6491 # ======================================================================
6492 CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
6493                    fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure"
6494                        +" en analyse sismique",
6495                    reentrant ='n',
6496             UIinfo={"groupes":("Matrices/vecteurs",)},
6497
6498         regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
6499                 PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
6500                 UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
6501                 UN_PARMI('MONO_APPUI','MODE_STAT')),
6502
6503          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
6504          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
6505          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6506          CHARGE          =SIMP(statut='o',typ=char_ther ),
6507          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
6508          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
6509          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
6510          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
6511          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6512          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6513          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
6514          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6515
6516          DIRECTION       =SIMP(statut='o',typ='R',max=3),
6517          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
6518          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6519          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6520          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
6521
6522          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
6523
6524          SOLVEUR         =FACT(statut='d',
6525            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
6526            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
6527              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
6528            ),
6529            b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
6530              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
6531            ),
6532            b_ldlt_mult     =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
6533                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
6534              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
6535              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6536            ),
6537            b_gcpc          =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
6538              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
6539              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
6540              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6541              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6542              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
6543            ),
6544                            ),
6545
6546            ) ;
6547 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR REZETTE C.REZETTE 
6548 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6549 # ======================================================================
6550 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
6551 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6552 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6553 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6554 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6555 #                                                                       
6556 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
6557 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
6558 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
6559 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
6560 #                                                                       
6561 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
6562 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
6563 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
6564 # ======================================================================
6565 CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster,
6566             fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité"
6567                         +" et les facteurs d'intensité de contraintes.",
6568                     reentrant='f',
6569             UIinfo={"groupes":("Post traitements",)},
6570          regles=(EXCLUS('COMP_ELAS','COMP_INCR'),
6571                  CONCEPT_SENSIBLE("ENSEMBLE"),
6572                  REUSE_SENSIBLE(),
6573                  DERIVABLE('RESULTAT'),
6574                  EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
6575                            'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),),
6576
6577          THETA          =FACT(statut='o',
6578            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),),
6579            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,max=1),
6580            FISSURE         =SIMP(statut='f',typ=fiss_xfem,max=1),
6581            regles=(EXCLUS('FOND_FISS','FISSURE'),),
6582          b_theta        =BLOC(condition="THETA == None",fr="calcul de theta",
6583             regles=(UN_PARMI('R_INF','R_INF_FO'),
6584                  EXCLUS('MODULE','MODULE_FO'),
6585                  PRESENT_PRESENT('R_INF','R_SUP'),
6586                  PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
6587              NUME_FOND        =SIMP(statut='f',typ='I',defaut=1),
6588              R_INF           =SIMP(statut='f',typ='R'),
6589              R_SUP           =SIMP(statut='f',typ='R'),
6590              MODULE          =SIMP(statut='f',typ='R'),
6591              DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
6592              DIRECTION       =SIMP(statut='f',typ='R',max='**'),
6593              R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6594              R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),             
6595              MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6596              ),
6597             ),
6598
6599          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
6600
6601          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6602          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6603          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
6604          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6605          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
6606          TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6607          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6608          LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
6609          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
6610          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6611            
6612          b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
6613            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
6614            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
6615          ),
6616         
6617          EXCIT           =FACT(statut='f',max='**',
6618                CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
6619                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6620                TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
6621          ),
6622          SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
6623  
6624          COMP_ELAS       =FACT(statut='f',
6625                RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
6626                                      into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
6627                ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
6628                ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
6629                ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
6630                DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
6631       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6632                TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6633                GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6634                MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6635          ),  
6636          COMP_INCR       =FACT(statut='f',
6637                RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
6638                                      into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
6639                ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
6640                VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
6641                VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
6642                DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
6643       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6644                TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6645                GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6646                MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6647          ),
6648          ETAT_INIT       =FACT(statut='f',
6649            SIGM            =SIMP(statut='f',typ=cham_elem),
6650            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
6651          ),
6652           
6653          LISSAGE         =FACT(statut='d',
6654            DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
6655            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
6656            LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE",
6657                                  "LAGRANGE_NO_NO","LAGRANGE_REGU"),),
6658          ),
6659
6660          OPTION          =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G',
6661               into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI",
6662                     "G_BILI_GLOB","G_LAGR","G_LAGR_GLOB","CALC_K_MAX"),),
6663
6664          b_g_max    =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')",
6665            BORNES          =FACT(statut='o',max='**',
6666                 NUME_ORDRE     =SIMP(statut='o',typ='I'),
6667                 VALE_MIN       =SIMP(statut='o',typ='R'),
6668                 VALE_MAX       =SIMP(statut='o',typ='R'),
6669                                 ),
6670          ),
6671          b_k_max    =BLOC(condition="(OPTION=='CALC_K_MAX')",
6672            SIGNES          =FACT(statut='o',max=1,
6673                 CHARGE_S       =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
6674                 CHARGE_NS      =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
6675                                 ),
6676          ),
6677
6678          PROPAGATION     =SIMP(statut='f',typ='R'),
6679          THETA_LAGR      =SIMP(statut='f',typ=theta_geom),
6680          DIRE_THETA_LAGR =SIMP(statut='f',typ=cham_no_sdaster),
6681          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
6682                            fr="Liste des paramètres de sensibilité.",
6683                            ang="List of sensitivity parameters"),
6684
6685          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
6686          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
6687 );
6688 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
6689 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6690 # ======================================================================
6691 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6692 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6693 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6694 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6695 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6696 #
6697 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6698 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6699 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6700 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6701 #
6702 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6703 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6704 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6705 # ======================================================================
6706 CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction,
6707                     fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps",
6708                     reentrant='n',
6709             UIinfo={"groupes":("Fonction",)},
6710          INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6711          INST_FIN        =SIMP(statut='o',typ='R' ),
6712          DUREE_ANALYSE   =SIMP(statut='f',typ='R' ),
6713          DUREE_DECALAGE  =SIMP(statut='f',typ='R' ),
6714          NB_POIN         =SIMP(statut='o',typ='I' ),
6715          FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
6716          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
6717          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ),
6718 )  ;
6719 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
6720 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6721 # ======================================================================
6722 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6723 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6724 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6725 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6726 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6727 #
6728 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6729 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6730 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6731 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6732 #
6733 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6734 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6735 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6736 # ======================================================================
6737 CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
6738                     fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés",
6739                     reentrant='n',
6740             UIinfo={"groupes":("Matrices/vecteurs",)},
6741          regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
6742                  PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
6743                  PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
6744          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
6745          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
6746          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6747          CHARGE          =SIMP(statut='o',typ=char_ther ),
6748          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
6749          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster ),
6750          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
6751          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
6752          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
6753          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6754          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6755          OPTION          =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ),
6756          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
6757          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6758          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
6759
6760          SOLVEUR         =FACT(statut='d',
6761            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
6762            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
6763              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
6764            ),
6765            b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
6766              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
6767            ),
6768            b_ldlt_mult     =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
6769                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
6770              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
6771              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6772            ),
6773            b_gcpc          =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
6774              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
6775              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
6776              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6777              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6778              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
6779            ),
6780          ),
6781 )  ;
6782 #& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
6783 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6784 # ======================================================================
6785 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6786 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6787 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6788 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6789 # (AT YOUR OPTION) ANY LATER VERSION.
6790 #
6791 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6792 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6793 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6794 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6795 #
6796 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6797 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6798 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6799 # ======================================================================
6800 # RESPONSABLE VABHHTS J.PELLET
6801 def calc_matr_elem_prod(OPTION,**args):
6802   if OPTION == "RIGI_MECA"        : return matr_elem_depl_r
6803   if OPTION == "RIGI_FLUI_STRU"   : return matr_elem_depl_r
6804   if OPTION == "RIGI_MECA_LAGR"   : return matr_elem_depl_r
6805   if OPTION == "MASS_ID_MDEP_R"   : return matr_elem_depl_r
6806   if OPTION == "MASS_ID_MDNS_R"   : return matr_elem_depl_r
6807   if OPTION == "MASS_ID_MTEM_R"   : return matr_elem_temp_r
6808   if OPTION == "MASS_ID_MTNS_R"   : return matr_elem_temp_r
6809   if OPTION == "MASS_MECA"        : return matr_elem_depl_r
6810   if OPTION == "MASS_FLUI_STRU"   : return matr_elem_depl_r
6811   if OPTION == "RIGI_GEOM"        : return matr_elem_depl_r
6812   if OPTION == "RIGI_ROTA"        : return matr_elem_depl_r
6813   if OPTION == "AMOR_MECA"        : return matr_elem_depl_r
6814   if OPTION == "IMPE_MECA"        : return matr_elem_depl_r
6815   if OPTION == "ONDE_FLUI"        : return matr_elem_depl_r
6816   if OPTION == "AMOR_MECA_ABSO"   : return matr_elem_depl_r
6817   if OPTION == "RIGI_MECA_HYST"   : return matr_elem_depl_c
6818   if OPTION == "RIGI_THER"        : return matr_elem_temp_r
6819   if OPTION == "MASS_THER"        : return matr_elem_temp_r
6820   if OPTION == "MASS_MECA_DIAG"   : return matr_elem_depl_r
6821   if OPTION == "RIGI_ACOU"        : return matr_elem_pres_c
6822   if OPTION == "MASS_ACOU"        : return matr_elem_pres_c
6823   if OPTION == "AMOR_ACOU"        : return matr_elem_pres_c
6824   raise AsException("type de concept resultat non prevu")
6825
6826 CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
6827                     ,fr="Calcul des matrices élémentaires",reentrant='n',
6828             UIinfo={"groupes":("Matrices/vecteurs",)},
6829
6830          OPTION          =SIMP(statut='o',typ='TXM',
6831                                into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
6832                                      "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
6833                                      "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU",
6834                                      "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU",
6835                                      "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R",
6836                                      "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST",
6837                                      "RIGI_MECA_LAGR") ),
6838
6839          # mots clés facultatifs que l'on a du mal à mettre dans les blocs
6840          # sans gener MACRO_MATR_ASSE :
6841          #------------------------------------------------------------------
6842          INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6843
6844
6845          b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
6846            regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
6847            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
6848            b_modele        =BLOC(condition = "MODELE != None",
6849              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
6850              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
6851              MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
6852            ),
6853            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
6854          ),
6855
6856          b_rigi_meca_lagr  =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'",
6857            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6858            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6859            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'  ),
6860            THETA           =SIMP(statut='o',typ=theta_geom ),
6861            PROPAGATION     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6862          ),
6863
6864          b_mass_meca       =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
6865            regles=(AU_MOINS_UN('MODELE','CHARGE'),),
6866            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
6867            b_modele          =BLOC(condition = "MODELE != None",
6868              CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6869              CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6870            ),
6871            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
6872          ),
6873
6874          b_mass_identite   =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ",
6875            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6876            # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME
6877            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6878            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6879          ),
6880
6881          b_rigi_geom       =BLOC(condition = "OPTION=='RIGI_GEOM'",
6882            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6883            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6884            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem ),
6885            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
6886          ),
6887
6888          b_rigi_rota       =BLOC(condition = "OPTION=='RIGI_ROTA'",
6889            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6890            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6891            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
6892          ),
6893
6894          b_amor_meca       =BLOC(condition = "OPTION=='AMOR_MECA'",
6895            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
6896                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
6897            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6898            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6899            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6900            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6901            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6902            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
6903          ),
6904          
6905          b_amor_meca_abso  =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'",
6906            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
6907                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
6908            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6909            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6910            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6911            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6912            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6913            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
6914          ),
6915          
6916          b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
6917            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6918            CHARGE            =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
6919            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6920            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6921            RIGI_MECA         =SIMP(statut='o',typ=matr_elem_depl_r ),
6922          ),
6923
6924          b_rigi_ther       =BLOC(condition = "OPTION=='RIGI_THER'",
6925            regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
6926            MODELE            =SIMP(statut='f',typ=modele_sdaster ),
6927            b_modele          =BLOC(condition = "MODELE != None",
6928              CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6929              CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6930              MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
6931            ),
6932            CHARGE            =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ),
6933          ),
6934
6935          b_mass_ther       =BLOC(condition = "OPTION=='MASS_THER'",
6936            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6937            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6938            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6939            CHARGE            =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ),
6940          ),
6941
6942          b_rigi_acou       =BLOC(condition = "OPTION=='RIGI_ACOU'",
6943            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6944            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6945            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
6946          ),
6947
6948          b_mass_acou       =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
6949            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6950            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6951            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
6952          ),
6953
6954          b_rigi_flui       =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'",
6955            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6956            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
6957            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6958            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ),
6959          ),
6960
6961          b_mass_flui       =BLOC(condition = "OPTION=='MASS_FLUI_STRU'",
6962            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6963            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
6964            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6965            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'),
6966          ),
6967
6968          b_impe_meca       =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
6969            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6970            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6971            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
6972          ),
6973 )  ;
6974 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
6975 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6976 # ======================================================================
6977 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6978 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6979 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6980 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6981 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6982 #
6983 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6984 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6985 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6986 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6987 #
6988 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6989 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6990 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6991 # ======================================================================
6992 CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
6993             UIinfo={"groupes":("Post traitements",)},
6994                fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique",
6995          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
6996          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6997          RESULTAT        =SIMP(statut='o',typ=evol_ther ),
6998          ETAT_INIT       =FACT(statut='o',
6999             regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),),
7000             EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
7001             META_INIT_ELNO  =SIMP(statut='f',typ=carte_sdaster ),
7002             b_etat     =BLOC(condition="EVOL_THER != None",
7003                regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),),
7004                NUME_INIT       =SIMP(statut='f',typ='I'),
7005                INST_INIT       =SIMP(statut='f',typ='R'),
7006                b_inst     =BLOC(condition="INST_INIT != None",
7007                   PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
7008                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") )
7009                ),
7010             ),
7011          ),
7012          COMP_INCR       =FACT(statut='o',max='**',
7013            RELATION        =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
7014            ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
7015            ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
7016       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
7017            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7018            GROUP_MA        =SIMP(statut='f',typ=grma),
7019            MAILLE          =SIMP(statut='f',typ=ma),
7020          ),
7021          OPTION          =SIMP(statut='f',typ='TXM'     
7022                              ,into=("META_ELNO_TEMP",) ),
7023 )  ;
7024 #& MODIF COMMANDE  DATE 24/10/2006   AUTEUR SMICHEL S.MICHEL-PONNELLE 
7025 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7026 # ======================================================================
7027 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7028 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7029 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7030 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7031 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7032 #
7033 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7034 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7035 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7036 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7037 #
7038 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7039 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7040 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7041 # ======================================================================
7042 # RESPONSABLE G8BHHXD X.DESROCHES
7043 def calc_no_prod(RESULTAT,**args):
7044    if AsType(RESULTAT) != None : return AsType(RESULTAT)
7045    raise AsException("type de concept resultat non prevu")
7046
7047 CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
7048             fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds",
7049             UIinfo={"groupes":("Post traitements",)},
7050          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
7051                                                mode_acou,mode_stat,mode_stat_depl,mode_stat_acce,
7052                                               mode_stat_forc,evol_ther,evol_noli,base_modale,
7053                                                mult_elas,fourier_elas,fourier_ther,mode_flamb ) ),
7054          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
7055                                fr="Liste des paramètres de sensibilité.",
7056                                ang="List of sensitivity parameters"),
7057
7058          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
7059                         'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
7060                  CONCEPT_SENSIBLE("SEPARE"),
7061                  DERIVABLE('RESULTAT'),),
7062          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7063          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7064          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7065          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
7066          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
7067          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7068          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7069          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
7070          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
7071          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
7072          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7073          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
7074
7075          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
7076                                into=("FORC_NODA","REAC_NODA",
7077                                      "DCHA_NOEU_SIGM",
7078                                      "DEGE_NOEU_DEPL",
7079                                      "DETE_NOEU_DLTE",
7080                                      "DEDE_NOEU_DLDE",
7081                                      "DESI_NOEU_DLSI",
7082                                      "DURT_NOEU_META",
7083                                      "EFGE_NOEU_CART","EFGE_NOEU_DEPL",
7084                                      "ENDO_NOEU_SINO",
7085                                      "ENEL_NOEU_ELGA",
7086                                      "EPMG_NOEU_DEPL",
7087                                      "EPSA_NOEU",
7088                                      "EPSG_NOEU_DEPL",
7089                                      "EPSI_NOEU_DEPL",
7090                                      "EPSP_NOEU"     ,"EPSP_NOEU_ZAC",
7091                                      "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU",
7092                                      "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM",
7093                                      "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM",
7094                                      "FLUX_NOEU_TEMP",
7095                                      "HYDR_NOEU_ELGA",
7096                                      "INTE_NOEU_ACTI","INTE_NOEU_REAC",
7097                                      "META_NOEU_TEMP",
7098                                      "PMPB_NOEU_SIEF",
7099                                      "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL",
7100                                      "RADI_NOEU_SIGM",
7101                                      "SIEF_NOEU"     ,"SIEF_NOEU_ELGA",
7102                                      "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL",
7103                                      "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC",
7104                                      "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF",
7105                                      "SIRE_NOEU_DEPL",
7106                                      "VARI_NOEU","EXTR_NOEU_VARI","VARI_NOEU_ELGA",) ),
7107
7108          b_forc_reac     =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\
7109  (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""",
7110              MODELE          =SIMP(statut='f',typ=modele_sdaster),
7111          ),
7112
7113          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
7114          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
7115          EXCIT           =FACT(statut='f',max='**',
7116            CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),
7117            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7118            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
7119                                  into=("FIXE_CSTE","FIXE_PILO","SUIV") ),
7120          ),
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          GROUP_MA_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7125          MAILLE_RESU     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
7126          GROUP_NO_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7127          NOEUD_RESU      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
7128 )  ;
7129 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR REZETTE C.REZETTE 
7130 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7131 # ======================================================================
7132 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
7133 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7134 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
7135 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
7136 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
7137 #                                                                       
7138 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7139 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7140 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7141 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7142 #                                                                       
7143 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7144 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7145 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7146 # ======================================================================
7147 # RESPONSABLE ASSIRE A.ASSIRE
7148
7149 from Macro.calc_precont_ops import calc_precont_ops
7150
7151
7152 # ===========================================================================
7153 #           CATALOGUE DE LA MACRO "CALC_PRECONT"
7154 #           -----------------------------------------
7155 # USAGE :
7156
7157 #  
7158 # ===========================================================================
7159
7160 CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli,
7161                    fr="Imposer la tension définie par le BPEL dans les cables",
7162                    reentrant='f',UIinfo={"groupe":("Modélisation",)},
7163          reuse =SIMP(statut='f',typ='evol_noli'),
7164          MODELE           =SIMP(statut='o',typ=modele_sdaster),
7165          CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
7166          CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
7167          CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
7168          CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
7169          INCREMENT        =FACT(statut='o',
7170            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
7171            INST_INIT       =SIMP(statut='f',typ='R'),
7172            INST_FIN        =SIMP(statut='f',typ='R'),
7173            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
7174            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
7175            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
7176               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
7177               defaut="AUCUNE",
7178               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
7179            ),
7180            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
7181              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
7182              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
7183                 fr="Coefficient multiplicateur de la 1ère subdivision"),
7184              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
7185                 fr="Nombre de subdivision d'un pas de temps"),
7186              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
7187                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
7188              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
7189                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
7190            ),
7191            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
7192              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
7193              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
7194                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
7195                 defaut="IGNORE_PREMIERES",
7196                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
7197              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
7198                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
7199              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
7200                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
7201              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
7202                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
7203              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
7204                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
7205              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
7206                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
7207              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
7208                 fr="% itération autorisée en plus"),
7209            ),
7210            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
7211          ),
7212
7213          NEWTON          =FACT(statut='d',
7214             REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
7215             PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
7216             MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
7217             PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
7218             REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
7219             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
7220           ),
7221          RECH_LINEAIRE   =FACT(statut='f',
7222            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
7223            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
7224          ),
7225           CONVERGENCE     =FACT(statut='d',
7226             RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
7227             RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
7228             ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
7229             ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
7230             ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
7231           ),
7232           ETAT_INIT       =FACT(statut='f',
7233             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
7234                     EXCLUS('EVOL_NOLI','DEPL',),
7235                     EXCLUS('EVOL_NOLI','SIGM',),
7236                     EXCLUS('EVOL_NOLI','VARI',),
7237                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
7238                     EXCLUS('NUME_ORDRE','INST'), ),
7239             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
7240             SIGM            =SIMP(statut='f',typ=(carte_sdaster,cham_elem)),
7241             VARI            =SIMP(statut='f',typ=cham_elem),
7242             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
7243             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
7244             NUME_ORDRE      =SIMP(statut='f',typ='I'),
7245             INST            =SIMP(statut='f',typ='R'),
7246             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
7247             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7248             NUME_DIDI       =SIMP(statut='f',typ='I'),
7249             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
7250           ),
7251           SOLVEUR         =FACT(statut='d',
7252             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
7253             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
7254               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
7255             ),
7256             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
7257               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
7258             ),
7259             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
7260                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
7261               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
7262               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
7263             ),
7264             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
7265               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
7266               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
7267               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
7268               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
7269               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
7270             ),
7271             SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
7272           ),
7273             SOLV_NON_LOCAL  =FACT(statut='f',
7274               METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
7275               b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
7276                 RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
7277               ),
7278               b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
7279                 RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
7280               ),
7281               b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
7282                                      fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
7283                 NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
7284                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7285               ),
7286               b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
7287                 PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
7288                 NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
7289                 RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
7290                 NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
7291               ),
7292               EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7293             ),
7294             LAGR_NON_LOCAL  =FACT(statut='f',
7295               ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
7296               RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
7297               RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
7298               R               =SIMP(statut='f',typ='R',defaut= 1000.),
7299               ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
7300             ),
7301           INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
7302           TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
7303
7304           EXCIT           =FACT(statut='o',max='**',
7305             CHARGE          =SIMP(statut='o',typ=char_meca),
7306           ),
7307
7308          COMP_INCR       =C_COMP_INCR(),
7309   )  ;
7310 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
7311 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7312 # ======================================================================
7313 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
7314 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7315 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
7316 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
7317 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
7318 #                                                                       
7319 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7320 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7321 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7322 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7323 #                                                                       
7324 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7325 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7326 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7327 # ======================================================================
7328 # -*- coding: iso-8859-1 -*-
7329
7330 # RESPONSABLE MCOURTOI M.COURTOIS
7331
7332 def calc_table_prod(self, TABLE, ACTION, **kargs):
7333    """Typage du concept produit.
7334    """
7335    l_typ = [AsType(TABLE),]
7336    for mcf in ACTION:
7337       dmc = mcf.cree_dict_valeurs(mcf.mc_liste)
7338       if dmc.get('TABLE') != None:
7339          l_typ.append(AsType(dmc['TABLE']))
7340    # une table_fonction étant une table
7341    if table_fonction in l_typ:
7342       return table_fonction
7343    else:
7344       return table_sdaster
7345
7346
7347 from Macro.calc_table_ops import calc_table_ops
7348
7349 CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod,
7350                  fr="Opérations sur une table",
7351                  reentrant='f',
7352    regles=(DERIVABLE('TABLE'),),
7353    TABLE  = SIMP(statut='o',typ=table_sdaster),
7354    ACTION = FACT(statut='o', max='**',
7355                     fr = "Suite des opérations à effectuer sur la table",
7356       OPERATION = SIMP(statut='o', typ='TXM',
7357                   into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',)),
7358       
7359       b_filtre = BLOC(condition="OPERATION == 'FILTRE'",
7360                       fr="Sélectionne les lignes de la table vérifiant un critère",
7361          NOM_PARA  = SIMP(statut='o',typ='TXM'),
7362          CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ",
7363                           into=('EQ','NE','GT','LT','GE','LE','REGEXP',
7364                                 'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),),
7365          b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
7366             regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
7367             VALE   = SIMP(statut='f',typ='R'),
7368             VALE_I = SIMP(statut='f',typ='I'),
7369             VALE_C = SIMP(statut='f',typ='C'),
7370             VALE_K = SIMP(statut='f',typ='TXM'),
7371          ),
7372          b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'",
7373             VALE_K = SIMP(statut='f',typ='TXM'),
7374          ),
7375          b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')",
7376             CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7377             PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
7378          ),
7379       ),
7380       
7381       b_extr = BLOC(condition="OPERATION ==  'EXTR'",
7382                     fr="Extrait une ou plusieurs colonnes de la table",
7383          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
7384                          fr="Noms des colonnes à extraire"),
7385       ),
7386    
7387       b_renomme = BLOC(condition="OPERATION == 'RENOMME'",
7388                        fr="Renomme un ou plusieurs paramètres de la table",
7389          NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2,
7390                          fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
7391       ),
7392    
7393       b_tri = BLOC(condition="OPERATION == 'TRI'",
7394                    fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
7395          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
7396          ORDRE    = SIMP(statut='f',typ='TXM',defaut="CROISSANT",
7397                          into=("CROISSANT","DECROISSANT") ),
7398       ),
7399       
7400       b_comb = BLOC(condition="OPERATION == 'COMB'",
7401                     fr="Combine deux tables ayant éventuellement des paramètres communs",
7402          TABLE    = SIMP(statut='o',typ=table_sdaster,
7403                          fr="Table dont les colonnes vont venir surcharger la table initiale"),
7404          NOM_PARA = SIMP(statut='f',typ='TXM',max='**',
7405                          fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
7406                             "pour que les colonnes soient combinées"),
7407       ),
7408       
7409       b_oper = BLOC(condition="OPERATION == 'OPER'",
7410                     fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
7411          FORMULE  = SIMP(statut='o',typ=formule,
7412                          fr="Formule à appliquer aux colonnes de la table"),
7413          NOM_PARA = SIMP(statut='o',typ='TXM',
7414                          fr="Nom de la nouvelle colonne"),
7415       ),
7416    ),
7417    
7418    SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1,
7419                       fr="Paramètre de sensibilité",
7420                       ang="Sensitivity parameter"),
7421    TITRE = SIMP(statut='f',typ='TXM',max='**',
7422                 fr="Titre de la table produite"),
7423    INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
7424 )
7425 #& MODIF COMMANDE  DATE 08/03/2007   AUTEUR SALMONA L.SALMONA 
7426 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7427 # ======================================================================
7428 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7429 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7430 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7431 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7432 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7433 #
7434 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7435 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7436 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7437 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7438 #
7439 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7440 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7441 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7442 # ======================================================================
7443 CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
7444             UIinfo={"groupes":("Post traitements",)},
7445                 fr="Définir un champ theta pour le calcul du taux de restitution d'énergie"
7446                     +" ou des facteurs d'intensité de contraintes",
7447          regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
7448                  PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
7449                  EXCLUS('DIRECTION','DIRE_THETA'),),
7450          OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
7451          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
7452          THETA_3D        =FACT(statut='f',max='**',
7453            regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
7454                    UN_PARMI('MODULE','MODULE_FO'),
7455                    ENSEMBLE('MODULE','R_INF','R_SUP'),
7456                    ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
7457            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7458            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7459            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7460            MODULE          =SIMP(statut='f',typ='R'),
7461            R_INF           =SIMP(statut='f',typ='R'),
7462            R_SUP           =SIMP(statut='f',typ='R'),
7463            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7464            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7465            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
7466                          ),
7467          b_theta_3d     =BLOC(condition="THETA_3D != None",
7468            FOND_FISS       =SIMP(statut='o',typ=fond_fiss),),
7469          DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
7470          DIRECTION       =SIMP(statut='f',typ='R',max='**'),
7471          THETA_2D        =FACT(statut='f',max='**',
7472            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
7473            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7474            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7475            MODULE          =SIMP(statut='o',typ='R'),
7476            R_INF           =SIMP(statut='o',typ='R'),
7477            R_SUP           =SIMP(statut='o',typ='R'),
7478          ),
7479          THETA_BANDE     =FACT(statut='f',max='**',
7480            MODULE          =SIMP(statut='o',typ='R'),
7481            R_INF           =SIMP(statut='o',typ='R'),
7482            R_SUP           =SIMP(statut='o',typ='R'),
7483          ),
7484          GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
7485          IMPRESSION      =FACT(statut='f',
7486            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
7487            FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
7488          ),
7489 )  ;
7490 #& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
7491 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7492 # ======================================================================
7493 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7494 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7495 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7496 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7497 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7498 #
7499 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7500 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7501 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7502 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7503 #
7504 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7505 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7506 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7507 # ======================================================================
7508 # RESPONSABLE VABHHTS J.PELLET
7509 def calc_vect_elem_prod(OPTION,**args):
7510   if OPTION == "CHAR_MECA" :      return vect_elem_depl_r
7511   if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r
7512   if OPTION == "CHAR_THER" :      return vect_elem_temp_r
7513   if OPTION == "CHAR_ACOU" :      return vect_elem_pres_c
7514   if OPTION == "FORC_NODA" :      return vect_elem_depl_r
7515   raise AsException("type de concept resultat non prevu")
7516
7517 CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n',
7518             UIinfo={"groupes":("Matrices/vecteurs",)},
7519                     fr="Calcul des seconds membres élémentaires",
7520          OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
7521                                                            "FORC_NODA","CHAR_MECA_LAGR") ),
7522          b_char_meca     =BLOC(condition = "OPTION=='CHAR_MECA'",
7523            regles=(AU_MOINS_UN('CHARGE','MODELE'),),
7524            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7525            MODELE          =SIMP(statut='f',typ=modele_sdaster),
7526            b_charge     =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
7527               CHAM_MATER   =SIMP(statut='f',typ=cham_mater),
7528               CARA_ELEM    =SIMP(statut='f',typ=cara_elem),
7529               INST         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7530               MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
7531            ),  
7532            b_modele     =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
7533               SOUS_STRUC      =FACT(statut='o',min=01,
7534                 regles=(UN_PARMI('TOUT','MAILLE'),),
7535                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
7536                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7537                 MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
7538               ),
7539            ),
7540          ),
7541          b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'",
7542            CARA_ELEM        =SIMP(statut='f',typ=cara_elem),
7543            CHARGE           =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'),
7544            INST             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7545          ),
7546               
7547          b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'",
7548            CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
7549            CHARGE            =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'),
7550          ),
7551          
7552          b_forc_noda     =BLOC(condition = "OPTION=='FORC_NODA'",
7553            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem),
7554            CARA_ELEM         =SIMP(statut='f',typ=cara_elem),
7555            MODELE            =SIMP(statut='f',typ=modele_sdaster),
7556          ),
7557          
7558          b_meca_lagr     =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'",
7559            CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
7560            THETA             =SIMP(statut='o',typ=theta_geom),
7561            PROPAGATION       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7562            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7563            INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7564          ),
7565 ) ;
7566 #& MODIF COMMANDE  DATE 12/09/2006   AUTEUR REZETTE C.REZETTE 
7567 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7568 # ======================================================================
7569 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7570 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7571 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7572 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7573 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7574 #
7575 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7576 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7577 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7578 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7579 #
7580 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7581 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7582 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7583 # ======================================================================
7584 # RESPONSABLE G8BHHXD X.DESROCHES
7585 COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
7586                   reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières",
7587             UIinfo={"groupes":("Post traitements",)},
7588          RESULTAT        =SIMP(statut='o',typ=(fourier_elas,fourier_ther),),
7589          ANGL            =SIMP(statut='o',typ='R',max='**'),
7590          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6,
7591              into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL","TEMP","FLUX_ELNO_TEMP"),),
7592 ) ;
7593 #& MODIF COMMANDE  DATE 05/02/2007   AUTEUR SALMONA L.SALMONA 
7594 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7595 # ======================================================================
7596 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7597 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7598 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7599 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7600 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7601 #
7602 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7603 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7604 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7605 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7606 #
7607 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7608 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7609 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7610 # ======================================================================
7611 # RESPONSABLE VABHHTS J.PELLET
7612 def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
7613   if COMB_C != None:
7614     type_mat = AsType(COMB_C[0]['MATR_ASSE'])
7615     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
7616     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c    
7617     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
7618     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
7619   elif COMB_R != None:
7620     type_mat = AsType(COMB_R[0]['MATR_ASSE'])
7621     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
7622     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
7623     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
7624     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
7625   elif CALC_AMOR_GENE != None: return matr_asse_gene_r
7626   raise AsException("type de concept resultat non prevu")
7627
7628 COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
7629                     fr="Effectuer la combinaison linéaire de matrices assemblées",
7630                     reentrant='f',
7631             UIinfo={"groupes":("Résultats et champs",)},
7632          regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
7633          COMB_R          =FACT(statut='f',max='**',
7634            PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
7635            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
7636                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
7637            COEF_R          =SIMP(statut='o',typ='R' ),
7638          ),
7639          COMB_C          =FACT(statut='f',max='**',
7640            regles=(UN_PARMI('COEF_R','COEF_C' ),),
7641            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
7642                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
7643            COEF_R          =SIMP(statut='f',typ='R' ),
7644            COEF_C          =SIMP(statut='f',typ='C' ),
7645          ),
7646          CALC_AMOR_GENE   =FACT(statut='f',
7647            regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),),
7648            MASS_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
7649            RIGI_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
7650            AMOR_REDUIT  = SIMP(statut='f',typ='R',max='**'),
7651            LIST_AMOR    = SIMP(statut='f',typ=listr8_sdaster ),
7652          ),         
7653          SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
7654 )  ;
7655 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
7656 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7657 # ======================================================================
7658 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7659 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7660 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7661 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7662 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7663 #
7664 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7665 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7666 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7667 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7668 #
7669 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7670 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7671 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7672 # ======================================================================
7673 COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
7674                      fr="Réponse sismique par recombinaison modale par une méthode spectrale",
7675                      reentrant='n',
7676             UIinfo={"groupes":("Post traitements",)},
7677          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
7678                  UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),),
7679          MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
7680          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7681          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7682          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
7683          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7684          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7685          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
7686          b_freq          =BLOC(condition = "FREQ != None or LIST_FREQ != None",
7687            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
7688            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7689          ),
7690          MODE_CORR       =SIMP(statut='f',typ=mode_stat_acce ),
7691          
7692          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
7693          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
7694          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
7695          
7696          MASS_INER       =SIMP(statut='f',typ=table_sdaster ),
7697          CORR_FREQ       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7698          
7699          EXCIT           =FACT(statut='o',max='**',
7700            regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'),
7701                    UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),),
7702            
7703            MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7704            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7705            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7706            AXE             =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",),
7707            TRI_AXE         =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",),
7708            TRI_SPEC        =SIMP(statut='f',typ='TXM',into=("OUI",),
7709                                  fr="Excitation suivant les trois axes  avec trois spectres"),
7710            b_axe           =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
7711              SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
7712              ECHELLE         =SIMP(statut='f',typ='R',),
7713            ),
7714            b_tri_axe       =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre",
7715              SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
7716              ECHELLE         =SIMP(statut='f',typ='R',),
7717            ),
7718            b_tri_spec      =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes  avec trois spectres",
7719              SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ),
7720              ECHELLE         =SIMP(statut='f',typ='R',min=3,max=3),
7721            ),       
7722            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
7723          ),
7724          COMB_MODE       =FACT(statut='o',
7725            TYPE            =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
7726            DUREE           =SIMP(statut='f',typ='R' ),
7727          ),
7728          COMB_DIRECTION  =FACT(statut='f',
7729            TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
7730          ),
7731          COMB_MULT_APPUI =FACT(statut='f',max='**',
7732            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
7733            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7734            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7735            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7736            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),
7737          ),
7738          COMB_DEPL_APPUI=FACT(statut='f',max='**',
7739            regles=(UN_PARMI('TOUT','LIST_CAS'),),
7740            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
7741            LIST_CAS       =SIMP(statut='f',typ='I',max='**'),
7742            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
7743          ),
7744          DEPL_MULT_APPUI =FACT(statut='f',max='**',
7745            regles=(UN_PARMI('NOEUD','GROUP_NO'),
7746                    AU_MOINS_UN('DX','DY','DZ' ),),
7747            NOM_CAS         =SIMP(statut='o',typ='TXM',max='**'),
7748            NUME_CAS        =SIMP(statut='o',typ='I',max='**'),
7749            MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,), ),
7750            NOEUD_REFE      =SIMP(statut='f',typ=no),
7751            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7752            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7753            DX              =SIMP(statut='f',typ='R' ),
7754            DY              =SIMP(statut='f',typ='R' ),
7755            DZ              =SIMP(statut='f',typ='R' ),
7756          ),
7757          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9,
7758                                into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
7759                                      "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART",
7760                                      "SIPO_ELNO_DEPL") ),
7761          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
7762          IMPRESSION      =FACT(statut='f',max='**',
7763            regles=(EXCLUS('TOUT','NIVEAU'),),
7764            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7765            NIVEAU          =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ),
7766          ),
7767          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7768 )  ;
7769 #& MODIF COMMANDE  DATE 12/09/2006   AUTEUR REZETTE C.REZETTE 
7770 # RESPONSABLE VABHHTS J.PELLET
7771 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7772 # ======================================================================
7773 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7774 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7775 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7776 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7777 # (AT YOUR OPTION) ANY LATER VERSION.
7778 #
7779 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7780 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7781 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7782 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7783 #
7784 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7785 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7786 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7787 # ======================================================================
7788 def crea_champ_prod(TYPE_CHAM,**args):
7789   if TYPE_CHAM[0:5] == "CART_" :
7790      return carte_sdaster
7791   elif TYPE_CHAM[0:5] == "NOEU_" :
7792      return cham_no_sdaster
7793   elif TYPE_CHAM[0:2] == "EL"    :
7794      return cham_elem
7795   else :
7796      raise AsException("type de concept resultat_sdaster non prevu")
7797
7798
7799 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
7800                 fr="Création d'un champ ",reentrant='n',
7801             UIinfo={"groupes":("Résultats et champs",)},
7802          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
7803       # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx
7804       # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs 
7805 #        SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
7806 #        ------------------------------------------------------------------
7807          regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
7808          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
7809          CHAM_NO         =SIMP(statut='f',typ=(cham_no_sdaster) ),
7810
7811 #        SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ :
7812 #        (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM)
7813 #        ------------------------------------------------------------------
7814          OPTION         =SIMP(statut='f',typ='TXM'),
7815
7816          OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R") ),
7817
7818 #        ------------------------------------------------------------------
7819          b_norm          =BLOC(condition = "OPERATION == 'NORMALE'",
7820                                regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
7821              MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
7822              GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
7823              MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
7824                              ),
7825 #        ------------------------------------------------------------------
7826          b_affe          =BLOC(condition = "OPERATION == 'AFFE'",
7827              regles=(UN_PARMI('MAILLAGE','MODELE'),),
7828              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
7829              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
7830              b_affe_modele   =BLOC(condition = "MODELE != None",
7831                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
7832              AFFE            =FACT(statut='o',max='**',
7833                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
7834                         UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),),
7835                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7836                 GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
7837                 MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
7838                 GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
7839                 NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
7840                 NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
7841                 VALE            =SIMP(statut='f',typ='R',max='**' ),
7842                 VALE_I          =SIMP(statut='f',typ='I',max='**' ),
7843                 VALE_C          =SIMP(statut='f',typ='C',max='**' ),
7844                 VALE_F          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
7845                                    ),
7846                              ),
7847 #        ------------------------------------------------------------------
7848          b_asse          =BLOC(condition = "OPERATION == 'ASSE'",
7849              regles=(UN_PARMI('MAILLAGE','MODELE'),),
7850              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
7851              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
7852              b_asse_modele   =BLOC(condition = "MODELE != None",
7853                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
7854              ASSE            =FACT(statut='o',max='**',
7855                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
7856                 PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
7857                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7858                 GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7859                 GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7860                 MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7861                 NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7862                 CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
7863                 NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
7864                 NOM_CMP_RESU    =SIMP(statut='f',typ='TXM',max='**' ),
7865                 CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
7866                 COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
7867                 COEF_C          =SIMP(statut='f',typ='C',max=1),
7868                                     ),
7869                              ),
7870 #        ------------------------------------------------------------------
7871          b_eval          =BLOC(condition = "OPERATION == 'EVAL'",
7872              CHAM_F          =SIMP(statut='o',typ=cham_gd_sdaster),
7873              CHAM_PARA       =SIMP(statut='o',typ=cham_gd_sdaster,max='**'),
7874                              ),
7875 #        ------------------------------------------------------------------
7876          b_r2c           =BLOC(condition = "OPERATION == 'R2C'",
7877              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
7878                              ),
7879 #        ------------------------------------------------------------------
7880          b_c2r           =BLOC(condition = "OPERATION == 'C2R'",
7881              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
7882              PARTIE           =SIMP(statut='o',typ='TXM',into=('REEL','IMAG'),),
7883                              ),
7884 #        ------------------------------------------------------------------
7885          b_disc          =BLOC(condition = "OPERATION == 'DISC'",
7886              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
7887              PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
7888              CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
7889                              ),
7890 #        ------------------------------------------------------------------
7891          b_extr          =BLOC(condition = "OPERATION == 'EXTR'",
7892              regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),),
7893              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
7894              FISSURE         =SIMP(statut='f',typ=(fiss_xfem) ),
7895              RESULTAT        =SIMP(statut='f',typ=(resultat_sdaster) ),
7896              TABLE           =SIMP(statut='f',typ=(table_sdaster),min=1,max=1),
7897              b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None",
7898                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)),
7899              ),
7900              b_extr_fissure  =BLOC(condition = "FISSURE != None",
7901                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC")),
7902              ),
7903              b_extr_table    =BLOC(condition = "TABLE != None",
7904                       regles=( EXCLUS('MODELE','MAILLAGE'),
7905                                EXCLUS('PROL_ZERO','MAILLAGE'),),
7906                       MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster),),
7907                       MODELE          =SIMP(statut='f',typ=(modele_sdaster),),
7908                       OPTION          =SIMP(statut='f',typ='TXM'),
7909                       PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
7910                  ),
7911              b_extr_resultat =BLOC(condition = "RESULTAT != None",
7912                  regles=(DERIVABLE('RESULTAT'),),
7913                  SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
7914                                    fr="Paramètre de sensibilité.",
7915                                    ang="Sensitivity parameter"),
7916                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
7917                  TYPE_MAXI       =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
7918
7919                  # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre :
7920                  b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
7921                       TYPE_RESU       =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
7922
7923                       regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST',
7924                                       'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
7925                       TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7926                       LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
7927                       LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
7928                       NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
7929                       INST            =SIMP(statut='f',typ='R',max='**'),
7930                       FREQ            =SIMP(statut='f',typ='R',max='**'),
7931                       NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
7932                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
7933                       NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
7934                       ANGL            =SIMP(statut='f',typ='R',max='**'),
7935                  ),
7936
7937                  # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre :
7938                  b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None",
7939                       regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
7940                       NUME_ORDRE      =SIMP(statut='f',typ='I'),
7941                       INST            =SIMP(statut='f',typ='R'),
7942                       FREQ            =SIMP(statut='f',typ='R'),
7943                       NUME_MODE       =SIMP(statut='f',typ='I'),
7944                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max=2),
7945                       NOM_CAS         =SIMP(statut='f',typ='TXM'),
7946                       ANGL            =SIMP(statut='f',typ='R'),
7947
7948                       INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
7949                  ),
7950
7951                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
7952                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
7953
7954          ),  # fin bloc b_extr
7955
7956
7957                ),
7958 # FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT :
7959 #-----------------------------------------------------
7960          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
7961          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
7962 )  ;
7963 #& MODIF COMMANDE  DATE 21/05/2008   AUTEUR MACOCCO K.MACOCCO 
7964 # RESPONSABLE MCOURTOI M.COURTOIS
7965 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7966 # ======================================================================
7967 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7968 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7969 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7970 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7971 # (AT YOUR OPTION) ANY LATER VERSION.
7972 #
7973 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7974 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7975 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7976 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7977 #
7978 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7979 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7980 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7981 # ======================================================================
7982 CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
7983             reentrant='n',fr="Crée un maillage à partir d'un maillage existant",
7984             UIinfo={"groupes":("Maillage",)},
7985
7986          regles=(EXCLUS('COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
7987                         'DETR_GROUP_MA', 'ECLA_PG', 'LINE_QUAD', 'MODI_MAILLE',
7988                         'QUAD_LINE', 'REPERE'),),
7989
7990          # le MAILLAGE est inutile si ECLA_PG
7991          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
7992
7993          CREA_POI1       =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds",
7994            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),),
7995            NOM_GROUP_MA    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7996            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7997            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7998            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7999            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8000            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8001          ),
8002          CREA_MAILLE     =FACT(statut='f',max='**',fr="Duplication de mailles",
8003            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),),
8004            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8005            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8006            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8007            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
8008            PREF_NUME       =SIMP(statut='f',typ='I' ),
8009          ),
8010          CREA_GROUP_MA   =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles",
8011            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
8012            NOM             =SIMP(statut='o',typ='TXM'),
8013            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8014            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8015            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8016            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
8017            PREF_NUME       =SIMP(statut='f',typ='I' ),
8018          ),
8019          DETR_GROUP_MA   =FACT(statut='f',fr="Destruction de groupes de mailles",
8020            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8021            NB_MAILLE       =SIMP(statut='f',typ='I',defaut= 0,
8022                                  fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit",  ),
8023          ),
8024          COQU_VOLU   =FACT(statut='f',
8025                            fr="Creation de mailles volumiques à partir de mailles surfaciques",
8026            NOM             =SIMP(statut='o',typ='TXM'),
8027            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'),
8028            EPAIS           =SIMP(statut='o',typ='R' ),
8029            PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
8030            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS" ),
8031            PREF_NUME       =SIMP(statut='f',typ='I'  ,defaut=1 ),
8032            PLAN            =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")),
8033            b_MOY =BLOC(condition = "PLAN == 'MOY'",
8034              TRANSLATION   =SIMP(statut='o',typ='TXM',into=("SUP","INF") ),
8035            ),
8036          ),
8037          MODI_MAILLE     =FACT(statut='f',max='**',fr="Modification du type de mailles",
8038            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
8039            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8040            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8041            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8042            OPTION          =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),
8043                                  fr="Choix de la transformation" ),
8044            b_NOS =BLOC(condition = "OPTION == 'TRIA6_7'  or  OPTION == 'QUAD8_9'  or  OPTION == 'SEG3_4'",
8045              PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
8046              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
8047            ),
8048            b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'",
8049              PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
8050              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
8051            ),
8052          ),
8053          CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc",
8054            NOM             =SIMP(statut='o',typ='TXM'),
8055            GROUP_NO_1      =SIMP(statut='o',typ=grno),
8056            GROUP_NO_2      =SIMP(statut='o',typ=grno),
8057            PREF_MAILLE     =SIMP(statut='o',typ='TXM'),
8058            PREF_NUME       =SIMP(statut='f',typ='I',defaut=1 ),
8059          ),
8060          LINE_QUAD     =FACT(statut='f',fr="Passage linéaire -> quadratique",
8061            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
8062            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8063            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8064            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8065            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
8066            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
8067          ),
8068          QUAD_LINE     =FACT(statut='f',fr="Passage quadratique -> linéaire",
8069            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
8070            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8071            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8072            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8073          ),
8074          REPERE          =FACT(statut='f',max='**',
8075                                fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
8076            TABLE           =SIMP(statut='o',typ=table_sdaster,
8077                                  fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
8078            NOM_ORIG        =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
8079            NOM_ROTA        =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére"  ),
8080            b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
8081              GROUP_MA        =SIMP(statut='f',typ=grma,
8082                                    fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
8083            ),
8084          ),
8085          ECLA_PG         =FACT(statut='f',
8086                                fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
8087            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
8088            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8089            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8090            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8091            SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
8092            TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
8093            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
8094                                  into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
8095          ),
8096          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8097 #
8098          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
8099 )  ;
8100 #& MODIF COMMANDE  DATE 12/09/2006   AUTEUR REZETTE C.REZETTE 
8101 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8102 # ======================================================================
8103 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8104 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8105 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8106 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8107 # (AT YOUR OPTION) ANY LATER VERSION.
8108 #
8109 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8110 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8111 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8112 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8113 #
8114 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8115 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8116 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8117 # ======================================================================
8118 def crea_resu_prod(TYPE_RESU,**args):
8119   if TYPE_RESU == "EVOL_ELAS"    : return evol_elas
8120   if TYPE_RESU == "EVOL_NOLI"    : return evol_noli
8121   if TYPE_RESU == "EVOL_THER"    : return evol_ther
8122   if TYPE_RESU == "MULT_ELAS"    : return mult_elas
8123   if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
8124   if TYPE_RESU == "FOURIER_THER" : return fourier_ther
8125   if TYPE_RESU == "EVOL_VARC"    : return evol_varc
8126   if TYPE_RESU == "EVOL_CHAR"    : return evol_char
8127   raise AsException("type de concept resultat non prevu")
8128
8129 CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
8130             UIinfo={"groupes":("Modélisation",)},
8131                fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds",
8132
8133          OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",),
8134                          fr="choix de la fonction a activer",),
8135
8136          b_affe       =BLOC(condition = "OPERATION == 'AFFE'",
8137
8138            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
8139                                                                            "EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ),
8140            NOM_CHAM     =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
8141
8142            AFFE         =FACT(statut='o',max='**',
8143              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)),
8144              MODELE        =SIMP(statut='f',typ=modele_sdaster),
8145              CHAM_MATER    =SIMP(statut='f',typ=cham_mater),
8146              CARA_ELEM     =SIMP(statut='f',typ=cara_elem),
8147
8148              b_mult_elas     =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ",
8149                 NOM_CAS         =SIMP(statut='f',typ='TXM' ),
8150              ),
8151              b_evol          =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\
8152                                                                           or (TYPE_RESU=='EVOL_VARC') or (TYPE_RESU=='EVOL_CHAR'))",
8153                 regles=(UN_PARMI('INST','LIST_INST'),),
8154                 INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8155                 LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
8156                 NUME_INIT       =SIMP(statut='f',typ='I', val_min=1),
8157                 NUME_FIN        =SIMP(statut='f',typ='I', val_min=1),
8158                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
8159                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
8160              ),
8161              b_fourier       =BLOC(condition = "((TYPE_RESU == 'FOURIER_ELAS') or (TYPE_RESU == 'FOURIER_THER')) ",
8162                 NUME_MODE       =SIMP(statut='f',typ='I'),
8163                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
8164              ),
8165            ),
8166          ),
8167
8168          b_ecla_pg    =BLOC(condition = "OPERATION == 'ECLA_PG'",
8169
8170            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
8171
8172            ECLA_PG         =FACT(statut='o',
8173              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
8174              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
8175                                    into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
8176              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster),
8177              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8178              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8179              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8180              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster),
8181              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
8182              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8183              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
8184              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
8185              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8186              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
8187              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
8188              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
8189            ),
8190          ),
8191
8192          b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'",
8193
8194            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ),
8195            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ),
8196            RESU_INIT       =SIMP(statut='o',typ=evol_noli),
8197            INST_INIT       =SIMP(statut='f',typ='R'),
8198            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
8199            CRITERE         =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
8200            MAILLAGE_INIT   =SIMP(statut='o',typ=maillage_sdaster,),
8201            RESU_FINAL      =SIMP(statut='o',typ=evol_noli,),
8202            MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
8203            PERM_CHAM       =FACT(statut='o',max='**',
8204               GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
8205               GROUP_MA_INIT  =SIMP(statut='o',typ=grma),
8206               TRAN           =SIMP(statut='o',typ='R',max='**'),
8207               PRECISION      =SIMP(statut='f',typ='R',defaut=1.0E-3),
8208            ),
8209          ),
8210
8211          b_prol_rtz   =BLOC(condition = "OPERATION == 'PROL_RTZ'",
8212
8213            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
8214
8215            PROL_RTZ        =FACT(statut='o',
8216               regles=(EXCLUS('INST','LIST_INST'),),
8217               MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
8218               TABLE           =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"),
8219               INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
8220               LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
8221               b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
8222                  PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
8223                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
8224               ),
8225               PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
8226               PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
8227               REPERE          =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),),
8228               ORIGINE         =SIMP(statut='o',typ='R',min=3,max=3),
8229               AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3),
8230            ),
8231          ),
8232
8233 )  ;
8234 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
8235 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8236 # ======================================================================
8237 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8238 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8239 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8240 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8241 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8242 #                                                                       
8243 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8244 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8245 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8246 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8247 #                                                                       
8248 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8249 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8250 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8251 # ======================================================================
8252
8253 def crea_table_prod(TYPE_TABLE, **args):
8254    """Typage du concept résultat
8255    """
8256    if TYPE_TABLE == 'TABLE_FONCTION':
8257       return table_fonction
8258    else:
8259       return table_sdaster
8260
8261 CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod,
8262                 fr="Création d'une table à partir d'une fonction ou de deux listes",
8263                 reentrant='f',UIinfo={"groupes":("Table",)},
8264
8265            regles=(EXCLUS('FONCTION','LISTE'),),
8266
8267            LISTE=FACT(statut='f',max='**',
8268                  fr="Creation d'une table a partir de listes",
8269                  regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), 
8270                         PARA     =SIMP(statut='o',typ='TXM'),
8271                         TYPE_K   =SIMP(statut='f',typ='TXM',defaut='K8',
8272                                     into=('K8','K16','K24')),
8273                         NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
8274                         LISTE_I  =SIMP(statut='f',typ='I',max='**'),
8275                         LISTE_R  =SIMP(statut='f',typ='R',max='**'),
8276                         LISTE_K  =SIMP(statut='f',typ='TXM', max='**'),
8277            ),
8278            FONCTION=FACT(statut='f',
8279                     fr="Creation d'une table a partir d'une fonction",
8280                         FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)),
8281                         PARA=SIMP(statut='f',typ='TXM',min=2,max=2),
8282            ),
8283            b_fonction = BLOC(condition='FONCTION != None',
8284                regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
8285                        DERIVABLE('FONCTION'),),
8286                SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
8287                                     fr="Liste des paramètres de sensibilité.",
8288                                     ang="List of sensitivity parameters"),
8289            ),
8290            TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE",
8291                              into=('TABLE', 'TABLE_FONCTION'),),
8292            
8293            TITRE=SIMP(statut='f',typ='TXM',max='**'),
8294 )  ;
8295
8296
8297
8298 #& MODIF COMMANDE  DATE 19/06/2006   AUTEUR VABHHTS J.PELLET 
8299 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8300 # ======================================================================
8301 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8302 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8303 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8304 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8305 # (AT YOUR OPTION) ANY LATER VERSION.
8306 #
8307 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8308 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8309 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8310 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8311 #
8312 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8313 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8314 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8315 # ======================================================================
8316 DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n',
8317             UIinfo={"groupes":("Gestion du travail",)},
8318            fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
8319           sd_prod=ops.DEBUT,
8320
8321          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
8322                            into=("OUI","NON"),defaut="OUI"),
8323          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
8324                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
8325 #         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
8326 #                               typ='TXM',defaut="NON",into=("OUI","NON",) ),
8327          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
8328                                statut='f',min=1,max=2,
8329            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
8330                                  into=('GLOBALE','VOLATILE'),),
8331            TITRE           =SIMP(statut='f',typ='TXM'),
8332            CAS             =SIMP(statut='f',typ='TXM'),
8333            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
8334            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
8335            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
8336          ),
8337          IMPRESSION      =FACT(statut='f',min=1,max=3,
8338            FICHIER         =SIMP(statut='o',typ='TXM'),
8339            UNITE           =SIMP(statut='o',typ='I'),
8340          ),
8341          CATALOGUE       =FACT(statut='f',min=1,max=10,
8342            FICHIER         =SIMP(statut='o',typ='TXM'),
8343            TITRE           =SIMP(statut='f',typ='TXM'),
8344            UNITE           =SIMP(statut='f',typ='I'),
8345          ),
8346          CODE            =FACT(fr="définition d un nom pour l'ensemble d'une étude",
8347                                statut='f',min=1,max=1,
8348            NOM             =SIMP(statut='o',typ='TXM'),
8349            NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
8350            VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
8351            UNITE           =SIMP(statut='f',typ='I',defaut=15),
8352          ),
8353          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
8354            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
8355          ),
8356          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
8357                                statut='f',min=1,max=1,
8358            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
8359                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
8360            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
8361                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
8362            JEVEUX          =SIMP(fr="force les déchargement sur disque",
8363                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
8364            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
8365                                  statut='f',typ='TXM',into=('TEST',)),
8366          ),
8367          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
8368            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
8369            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
8370            TAILLE          =SIMP(statut='f',typ='I'),
8371            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
8372            PARTITION       =SIMP(statut='f',typ='R'),
8373          ),
8374          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1,
8375            regles=(EXCLUS('VALE','POURCENTAGE'),),
8376            VALE            =SIMP(statut='f',typ='I',val_min=0),
8377            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
8378 #          valeur en pourcentage du temps maximum bornée à 180 secondes
8379            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=180)
8380          ),
8381  );
8382 #& MODIF COMMANDE  DATE 03/10/2005   AUTEUR NICOLAS O.NICOLAS 
8383 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8384 # ======================================================================
8385 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8386 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8387 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8388 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8389 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8390 #
8391 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8392 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8393 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8394 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8395 #
8396 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8397 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8398 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8399 # ======================================================================
8400 DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=base_modale,
8401                      reentrant='f',
8402                      fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale",
8403             UIinfo={"groupes":("Matrices/vecteurs",)},
8404          regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),),
8405          CLASSIQUE       =FACT(statut='f',
8406            INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
8407            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
8408            NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 10 ),
8409          ),
8410          RITZ            =FACT(statut='f',max='**',
8411            regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
8412            MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
8413            NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 999 ),
8414            MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
8415            MULT_ELAS       =SIMP(statut='f',typ=mult_elas ),
8416            BASE_MODALE     =SIMP(statut='f',typ=base_modale ),
8417          ),
8418          b_ritz          =BLOC(condition = "RITZ != None",
8419            INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
8420            NUME_REF        =SIMP(statut='o',typ=nume_ddl_sdaster ),
8421            ORTHO           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
8422                                fr="Reorthonormalisation de la base de Ritz" ),
8423            b_ortho          =BLOC(condition = "ORTHO == 'OUI' ",
8424              MATRICE          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
8425                ),
8426          ),
8427         DIAG_MASS        =FACT(statut='f',max='**',
8428            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**'  ),
8429            MODE_STAT       =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
8430          ),
8431         ORTHO_BASE        =FACT(statut='f',max='**',
8432            BASE       =SIMP(statut='o',typ=(mode_meca,mode_stat_depl,mode_stat_acce,mode_stat_forc,mult_elas,base_modale)),
8433            MATRICE    =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
8434          ),
8435          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8436          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8437 )  ;
8438 #& MODIF COMMANDE  DATE 04/04/2007   AUTEUR VIVAN L.VIVAN 
8439 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8440 # ======================================================================
8441 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8442 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8443 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8444 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8445 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8446 #                                                                       
8447 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8448 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8449 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8450 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8451 #                                                                       
8452 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8453 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8454 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8455 # ======================================================================
8456
8457 from Macro.defi_cable_bp_ops import defi_cable_bp_ops
8458
8459 # ===========================================================================
8460 #           CATALOGUE DE LA MACRO "DEFI_CABLE_BP"
8461 #           -----------------------------------------
8462 #
8463 # USAGE :
8464 # Entrée :
8465 #  - MODELE
8466 #  - CABLE
8467 #  - CHAM_MATER
8468 #  - CARA_ELEM
8469 #  - GROUP_MA_BETON
8470 #  - DEFI_CABLE
8471 #  - TENSION_INIT
8472 #  - RECUL_ANCRAGE
8473 #  - RELAXATION
8474 #  - CONE
8475 #      RAYON
8476 #      LONGUEUR
8477 #      PRESENT          OUI ou NON deux fois
8478 #  - TITRE
8479 #  - INFO               1 / 2
8480 #
8481 # ===========================================================================
8482
8483 DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont,
8484                    fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton",
8485                    reentrant='n',UIinfo={"groupe":("Modélisation",)},
8486          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
8487          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
8488          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
8489          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
8490          DEFI_CABLE      =FACT(statut='o',max='**',
8491            regles=(UN_PARMI('MAILLE','GROUP_MA'),
8492                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
8493            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
8494            GROUP_MA        =SIMP(statut='f',typ=grma),
8495            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
8496            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8497          ),
8498          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
8499          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8500          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8501          RELAXATION      =FACT(statut='f',min=0,
8502            R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8503          ),
8504          CONE            =FACT(statut='f',
8505            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8506            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8507            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
8508          ),
8509          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
8510          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8511 )  ;
8512 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8513 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8514 # ======================================================================
8515 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8516 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8517 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8518 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8519 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8520 #                                                                       
8521 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8522 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8523 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8524 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8525 #                                                                       
8526 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8527 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8528 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8529 # ======================================================================
8530
8531 DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n',
8532             fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte"
8533                +" (utilisée par la macro DEFI_CABLE_BP)",
8534             UIinfo={"groupes":("Modélisation",)},
8535          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
8536          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
8537          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
8538          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
8539          DEFI_CABLE      =FACT(statut='o',max='**',
8540            regles=(UN_PARMI('MAILLE','GROUP_MA'),
8541                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
8542            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
8543            GROUP_MA        =SIMP(statut='f',typ=grma),
8544            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
8545            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8546            GROUP_NO_FUT    =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8547          ),
8548          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
8549          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8550          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8551          RELAXATION      =FACT(statut='f',min=0,
8552            R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8553          ),
8554          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
8555          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8556          CONE            =FACT(statut='f',min=0,
8557            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8558            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ),  
8559            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
8560          ),
8561 )  ;
8562 #& MODIF COMMANDE  DATE 05/09/2006   AUTEUR JOUMANA J.EL-GHARIB 
8563 # RESPONSABLE JMBHH01 J.M.PROIX
8564 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8565 # ======================================================================
8566 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
8567 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8568 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8569 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8570 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8571 #                                                                       
8572 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8573 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8574 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8575 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8576 #                                                                       
8577 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8578 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8579 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8580 # ======================================================================
8581 DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
8582                    fr="Définir le comportement d'un monocristal ou d'un polycristal",
8583                    reentrant='n',
8584             UIinfo={"groupes":("Modélisation",)},
8585                   regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),),
8586
8587           MONOCRISTAL    =FACT(statut='f', max='**',
8588              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
8589              ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
8590                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
8591              ECRO_ISOT       =SIMP(statut='o', typ='TXM', max=1,
8592                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
8593              ECRO_CINE       =SIMP(statut='o', typ='TXM', max=1,
8594                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
8595              ELAS            =SIMP(statut='f', typ='TXM', max=1,
8596                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
8597              FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1, 
8598                                 into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1',
8599                                 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL','BCC24'),),
8600                                 ),
8601                                 
8602                                 
8603           POLYCRISTAL    =FACT(statut='f', max='**',
8604            regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
8605              MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
8606              FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
8607              ANGL_REP  =SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles nautiques en degrés"),
8608              ANGL_EULER=SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler   en degrés"),
8609                                 ),
8610                                 
8611                                 
8612           b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
8613           LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
8614                 fr="Donner le nom de la règle de localisation"),
8615           
8616            b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
8617              DL            =SIMP(statut='o',typ='R',max=1),
8618              DA            =SIMP(statut='o',typ='R',max=1),
8619              ),
8620              ),
8621                                 
8622                                 );
8623                    
8624 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8625 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8626 # ======================================================================
8627 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8628 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8629 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8630 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8631 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8632 #
8633 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8634 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8635 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8636 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8637 #
8638 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8639 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8640 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8641 # ======================================================================
8642 DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
8643                     fr="Définir la valeur d'une grandeur invariante",
8644                     reentrant='n',
8645             UIinfo={"groupes":("Fonction",)},
8646          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
8647          VALE            =SIMP(statut='o',typ='R',),
8648          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8649 )  ;
8650 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8651 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8652 # ======================================================================
8653 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8654 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8655 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8656 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8657 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8658 #
8659 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8660 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8661 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8662 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8663 #
8664 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8665 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8666 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8667 # ======================================================================
8668 DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n',
8669             UIinfo={"groupes":("Modélisation",)},
8670                     fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir"
8671                         +" des caractéristiques de chaque couche",
8672          COUCHE          =FACT(statut='o',max='**',
8673            EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
8674            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
8675            ORIENTATION     =SIMP(statut='f',typ='R',defaut= 0.E+0,
8676                                  val_min=-90.E+0,val_max=90.E+0   ),
8677          ),
8678          IMPRESSION      =FACT(statut='f',
8679            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
8680          ),
8681 )  ;
8682 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8683 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8684 # ======================================================================
8685 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8686 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8687 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8688 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8689 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8690 #                                                                       
8691 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8692 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8693 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8694 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8695 #                                                                       
8696 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8697 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8698 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8699 # ======================================================================
8700 # RESPONSABLE D6BHHJP J.P.LEFEBVRE
8701 def DEFIC_prod(self,ACTION,UNITE,**args):
8702   if ACTION == "ASSOCIER" or ACTION == "RESERVER":
8703     if UNITE != None :
8704       return
8705     else :
8706       return entier
8707   elif ACTION == "LIBERER"  :
8708     return
8709   else :
8710     raise AsException("ACTION non prevue : %s" % ACTION)
8711
8712 DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n',
8713                   UIinfo={"groupes":("Gestion du travail",)},
8714                   fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique",
8715
8716             ACTION        =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"),
8717
8718             b_associer    =BLOC(condition = "ACTION == 'ASSOCIER'",
8719                                 fr="Paramètres pour l'ouverture du fichier",
8720                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
8721                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
8722                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
8723                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
8724
8725                b_type_ascii  =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII",
8726                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
8727                ),
8728                b_type_autre  =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE",
8729                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"),
8730                ),
8731             ),
8732
8733             b_reserver    =BLOC(condition = "ACTION == 'RESERVER'",
8734                                 fr="Paramètres pour la réservation de l'unité du fichier",
8735                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
8736                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
8737                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
8738                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"),
8739                ACCES      =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"),
8740             ),
8741
8742             b_liberer    =BLOC(condition = "ACTION == 'LIBERER'",
8743                                fr="Paramètres pour la fermeture du fichier",
8744                                regles=(UN_PARMI('FICHIER','UNITE'),),
8745                   UNITE         =SIMP(statut='f',typ='I' ,val_min=1),
8746                   FICHIER   =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
8747            ),
8748
8749            INFO          =SIMP(statut='f',typ='I',into=(1,2) ),           
8750            )
8751 #& MODIF COMMANDE  DATE 25/04/2006   AUTEUR CIBHHPD L.SALMONA 
8752 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8753 # ======================================================================
8754 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
8755 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8756 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8757 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8758 # (AT YOUR OPTION) ANY LATER VERSION.
8759 #
8760 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8761 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8762 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8763 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8764 #
8765 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8766 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8767 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8768 # ======================================================================
8769
8770 DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='n',
8771             UIinfo={"groupes":("Modélisation",)},
8772                fr="Définition des caratéristiques d'une fissure avec X-FEM",
8773
8774     MODELE                =SIMP(statut='o',typ=modele_sdaster),
8775     DEFI_FISS             =FACT(statut='o',max=01,
8776       regles              =(UN_PARMI('GROUP_MA_FISS','FONC_LT'),
8777                             ENSEMBLE('FONC_LT','FONC_LN'),
8778                             ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
8779       FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
8780       FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
8781       GROUP_MA_FISS       =SIMP(statut='f',typ=grma,max=01),
8782       GROUP_MA_FOND       =SIMP(statut='f',typ=grma),
8783     ),
8784     GROUP_MA_ENRI         =SIMP(statut='o',typ=grma,max=01),
8785     RAYON_ENRI            =SIMP(statut='f',typ='R',defaut=0.E+0),
8786     ORIE_FOND             =FACT(statut='f',max=01,
8787       PFON_INI            =SIMP(statut='o',typ='R',max=03),
8788       VECT_ORIE           =SIMP(statut='o',typ='R',max=03),
8789       PT_ORIGIN           =SIMP(statut='o',typ='R',max=03),
8790     ),
8791     CONTACT               =FACT(statut='f',max=01,
8792       NOM_CHAM            =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ),
8793       FROTTEMENT          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
8794       INTEGRATION         =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
8795       COEF_REGU_CONT      =SIMP(statut='f',typ='R',defaut=100.E+0),
8796       MODL_AXIS           =SIMP(statut='f',typ='TXM',into=("NON",)),
8797       ITER_CONT_MAXI      =SIMP(statut='f',typ='I',defaut=30),
8798       CONTACT_INIT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
8799       ALGO_LAGR           =SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
8800       COEF_ECHELLE        =SIMP(statut='f',typ='R',defaut=1.E+6),
8801       b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères du frottement de Coulomb",
8802            COULOMB        =SIMP(statut='o',typ='R',),
8803            ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
8804            COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
8805            SEUIL_INIT     =SIMP(statut='f',typ='R',defaut=0.E+0),),
8806     ),
8807     INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
8808 )  ;
8809 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8810 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8811 # ======================================================================
8812 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8813 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8814 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8815 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8816 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8817 #
8818 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8819 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8820 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8821 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8822 #
8823 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8824 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8825 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8826 # ======================================================================
8827 DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
8828                     reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
8829             UIinfo={"groupes":("Maillage",)},
8830          regles=(  UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
8831          FAISCEAU_TRANS  =FACT(statut='f',max='**',
8832            regles=(  ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),),
8833            COUPLAGE        =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
8834            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
8835            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8836            PROF_RHO_F_INT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8837            PROF_RHO_F_EXT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8838            NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
8839            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
8840            TYPE_PAS        =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
8841            TYPE_RESEAU     =SIMP(statut='f',typ='I' ),
8842            UNITE_CD        =SIMP(statut='f',typ='I',defaut=70),
8843            UNITE_CK        =SIMP(statut='f',typ='I',defaut=71),            
8844            PAS             =SIMP(statut='f',typ='R' ),
8845            CSTE_CONNORS    =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00),
8846            NB_CONNORS      =SIMP(statut='f',typ='I',val_min=2,),
8847            RHO_TUBE        =SIMP(statut='f',typ='R' ),
8848          ),
8849          GRAPPE          =FACT(statut='f',
8850            regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
8851                    PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
8852 #  peut on créer un bloc a partir de la valeur de couplage  
8853            COUPLAGE        =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
8854            GRAPPE_2        =SIMP(statut='f',typ='TXM',
8855                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
8856            NOEUD           =SIMP(statut='f',typ=no),
8857            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
8858            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
8859            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
8860            RHO_FLUI        =SIMP(statut='f',typ='R' ),
8861            UNITE_CA        =SIMP(statut='f',typ='I',defaut=70),
8862            UNITE_KA        =SIMP(statut='f',typ='I',defaut=71),            
8863          ),
8864          FAISCEAU_AXIAL  =FACT(statut='f',max='**',
8865            regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
8866                    UN_PARMI('CARA_ELEM','RAYON_TUBE'),
8867                    ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
8868                    PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
8869                    ENSEMBLE('CARA_PAROI','VALE_PAROI'),
8870                    ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
8871                             'COOR_GRILLE','TYPE_GRILLE', ),),
8872 #  on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire                            
8873            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8874            TRI_GROUP_MA    =SIMP(statut='f',typ='TXM' ),
8875            VECT_X          =SIMP(statut='f',typ='R',max=3),
8876            PROF_RHO_FLUI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8877            PROF_VISC_CINE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8878            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
8879            RAYON_TUBE      =SIMP(statut='f',typ='R' ),
8880            COOR_TUBE       =SIMP(statut='f',typ='R',max='**'),
8881            PESANTEUR       =SIMP(statut='f',typ='R',min=4,max=4),
8882            RUGO_TUBE       =SIMP(statut='f',typ='R' ),
8883            CARA_PAROI      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5,
8884                                  into=("YC","ZC","R","HY","HZ") ),
8885            VALE_PAROI      =SIMP(statut='f',typ='R',max=5),
8886            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
8887            LONG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8888            LARG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8889            EPAI_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8890            RUGO_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8891            COEF_TRAI_TYPG  =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8892            COEF_DPOR_TYPG  =SIMP(statut='f',typ='R',max='**'),
8893            COOR_GRILLE     =SIMP(statut='f',typ='R',max='**'),
8894            TYPE_GRILLE     =SIMP(statut='f',typ='I',max='**'),
8895          ),
8896          COQUE_COAX      =FACT(statut='f',
8897            MASS_AJOU       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
8898            GROUP_MA_INT    =SIMP(statut='o',typ=grma),
8899            GROUP_MA_EXT    =SIMP(statut='o',typ=grma),
8900            VECT_X          =SIMP(statut='o',typ='R',max='**'),
8901            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
8902            MATER_INT       =SIMP(statut='o',typ=mater_sdaster ),
8903            MATER_EXT       =SIMP(statut='o',typ=mater_sdaster ),
8904            RHO_FLUI        =SIMP(statut='o',typ='R' ),
8905            VISC_CINE       =SIMP(statut='o',typ='R' ),
8906            RUGOSITE        =SIMP(statut='o',typ='R' ),
8907            PDC_MOY_1       =SIMP(statut='o',typ='R' ),
8908            PDC_DYN_1       =SIMP(statut='o',typ='R' ),
8909            PDC_MOY_2       =SIMP(statut='o',typ='R' ),
8910            PDC_DYN_2       =SIMP(statut='o',typ='R' ),
8911          ),
8912          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8913 )  ;
8914 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8915 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8916 # ======================================================================
8917 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8918 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8919 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8920 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8921 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8922 #
8923 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8924 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8925 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8926 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8927 #
8928 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8929 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8930 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8931 # ======================================================================
8932 DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n',
8933             UIinfo={"groupes":("Outils métier",)},
8934                     fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE",
8935       regles=(UN_PARMI('COUR_PRIN','COUR'),
8936               EXCLUS('COUR','COUR_SECO'), ),
8937          FREQ            =SIMP(statut='f',typ='R',defaut= 50.),
8938          SIGNAL          =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
8939          COUR            =FACT(statut='f',max='**',
8940          fr="Définition du courant de court-circuit",
8941            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
8942                    UN_PARMI('PHI_CC_2','INTC_CC_2'),),
8943            INTE_CC_1       =SIMP(statut='o',typ='R'),
8944            TAU_CC_1        =SIMP(statut='o',typ='R'),
8945            PHI_CC_1        =SIMP(statut='f',typ='R'),
8946            INTC_CC_1       =SIMP(statut='f',typ='R'),
8947            INTE_CC_2       =SIMP(statut='o',typ='R'),
8948            TAU_CC_2        =SIMP(statut='o',typ='R'),
8949            PHI_CC_2        =SIMP(statut='f',typ='R'),
8950            INTC_CC_2       =SIMP(statut='f',typ='R'),
8951            INST_CC_INIT    =SIMP(statut='o',typ='R'),
8952            INST_CC_FIN     =SIMP(statut='o',typ='R'),
8953          ),
8954          COUR_PRIN       =FACT(statut='f',
8955          fr="Définition du courant de court-circuit avec réenclenchement",
8956            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
8957            INTE_CC_1       =SIMP(statut='o',typ='R'),
8958            TAU_CC_1        =SIMP(statut='o',typ='R'),
8959            PHI_CC_1        =SIMP(statut='f',typ='R'),
8960            INTC_CC_1       =SIMP(statut='f',typ='R'),
8961            INTE_RENC_1     =SIMP(statut='f',typ='R'),
8962            TAU_RENC_1      =SIMP(statut='f',typ='R'),
8963            PHI_RENC_1      =SIMP(statut='f',typ='R'),
8964            INST_CC_INIT    =SIMP(statut='o',typ='R'),
8965            INST_CC_FIN     =SIMP(statut='o',typ='R'),
8966            INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
8967            INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 0.0E+0),
8968          ),
8969          COUR_SECO       =FACT(statut='f',max='**',
8970          fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
8971            regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
8972            INTE_CC_2       =SIMP(statut='o',typ='R'),
8973            TAU_CC_2        =SIMP(statut='o',typ='R'),
8974            PHI_CC_2        =SIMP(statut='f',typ='R'),
8975            INTC_CC_2       =SIMP(statut='f',typ='R'),
8976            INTE_RENC_2     =SIMP(statut='f',typ='R'),
8977            TAU_RENC_2      =SIMP(statut='f',typ='R'),
8978            PHI_RENC_2      =SIMP(statut='f',typ='R'),
8979            DIST            =SIMP(statut='f',typ='R',defaut=1.0E+0),
8980          ),
8981          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
8982 )  ;
8983 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
8984 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8985 # ======================================================================
8986 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8987 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8988 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8989 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8990 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8991 #
8992 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8993 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8994 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8995 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8996 #
8997 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8998 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8999 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9000 # ======================================================================
9001 DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster,
9002                     reentrant='n',
9003             fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre",
9004             UIinfo={"groupes":("Fonction",)},
9005          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
9006          NOEUD_INIT      =SIMP(statut='o',typ=no),
9007          NOEUD_FIN       =SIMP(statut='o',typ=no),
9008          VITE            =FACT(statut='o',
9009            VALE            =SIMP(statut='f',typ='R',defaut= 1. ),
9010            PROFIL          =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
9011            NB_BAV          =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
9012          ),
9013          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
9014                                into=("NON","LIN","LOG") ),
9015          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",
9016                                into=("CONSTANT","LINEAIRE","EXCLU") ),
9017          PROL_GAUCHE     =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
9018                                into=("CONSTANT","LINEAIRE","EXCLU") ),
9019          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
9020          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9021 )  ;
9022 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
9023 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9024 # ======================================================================
9025 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9026 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9027 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9028 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9029 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9030 #
9031 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9032 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9033 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9034 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9035 #
9036 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9037 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9038 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9039 # ======================================================================
9040 # RESPONSABLE MCOURTOI M.COURTOIS
9041 def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args):
9042   if VALE       != None  : return fonction_sdaster
9043   if VALE_C     != None  : return fonction_c
9044   if VALE_PARA  != None  : return fonction_sdaster
9045   if NOEUD_PARA != None  : return fonction_sdaster
9046   raise AsException("type de concept resultat non prevu")
9047
9048 DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
9049                     ,fr="Définit une fonction réelle ou complexe d'une variable réelle",
9050                      reentrant='n',
9051             UIinfo={"groupes":("Fonction",)},
9052          regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),),
9053          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
9054          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
9055          VALE            =SIMP(statut='f',typ='R',min=2,max='**',
9056                                fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"),
9057          VALE_C          =SIMP(statut='f',typ='R',min=2,max='**',
9058                                fr ="Fonction complexe définie par une liste de couples"),
9059          VALE_PARA       =SIMP(statut='f',typ=listr8_sdaster,
9060                                fr ="Fonction réelle définie par deux concepts de type listr8" ),
9061          b_vale_para     =BLOC(condition = "VALE_PARA != None",
9062            VALE_FONC       =SIMP(statut='o',typ=listr8_sdaster ),
9063          ),
9064          NOEUD_PARA      =SIMP(statut='f',typ=no,max='**',
9065                                fr ="Fonction réelle définie par une liste de noeuds et un maillage"),
9066          b_noeud_para    =BLOC(condition = "NOEUD_PARA != None",
9067            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
9068            VALE_Y          =SIMP(statut='o',typ='R',max='**'),
9069          ),
9070
9071          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
9072          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9073          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9074          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
9075          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
9076          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9077 )  ;
9078 #& MODIF COMMANDE  DATE 08/03/2007   AUTEUR SALMONA L.SALMONA 
9079 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9080 # ======================================================================
9081 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9082 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9083 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9084 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9085 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9086 #
9087 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9088 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9089 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9090 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9091 #
9092 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9093 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9094 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9095 # ======================================================================
9096 DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
9097             UIinfo={"groupes":("Post traitements",)},
9098                     fr="Définition de lèvres et d'un fond de fissure en 3D",
9099          regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'),
9100                  EXCLUS('FOND_FERME','DTAN_ORIG'),
9101                  EXCLUS('FOND_FERME','DTAN_EXTR'),
9102                       EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
9103                       EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
9104                  UN_PARMI('LEVRE_SUP','NORMALE'),
9105                       EXCLUS('LEVRE_INF','NORMALE'),
9106                  ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
9107                  ENSEMBLE('FOND_SUP','FOND_INF'),
9108                  EXCLUS('FOND_INF','FOND_FISS'),
9109                  EXCLUS('FOND_INF','FOND_FERME'),
9110                       ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
9111                       EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
9112                       EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
9113            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
9114            FOND_FISS       =FACT(statut='f',
9115              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
9116                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
9117                           EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
9118              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9119              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9120              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9121              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9122 #  à mettre à jour le max vaut-il 1  
9123              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
9124              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
9125              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
9126              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
9127            ),
9128            FOND_FERME      =FACT(statut='f',
9129              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
9130                           EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
9131              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9132              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9133              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9134              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9135              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
9136              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
9137              MAILLE_ORIG     =SIMP(statut='f',typ=ma,),
9138              GROUP_MA_ORIG   =SIMP(statut='f',typ=ma,),
9139            ),
9140            FOND_INF       =FACT(statut='f',
9141              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9142              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9143              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9144              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9145              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
9146              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
9147              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
9148              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
9149            ),
9150            FOND_SUP       =FACT(statut='f',
9151              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), 
9152              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9153              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9154              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9155              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
9156              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
9157              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
9158              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
9159            ),
9160            LEVRE_SUP       =FACT(statut='f',
9161              regles=(UN_PARMI('GROUP_MA','MAILLE'),),
9162              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9163              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9164            ),
9165            LEVRE_INF       =FACT(statut='f',
9166              regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
9167              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9168              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9169            ),
9170            NORMALE         =SIMP(statut='f',typ='R',max='**'),
9171            PREC_NORM       =SIMP(statut='f',typ='R',defaut=0.1),
9172            DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
9173            DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
9174            VECT_GRNO_ORIG  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
9175            VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
9176            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
9177 )  ;
9178 #& MODIF COMMANDE  DATE 04/07/2005   AUTEUR REZETTE C.REZETTE 
9179 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9180 # ======================================================================
9181 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9182 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9183 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9184 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9185 # (AT YOUR OPTION) ANY LATER VERSION.
9186 #
9187 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9188 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9189 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9190 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9191 #
9192 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9193 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9194 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9195 # ======================================================================
9196 # RESPONSABLE VABHHTS J.PELLET
9197 def defi_group_prod(MAILLAGE,**args):
9198   if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster
9199   if AsType(MAILLAGE) == squelette : return squelette
9200   raise AsException("type de concept resultat non prevu")
9201
9202 DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
9203                 fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
9204                 reentrant='o',
9205             UIinfo={"groupes":("Maillage",)},
9206          regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),),
9207          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
9208          DETR_GROUP_MA   =FACT(statut='f',max='**',
9209            NOM             =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),),
9210          DETR_GROUP_NO   =FACT(statut='f',max='**',
9211            NOM             =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
9212          CREA_GROUP_MA   =FACT(statut='f',max='**',
9213
9214 regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
9215 #  quel est le concept attendu deriere NOM
9216            NOM             =SIMP(statut='o',typ=grma),
9217            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9218            GROUP_MA        =SIMP(statut='f',typ=grma),
9219            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9220            INTERSEC        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9221            UNION           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9222            DIFFE           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9223            OPTION          =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ),
9224            b_group_ma      =BLOC(condition = "GROUP_MA != None",
9225              regles=(EXCLUS('POSITION','NUME_INIT'),),
9226              NUME_INIT       =SIMP(statut='f',typ='I'),
9227              POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
9228              b_nume_init   =BLOC(condition = "NUME_INIT != None",
9229                NUME_FIN        =SIMP(statut='f',typ='I' ),
9230              ),
9231            ),
9232            b_face_normale  =BLOC(condition = "OPTION == 'FACE_NORMALE'",
9233              regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9234              ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
9235              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9236              ANGL_PREC       =SIMP(statut='f',typ='R',defaut= 0.5 ),
9237              VERI_SIGNE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
9238            ),
9239            b_sphere        =BLOC(condition = "OPTION == 'SPHERE'",
9240              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
9241              POINT           =SIMP(statut='f',typ='R',max=3),
9242              NOEUD_CENTRE    =SIMP(statut='f',typ=no),
9243              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
9244              RAYON           =SIMP(statut='o',typ='R' ),
9245            ),
9246            b_cylindre      =BLOC(condition = "OPTION == 'CYLINDRE'",
9247              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9248                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9249              POINT           =SIMP(statut='f',typ='R',max=3),
9250              NOEUD_CENTRE    =SIMP(statut='f',typ=no),
9251              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
9252              RAYON           =SIMP(statut='o',typ='R' ),
9253              ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
9254              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9255            ),
9256            b_bande         =BLOC(condition = "OPTION == 'BANDE'",
9257              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9258                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9259              POINT           =SIMP(statut='f',typ='R' ,max=3),
9260              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9261              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9262              DIST            =SIMP(statut='o',typ='R' ),
9263              ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
9264              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9265            ),
9266            b_app_lache         =BLOC(condition = "OPTION == 'APPUI_LACHE'",
9267              regles=(UN_PARMI('NOEUD','GROUP_NO'),),
9268              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9269              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9270            ),
9271          ),
9272          CREA_GROUP_NO   =FACT(statut='f',max='**',
9273            OPTION          =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
9274                                                "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ),
9275
9276            b_option =BLOC(condition = "OPTION == None" ,
9277                           regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD',
9278                                                            'INTERSEC','UNION','DIFFE'),),
9279               TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9280               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9281               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9282               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9283               INTERSEC        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9284               UNION           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9285               DIFFE           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9286
9287               b_nom_group_ma  =BLOC(condition = "GROUP_MA != None",
9288                 NOM           = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9289                 CRIT_NOEUD    = SIMP(statut='f',typ='TXM',defaut="TOUS",
9290                                   into=("TOUS","SOMMET","MILIEU","CENTRE"),),
9291               ),
9292               b_group_no      =BLOC(condition = "GROUP_NO != None",
9293                                     regles=(EXCLUS('POSITION','NUME_INIT'),),
9294                 NUME_INIT       =SIMP(statut='f',typ='I'),
9295                 POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
9296                 b_nume_init     =BLOC(condition = "NUME_INIT != None",
9297                   NUME_FIN        =SIMP(statut='f',typ='I' ),
9298                 ),
9299               ),
9300               b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
9301                 NOM             =SIMP(statut='o',typ=geom),
9302               ),
9303            ),
9304
9305            b_env_sphere    =BLOC(condition = "OPTION == 'ENV_SPHERE'",
9306              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
9307              NOM             =SIMP(statut='o',typ=geom),
9308              POINT           =SIMP(statut='f',typ='R' ,max=3),
9309              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9310              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9311              RAYON           =SIMP(statut='o',typ='R' ),
9312              PRECISION       =SIMP(statut='o',typ='R' ),
9313            ),
9314            b_env_cylindre  =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
9315              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9316                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9317              NOM             =SIMP(statut='o',typ=geom),
9318              POINT           =SIMP(statut='f',typ='R' ,max=3),
9319              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9320              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9321              RAYON           =SIMP(statut='o',typ='R' ),
9322              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
9323              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9324              PRECISION       =SIMP(statut='o',typ='R' ),
9325            ),
9326            b_env_plan      =BLOC(condition = "OPTION == 'PLAN'",
9327              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9328                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9329              NOM             =SIMP(statut='o',typ=geom),
9330              POINT           =SIMP(statut='f',typ='R' ,max=3),
9331              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9332              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9333              ANGL_NAUT       =SIMP(statut='f',typ='R' ,max=3),
9334              VECT_NORMALE    =SIMP(statut='f',typ='R' ,max=3),
9335              PRECISION       =SIMP(statut='o',typ='R' ),
9336            ),
9337            b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
9338              regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),
9339                      UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
9340                      UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
9341              NOM             =SIMP(statut='o',typ=geom),
9342              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9343              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9344              NOEUD_ORIG      =SIMP(statut='f',typ=no),
9345              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
9346              NOEUD_EXTR      =SIMP(statut='f',typ=no),
9347              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
9348              PRECISION       =SIMP(statut='o',typ='R' ),
9349              CRITERE         =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ),
9350            ),
9351            b_noeud_ordo    =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
9352              regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
9353                      EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
9354              NOM             =SIMP(statut='o',typ=geom),
9355              GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
9356              NOEUD_ORIG      =SIMP(statut='f',typ=no),
9357              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
9358              NOEUD_EXTR      =SIMP(statut='f',typ=no),
9359              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
9360            ),
9361            b_tunnel    =BLOC(condition = "OPTION == 'TUNNEL'",
9362              regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'),
9363                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
9364                      AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),),
9365              NOM             =SIMP(statut='o',typ=geom),
9366              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9367              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9368              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9369              GROUP_MA_AXE    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9370              MAILLE_AXE      =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9371              NOEUD_ORIG      =SIMP(statut='f',typ=no),
9372              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
9373              RAYON           =SIMP(statut='o',typ='R'),
9374              LONGUEUR        =SIMP(statut='f',typ='R'),
9375            ),
9376          ),
9377          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
9378          INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
9379 )  ;
9380 #& MODIF COMMANDE  DATE 26/06/2006   AUTEUR CIBHHLV L.VIVAN 
9381 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9382 # ======================================================================
9383 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9384 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9385 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9386 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9387 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9388 #
9389 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9390 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9391 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9392 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9393 #
9394 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9395 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9396 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9397 # ======================================================================
9398 DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
9399                       reentrant='n',
9400             UIinfo={"groupes":("Matrices/vecteurs",)},
9401             fr="Définir les interfaces d'une structure et leur affecter un type",
9402          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
9403          INTERFACE       =FACT(statut='o',max='**',
9404            regles=(ENSEMBLE('NOM','TYPE'),
9405 #  erreur doc U sur la condition qui suit
9406                    UN_PARMI('NOEUD','GROUP_NO'),),
9407            NOM             =SIMP(statut='f',typ='TXM' ),
9408            TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
9409            NOEUD           =SIMP(statut='f',typ=no,max='**'),
9410            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
9411 #           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),
9412            MASQUE          =SIMP(statut='f',typ='TXM',max='**'),
9413          ),
9414          FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
9415          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
9416 )  ;
9417 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
9418 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9419 # ======================================================================
9420 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9421 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9422 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9423 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9424 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9425 #
9426 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9427 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9428 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9429 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9430 #
9431 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9432 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9433 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9434 # ======================================================================
9435 from Macro.defi_inte_spec_ops import defi_inte_spec_ops
9436
9437 DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC",op= defi_inte_spec_ops,sd_prod=table_fonction,
9438                      reentrant='n',
9439                      fr="Définit une matrice interspectrale",
9440                      UIinfo={"groupes":("Fonction",)},
9441
9442          DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),
9443
9444          PAR_FONCTION    =FACT(statut='f',max='**',
9445            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
9446            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
9447            FONCTION        =SIMP(statut='o',typ=fonction_c ),
9448          ),
9449          KANAI_TAJIMI    =FACT(statut='f',max='**',
9450            regles=(EXCLUS('VALE_R','VALE_C'),),
9451            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
9452            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
9453            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9454            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
9455            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
9456            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.6 ),
9457            FREQ_MOY        =SIMP(statut='f',typ='R',defaut= 5. ),
9458            VALE_R          =SIMP(statut='f',typ='R' ),
9459            VALE_C          =SIMP(statut='f',typ='C' ),
9460            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
9461            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9462            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9463          ),
9464          CONSTANT        =FACT(statut='f',max='**',
9465            regles=(EXCLUS('VALE_R','VALE_C'),),
9466            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
9467            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
9468            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9469            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
9470            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
9471            VALE_R          =SIMP(statut='f',typ='R' ),
9472            VALE_C          =SIMP(statut='f',typ='C' ),
9473            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
9474            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9475            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9476          ),
9477          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9478          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),               
9479 )  ;
9480 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
9481 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9482 # ======================================================================
9483 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9484 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9485 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9486 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9487 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9488 #
9489 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9490 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9491 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9492 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9493 #
9494 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9495 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9496 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9497 # ======================================================================
9498 # RESPONSABLE VABHHTS J.PELLET
9499 DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
9500                     fr="Définir une liste d'entier strictement croissante",
9501                     reentrant='n',
9502             UIinfo={"groupes":("Fonction",)},
9503          regles=(UN_PARMI('VALE','DEBUT'),
9504                  EXCLUS('VALE','INTERVALLE'),),
9505          VALE            =SIMP(statut='f',typ='I',max='**'),
9506          DEBUT           =SIMP(statut='f',typ='I'),
9507          INTERVALLE      =FACT(statut='f',max='**',
9508            regles=(UN_PARMI('NOMBRE','PAS'),),
9509            JUSQU_A         =SIMP(statut='o',typ='I'),
9510            NOMBRE          =SIMP(statut='f',typ='I',val_min=1,),
9511            PAS             =SIMP(statut='f',typ='I',val_min=1,),
9512          ),
9513          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
9514          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9515 )  ;
9516 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
9517 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9518 # ======================================================================
9519 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9520 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9521 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9522 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9523 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9524 #
9525 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9526 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9527 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9528 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9529 #
9530 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9531 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9532 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9533 # ======================================================================
9534 # RESPONSABLE VABHHTS J.PELLET
9535 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
9536                     fr="Définir une liste de réels strictement croissante",
9537                     reentrant='n',
9538             UIinfo={"groupes":("Fonction",)},
9539          regles=(UN_PARMI('VALE','DEBUT',),
9540                  EXCLUS('VALE','INTERVALLE'),
9541                  ENSEMBLE('DEBUT','INTERVALLE')),
9542          VALE            =SIMP(statut='f',typ='R',max='**'),
9543          DEBUT           =SIMP(statut='f',typ='R'),
9544          INTERVALLE      =FACT(statut='f',max='**',
9545            regles=(UN_PARMI('NOMBRE','PAS'),),
9546            JUSQU_A         =SIMP(statut='o',typ='R'),
9547            NOMBRE          =SIMP(statut='f',typ='I'),
9548            PAS             =SIMP(statut='f',typ='R'),
9549          ),
9550          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
9551          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9552 )  ;
9553 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
9554 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9555 # ======================================================================
9556 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9557 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9558 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9559 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9560 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9561 #
9562 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9563 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9564 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9565 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9566 #
9567 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9568 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9569 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9570 # ======================================================================
9571 # RESPONSABLE VABHHTS J.PELLET
9572 DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
9573                    fr="Définition d'un nouveau maillage à partir de macro-éléments",
9574                    reentrant='n',
9575             UIinfo={"groupes":("Maillage",)},
9576          DEFI_SUPER_MAILLE =FACT(statut='o',max='**',
9577            MACR_ELEM_STAT  =SIMP(statut='o',typ=macr_elem_stat,max='**' ),
9578            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
9579            TRAN            =SIMP(statut='f',typ='R',max=3),
9580            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
9581            b_angl_naut     =BLOC(condition = "ANGL_NAUT != None",
9582              CENTRE          =SIMP(statut='f',typ='R',max=3),
9583            ),
9584          ),
9585          RECO_GLOBAL     =FACT(statut='f',max='**',
9586            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
9587            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9588            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
9589            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9590            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
9591          ),
9592          RECO_SUPER_MAILLE =FACT(statut='f',max='**',
9593            SUPER_MAILLE    =SIMP(statut='o',typ=ma,max='**'),
9594            GROUP_NO        =SIMP(statut='o',typ=grno,max='**'),
9595            OPTION          =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
9596            geometrique     =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
9597              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9598              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
9599            ),
9600          ),
9601          DEFI_NOEUD      =FACT(statut='f',max='**',
9602            regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
9603            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
9604                                  fr="Renommage de tous les noeuds" ),
9605            NOEUD_INIT      =SIMP(statut='f',typ=no,
9606                                  fr="Renommage d un seul noeud"),                     
9607            b_tout          =BLOC(condition = "TOUT != None",
9608              PREFIXE         =SIMP(statut='f',typ='TXM' ),
9609              INDEX           =SIMP(statut='o',typ='I',max='**'),
9610            ),
9611            b_noeud_init    =BLOC(condition = "NOEUD_INIT != None",
9612              SUPER_MAILLE    =SIMP(statut='o',typ=ma),
9613              NOEUD_FIN       =SIMP(statut='o',typ=no),
9614            ),        
9615          ),
9616          DEFI_GROUP_NO   =FACT(statut='f',max='**',
9617            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),
9618                 AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
9619                    ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
9620 #  la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U           
9621            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
9622                                  fr="Création de plusieurs groupes de noeuds" ),
9623            SUPER_MAILLE    =SIMP(statut='f',typ=ma,
9624                                  fr="Création de plusieurs groupes de noeuds"),
9625            GROUP_NO_INIT   =SIMP(statut='f',typ=grno,
9626                                  fr="Création d un seul groupe de noeuds"),
9627            PREFIXE         =SIMP(statut='f',typ='TXM' ),
9628            INDEX           =SIMP(statut='f',typ='I',max='**'),
9629            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
9630          ),
9631 )  ;
9632 #& MODIF COMMANDE  DATE 07/11/2006   AUTEUR MARKOVIC D.MARKOVIC 
9633 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9634 # ======================================================================
9635 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9636 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9637 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9638 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9639 # (AT YOUR OPTION) ANY LATER VERSION.
9640 #
9641 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9642 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9643 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9644 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9645 #
9646 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9647 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9648 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9649 # ======================================================================
9650 DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
9651                    fr="Définition des paramètres décrivant le comportement d un matériau",
9652                    reentrant='n',
9653             UIinfo={"groupes":("Modélisation",)},
9654        regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH',
9655                       'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO',
9656                       'ELAS_HYPER',),
9657                EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
9658                EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'),
9659                EXCLUS('TAHERI','TAHERI_FO'),
9660                EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
9661                PRESENT_PRESENT('ROUSSELIER','TRACTION'),
9662                PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
9663                EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
9664                EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
9665                EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
9666                EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI','VISC_IRRA_LOG',
9667                'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',),
9668                EXCLUS('LMARC','LMARC_FO'),
9669                EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
9670                EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
9671                PRESENT_PRESENT('BPEL_ACIER','ELAS'),
9672                EXCLUS('RCCM','RCCM_FO'),
9673                EXCLUS('WEIBULL','WEIBULL_FO'),
9674                PRESENT_PRESENT('BARCELONE','CAM_CLAY','ELAS'),
9675                PRESENT_PRESENT('CAM_CLAY','ELAS'),
9676                PRESENT_PRESENT('LAIGLE','ELAS'),
9677                PRESENT_PRESENT('DRUCK_PRAGER','ELAS'),
9678                PRESENT_PRESENT('HOEK_BROWN','ELAS'),
9679                EXCLUS('MAZARS','MAZARS_FO'),
9680                PRESENT_PRESENT('BAZANT_FD','ELAS_FO'),
9681                PRESENT_PRESENT('JOINT_BA','ELAS'),
9682                PRESENT_PRESENT('CABLE','ELAS'),
9683                EXCLUS('GLRC_DAMAGE','GLRC_DM'),
9684                ),
9685 #
9686 # comportement élastique
9687 #
9688            ELAS            =FACT(statut='f',
9689              E               =SIMP(statut='o',typ='R',val_min=0.E+0),
9690              NU              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0),
9691              RHO             =SIMP(statut='f',typ='R'),
9692              ALPHA           =SIMP(statut='f',typ='R'),
9693              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
9694              AMOR_BETA       =SIMP(statut='f',typ='R'),
9695              AMOR_HYST       =SIMP(statut='f',typ='R'),
9696            ),
9697            ELAS_FO         =FACT(statut='f',
9698              regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
9699              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9700              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9701              RHO             =SIMP(statut='f',typ='R'),
9702              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
9703              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
9704              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9705              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9706              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9707              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9708              K_DESSIC        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9709              B_ENDOGE        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9710              FONC_DESORP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9711              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ),
9712            ),
9713            ELAS_FLUI       =FACT(statut='f',
9714              E               =SIMP(statut='o',typ='R'),
9715              NU              =SIMP(statut='o',typ='R'),
9716              RHO             =SIMP(statut='o',typ='R'),
9717              PROF_RHO_F_INT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9718              PROF_RHO_F_EXT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9719              COEF_MASS_AJOU  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9720              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ),
9721            ),
9722            ELAS_ISTR       =FACT(statut='f',
9723              E_L             =SIMP(statut='o',typ='R'),
9724              E_N             =SIMP(statut='o',typ='R'),
9725              NU_LT           =SIMP(statut='o',typ='R'),
9726              NU_LN           =SIMP(statut='o',typ='R'),
9727              G_LN            =SIMP(statut='o',typ='R'),
9728              RHO             =SIMP(statut='f',typ='R'),
9729              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9730              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9731            ),
9732            ELAS_ISTR_FO    =FACT(statut='f',
9733              regles=(
9734                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
9735                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
9736                     ),
9737              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9738              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9739              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9740              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9741              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9742              RHO             =SIMP(statut='f',typ='R'),
9743              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
9744              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
9745              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9746              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9747              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")),
9748            ),
9749            ELAS_ORTH       =FACT(statut='f',
9750              E_L             =SIMP(statut='o',typ='R'),
9751              E_T             =SIMP(statut='o',typ='R'),
9752              E_N             =SIMP(statut='f',typ='R'),
9753              NU_LT           =SIMP(statut='o',typ='R'),
9754              NU_LN           =SIMP(statut='f',typ='R'),
9755              NU_TN           =SIMP(statut='f',typ='R'),
9756              G_LT            =SIMP(statut='o',typ='R'),
9757              G_LN            =SIMP(statut='f',typ='R'),
9758              G_TN            =SIMP(statut='f',typ='R'),
9759              RHO             =SIMP(statut='f',typ='R'),
9760              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9761              ALPHA_T         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9762              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9763              XT              =SIMP(statut='f',typ='R',defaut= 1. ),
9764              XC              =SIMP(statut='f',typ='R',defaut= 1. ),
9765              YT              =SIMP(statut='f',typ='R',defaut= 1. ),
9766              YC              =SIMP(statut='f',typ='R',defaut= 1. ),
9767              S_LT            =SIMP(statut='f',typ='R',defaut= 1. ),
9768              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
9769              AMOR_BETA       =SIMP(statut='f',typ='R'),
9770              AMOR_HYST       =SIMP(statut='f',typ='R'),
9771            ),
9772            ELAS_ORTH_FO    =FACT(statut='f',
9773              regles=(
9774                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
9775                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
9776                       PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'),
9777                     ),
9778              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9779              E_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9780              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9781              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9782              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9783              NU_TN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9784              G_LT            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9785              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9786              G_TN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9787              RHO             =SIMP(statut='f',typ='R'),
9788              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
9789              PRECISION       =SIMP(statut='f',typ='R',defaut= 1. ),
9790              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9791              ALPHA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9792              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9793              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ),
9794              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9795              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9796              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9797            ),
9798            ELAS_HYPER      =FACT(statut='f',
9799                                  regles=(UN_PARMI('K','NU'),),
9800              C10             =SIMP(statut='f',typ='R',defaut=0.0),        
9801              C01             =SIMP(statut='o',typ='R'),            
9802              C20             =SIMP(statut='f',typ='R',defaut=0.0),            
9803              K               =SIMP(statut='f',typ='R'), 
9804              RHO             =SIMP(statut='f',typ='R',defaut=0.0),  
9805              NU              =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0),          
9806            ),
9807            ELAS_COQUE      =FACT(statut='f',
9808              regles=(EXCLUS('MEMB_L','M_LLLL',),
9809                      PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
9810                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
9811                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
9812                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
9813                                      'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
9814                                      'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
9815                                      'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
9816                                      'C_LZTZ','C_TZTZ'),),
9817              MEMB_L          =SIMP(statut='f',typ='R'),
9818              MEMB_LT         =SIMP(statut='f',typ='R'),
9819              MEMB_T          =SIMP(statut='f',typ='R'),
9820              MEMB_G_LT       =SIMP(statut='f',typ='R'),
9821              FLEX_L          =SIMP(statut='f',typ='R'),
9822              FLEX_LT         =SIMP(statut='f',typ='R'),
9823              FLEX_T          =SIMP(statut='f',typ='R'),
9824              FLEX_G_LT       =SIMP(statut='f',typ='R'),
9825              CISA_L          =SIMP(statut='f',typ='R'),
9826              CISA_T          =SIMP(statut='f',typ='R'),
9827              M_LLLL          =SIMP(statut='f',typ='R'),
9828              M_LLTT          =SIMP(statut='f',typ='R'),
9829              M_LLLT          =SIMP(statut='f',typ='R'),
9830              M_TTTT          =SIMP(statut='f',typ='R'),
9831              M_TTLT          =SIMP(statut='f',typ='R'),
9832              M_LTLT          =SIMP(statut='f',typ='R'),
9833              F_LLLL          =SIMP(statut='f',typ='R'),
9834              F_LLTT          =SIMP(statut='f',typ='R'),
9835              F_LLLT          =SIMP(statut='f',typ='R'),
9836              F_TTTT          =SIMP(statut='f',typ='R'),
9837              F_TTLT          =SIMP(statut='f',typ='R'),
9838              F_LTLT          =SIMP(statut='f',typ='R'),
9839              MF_LLLL         =SIMP(statut='f',typ='R'),
9840              MF_LLTT         =SIMP(statut='f',typ='R'),
9841              MF_LLLT         =SIMP(statut='f',typ='R'),
9842              MF_TTTT         =SIMP(statut='f',typ='R'),
9843              MF_TTLT         =SIMP(statut='f',typ='R'),
9844              MF_LTLT         =SIMP(statut='f',typ='R'),
9845              MC_LLLZ         =SIMP(statut='f',typ='R'),
9846              MC_LLTZ         =SIMP(statut='f',typ='R'),
9847              MC_TTLZ         =SIMP(statut='f',typ='R'),
9848              MC_TTTZ         =SIMP(statut='f',typ='R'),
9849              MC_LTLZ         =SIMP(statut='f',typ='R'),
9850              MC_LTTZ         =SIMP(statut='f',typ='R'),
9851              FC_LLLZ         =SIMP(statut='f',typ='R'),
9852              FC_LLTZ         =SIMP(statut='f',typ='R'),
9853              FC_TTLZ         =SIMP(statut='f',typ='R'),
9854              FC_TTTZ         =SIMP(statut='f',typ='R'),
9855              FC_LTLZ         =SIMP(statut='f',typ='R'),
9856              FC_LTTZ         =SIMP(statut='f',typ='R'),
9857              C_LZLZ          =SIMP(statut='f',typ='R'),
9858              C_LZTZ          =SIMP(statut='f',typ='R'),
9859              C_TZTZ          =SIMP(statut='f',typ='R'),
9860              RHO             =SIMP(statut='f',typ='R'),
9861              ALPHA           =SIMP(statut='f',typ='R'),
9862            ),
9863            ELAS_COQUE_FO   =FACT(statut='f',
9864              regles=(EXCLUS('MEMB_L','M_LLLL',),
9865                      PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
9866                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
9867                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
9868                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
9869                                      'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
9870                                      'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
9871                                      'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
9872              MEMB_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9873              MEMB_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9874              MEMB_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9875              MEMB_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9876              FLEX_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9877              FLEX_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9878              FLEX_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9879              FLEX_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9880              CISA_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9881              CISA_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9882              M_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9883              M_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9884              M_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9885              M_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9886              M_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9887              M_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9888              F_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9889              F_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9890              F_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9891              F_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9892              F_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9893              F_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9894              MF_LLLL         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9895              MF_LLTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9896              MF_LLLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9897              MF_TTTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9898              MF_TTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9899              MF_LTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9900              MC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9901              MC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9902              MC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9903              MC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9904              MC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9905              MC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9906              FC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9907              FC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9908              FC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9909              FC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9910              FC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9911              FC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9912              C_LZLZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9913              C_LZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9914              C_TZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9915              RHO             =SIMP(statut='f',typ='R'),
9916              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9917              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ),
9918            ),
9919            APPUI_ELAS      =FACT(statut='f',
9920              E_N             =SIMP(statut='o',typ='R'),
9921              E_TAN           =SIMP(statut='f',typ='R',defaut= 0.E+0),
9922            ),
9923            CABLE           =FACT(statut='f',
9924              EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
9925            ),
9926 #
9927 # comportement mécanique non linéaire
9928 #
9929            TRACTION        =FACT(statut='f',
9930              SIGM            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9931              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ),
9932            ),
9933            ECRO_LINE       =FACT(statut='f',
9934              D_SIGM_EPSI     =SIMP(statut='o',typ='R',),
9935              SY              =SIMP(statut='o',typ='R',),
9936            ),
9937            ECRO_LINE_FO    =FACT(statut='f',
9938              D_SIGM_EPSI     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9939              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9940              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9941            ),
9942            ECRO_PUIS       =FACT(statut='f',
9943              SY              =SIMP(statut='o',typ='R',),  
9944              A_PUIS          =SIMP(statut='o',typ='R',val_min=0.0),
9945              N_PUIS          =SIMP(statut='o',typ='R',val_min=1.E-6),
9946            ),
9947            ECRO_PUIS_FO    =FACT(statut='f',
9948              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9949              A_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9950              N_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9951              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9952            ),
9953            BETON_ECRO_LINE =FACT(statut='f',
9954              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
9955              SYT             =SIMP(statut='o',typ='R'),
9956              SYC             =SIMP(statut='f',typ='R'),
9957            ),
9958            BETON_REGLE_PR =FACT(statut='f',
9959              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
9960              SYT             =SIMP(statut='o',typ='R'),
9961              SYC             =SIMP(statut='f',typ='R'),
9962              EPSC            =SIMP(statut='f',typ='R'),
9963              N               =SIMP(statut='f',typ='R'),
9964            ),
9965            ENDO_ORTH_BETON  =FACT(statut='f',
9966              ALPHA            =SIMP(statut='f',typ='R',defaut=0.9),
9967              K0               =SIMP(statut='o',typ='R'),
9968              K1               =SIMP(statut='o',typ='R'),
9969              K2               =SIMP(statut='f',typ='R',defaut=7.E-4),
9970              ECROB            =SIMP(statut='o',typ='R'),
9971              ECROD            =SIMP(statut='o',typ='R'),
9972            ),
9973            PRAGER          =FACT(statut='f',
9974              C               =SIMP(statut='o',typ='R'),
9975            ),
9976            PRAGER_FO       =FACT(statut='f',
9977              C               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9978              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9979            ),
9980            ECRO_FLEJOU     =FACT(statut='f',
9981              EP              =SIMP(statut='o',typ='R'),
9982              SY              =SIMP(statut='o',typ='R'),
9983              SU              =SIMP(statut='o',typ='R'),
9984              PUISS           =SIMP(statut='o',typ='R'),
9985            ),
9986            TAHERI          =FACT(statut='f',
9987              R_0             =SIMP(statut='o',typ='R'),
9988              ALPHA           =SIMP(statut='o',typ='R'),
9989              M               =SIMP(statut='o',typ='R'),
9990              A               =SIMP(statut='o',typ='R'),
9991              B               =SIMP(statut='o',typ='R'),
9992              C1              =SIMP(statut='o',typ='R'),
9993              C_INF           =SIMP(statut='o',typ='R'),
9994              S               =SIMP(statut='o',typ='R'),
9995            ),
9996            TAHERI_FO       =FACT(statut='f',
9997              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9998              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9999              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10000              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10001              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10002              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10003              C_INF           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10004              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10005              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10006            ),
10007            ROUSSELIER      =FACT(statut='f',
10008              D               =SIMP(statut='o',typ='R'),
10009              SIGM_1          =SIMP(statut='o',typ='R'),
10010              PORO_INIT       =SIMP(statut='o',typ='R'),
10011              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
10012              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
10013              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
10014              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
10015              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
10016            ),
10017            ROUSSELIER_FO   =FACT(statut='f',
10018              D               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10019              SIGM_1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10020              PORO_INIT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10021              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
10022              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
10023              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
10024              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
10025              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
10026              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10027            ),
10028            VISC_SINH      =FACT(statut='f',
10029              SIGM_0          =SIMP(statut='o',typ='R'),
10030              EPSI_0          =SIMP(statut='o',typ='R'),
10031              M               =SIMP(statut='o',typ='R'),
10032            ),
10033            CIN1_CHAB  =FACT(statut='f',
10034              R_0             =SIMP(statut='o',typ='R'),
10035              R_I             =SIMP(statut='f',typ='R'),
10036              B               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
10037              C_I             =SIMP(statut='o',typ='R'),
10038              K               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
10039              W               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
10040              G_0             =SIMP(statut='o',typ='R'),
10041              A_I             =SIMP(statut='f',typ='R',defaut= 1.0E+0),
10042            ),
10043            CIN1_CHAB_FO  =FACT(statut='f',
10044              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10045              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10046              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10047              C_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10048              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10049              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10050              G_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10051              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10052              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
10053            ),
10054            CIN2_CHAB  =FACT(statut='f',
10055              R_0             =SIMP(statut='o',typ='R'),
10056              R_I             =SIMP(statut='f',typ='R'),
10057              B               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10058              C1_I            =SIMP(statut='o',typ='R'),
10059              C2_I            =SIMP(statut='o',typ='R'),
10060              K               =SIMP(statut='f',typ='R',defaut= 1.),
10061              W               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10062              G1_0            =SIMP(statut='o',typ='R'),
10063              G2_0            =SIMP(statut='o',typ='R'),
10064              A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
10065            ),
10066            CIN2_CHAB_FO  =FACT(statut='f',
10067              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10068              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10069              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10070              C1_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10071              C2_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10072              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10073              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10074              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10075              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10076              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10077              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10078            ),
10079            VISCOCHAB       =FACT(statut='f',
10080              K_0             =SIMP(statut='o',typ='R'),
10081              A_K             =SIMP(statut='o',typ='R'),
10082              A_R             =SIMP(statut='o',typ='R'),
10083              K               =SIMP(statut='o',typ='R'),
10084              N               =SIMP(statut='o',typ='R'),
10085              ALP             =SIMP(statut='o',typ='R'),
10086              B               =SIMP(statut='o',typ='R'),
10087              M_R             =SIMP(statut='o',typ='R'),
10088              G_R             =SIMP(statut='o',typ='R'),
10089              MU              =SIMP(statut='o',typ='R'),
10090              Q_M             =SIMP(statut='o',typ='R'),
10091              Q_0             =SIMP(statut='o',typ='R'),
10092              QR_0            =SIMP(statut='o',typ='R'),
10093              ETA             =SIMP(statut='o',typ='R'),
10094              C1              =SIMP(statut='o',typ='R'),
10095              M_1             =SIMP(statut='o',typ='R'),
10096              D1              =SIMP(statut='o',typ='R'),
10097              G_X1            =SIMP(statut='o',typ='R'),
10098              G1_0            =SIMP(statut='o',typ='R'),
10099              C2              =SIMP(statut='o',typ='R'),
10100              M_2             =SIMP(statut='o',typ='R'),
10101              D2              =SIMP(statut='o',typ='R'),
10102              G_X2            =SIMP(statut='o',typ='R'),
10103              G2_0            =SIMP(statut='o',typ='R'),
10104              A_I             =SIMP(statut='o',typ='R'),
10105            ),
10106            VISCOCHAB_FO    =FACT(statut='f',
10107              K_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10108              A_K             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10109              A_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10110              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10111              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10112              ALP             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10113              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10114              M_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10115              G_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10116              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10117              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10118              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10119              QR_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10120              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10121              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10122              M_1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10123              D1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10124              G_X1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10125              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10126              C2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10127              M_2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10128              D2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10129              G_X2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10130              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10131              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10132              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10133            ),
10134            LEMAITRE        =FACT(statut='f',
10135              N               =SIMP(statut='o',typ='R'),
10136              UN_SUR_K        =SIMP(statut='o',typ='R'),
10137              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10138            ),
10139            LEMAITRE_IRRA    =FACT(statut='f',
10140              N               =SIMP(statut='o',typ='R'),
10141              UN_SUR_K        =SIMP(statut='o',typ='R'),
10142              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10143              QSR_K           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10144              BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10145              PHI_ZERO        =SIMP(statut='f',typ='R',defaut= 1.E+20),
10146              L               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10147              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10148              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10149              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10150            ),
10151            LMARC_IRRA       =FACT(statut='f',
10152              DE_0            =SIMP(statut='o',typ='R'),
10153              R_0             =SIMP(statut='o',typ='R'),
10154              N               =SIMP(statut='o',typ='R'),
10155              K               =SIMP(statut='o',typ='R'),
10156              Y_I             =SIMP(statut='o',typ='R'),
10157              Y_0             =SIMP(statut='o',typ='R'),
10158              B               =SIMP(statut='o',typ='R'),
10159              A_0             =SIMP(statut='o',typ='R'),
10160              RM              =SIMP(statut='o',typ='R'),
10161              M               =SIMP(statut='o',typ='R'),
10162              P               =SIMP(statut='o',typ='R'),
10163              P1              =SIMP(statut='o',typ='R'),
10164              P2              =SIMP(statut='o',typ='R'),
10165              M11             =SIMP(statut='o',typ='R'),
10166              M22             =SIMP(statut='o',typ='R'),
10167              M33             =SIMP(statut='o',typ='R'),
10168              M66             =SIMP(statut='o',typ='R'),
10169              N11             =SIMP(statut='o',typ='R'),
10170              N22             =SIMP(statut='o',typ='R'),
10171              N33             =SIMP(statut='o',typ='R'),
10172              N66             =SIMP(statut='o',typ='R'),
10173              Q11             =SIMP(statut='o',typ='R'),
10174              Q22             =SIMP(statut='o',typ='R'),
10175              Q33             =SIMP(statut='o',typ='R'),
10176              Q66             =SIMP(statut='o',typ='R'),
10177              R11             =SIMP(statut='o',typ='R'),
10178              R22             =SIMP(statut='o',typ='R'),
10179              R33             =SIMP(statut='o',typ='R'),
10180              R66             =SIMP(statut='o',typ='R'),
10181              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10182              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10183              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10184            ),
10185            ZIRC_CYRA2      =FACT(statut='f',
10186              EPSI_FAB        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10187              TEMP_RECUIT     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10188              FLUX_PHI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10189              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
10190            ),
10191           VISC_IRRA_LOG    =FACT(statut='f',
10192              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
10193              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
10194              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
10195              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
10196              FLUX_PHI        =SIMP(statut='o',typ='R',),
10197            ),
10198           GRAN_IRRA_LOG    =FACT(statut='f',
10199              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
10200              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
10201              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
10202              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
10203              FLUX_PHI        =SIMP(statut='o',typ='R',),
10204              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0),
10205              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0),
10206              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0),
10207            ),
10208           LEMA_SEUIL   =FACT(statut='f',
10209              A               =SIMP(statut='o',typ='R',),
10210              S               =SIMP(statut='o',typ='R',),
10211            ),
10212           LEMA_SEUIL_FO=FACT(statut='f',
10213              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10214              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10215              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10216            ),
10217           IRRAD3M=FACT(statut='f',
10218                      R02      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10219                      EPSI_U   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10220                      RM       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10221                      AI0      =SIMP(statut='o',typ='R',val_min=0.0),
10222                      ZETA     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10223                      ETAI_S   =SIMP(statut='o',typ='R',val_min=0.0),
10224                      R        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10225                      ALPHA    =SIMP(statut='o',typ='R',val_min=0.0),
10226                      PHI0     =SIMP(statut='o',typ='R',val_min=0.0),
10227                      KAPPA    =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.8,val_max=1.0),
10228              VERI_P           =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","IRRA") ),
10229            ),
10230            ZIRC_EPRI       =FACT(statut='f',
10231              FLUX_PHI        =SIMP(statut='o',typ='R'),
10232              R_P             =SIMP(statut='o',typ='R'),
10233              THETA_MAX       =SIMP(statut='o',typ='R'),
10234            ),
10235            LEMAITRE_FO     =FACT(statut='f',
10236              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10237              UN_SUR_K        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10238              UN_SUR_M        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10239              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10240            ),
10241            LMARC           =FACT(statut='f',
10242              DE_0            =SIMP(statut='o',typ='R'),
10243              R_0             =SIMP(statut='o',typ='R'),
10244              N               =SIMP(statut='o',typ='R'),
10245              K               =SIMP(statut='o',typ='R'),
10246              Y_I             =SIMP(statut='o',typ='R'),
10247              Y_0             =SIMP(statut='o',typ='R'),
10248              B               =SIMP(statut='o',typ='R'),
10249              A_0             =SIMP(statut='o',typ='R'),
10250              RM              =SIMP(statut='o',typ='R'),
10251              M               =SIMP(statut='o',typ='R'),
10252              P               =SIMP(statut='o',typ='R'),
10253              P1              =SIMP(statut='o',typ='R'),
10254              P2              =SIMP(statut='o',typ='R'),
10255              M11             =SIMP(statut='o',typ='R'),
10256              M22             =SIMP(statut='o',typ='R'),
10257              M33             =SIMP(statut='o',typ='R'),
10258              M66             =SIMP(statut='o',typ='R'),
10259              N11             =SIMP(statut='o',typ='R'),
10260              N22             =SIMP(statut='o',typ='R'),
10261              N33             =SIMP(statut='o',typ='R'),
10262              N66             =SIMP(statut='o',typ='R'),
10263              Q11             =SIMP(statut='o',typ='R'),
10264              Q22             =SIMP(statut='o',typ='R'),
10265              Q33             =SIMP(statut='o',typ='R'),
10266              Q66             =SIMP(statut='o',typ='R'),
10267              R11             =SIMP(statut='o',typ='R'),
10268              R22             =SIMP(statut='o',typ='R'),
10269              R33             =SIMP(statut='o',typ='R'),
10270              R66             =SIMP(statut='o',typ='R'),
10271            ),
10272            LMARC_FO        =FACT(statut='f',
10273              DE_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10274              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10275              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10276              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10277              Y_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10278              Y_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10279              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10280              A_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10281              RM              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10282              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10283              P               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10284              P1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10285              P2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10286              M11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10287              M22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10288              M33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10289              M66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10290              N11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10291              N22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10292              N33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10293              N66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10294              Q11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10295              Q22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10296              Q33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10297              Q66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10298              R11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10299              R22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10300              R33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10301              R66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10302              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10303            ),
10304            VMIS_POUTRE     =FACT(statut='f',
10305              NP              =SIMP(statut='o',typ='R'),
10306              MEY             =SIMP(statut='o',typ='R'),
10307              MPY             =SIMP(statut='o',typ='R'),
10308              CAY             =SIMP(statut='o',typ='R'),
10309              CBY             =SIMP(statut='o',typ='R'),
10310              MEZ             =SIMP(statut='o',typ='R'),
10311              MPZ             =SIMP(statut='o',typ='R'),
10312              CAZ             =SIMP(statut='o',typ='R'),
10313              CBZ             =SIMP(statut='o',typ='R'),
10314              MPX             =SIMP(statut='o',typ='R'),
10315            ),
10316            VMIS_POUTRE_FO  =FACT(statut='f',
10317              NP              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10318              MEY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10319              MPY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10320              CAY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10321              CBY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10322              MEZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10323              MPZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10324              CAZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10325              CBZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10326              MPX             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10327              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10328            ),
10329            ARME            =FACT(statut='f',
10330              KYE             =SIMP(statut='o',typ='R'),
10331              DLE             =SIMP(statut='o',typ='R'),
10332              KYP             =SIMP(statut='o',typ='R'),
10333              DLP             =SIMP(statut='o',typ='R'),
10334              KYG             =SIMP(statut='o',typ='R'),
10335            ),
10336            ASSE_CORN       =FACT(statut='f',
10337              NU_1            =SIMP(statut='o',typ='R'),
10338              MU_1            =SIMP(statut='o',typ='R'),
10339              DXU_1           =SIMP(statut='o',typ='R'),
10340              DRYU_1          =SIMP(statut='o',typ='R'),
10341              C_1             =SIMP(statut='o',typ='R'),
10342              NU_2            =SIMP(statut='o',typ='R'),
10343              MU_2            =SIMP(statut='o',typ='R'),
10344              DXU_2           =SIMP(statut='o',typ='R'),
10345              DRYU_2          =SIMP(statut='o',typ='R'),
10346              C_2             =SIMP(statut='o',typ='R'),
10347              KY              =SIMP(statut='o',typ='R'),
10348              KZ              =SIMP(statut='o',typ='R'),
10349              KRX             =SIMP(statut='o',typ='R'),
10350              KRZ             =SIMP(statut='o',typ='R'),
10351              R_P0            =SIMP(statut='f',typ='R',defaut= 1.E+4 ),
10352            ),
10353            DIS_CONTACT     =FACT(statut='f',
10354              RIGI_NOR        =SIMP(statut='f',typ='R' ),
10355              DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10356              DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10357              RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10358              AMOR_NOR        =SIMP(statut='f',typ='R' ),
10359              AMOR_TAN        =SIMP(statut='f',typ='R' ),
10360              COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10361              JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10362              KT_ULTM         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10363              EFFO_N_INIT     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10364              regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),
10365                      EXCLUS('RELA_MZ','ANGLE_1'),
10366                      PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4',
10367                                      'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),),
10368              RIGI_N_IRRA     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10369              RIGI_N_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10370              RELA_MZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10371              ANGLE_1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10372              ANGLE_2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10373              ANGLE_3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10374              ANGLE_4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10375              MOMENT_1        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10376              MOMENT_2        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10377              MOMENT_3        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10378              MOMENT_4        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10379              C_PRAGER_MZ     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10380              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ),
10381            ),
10382            DIS_GRICRA    =FACT(statut='f',
10383              KN_AX       =SIMP(statut='o',typ='R' ),
10384              KT_AX       =SIMP(statut='o',typ='R' ),
10385              COUL_AX     =SIMP(statut='o',typ='R' ),
10386              F_SER       =SIMP(statut='f',typ='R' ),
10387              F_SER_FO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10388              ET_AX       =SIMP(statut='f',typ='R',defaut=1.e-7 ),
10389              ET_ROT      =SIMP(statut='f',typ='R',defaut=1.e-7 ),
10390              ANG1        =SIMP(statut='f',typ='R' ),
10391              ANG2        =SIMP(statut='f',typ='R' ),
10392              PEN1        =SIMP(statut='f',typ='R' ),
10393              PEN2        =SIMP(statut='f',typ='R' ),
10394              PEN3        =SIMP(statut='f',typ='R' ),
10395              ANG1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10396              ANG2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10397              PEN1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10398              PEN2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10399              PEN3_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10400              regles=(EXCLUS('ANG1','ANG1_FO',),
10401                      UN_PARMI('ANG1','ANG1_FO',),
10402                      EXCLUS('F_SER','F_SER_FO',),
10403                      UN_PARMI('F_SER','F_SER_FO',),
10404                      PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',),
10405                      PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',),
10406                                      ),
10407              VERI_P      =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ),
10408            ),
10409            NADAI_B         =FACT(statut='f',
10410              F_C             =SIMP(statut='o',typ='R'),
10411              F_T             =SIMP(statut='o',typ='R'),
10412              CRIT_E_C        =SIMP(statut='o',typ='R'),
10413              EPSP_P_C        =SIMP(statut='o',typ='R'),
10414              EPSP_R_C        =SIMP(statut='o',typ='R'),
10415              EPSI_R_T        =SIMP(statut='o',typ='R'),
10416              FAC_T_C         =SIMP(statut='o',typ='R'),
10417            ),
10418            BETON_DOUBLE_DP =FACT(statut='f',
10419              F_C             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10420              F_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10421              COEF_BIAX       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10422              ENER_COMP_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10423              ENER_TRAC_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10424              COEF_ELAS_COMP  =SIMP(statut='o',typ='R'),
10425              LONG_CARA       =SIMP(statut='f',typ='R'),
10426              ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
10427              ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
10428              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ),
10429            ),
10430            LABORD_1D=FACT(statut='f',min=0 ,
10431              Y01             =SIMP(statut='o',typ='R'),
10432              Y02             =SIMP(statut='o',typ='R'),
10433              A1              =SIMP(statut='o',typ='R'),
10434              A2              =SIMP(statut='o',typ='R'),
10435              B1              =SIMP(statut='o',typ='R'),
10436              B2              =SIMP(statut='o',typ='R'),
10437              BETA1           =SIMP(statut='o',typ='R'),
10438              BETA2           =SIMP(statut='o',typ='R'),
10439              SIGF            =SIMP(statut='o',typ='R'),
10440            ),
10441          MAZARS=FACT(statut='f',min=0 ,
10442              EPSD0           =SIMP(statut='o',typ='R'),
10443              BETA            =SIMP(statut='o',typ='R'),
10444              AC              =SIMP(statut='o',typ='R'),
10445              BC              =SIMP(statut='o',typ='R'),
10446              AT              =SIMP(statut='o',typ='R'),
10447              BT              =SIMP(statut='o',typ='R'),
10448            ),
10449          MAZARS_FO=FACT(statut='f',min=0 ,
10450              EPSD0           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10451              BETA            =SIMP(statut='o',typ='R'),
10452              AC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10453              BC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10454              AT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10455              BT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10456              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ),
10457            ),
10458          JOINT_BA=FACT(statut='f',min=0 ,max=1,
10459              HPEN            =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0),
10460              GTT             =SIMP(statut='o',typ='R',val_min=0.E+0),
10461              GAMD0           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1),
10462              AD1             =SIMP(statut='o',typ='R',val_min=0.E+0),
10463              BD1             =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1),
10464              GAMD2           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
10465              AD2             =SIMP(statut='o',typ='R',val_min=0.E+0),
10466              BD2             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
10467              VIFROT          =SIMP(statut='o',typ='R',val_min=0.E+0),
10468              FA              =SIMP(statut='o',typ='R',val_min=0.E+0),
10469              FC              =SIMP(statut='o',typ='R',val_min=0.E+0),
10470              EPSTR0          =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
10471              ADN             =SIMP(statut='o',typ='R',val_min=0.E+0),
10472              BDN             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
10473            ),
10474           VENDOCHAB       =FACT(statut='f',
10475              S_VP            =SIMP(statut='o',typ='R'),
10476              SEDVP1          =SIMP(statut='o',typ='R'),
10477              SEDVP2          =SIMP(statut='o',typ='R'),
10478              N_VP            =SIMP(statut='o',typ='R'),
10479              M_VP            =SIMP(statut='o',typ='R'),
10480              K_VP            =SIMP(statut='o',typ='R'),
10481              R_D             =SIMP(statut='o',typ='R'),
10482              A_D             =SIMP(statut='o',typ='R'),
10483              K_D             =SIMP(statut='o',typ='R'),
10484            ),
10485            VENDOCHAB_FO    =FACT(statut='f',
10486              S_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10487              SEDVP1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10488              SEDVP2          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10489              N_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10490              M_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10491              K_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10492              R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10493              A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10494              K_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10495              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ),
10496            ),
10497            PINTO_MENEGOTTO =FACT(statut='f',
10498              SY              =SIMP(statut='o',typ='R'),
10499              EPSI_ULTM       =SIMP(statut='o',typ='R'),
10500              SIGM_ULTM       =SIMP(statut='o',typ='R'),
10501              ELAN            =SIMP(statut='f',typ='R',defaut= 4. ),
10502              EPSP_HARD       =SIMP(statut='o',typ='R'),
10503              R_PM            =SIMP(statut='f',typ='R',defaut= 20. ),
10504              EP_SUR_E        =SIMP(statut='f',typ='R'),
10505              A1_PM           =SIMP(statut='f',typ='R',defaut= 18.5 ),
10506              A2_PM           =SIMP(statut='f',typ='R',defaut= 0.15 ),
10507              A6_PM           =SIMP(statut='f',typ='R',defaut= 620. ),
10508              C_PM            =SIMP(statut='f',typ='R',defaut= 0.5 ),
10509              A_PM            =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
10510            ),
10511            BPEL_BETON      =FACT(statut='f',
10512              PERT_FLUA       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10513              PERT_RETR       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10514            ),
10515            BPEL_ACIER      =FACT(statut='f',
10516             regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),
10517                      PRESENT_PRESENT('MU0_RELAX','F_PRG',),),
10518              RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10519              MU0_RELAX       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10520              F_PRG           =SIMP(statut='f',typ='R'),
10521              FROT_COURB      =SIMP(statut='f',typ='R',defaut=0.E+0),
10522              FROT_LINE       =SIMP(statut='f',typ='R',defaut=0.E+0),
10523            ),
10524            CAM_CLAY      =FACT(statut='f',
10525              PORO            =SIMP(statut='o',typ='R'),
10526              LAMBDA          =SIMP(statut='o',typ='R'),
10527              KAPA            =SIMP(statut='o',typ='R'),
10528              M               =SIMP(statut='o',typ='R'),
10529              PRES_CRIT       =SIMP(statut='o',typ='R'),
10530              PA              =SIMP(statut='o',typ='R'),
10531            ),
10532            BARCELONE      =FACT(statut='f',
10533              R             =SIMP(statut='o',typ='R'),
10534              BETA          =SIMP(statut='o',typ='R'),
10535              KC            =SIMP(statut='o',typ='R'),
10536              PC0_INIT      =SIMP(statut='o',typ='R'),
10537              KAPAS         =SIMP(statut='o',typ='R'),
10538              LAMBDAS       =SIMP(statut='o',typ='R'),
10539              ALPHAB        =SIMP(statut='f',typ='R'),
10540            ),
10541            CJS             =FACT(statut='f',
10542              BETA_CJS        =SIMP(statut='o',typ='R'),
10543              RM              =SIMP(statut='o',typ='R'),
10544              N_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10545              KP              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10546              RC              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10547              A_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10548              B_CJS           =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
10549              C_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10550              GAMMA_CJS       =SIMP(statut='o',typ='R'),
10551              MU_CJS          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10552              PCO             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10553              PA              =SIMP(statut='o',typ='R'),
10554              Q_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10555              R_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10556            ),
10557            ECRO_ASYM_LINE  =FACT(statut='f',
10558              DC_SIGM_EPSI    =SIMP(statut='o',typ='R'),
10559              SY_C            =SIMP(statut='o',typ='R'),
10560              DT_SIGM_EPSI    =SIMP(statut='o',typ='R'),
10561              SY_T            =SIMP(statut='o',typ='R'),
10562            ),
10563            GRANGER_FP      =FACT(statut='f',
10564              J1              =SIMP(statut='f',typ='R'),
10565              J2              =SIMP(statut='f',typ='R'),
10566              J3              =SIMP(statut='f',typ='R'),
10567              J4              =SIMP(statut='f',typ='R'),
10568              J5              =SIMP(statut='f',typ='R'),
10569              J6              =SIMP(statut='f',typ='R'),
10570              J7              =SIMP(statut='f',typ='R'),
10571              J8              =SIMP(statut='f',typ='R'),
10572              TAUX_1          =SIMP(statut='f',typ='R'),
10573              TAUX_2          =SIMP(statut='f',typ='R'),
10574              TAUX_3          =SIMP(statut='f',typ='R'),
10575              TAUX_4          =SIMP(statut='f',typ='R'),
10576              TAUX_5          =SIMP(statut='f',typ='R'),
10577              TAUX_6          =SIMP(statut='f',typ='R'),
10578              TAUX_7          =SIMP(statut='f',typ='R'),
10579              TAUX_8          =SIMP(statut='f',typ='R'),
10580              QSR_K           =SIMP(statut='f',typ='R'),
10581            ),
10582            GRANGER_FP_INDT =FACT(statut='f',
10583              J1              =SIMP(statut='f',typ='R'),
10584              J2              =SIMP(statut='f',typ='R'),
10585              J3              =SIMP(statut='f',typ='R'),
10586              J4              =SIMP(statut='f',typ='R'),
10587              J5              =SIMP(statut='f',typ='R'),
10588              J6              =SIMP(statut='f',typ='R'),
10589              J7              =SIMP(statut='f',typ='R'),
10590              J8              =SIMP(statut='f',typ='R'),
10591              TAUX_1          =SIMP(statut='f',typ='R'),
10592              TAUX_2          =SIMP(statut='f',typ='R'),
10593              TAUX_3          =SIMP(statut='f',typ='R'),
10594              TAUX_4          =SIMP(statut='f',typ='R'),
10595              TAUX_5          =SIMP(statut='f',typ='R'),
10596              TAUX_6          =SIMP(statut='f',typ='R'),
10597              TAUX_7          =SIMP(statut='f',typ='R'),
10598              TAUX_8          =SIMP(statut='f',typ='R'),
10599            ),
10600            V_GRANGER_FP    =FACT(statut='f',
10601              QSR_VEIL        =SIMP(statut='f',typ='R'),
10602              FONC_V          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10603              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
10604            ),
10605            BAZANT_FD      =FACT(statut='f',
10606              LAM_VISC      =SIMP(statut='o',typ='R'),
10607            ),
10608            BETON_UMLV_FP   =FACT(statut='f',min=0 ,
10609              K_RS            =SIMP(statut='o',typ='R'),
10610              ETA_RS          =SIMP(statut='o',typ='R'),
10611              K_IS            =SIMP(statut='o',typ='R'),
10612              ETA_IS          =SIMP(statut='o',typ='R'),
10613              K_RD            =SIMP(statut='o',typ='R'),
10614              ETA_RD          =SIMP(statut='o',typ='R'),
10615              ETA_ID          =SIMP(statut='o',typ='R'),
10616              ETA_FD          =SIMP(statut='f',typ='R'),
10617            ),
10618            GLRC_DAMAGE       =FACT(statut='f',min=0,max=1,
10619              FMEX1           =SIMP(statut='o',typ=(fonction_sdaster)),
10620              FMEY1           =SIMP(statut='o',typ=(fonction_sdaster)),
10621              FMEX2           =SIMP(statut='o',typ=(fonction_sdaster)),
10622              FMEY2           =SIMP(statut='o',typ=(fonction_sdaster)),
10623              DFMEX1           =SIMP(statut='o',typ=(fonction_sdaster)),
10624              DFMEY1           =SIMP(statut='o',typ=(fonction_sdaster)),
10625              DFMEX2           =SIMP(statut='o',typ=(fonction_sdaster)),
10626              DFMEY2           =SIMP(statut='o',typ=(fonction_sdaster)),
10627              DDFMEX1           =SIMP(statut='o',typ=(fonction_sdaster)),
10628              DDFMEY1           =SIMP(statut='o',typ=(fonction_sdaster)),
10629              DDFMEX2           =SIMP(statut='o',typ=(fonction_sdaster)),
10630              DDFMEY2           =SIMP(statut='o',typ=(fonction_sdaster)),
10631              
10632              CX1             =SIMP(statut='o',typ='R',val_min=0.E+0),
10633              CY1             =SIMP(statut='o',typ='R',val_min=0.E+0),
10634              CXY1            =SIMP(statut='o',typ='R',val_min=0.E+0),
10635              CX2             =SIMP(statut='o',typ='R',val_min=0.E+0),
10636              CY2             =SIMP(statut='o',typ='R',val_min=0.E+0),
10637              CXY2            =SIMP(statut='o',typ='R',val_min=0.E+0),
10638              MF1             =SIMP(statut='o',typ='R',val_min=0.E+0),
10639              MF2             =SIMP(statut='o',typ='R',val_max=0.E+0),
10640              QP1             =SIMP(statut='o',typ='R',val_min=0.E+0),
10641              QP2             =SIMP(statut='o',typ='R',val_min=0.E+0),
10642              GAMMA           =SIMP(statut='o',typ='R',val_min=0.E+0),
10643              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("X ",) ),
10644            ),
10645            GLRC_DM         =FACT(statut='f',min=0,max=1,
10646              GAMMA_T         =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
10647              GAMMA_F         =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
10648              SYT             =SIMP(statut='o',typ='R',val_min=0.E+0), 
10649              SYF             =SIMP(statut='o',typ='R',val_min=0.E+0), 
10650              EF              =SIMP(statut='f',typ='R',val_min=0.E+0), 
10651              NUF             =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0), 
10652            ),
10653            GLRC_ACIER        =FACT(statut='f',min=0,max=1,
10654              AX              =SIMP(statut='o',typ='R',val_min=0.E+0),
10655              AY              =SIMP(statut='o',typ='R',val_min=0.E+0),
10656              E               =SIMP(statut='o',typ='R',val_min=0.E+0),
10657              ENROB           =SIMP(statut='o',typ='R',val_min=0.E+0),
10658            ),
10659            GATT_MONERIE    =FACT(statut='f',min=0,max=1,
10660              D_GRAIN         =SIMP(statut='o',typ='R',val_min=0.E+0),
10661              PORO_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0),
10662              EPSI_01         =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0),
10663              EPSI_02         =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0),
10664            ),
10665            CORR_ACIER   =FACT(statut='f',min=0 ,max=1,
10666              D_CORR           =SIMP(statut='o',typ='R'),
10667              ECRO_K           =SIMP(statut='o',typ='R'),
10668              ECRO_M           =SIMP(statut='o',typ='R'),
10669              SY              =SIMP(statut='o',typ='R'),
10670              ),
10671 #
10672 # comportement thermique
10673 #
10674            THER_NL         =FACT(statut='f',
10675              regles=(UN_PARMI('BETA','RHO_CP', ),),
10676              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10677              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10678              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10679              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10680            ),
10681            THER_HYDR       =FACT(statut='f',
10682              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10683              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10684              AFFINITE        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10685              CHALHYDR        =SIMP(statut='o',typ='R'),
10686              QSR_K           =SIMP(statut='o',typ='R'),
10687              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ),
10688            ),
10689            THER            =FACT(statut='f',
10690              LAMBDA          =SIMP(statut='o',typ='R'),
10691              RHO_CP          =SIMP(statut='f',typ='R'),
10692            ),
10693            THER_FO         =FACT(statut='f',
10694              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10695              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10696              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
10697            ),
10698            THER_ORTH       =FACT(statut='f',
10699              LAMBDA_L        =SIMP(statut='o',typ='R'),
10700              LAMBDA_T        =SIMP(statut='o',typ='R'),
10701              LAMBDA_N        =SIMP(statut='f',typ='R'),
10702              RHO_CP          =SIMP(statut='f',typ='R'),
10703            ),
10704            THER_COQUE      =FACT(statut='f',
10705              COND_LMM        =SIMP(statut='o',typ='R'),
10706              COND_TMM        =SIMP(statut='o',typ='R'),
10707              COND_LMP        =SIMP(statut='o',typ='R'),
10708              COND_TMP        =SIMP(statut='o',typ='R'),
10709              COND_LPP        =SIMP(statut='o',typ='R'),
10710              COND_TPP        =SIMP(statut='o',typ='R'),
10711              COND_LSI        =SIMP(statut='o',typ='R'),
10712              COND_TSI        =SIMP(statut='o',typ='R'),
10713              COND_NMM        =SIMP(statut='o',typ='R'),
10714              COND_NMP        =SIMP(statut='o',typ='R'),
10715              COND_NPP        =SIMP(statut='o',typ='R'),
10716              COND_NSI        =SIMP(statut='o',typ='R'),
10717              CMAS_MM         =SIMP(statut='f',typ='R'),
10718              CMAS_MP         =SIMP(statut='f',typ='R'),
10719              CMAS_PP         =SIMP(statut='f',typ='R'),
10720              CMAS_SI         =SIMP(statut='f',typ='R'),
10721            ),
10722            THER_COQUE_FO   =FACT(statut='f',
10723              COND_LMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10724              COND_TMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10725              COND_LMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10726              COND_TMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10727              COND_LPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10728              COND_TPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10729              COND_LSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10730              COND_TSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10731              COND_NMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10732              COND_NMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10733              COND_NPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10734              COND_NSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10735              CMAS_MM         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10736              CMAS_MP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10737              CMAS_PP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10738              CMAS_SI         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10739            ),
10740            SECH_GRANGER    =FACT(statut='f',
10741              A               =SIMP(statut='o',typ='R'),
10742              B               =SIMP(statut='o',typ='R'),
10743              QSR_K           =SIMP(statut='o',typ='R'),
10744              TEMP_0_C        =SIMP(statut='o',typ='R'),
10745            ),
10746            SECH_MENSI      =FACT(statut='f',
10747              A               =SIMP(statut='o',typ='R'),
10748              B               =SIMP(statut='o',typ='R'),
10749            ),
10750            SECH_BAZANT     =FACT(statut='f',
10751              D1              =SIMP(statut='o',typ='R'),
10752              ALPHA_BAZANT    =SIMP(statut='o',typ='R'),
10753              N               =SIMP(statut='o',typ='R'),
10754              FONC_DESORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10755              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10756            ),
10757            SECH_NAPPE      =FACT(statut='f',
10758              FONCTION        =SIMP(statut='o',typ=(nappe_sdaster,formule)),
10759              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ),
10760            ),
10761 #
10762 # comportement métallurgique
10763 #
10764            META_ACIER      =FACT(statut='f',
10765              TRC             =SIMP(statut='o',typ=(table_sdaster) ),
10766              AR3             =SIMP(statut='o',typ='R'),
10767              ALPHA           =SIMP(statut='o',typ='R'),
10768              MS0             =SIMP(statut='o',typ='R'),
10769              AC1             =SIMP(statut='o',typ='R'),
10770              AC3             =SIMP(statut='o',typ='R'),
10771              TAUX_1          =SIMP(statut='o',typ='R'),
10772              TAUX_3          =SIMP(statut='o',typ='R'),
10773              LAMBDA0         =SIMP(statut='f',typ='R'),
10774              QSR_K           =SIMP(statut='f',typ='R'),
10775              D10             =SIMP(statut='f',typ='R'),
10776              WSR_K           =SIMP(statut='f',typ='R'),
10777            ),
10778            META_ZIRC       =FACT(statut='f',
10779              TDEQ            =SIMP(statut='o',typ='R'),
10780              N               =SIMP(statut='o',typ='R'),
10781              K               =SIMP(statut='o',typ='R'),
10782              TDC             =SIMP(statut='o',typ='R'),
10783              AC              =SIMP(statut='o',typ='R'),
10784              M               =SIMP(statut='o',typ='R'),
10785              QSR_K           =SIMP(statut='f',typ='R'),
10786              TDR             =SIMP(statut='o',typ='R'),
10787              AR              =SIMP(statut='o',typ='R'),
10788              BR              =SIMP(statut='o',typ='R'),
10789            ),
10790            DURT_META       =FACT(statut='f',
10791              F1_DURT         =SIMP(statut='o',typ='R'),
10792              F2_DURT         =SIMP(statut='o',typ='R'),
10793              F3_DURT         =SIMP(statut='o',typ='R'),
10794              F4_DURT         =SIMP(statut='o',typ='R'),
10795              C_DURT          =SIMP(statut='o',typ='R'),
10796            ),
10797            ELAS_META       =FACT(statut='f',
10798              E               =SIMP(statut='o',typ='R'),
10799              NU              =SIMP(statut='o',typ='R'),
10800              F_ALPHA         =SIMP(statut='o',typ='R'),
10801              C_ALPHA         =SIMP(statut='o',typ='R'),
10802              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
10803              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
10804              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
10805              F1_SY           =SIMP(statut='f',typ='R'),
10806              F2_SY           =SIMP(statut='f',typ='R'),
10807              F3_SY           =SIMP(statut='f',typ='R'),
10808              F4_SY           =SIMP(statut='f',typ='R'),
10809              C_SY            =SIMP(statut='f',typ='R'),
10810              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10811              F1_S_VP         =SIMP(statut='f',typ='R'),
10812              F2_S_VP         =SIMP(statut='f',typ='R'),
10813              F3_S_VP         =SIMP(statut='f',typ='R'),
10814              F4_S_VP         =SIMP(statut='f',typ='R'),
10815              C_S_VP          =SIMP(statut='f',typ='R' ),
10816              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10817              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)),
10818            ),
10819            ELAS_META_FO    =FACT(statut='f',
10820              regles=(
10821                       PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'),
10822                       PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'),
10823                     ),
10824              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10825              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10826              F_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10827              C_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10828              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
10829              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
10830              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
10831              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
10832              F1_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10833              F2_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10834              F3_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10835              F4_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10836              C_SY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10837              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10838              F1_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10839              F2_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10840              F3_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10841              F4_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10842              C_S_VP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10843              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10844              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)),
10845            ),
10846            META_ECRO_LINE  =FACT(statut='f',
10847              F1_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10848              F2_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10849              F3_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10850              F4_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10851              C_D_SIGM_EPSI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10852              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
10853            ),
10854            META_TRACTION   =FACT(statut='f',
10855              SIGM_F1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10856              SIGM_F2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10857              SIGM_F3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10858              SIGM_F4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10859              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10860              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)),
10861            ),
10862            META_VISC_FO    =FACT(statut='f',
10863              F1_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10864              F1_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10865              F1_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10866              F1_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10867              F2_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10868              F2_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10869              F2_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10870              F2_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10871              F3_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10872              F3_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10873              F3_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10874              F3_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10875              F4_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10876              F4_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10877              F4_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10878              F4_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10879              C_ETA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10880              C_N             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10881              C_C             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10882              C_M             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10883              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10884            ),
10885            META_PT         =FACT(statut='f',
10886              F1_K            =SIMP(statut='f',typ='R'),
10887              F2_K            =SIMP(statut='f',typ='R'),
10888              F3_K            =SIMP(statut='f',typ='R'),
10889              F4_K            =SIMP(statut='f',typ='R'),
10890              F1_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10891              F2_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10892              F3_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10893              F4_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10894              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ),
10895            ),
10896            META_RE         =FACT(statut='f',
10897              C_F1_THETA      =SIMP(statut='f',typ='R'),
10898              C_F2_THETA      =SIMP(statut='f',typ='R'),
10899              C_F3_THETA      =SIMP(statut='f',typ='R'),
10900              C_F4_THETA      =SIMP(statut='f',typ='R'),
10901              F1_C_THETA      =SIMP(statut='f',typ='R'),
10902              F2_C_THETA      =SIMP(statut='f',typ='R'),
10903              F3_C_THETA      =SIMP(statut='f',typ='R'),
10904              F4_C_THETA      =SIMP(statut='f',typ='R'),
10905            ),
10906 #
10907 # comportement fluide
10908 #
10909            FLUIDE          =FACT(statut='f',
10910              regles=(EXCLUS('CELE_C','CELE_R'),),
10911              RHO             =SIMP(statut='o',typ='R'),
10912              CELE_C          =SIMP(statut='f',typ='C'),
10913              CELE_R          =SIMP(statut='f',typ='R'),
10914            ),
10915            PORO_JOINT      =FACT(statut='f',
10916              RHO_FLUI        =SIMP(statut='o',typ='R'),
10917              ENTRO_FLUI      =SIMP(statut='o',typ='R'),
10918              BIOT_M          =SIMP(statut='o',typ='R'),
10919              C_0             =SIMP(statut='o',typ='R'),
10920              T_R             =SIMP(statut='o',typ='R'),
10921              ALPHA_M         =SIMP(statut='o',typ='R'),
10922              LAMBDA_T        =SIMP(statut='o',typ='R'),
10923              LAMBDA_H        =SIMP(statut='o',typ='R'),
10924              SOURCE_INIT     =SIMP(statut='o',typ='R'),
10925              OMEGA_0         =SIMP(statut='o',typ='R'),
10926            ),
10927 # =================================================================================
10928 # COMPORTEMENT THERMO_HYDRO_MECANIQUE
10929 # LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES
10930 # DE LA LOI DE COUPLAGE THM DE LA RELATION
10931 # LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS
10932 # DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE
10933 # ET LIQU_AD_GAZ_VAPE
10934 # LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE :
10935 # 1 -->  LIQU_SATU
10936 # 2 -->  GAZ
10937 # 3 -->  LIQU_VAPE
10938 # 4 -->  LIQU_VAPE_GAZ
10939 # 5 -->  LIQU_GAZ
10940 # 6 -->  LIQU_GAZ_ATM
10941 # 9 -->  LIQU_AD_GAZ_VAPE
10942 # =================================================================================
10943            COMP_THM        = SIMP(statut='f', typ='TXM',
10944                                   into = ( "LIQU_SATU"     ,
10945                                            "LIQU_GAZ"      ,
10946                                            "GAZ"           ,
10947                                            "LIQU_GAZ_ATM"  ,
10948                                            "LIQU_VAPE_GAZ" ,
10949                                            "LIQU_VAPE"     ,
10950                                            "LIQU_AD_GAZ_VAPE" ,
10951                                           ) ),
10952 # =================================================================================
10953 # --- LOI DE COUPLAGE DE TYPE LIQU_SATU -------------------------------------------
10954 # =================================================================================
10955 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
10956 # --- THM_INIT, THM_DIFFU, THM_LIQU -----------------------------------------------
10957 # =================================================================================
10958            b_liqusatu      = BLOC(condition = "COMP_THM == 'LIQU_SATU' ",
10959                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU",
10960 # =================================================================================
10961 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
10962 # =================================================================================
10963                              THM_INIT   = FACT(statut='o',
10964 # ---------------------------------------------------------------------------------
10965 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
10966 # ---------------------------------------------------------------------------------
10967                                            PRE1          = SIMP(statut='o',typ='R'),
10968                                            PORO          = SIMP(statut='o',typ='R'),
10969 # ---------------------------------------------------------------------------------
10970 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
10971 # ---------------------------------------------------------------------------------
10972                                            TEMP          = SIMP(statut='f',typ='R'),
10973 # ---------------------------------------------------------------------------------
10974 # -------------------   DONNEES INUTILES   ----------------------------------------
10975 # ---------------------------------------------------------------------------------
10976                                            PRE2          = SIMP(statut='f',typ='R'),
10977                                            PRES_VAPE     = SIMP(statut='f',typ='R'),
10978                                            DEGR_SATU     = SIMP(statut='f',typ='R'),
10979                                            PRES_ATMO     = SIMP(statut='f',typ='R'),
10980 # ---------------------------------------------------------------------------------
10981 # -------------------   DONNEE CACHEE ---------------------------------------------
10982 # ---------------------------------------------------------------------------------
10983                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 1.0,),
10984                                              ),
10985 # =================================================================================
10986 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
10987 # =================================================================================
10988                              THM_DIFFU  = FACT(statut='o',
10989 # ---------------------------------------------------------------------------------
10990 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
10991 # ---------------------------------------------------------------------------------
10992                                            RHO           = SIMP(statut='o',typ='R'),
10993                                            BIOT_COEF     = SIMP(statut='o',typ='R'),
10994                                            PESA_X        = SIMP(statut='o',typ='R'),
10995                                            PESA_Y        = SIMP(statut='o',typ='R'),
10996                                            PESA_Z        = SIMP(statut='o',typ='R'),
10997 # ---------------------------------------------------------------------------------
10998 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
10999 # ---------------------------------------------------------------------------------
11000                                            CP            = SIMP(statut='f',typ='R'),
11001                                            PERM_IN       = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11002                                            PERM_END      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11003                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11004                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11005                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11006                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11007                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11008                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11009                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11010                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11011                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11012                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11013                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11014                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11015 # ---------------------------------------------------------------------------------
11016 # -------------------   DONNEES INUTILES   ----------------------------------------
11017 # ---------------------------------------------------------------------------------
11018                                            R_GAZ         = SIMP(statut='f',typ='R'),
11019                                            EMMAG           = SIMP(statut='f',typ='R'),
11020                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11021                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11022                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11023                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11024                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11025                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11026                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11027                                            SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11028                                            D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11029                                            PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11030                                            CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11031                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11032                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11033                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11034                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11035                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11036                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11037                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11038                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11039                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11040                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11041                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11042 # ---------------------------------------------------------------------------------
11043 # -------------------   DONNEES CACHEES -------------------------------------------
11044 # ---------------------------------------------------------------------------------
11045          VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11046                                              ),
11047 # =================================================================================
11048 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11049 # =================================================================================
11050                              THM_LIQU   = FACT(statut='o',
11051 # ---------------------------------------------------------------------------------
11052 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11053 # ---------------------------------------------------------------------------------
11054                                            RHO           = SIMP(statut='o',typ='R'),
11055                                            UN_SUR_K      = SIMP(statut='o',typ='R'),
11056                                            VISC          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11057                                            D_VISC_TEMP   = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11058 # ---------------------------------------------------------------------------------
11059 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11060 # ---------------------------------------------------------------------------------
11061                                            ALPHA         = SIMP(statut='f',typ='R'),
11062                                            CP            = SIMP(statut='f',typ='R'),
11063 # ---------------------------------------------------------------------------------
11064 # -------------------   DONNEES CACHEES -------------------------------------------
11065 # ---------------------------------------------------------------------------------
11066                                            VERI_P        = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11067                                          ),
11068 # =================================================================================
11069 # --- MOT-CLE INUTILE -------------------------------------------------------------
11070 # =================================================================================
11071            THM_GAZ         =FACT(statut='f',
11072              MASS_MOL        =SIMP(statut='f',typ='R'),
11073              CP              =SIMP(statut='f',typ='R'),
11074              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11075              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11076              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11077            ),
11078 # =================================================================================
11079 # --- MOT-CLE INUTILE -------------------------------------------------------------
11080 # =================================================================================
11081            THM_VAPE_GAZ    =FACT(statut='f',
11082              MASS_MOL        =SIMP(statut='f',typ='R'),
11083              CP              =SIMP(statut='f',typ='R'),
11084              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11085              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11086              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11087            ),
11088                                  ),
11089 # =================================================================================
11090 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ --------------------------------------------
11091 # =================================================================================
11092 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11093 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
11094 # =================================================================================
11095            b_liqugaz      = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ",
11096                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ",
11097 # =================================================================================
11098 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11099 # =================================================================================
11100                              THM_INIT   = FACT(statut='o',
11101 # ---------------------------------------------------------------------------------
11102 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11103 # ---------------------------------------------------------------------------------
11104                                            PRE1             = SIMP(statut='o',typ='R'),
11105                                            PRE2             = SIMP(statut='o',typ='R'),
11106                                            PORO             = SIMP(statut='o',typ='R'),
11107 # ---------------------------------------------------------------------------------
11108 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11109 # ---------------------------------------------------------------------------------
11110                                            TEMP             = SIMP(statut='f',typ='R'),
11111 # ---------------------------------------------------------------------------------
11112 # -------------------   DONNEES INUTILES   ----------------------------------------
11113 # ---------------------------------------------------------------------------------
11114                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
11115                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11116                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11117 # ---------------------------------------------------------------------------------
11118 # -------------------   DONNEE CACHEE ---------------------------------------------
11119 # ---------------------------------------------------------------------------------
11120                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 5.0,),
11121                                              ),
11122 # =================================================================================
11123 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11124 # =================================================================================
11125                              THM_DIFFU  = FACT(statut='o',
11126 # ---------------------------------------------------------------------------------
11127 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11128 # ---------------------------------------------------------------------------------
11129                                            R_GAZ            = SIMP(statut='o',typ='R'),
11130                                            RHO              = SIMP(statut='o',typ='R'),
11131                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11132                                            PESA_X           = SIMP(statut='o',typ='R'),
11133                                            PESA_Y           = SIMP(statut='o',typ='R'),
11134                                            PESA_Z           = SIMP(statut='o',typ='R'),
11135                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11136                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11137                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11138                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11139                                            PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11140                                            D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11141                                            D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11142 # ---------------------------------------------------------------------------------
11143 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11144 # ---------------------------------------------------------------------------------
11145                                            CP               = SIMP(statut='f',typ='R'),
11146                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11147                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11148                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11149                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11150                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11151                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11152                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11153                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11154                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11155                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11156                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11157                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11158                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11159                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11160 # ---------------------------------------------------------------------------------
11161 # -------------------   DONNEES INUTILES   ----------------------------------------
11162 # ---------------------------------------------------------------------------------
11163                                            EMMAG           = SIMP(statut='f',typ='R'),
11164                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11165                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11166                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11167                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11168                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11169                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11170                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11171                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11172                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11173                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11174                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11175                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11176                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11177                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11178                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11179 # ---------------------------------------------------------------------------------
11180 # -------------------   DONNEES CACHEES -------------------------------------------
11181 # ---------------------------------------------------------------------------------
11182           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11183                                              ) ,
11184 # =================================================================================
11185 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11186 # =================================================================================
11187                              THM_LIQU   = FACT(statut='o',
11188 # ---------------------------------------------------------------------------------
11189 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11190 # ---------------------------------------------------------------------------------
11191                                            RHO              = SIMP(statut='o',typ='R'),
11192                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11193                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11194                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11195 # ---------------------------------------------------------------------------------
11196 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11197 # ---------------------------------------------------------------------------------
11198                                            ALPHA            = SIMP(statut='f',typ='R'),
11199                                            CP               = SIMP(statut='f',typ='R'),
11200 # ---------------------------------------------------------------------------------
11201 # -------------------   DONNEES CACHEES -------------------------------------------
11202 # ---------------------------------------------------------------------------------
11203                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11204                                              ),
11205 # =================================================================================
11206 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11207 # =================================================================================
11208                              THM_GAZ    = FACT(statut='o',
11209 # ---------------------------------------------------------------------------------
11210 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11211 # ---------------------------------------------------------------------------------
11212                                            MASS_MOL        = SIMP(statut='o',typ='R'),
11213                                            VISC            = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11214                                            D_VISC_TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11215 # ---------------------------------------------------------------------------------
11216 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11217 # ---------------------------------------------------------------------------------
11218                                            CP              = SIMP(statut='f',typ='R'),
11219 # ---------------------------------------------------------------------------------
11220 # -------------------   DONNEES CACHEES -------------------------------------------
11221 # ---------------------------------------------------------------------------------
11222                                            VERI_P          = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11223                                              ),
11224 # =================================================================================
11225 # --- MOT-CLE INUTILE -------------------------------------------------------------
11226 # =================================================================================
11227            THM_VAPE_GAZ    =FACT(statut='f',
11228              MASS_MOL        =SIMP(statut='f',typ='R'),
11229              CP              =SIMP(statut='f',typ='R'),
11230              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11231              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11232              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11233            ),
11234                                  ),
11235 # =================================================================================
11236 # --- LOI DE COUPLAGE DE TYPE GAZ -------------------------------------------------
11237 # =================================================================================
11238 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11239 # --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------
11240 # =================================================================================
11241            b_gaz          = BLOC(condition = "COMP_THM == 'GAZ' ",
11242                                  fr="Paramètres nécessaires pour une loi de couplage de type GAZ",
11243 # =================================================================================
11244 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11245 # =================================================================================
11246                              THM_INIT   = FACT(statut='o',
11247 # ---------------------------------------------------------------------------------
11248 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11249 # ---------------------------------------------------------------------------------
11250                                            TEMP             = SIMP(statut='o',typ='R'),
11251                                            PRE1             = SIMP(statut='o',typ='R'),
11252                                            PORO             = SIMP(statut='o',typ='R'),
11253 # ---------------------------------------------------------------------------------
11254 # -------------------   DONNEES INUTILES   ----------------------------------------
11255 # ---------------------------------------------------------------------------------
11256                                            PRE2             = SIMP(statut='f',typ='R'),
11257                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
11258                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11259                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11260 # ---------------------------------------------------------------------------------
11261 # -------------------   DONNEE CACHEE ---------------------------------------------
11262 # ---------------------------------------------------------------------------------
11263                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 2.0,),
11264                                              ),
11265 # =================================================================================
11266 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11267 # =================================================================================
11268                              THM_DIFFU  = FACT(statut='o',
11269 # ---------------------------------------------------------------------------------
11270 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11271 # ---------------------------------------------------------------------------------
11272                                            R_GAZ            = SIMP(statut='o',typ='R'),
11273                                            RHO              = SIMP(statut='o',typ='R'),
11274                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11275                                            PESA_X           = SIMP(statut='o',typ='R'),
11276                                            PESA_Y           = SIMP(statut='o',typ='R'),
11277                                            PESA_Z           = SIMP(statut='o',typ='R'),
11278 # ---------------------------------------------------------------------------------
11279 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11280 # ---------------------------------------------------------------------------------
11281                                            CP               = SIMP(statut='f',typ='R'),
11282                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11283                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11284                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11285                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11286                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11287                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11288                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11289                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11290                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11291                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11292                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11293                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11294                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11295                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11296 # ---------------------------------------------------------------------------------
11297 # -------------------   DONNEES INUTILES   ----------------------------------------
11298 # ---------------------------------------------------------------------------------
11299                                            EMMAG           = SIMP(statut='f',typ='R'),
11300                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11301                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11302                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11303                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11304                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11305                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11306                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11307                                            SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11308                                            D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11309                                            PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11310                                            CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11311                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11312                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11313                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11314                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11315                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11316                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11317                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11318                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11319                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11320                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11321                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11322 # ---------------------------------------------------------------------------------
11323 # -------------------   DONNEES CACHEES -------------------------------------------
11324 # ---------------------------------------------------------------------------------
11325             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11326                                              ) ,
11327 # =================================================================================
11328 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11329 # =================================================================================
11330                              THM_GAZ    = FACT(statut='o',
11331 # ---------------------------------------------------------------------------------
11332 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11333 # ---------------------------------------------------------------------------------
11334                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11335                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11336                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11337 # ---------------------------------------------------------------------------------
11338 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11339 # ---------------------------------------------------------------------------------
11340                                            CP               = SIMP(statut='f',typ='R'),
11341 # ---------------------------------------------------------------------------------
11342 # -------------------   DONNEES CACHEES -------------------------------------------
11343 # ---------------------------------------------------------------------------------
11344                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11345                                              ),
11346 # =================================================================================
11347 # --- MOT-CLE INUTILE -------------------------------------------------------------
11348 # =================================================================================
11349            THM_LIQU        =FACT(statut='f',
11350              RHO             =SIMP(statut='f',typ='R'),
11351              UN_SUR_K        =SIMP(statut='f',typ='R'),
11352              ALPHA           =SIMP(statut='f',typ='R'),
11353              CP              =SIMP(statut='f',typ='R'),
11354              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11355              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11356              COEF_HENRY      =SIMP(statut='f',typ='R'),
11357              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11358            ),
11359 # =================================================================================
11360 # --- MOT-CLE INUTILE -------------------------------------------------------------
11361 # =================================================================================
11362            THM_VAPE_GAZ    =FACT(statut='f',
11363              MASS_MOL        =SIMP(statut='f',typ='R'),
11364              CP              =SIMP(statut='f',typ='R'),
11365              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11366              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11367              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11368            ),
11369                                  ),
11370 # =================================================================================
11371 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ----------------------------------------
11372 # =================================================================================
11373 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11374 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
11375 # =================================================================================
11376            b_liqugazatm   = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ",
11377                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM",
11378 # =================================================================================
11379 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11380 # =================================================================================
11381                              THM_INIT   = FACT(statut='o',
11382 # ---------------------------------------------------------------------------------
11383 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11384 # ---------------------------------------------------------------------------------
11385                                            PRE1             = SIMP(statut='o',typ='R'),
11386                                            PORO             = SIMP(statut='o',typ='R'),
11387 # ---------------------------------------------------------------------------------
11388 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11389 # ---------------------------------------------------------------------------------
11390                                            TEMP             = SIMP(statut='f',typ='R'),
11391 # ---------------------------------------------------------------------------------
11392 # -------------------   DONNEES INUTILES   ----------------------------------------
11393 # ---------------------------------------------------------------------------------
11394                                            PRE2             = SIMP(statut='f',typ='R'),
11395                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
11396                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11397                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11398 # ---------------------------------------------------------------------------------
11399 # -------------------   DONNEE CACHEE ---------------------------------------------
11400 # ---------------------------------------------------------------------------------
11401                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 6.0,),
11402                                              ),
11403 # =================================================================================
11404 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11405 # =================================================================================
11406                              THM_DIFFU  = FACT(statut='o',
11407 # ---------------------------------------------------------------------------------
11408 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11409 # ---------------------------------------------------------------------------------
11410                                            RHO              = SIMP(statut='o',typ='R'),
11411                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11412                                            PESA_X           = SIMP(statut='o',typ='R'),
11413                                            PESA_Y           = SIMP(statut='o',typ='R'),
11414                                            PESA_Z           = SIMP(statut='o',typ='R'),
11415                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11416                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11417                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11418                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11419 # ---------------------------------------------------------------------------------
11420 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11421 # ---------------------------------------------------------------------------------
11422                                            CP               = SIMP(statut='f',typ='R'),
11423                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11424                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11425                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11426                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11427                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11428                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11429                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11430                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11431                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11432                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11433                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11434                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11435                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11436                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11437 # ---------------------------------------------------------------------------------
11438 # -------------------   DONNEES INUTILES   ----------------------------------------
11439 # ---------------------------------------------------------------------------------
11440              EMMAG           = SIMP(statut='f',typ='R'),
11441              R_GAZ           =SIMP(statut='f',typ='R'),
11442              PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11443              D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11444              D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11445              SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11446              D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11447              PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11448              CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11449              FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11450              FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11451              FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11452              FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11453              D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11454              D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11455              FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11456              FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11457              FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11458              FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11459              D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11460 # ---------------------------------------------------------------------------------
11461 # -------------------   DONNEES CACHEES -------------------------------------------
11462 # ---------------------------------------------------------------------------------
11463              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11464                                              ) ,
11465 # =================================================================================
11466 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11467 # =================================================================================
11468                              THM_LIQU   = FACT(statut='o',
11469 # ---------------------------------------------------------------------------------
11470 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11471 # ---------------------------------------------------------------------------------
11472                                            RHO              = SIMP(statut='o',typ='R'),
11473                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11474                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11475                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11476 # ---------------------------------------------------------------------------------
11477 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11478 # ---------------------------------------------------------------------------------
11479                                            ALPHA            = SIMP(statut='f',typ='R'),
11480                                            CP               = SIMP(statut='f',typ='R'),
11481 # ---------------------------------------------------------------------------------
11482 # -------------------   DONNEES CACHEES -------------------------------------------
11483 # ---------------------------------------------------------------------------------
11484                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11485                                              ),
11486 # =================================================================================
11487 # --- MOT-CLE INUTILE -------------------------------------------------------------
11488 # =================================================================================
11489                              THM_GAZ    = FACT(statut='f',
11490                                            MASS_MOL         = SIMP(statut='f',typ='R'),
11491                                            VISC             = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11492                                            D_VISC_TEMP      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11493                                            CP               = SIMP(statut='f',typ='R'),
11494                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11495                                              ),
11496 # =================================================================================
11497 # --- MOT-CLE INUTILE -------------------------------------------------------------
11498 # =================================================================================
11499            THM_VAPE_GAZ    =FACT(statut='f',
11500              MASS_MOL        =SIMP(statut='f',typ='R'),
11501              CP              =SIMP(statut='f',typ='R'),
11502              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11503              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11504              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11505            ),
11506                                  ),
11507 # =================================================================================
11508 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ ---------------------------------------
11509 # =================================================================================
11510 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11511 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------
11512 # =================================================================================
11513            b_liquvapegaz  = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ",
11514                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ",
11515 # =================================================================================
11516 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11517 # =================================================================================
11518                              THM_INIT   = FACT(statut='o',
11519 # ---------------------------------------------------------------------------------
11520 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11521 # ---------------------------------------------------------------------------------
11522                                            PRE1             = SIMP(statut='o',typ='R'),
11523                                            PRE2             = SIMP(statut='o',typ='R'),
11524                                            PORO             = SIMP(statut='o',typ='R'),
11525                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
11526 # ---------------------------------------------------------------------------------
11527 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11528 # ---------------------------------------------------------------------------------
11529                                            TEMP             = SIMP(statut='f',typ='R'),
11530 # ---------------------------------------------------------------------------------
11531 # -------------------   DONNEES INUTILES   ----------------------------------------
11532 # ---------------------------------------------------------------------------------
11533                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11534                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11535 # ---------------------------------------------------------------------------------
11536 # -------------------   DONNEE CACHEE ---------------------------------------------
11537 # ---------------------------------------------------------------------------------
11538                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 4.0,),
11539                                              ),
11540 # =================================================================================
11541 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11542 # =================================================================================
11543                              THM_DIFFU  = FACT(statut='o',
11544 # ---------------------------------------------------------------------------------
11545 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11546 # ---------------------------------------------------------------------------------
11547                                            R_GAZ            = SIMP(statut='o',typ='R'),
11548                                            RHO              = SIMP(statut='o',typ='R'),
11549                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11550                                            PESA_X           = SIMP(statut='o',typ='R'),
11551                                            PESA_Y           = SIMP(statut='o',typ='R'),
11552                                            PESA_Z           = SIMP(statut='o',typ='R'),
11553                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11554                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11555                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11556                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11557                                            PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11558                                            D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11559                                            D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11560                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11561 # ---------------------------------------------------------------------------------
11562 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11563 # ---------------------------------------------------------------------------------
11564                                            CP               = SIMP(statut='f',typ='R'),
11565                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11566                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11567                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11568                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11569                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11570                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11571                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11572                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11573                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11574                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11575                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11576                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11577                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11578                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11579 # ---------------------------------------------------------------------------------
11580 # -------------------   DONNEES FACULTATIVE   ----------------------------------
11581 # ---------------------------------------------------------------------------------
11582                                            EMMAG            = SIMP(statut='f',typ='R'),
11583                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11584                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11585                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11586                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11587                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11588                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11589                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11590                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11591                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11592 # ---------------------------------------------------------------------------------
11593 # -------------------   DONNEES INUTILES   ----------------------------------------
11594 # ---------------------------------------------------------------------------------
11595                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11596                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11597                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11598                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11599                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11600 # ---------------------------------------------------------------------------------
11601 # -------------------   DONNEES CACHEES -------------------------------------------
11602 # ---------------------------------------------------------------------------------
11603          VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ),
11604                                              ) ,
11605 # =================================================================================
11606 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11607 # =================================================================================
11608                              THM_LIQU   = FACT(statut='o',
11609 # ---------------------------------------------------------------------------------
11610 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11611 # ---------------------------------------------------------------------------------
11612                                            RHO              = SIMP(statut='o',typ='R'),
11613                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11614                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11615                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11616 # ---------------------------------------------------------------------------------
11617 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11618 # ---------------------------------------------------------------------------------
11619                                            ALPHA            = SIMP(statut='f',typ='R'),
11620                                            CP               = SIMP(statut='f',typ='R'),
11621 # ---------------------------------------------------------------------------------
11622 # -------------------   DONNEES CACHEES -------------------------------------------
11623 # ---------------------------------------------------------------------------------
11624                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11625                                              ),
11626 # =================================================================================
11627 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11628 # =================================================================================
11629                              THM_GAZ    = FACT(statut='o',
11630 # ---------------------------------------------------------------------------------
11631 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11632 # ---------------------------------------------------------------------------------
11633                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11634                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11635                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11636 # ---------------------------------------------------------------------------------
11637 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11638 # ---------------------------------------------------------------------------------
11639                                            CP               = SIMP(statut='f',typ='R'),
11640 # ---------------------------------------------------------------------------------
11641 # -------------------   DONNEES CACHEES -------------------------------------------
11642 # ---------------------------------------------------------------------------------
11643                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11644                                              ),
11645 # =================================================================================
11646 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11647 # =================================================================================
11648                              THM_VAPE_GAZ = FACT(statut='o',
11649 # ---------------------------------------------------------------------------------
11650 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11651 # ---------------------------------------------------------------------------------
11652                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11653                                            CP               = SIMP(statut='o',typ='R'),
11654                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11655                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11656 # ---------------------------------------------------------------------------------
11657 # -------------------   DONNEES CACHEES -------------------------------------------
11658 # ---------------------------------------------------------------------------------
11659                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11660                                              ),
11661                                  ),
11662 # =================================================================================
11663 # --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE -------------------------------------
11664 # =================================================================================
11665 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11666 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS---------
11667 # =================================================================================
11668            b_liquadvape  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ",
11669                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE",
11670 # =================================================================================
11671 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11672 # =================================================================================
11673                              THM_INIT   = FACT(statut='o',
11674 # ---------------------------------------------------------------------------------
11675 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11676 # ---------------------------------------------------------------------------------
11677                                            PRE1             = SIMP(statut='o',typ='R'),
11678                                            PRE2             = SIMP(statut='o',typ='R'),
11679                                            PORO             = SIMP(statut='o',typ='R'),
11680                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
11681 # ---------------------------------------------------------------------------------
11682 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11683 # ---------------------------------------------------------------------------------
11684                                            TEMP             = SIMP(statut='f',typ='R'),
11685 # ---------------------------------------------------------------------------------
11686 # -------------------   DONNEES INUTILES   ----------------------------------------
11687 # ---------------------------------------------------------------------------------
11688                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11689                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11690 # ---------------------------------------------------------------------------------
11691 # -------------------   DONNEE CACHEE ---------------------------------------------
11692 # ---------------------------------------------------------------------------------
11693                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 9.0,),
11694                                              ),
11695 # =================================================================================
11696 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11697 # =================================================================================
11698                              THM_DIFFU  = FACT(statut='o',
11699 # ---------------------------------------------------------------------------------
11700 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11701 # ---------------------------------------------------------------------------------
11702                                            R_GAZ            = SIMP(statut='o',typ='R'),
11703                                            RHO              = SIMP(statut='o',typ='R'),
11704                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11705                                            PESA_X           = SIMP(statut='o',typ='R'),
11706                                            PESA_Y           = SIMP(statut='o',typ='R'),
11707                                            PESA_Z           = SIMP(statut='o',typ='R'),
11708                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11709                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11710                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11711                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11712                                            PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11713                                            D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11714                                            D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11715                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11716                                            FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11717 # ---------------------------------------------------------------------------------
11718 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11719 # ---------------------------------------------------------------------------------
11720                                            CP               = SIMP(statut='f',typ='R'),
11721                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11722                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11723                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11724                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11725                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11726                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11727                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11728                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11729                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11730                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11731                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11732                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11733                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11734                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11735 # ---------------------------------------------------------------------------------
11736 # -------------------   DONNEES FACULTATIVES   ------------------------------------
11737 # ---------------------------------------------------------------------------------
11738                                            EMMAG            = SIMP(statut='f',typ='R'),
11739                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11740                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11741                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11742                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11743                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11744                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11745                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11746                                            D_FV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11747                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11748 #
11749                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11750                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11751                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11752                                            D_FA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11753 # ---------------------------------------------------------------------------------
11754 # -------------------   DONNEES CACHEES -------------------------------------------
11755 # ---------------------------------------------------------------------------------
11756          VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ),
11757                                              ) ,
11758 # =================================================================================
11759 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11760 # =================================================================================
11761                              THM_LIQU   = FACT(statut='o',
11762 # ---------------------------------------------------------------------------------
11763 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11764 # ---------------------------------------------------------------------------------
11765                                            RHO              = SIMP(statut='o',typ='R'),
11766                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11767                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11768                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11769 # ---------------------------------------------------------------------------------
11770 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11771 # ---------------------------------------------------------------------------------
11772                                            ALPHA            = SIMP(statut='f',typ='R'),
11773                                            CP               = SIMP(statut='f',typ='R'),
11774                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11775                                            D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11776                                            LAMB_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11777                                            D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11778                                            LAMB_CT        = SIMP(statut='f',typ='R'),
11779 # ---------------------------------------------------------------------------------
11780 # -------------------   DONNEES CACHEES -------------------------------------------
11781 # ---------------------------------------------------------------------------------
11782                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11783                                              ),
11784 # =================================================================================
11785 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11786 # =================================================================================
11787                              THM_GAZ    = FACT(statut='o',
11788 # ---------------------------------------------------------------------------------
11789 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11790 # ---------------------------------------------------------------------------------
11791                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11792                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11793                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11794 # ---------------------------------------------------------------------------------
11795 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11796 # ---------------------------------------------------------------------------------
11797                                            CP               = SIMP(statut='f',typ='R'),
11798 # ---------------------------------------------------------------------------------
11799 # -------------------   DONNEES CACHEES -------------------------------------------
11800 # ---------------------------------------------------------------------------------
11801                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11802                                              ),
11803 # =================================================================================
11804 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11805 # =================================================================================
11806                              THM_VAPE_GAZ = FACT(statut='o',
11807 # ---------------------------------------------------------------------------------
11808 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11809 # ---------------------------------------------------------------------------------
11810                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11811                                            CP               = SIMP(statut='o',typ='R'),
11812                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11813                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11814 # ---------------------------------------------------------------------------------
11815 # -------------------   DONNEES CACHEES -------------------------------------------
11816 # ---------------------------------------------------------------------------------
11817                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11818                                              ),
11819 # =================================================================================
11820 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11821 # =================================================================================
11822                              THM_AIR_DISS = FACT(statut='o',
11823 # ---------------------------------------------------------------------------------
11824 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11825 # ---------------------------------------------------------------------------------
11826                                            CP               = SIMP(statut='o',typ='R'),
11827                                            COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11828                                            VERI_P      = SIMP(statut='c',typ='TXM',defaut=("TEMP",),),
11829                                              ),
11830                                  ),
11831 # =================================================================================
11832 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE -------------------------------------------
11833 # =================================================================================
11834 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11835 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ ---------------------------------
11836 # =================================================================================
11837            b_liquvape  = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ",
11838                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE",
11839 # =================================================================================
11840 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11841 # =================================================================================
11842                              THM_INIT   = FACT(statut='o',
11843 # ---------------------------------------------------------------------------------
11844 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11845 # ---------------------------------------------------------------------------------
11846                                            PRE1             = SIMP(statut='o',typ='R'),
11847                                            PORO             = SIMP(statut='o',typ='R'),
11848                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
11849 # ---------------------------------------------------------------------------------
11850 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11851 # ---------------------------------------------------------------------------------
11852                                            TEMP             = SIMP(statut='f',typ='R'),
11853 # ---------------------------------------------------------------------------------
11854 # -------------------   DONNEES INUTILES   ----------------------------------------
11855 # ---------------------------------------------------------------------------------
11856                                            PRE2             = SIMP(statut='f',typ='R'),
11857                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11858                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11859 # ---------------------------------------------------------------------------------
11860 # -------------------   DONNEE CACHEE ---------------------------------------------
11861 # ---------------------------------------------------------------------------------
11862                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 3.0,),
11863                                              ),
11864 # =================================================================================
11865 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11866 # =================================================================================
11867                              THM_DIFFU  = FACT(statut='o',
11868 # ---------------------------------------------------------------------------------
11869 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11870 # ---------------------------------------------------------------------------------
11871                                            R_GAZ            = SIMP(statut='o',typ='R'),
11872                                            RHO              = SIMP(statut='o',typ='R'),
11873                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11874                                            PESA_X           = SIMP(statut='o',typ='R'),
11875                                            PESA_Y           = SIMP(statut='o',typ='R'),
11876                                            PESA_Z           = SIMP(statut='o',typ='R'),
11877                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11878                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11879                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11880                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11881                                            PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11882                                            D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11883                                            D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11884 # ---------------------------------------------------------------------------------
11885 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11886 # ---------------------------------------------------------------------------------
11887                                            CP               = SIMP(statut='f',typ='R'),
11888                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11889                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11890                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11891                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11892                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11893                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11894                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11895                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11896                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11897                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11898                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11899                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11900                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11901                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11902 # ---------------------------------------------------------------------------------
11903 # -------------------   DONNEES INUTILES   ----------------------------------------
11904 # ---------------------------------------------------------------------------------
11905                                            EMMAG            = SIMP(statut='f',typ='R'),
11906                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11907                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11908                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11909                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11910                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11911                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11912                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11913                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11914                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11915                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11916                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11917                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11918                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11919                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11920                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11921 # ---------------------------------------------------------------------------------
11922 # -------------------   DONNEES CACHEES -------------------------------------------
11923 # ---------------------------------------------------------------------------------
11924             VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11925                                              ) ,
11926 # =================================================================================
11927 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11928 # =================================================================================
11929                              THM_LIQU   = FACT(statut='o',
11930 # ---------------------------------------------------------------------------------
11931 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11932 # ---------------------------------------------------------------------------------
11933                                            RHO              = SIMP(statut='o',typ='R'),
11934                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11935                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11936                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11937 # ---------------------------------------------------------------------------------
11938 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11939 # ---------------------------------------------------------------------------------
11940                                            ALPHA            = SIMP(statut='f',typ='R'),
11941                                            CP               = SIMP(statut='f',typ='R'),
11942 # ---------------------------------------------------------------------------------
11943 # -------------------   DONNEES CACHEES ---------------------------------------------
11944 # ---------------------------------------------------------------------------------
11945                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11946                                              ),
11947 # =================================================================================
11948 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11949 # =================================================================================
11950                              THM_VAPE_GAZ = FACT(statut='o',
11951 # ---------------------------------------------------------------------------------
11952 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11953 # ---------------------------------------------------------------------------------
11954                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11955                                            CP               = SIMP(statut='o',typ='R'),
11956                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11957                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11958 # ---------------------------------------------------------------------------------
11959 # -------------------   DONNEES CACHEES -------------------------------------------
11960 # ---------------------------------------------------------------------------------
11961                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11962                                              ),
11963 # =================================================================================
11964 # --- MOT-CLE INUTILE -------------------------------------------------------------
11965 # =================================================================================
11966            THM_GAZ         =FACT(statut='f',
11967              MASS_MOL        =SIMP(statut='f',typ='R'),
11968              CP              =SIMP(statut='f',typ='R'),
11969              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11970              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11971              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11972            ),
11973                                  ),
11974 # courbes et coefficients associés à la fatigue et au dommage
11975 #
11976            FATIGUE         =FACT(statut='f',
11977              regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
11978                      PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
11979                      PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
11980                      ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
11981                      ENSEMBLE('A0','A1','A2','A3','SL'),
11982                      PRESENT_PRESENT('A0','E_REFE'),
11983                      ENSEMBLE('D0','TAU0'),),
11984              WOHLER          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11985              A_BASQUIN       =SIMP(statut='f',typ='R'),
11986              BETA_BASQUIN    =SIMP(statut='f',typ='R'),
11987              A0              =SIMP(statut='f',typ='R'),
11988              A1              =SIMP(statut='f',typ='R'),
11989              A2              =SIMP(statut='f',typ='R'),
11990              A3              =SIMP(statut='f',typ='R'),
11991              SL              =SIMP(statut='f',typ='R'),
11992              MANSON_COFFIN   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11993              E_REFE          =SIMP(statut='f',typ='R'),
11994              D0              =SIMP(statut='f',typ='R'),
11995              TAU0            =SIMP(statut='f',typ='R'),
11996              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ),
11997            ),
11998            DOMMA_LEMAITRE  =FACT(statut='f',
11999              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12000              EPSP_SEUIL      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12001              EXP_S           =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0),
12002              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12003            ),
12004            CISA_PLAN_CRIT  =FACT(statut='f',
12005              CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC",
12006                                                             "DANG_VAN_MODI_AC",
12007                                                             "DANG_VAN_MODI_AV",
12008                                                             "MATAKE_MODI_AV",
12009                                                             "FATESOCI_MODI_AV",
12010                                                             ) ),
12011
12012              b_critere_matake =BLOC(condition="CRITERE=='MATAKE_MODI_AC' or CRITERE=='MATAKE_MODI_AV'",
12013                          fr="Cisaillement plan critique critère de matake pour les cas amplitude constante et amplitude variable",
12014                MATAKE_A         =SIMP(statut='o',typ='R'),
12015                MATAKE_B         =SIMP(statut='o',typ='R'),
12016                COEF_FLEX_TORS   =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
12017              ),
12018
12019              b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')",
12020                                  fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable",
12021                D_VAN_A            =SIMP(statut='o',typ='R'),
12022                D_VAN_B            =SIMP(statut='o',typ='R'),
12023                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
12024              ),
12025
12026              b_critere_fate_soci =BLOC(condition="CRITERE=='FATESOCI_MODI_AV'",
12027                                fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable",
12028                FATSOC_A           =SIMP(statut='o',typ='R'),
12029                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
12030              ),
12031            ),
12032 #
12033 # autres comportements ...
12034 #
12035            WEIBULL         =FACT(statut='f',
12036              M               =SIMP(statut='o',typ='R'),
12037              VOLU_REFE       =SIMP(statut='o',typ='R'),
12038              SIGM_REFE       =SIMP(statut='o',typ='R'),
12039              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
12040            ),
12041            WEIBULL_FO      =FACT(statut='f',
12042              M               =SIMP(statut='o',typ='R'),
12043              VOLU_REFE       =SIMP(statut='o',typ='R'),
12044              SIGM_CNV        =SIMP(statut='o',typ='R'),
12045              SIGM_REFE       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12046              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
12047              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12048            ),
12049            NON_LOCAL       =FACT(statut='f',
12050              LONG_CARA       =SIMP(statut='o',typ='R'),
12051              COEF_RIGI_MINI  =SIMP(statut='f',typ='R'),
12052            ),
12053            RUPT_FRAG       =FACT(statut='f',
12054              GC              =SIMP(statut='o',typ='R'),
12055              SIGM_C          =SIMP(statut='f',typ='R'),
12056              PENA_ADHERENCE  =SIMP(statut='f',typ='R'),
12057              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
12058            ),
12059            RUPT_FRAG_FO   =FACT(statut='f',
12060              GC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12061              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12062              PENA_ADHERENCE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12063              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
12064              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12065            ),
12066            RCCM            =FACT(statut='f',
12067              SY_02           =SIMP(statut='f',typ='R'),
12068              SM              =SIMP(statut='f',typ='R'),
12069              SU              =SIMP(statut='f',typ='R'),
12070              SC              =SIMP(statut='f',typ='R'),
12071              SH              =SIMP(statut='f',typ='R'),
12072              N_KE            =SIMP(statut='f',typ='R'),
12073              M_KE            =SIMP(statut='f',typ='R'),
12074            ),
12075            RCCM_FO         =FACT(statut='f',
12076              SY_02           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12077              SM              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12078              SU              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12079              S               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12080              N_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12081              M_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12082              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12083            ),
12084            LAIGLE          =FACT(statut='f',
12085              GAMMA_ULT       =SIMP(statut='o',typ='R'),
12086              GAMMA_E         =SIMP(statut='o',typ='R'),
12087              M_ULT           =SIMP(statut='o',typ='R'),
12088              M_E             =SIMP(statut='o',typ='R'),
12089              A_E             =SIMP(statut='o',typ='R'),
12090              M_PIC           =SIMP(statut='o',typ='R'),
12091              A_PIC           =SIMP(statut='o',typ='R'),
12092              ETA             =SIMP(statut='o',typ='R'),
12093              SIGMA_C         =SIMP(statut='o',typ='R'),
12094              GAMMA           =SIMP(statut='o',typ='R'),
12095              KSI             =SIMP(statut='o',typ='R'),
12096              GAMMA_CJS       =SIMP(statut='o',typ='R'),
12097              SIGMA_P1        =SIMP(statut='o',typ='R'),
12098              PA              =SIMP(statut='o',typ='R'),
12099            ),
12100            DRUCK_PRAGER  =FACT(statut='f',
12101              ALPHA           =SIMP(statut='o',typ='R'),
12102              SY              =SIMP(statut='o',typ='R'),
12103              P_ULTM          =SIMP(statut='o',typ='R'),
12104              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
12105              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
12106                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
12107                     H               =SIMP(statut='o',typ='R'),
12108                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
12109              ),
12110              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
12111                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
12112                     SY_ULTM         =SIMP(statut='o',typ='R'),
12113                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
12114              ),
12115            ),
12116            HOEK_BROWN          =FACT(statut='f',
12117              GAMMA_RUP       =SIMP(statut='o',typ='R'),
12118              GAMMA_RES       =SIMP(statut='o',typ='R'),
12119              S_END           =SIMP(statut='o',typ='R'),
12120              S_RUP           =SIMP(statut='o',typ='R'),
12121              M_END           =SIMP(statut='o',typ='R'),
12122              M_RUP           =SIMP(statut='o',typ='R'),
12123              BETA            =SIMP(statut='o',typ='R'),
12124              ALPHAHB         =SIMP(statut='o',typ='R'),
12125              PHI_RUP         =SIMP(statut='o',typ='R'),
12126              PHI_RES         =SIMP(statut='o',typ='R'),
12127              PHI_END         =SIMP(statut='f',typ='R'),
12128            ),
12129 ####  MONOCRISTAL
12130
12131            ECOU_VISC1      =FACT(statut='f',
12132              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12133              N               =SIMP(statut='o',typ='R'),
12134              K               =SIMP(statut='o',typ='R'),
12135              C               =SIMP(statut='o',typ='R'),
12136            ),
12137            ECOU_VISC2      =FACT(statut='f',
12138              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12139              N               =SIMP(statut='o',typ='R'),
12140              K               =SIMP(statut='o',typ='R'),
12141              C               =SIMP(statut='o',typ='R'),
12142              D               =SIMP(statut='o',typ='R'),
12143              A               =SIMP(statut='o',typ='R'),
12144            ),
12145            ECOU_VISC3      =FACT(statut='f',
12146              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12147              K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
12148              TAUMU           =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"),
12149              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
12150              DELTAV          =SIMP(statut='o',typ='R',fr="Volume d activation"),
12151              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
12152            ),
12153            ECRO_ISOT1      =FACT(statut='f',
12154               regles=(UN_PARMI('H','H1'),
12155                       PRESENT_PRESENT('H1','H2','H3','H4'),
12156                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
12157                       ),
12158              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
12159              R_0             =SIMP(statut='o',typ='R'),
12160              Q               =SIMP(statut='o',typ='R'),
12161              B               =SIMP(statut='o',typ='R'),
12162              H               =SIMP(statut='f',typ='R'),
12163              H1              =SIMP(statut='f',typ='R'),
12164              H2              =SIMP(statut='f',typ='R'),
12165              H3              =SIMP(statut='f',typ='R'),
12166              H4              =SIMP(statut='f',typ='R'),
12167              H5              =SIMP(statut='f',typ='R'),
12168              H6              =SIMP(statut='f',typ='R'),
12169            ),
12170            ECRO_ISOT2      =FACT(statut='f',
12171               regles=(UN_PARMI('H','H1'),
12172                       PRESENT_PRESENT('H1','H2','H3','H4'),
12173                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
12174                       ),
12175              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
12176              R_0             =SIMP(statut='o',typ='R'),
12177              Q1              =SIMP(statut='o',typ='R'),
12178              B1              =SIMP(statut='o',typ='R'),
12179              H               =SIMP(statut='f',typ='R'),
12180              H1              =SIMP(statut='f',typ='R'),
12181              H2              =SIMP(statut='f',typ='R'),
12182              H3              =SIMP(statut='f',typ='R'),
12183              H4              =SIMP(statut='f',typ='R'),
12184              H5              =SIMP(statut='f',typ='R'),
12185              H6              =SIMP(statut='f',typ='R'),
12186              Q2              =SIMP(statut='o',typ='R'),
12187              B2              =SIMP(statut='o',typ='R'),
12188            ),
12189            ECRO_CINE1      =FACT(statut='f',
12190              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
12191              D               =SIMP(statut='o',typ='R'),
12192            ),
12193            ECRO_CINE2      =FACT(statut='f',
12194              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
12195              D               =SIMP(statut='o',typ='R'),
12196              GM              =SIMP(statut='o',typ='R'),
12197              PM              =SIMP(statut='o',typ='R'),
12198              C               =SIMP(statut='o',typ='R'),
12199            ),
12200
12201 ####  MONOCRISTAL
12202
12203            DRUCK_PRAGER_FO  =FACT(statut='f',
12204              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12205              SY              =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12206              P_ULTM          =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12207              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
12208              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
12209                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
12210                     H               =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12211                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
12212              ),
12213              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
12214                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
12215                     SY_ULTM         =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12216                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
12217              ),
12218            ),
12219
12220
12221            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
12222 )  ;
12223 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
12224 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12225 # ======================================================================
12226 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12227 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12228 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12229 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12230 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12231 #
12232 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12233 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12234 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12235 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12236 #
12237 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12238 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12239 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12240 # ======================================================================
12241 DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
12242                       reentrant='n',
12243             fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", 
12244             UIinfo={"groupes":("Matrices/vecteurs",)},
12245          SOUS_STRUC      =FACT(statut='o',max='**',
12246            NOM             =SIMP(statut='o',typ='TXM' ),
12247            MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
12248            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
12249            TRANS           =SIMP(statut='f',typ='R',max=3),
12250          ),
12251          LIAISON         =FACT(statut='o',max='**',
12252            SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
12253            INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
12254            SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
12255            INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
12256            regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
12257                    EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
12258            GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12259            MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12260            GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12261            MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12262            OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
12263          ),
12264          VERIF           =FACT(statut='f',max='**',
12265 #  dans la doc U stop_erreur est obligatoire         
12266            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
12267            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12268            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12269          ),
12270          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
12271 )  ;
12272 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
12273 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12274 # ======================================================================
12275 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12276 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12277 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12278 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12279 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12280 #
12281 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12282 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12283 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12284 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12285 #
12286 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12287 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12288 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12289 # ======================================================================
12290 DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=nappe_sdaster,
12291                 fr="Définir une fonction réelle de deux variables réelles",
12292                 reentrant='n',
12293             UIinfo={"groupes":("Fonction",)},
12294          regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
12295                  EXCLUS('FONCTION','NOM_PARA_FONC',),
12296                  ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),),
12297          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
12298          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),       
12299          PARA            =SIMP(statut='o',typ='R',max='**'),
12300          FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
12301          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ",
12302                                                           "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ),
12303          DEFI_FONCTION   =FACT(statut='f',max='**',
12304            VALE            =SIMP(statut='o',typ='R',max='**'),
12305            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
12306            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12307            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12308          ),
12309          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
12310          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12311          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12312          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
12313          VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
12314          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12315 )  ;
12316 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
12317 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12318 # ======================================================================
12319 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12320 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12321 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12322 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12323 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12324 #
12325 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12326 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12327 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12328 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12329 #
12330 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12331 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12332 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12333 # ======================================================================
12334 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=table_fonction,
12335                    fr="Définition d'un obstacle plan perpendiculaire à une structure filaire",
12336                    reentrant='n',
12337          UIinfo={"groupes":("Modélisation",)},
12338          TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
12339                              into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
12340                              "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
12341                              "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
12342                              "GUID_B_CARTE_900","GUID_C_CARTE_900",
12343                              "GUID_D_CARTE_900","GUID_E_CARTE_900",
12344                              "GUID_F_CARTE_900","GUID_A_CARTE_1300",
12345                              "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
12346                              "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
12347                              "GUID_F_CARTE_1300","GUID_A_CARSP_900",
12348                              "GUID_B_CARSP_900","GUID_C_CARSP_900",
12349                              "GUID_D_CARSP_900","GUID_E_CARSP_900",
12350                              "GUID_F_CARSP_900","GUID_A_CARSP_1300",
12351                              "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
12352                              "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
12353                              "GUID_F_CARSP_1300","GUID_A_GCONT_900",
12354                              "GUID_B_GCONT_900","GUID_C_GCONT_900",
12355                              "GUID_D_GCONT_900","GUID_E_GCONT_900",
12356                              "GUID_F_GCONT_900","GUID_A_GCONT_1300",
12357                              "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
12358                              "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
12359                              "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
12360                              "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
12361                              "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
12362                              "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
12363                              "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
12364                              "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
12365                              "GUID_F_GCOMB_1300",) ),
12366          VALE            =SIMP(statut='f',typ='R',max='**'),
12367          VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
12368 )  ;
12369 #& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
12370 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12371 # ======================================================================
12372 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12373 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12374 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12375 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12376 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12377 #
12378 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12379 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12380 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12381 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12382 #
12383 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12384 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12385 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12386 # ======================================================================
12387 # RESPONSABLE GNICOLAS G.NICOLAS
12388 DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
12389                     fr="Définition d'un paramètre de sensibilité",
12390                     ang="Definition of a sensitive parameter",
12391                     reentrant='n',
12392             UIinfo={"groupes":("Fonction",)},
12393          NOM_RESU        =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU",
12394                                fr="Nom du concept créé",
12395                                ang="Name of the concept"),
12396          VALE            =SIMP(statut='o',typ='R',
12397                                fr="Valeur du parametre",
12398                                ang="Value of the parameter"),
12399          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12400 )  ;
12401 #& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
12402 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12403 # ======================================================================
12404 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
12405 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12406 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12407 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12408 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12409 #                                                                       
12410 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12411 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12412 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12413 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12414 #                                                                       
12415 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12416 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12417 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12418 # ======================================================================
12419 # RESPONSABLE ASSIRE A.ASSIRE
12420
12421 from Macro.defi_part_feti_ops import defi_part_feti_ops
12422
12423 DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster,
12424                      reentrant='n',UIinfo={"groupe":("Maillage",)},
12425                      fr="Creation partitionnement en sous-domaines pour FETI",
12426          regles=(UN_PARMI('MAILLAGE','MODELE'),),
12427          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
12428          MODELE          =SIMP(statut='f',typ=modele_sdaster),
12429          NB_PART         =SIMP(statut='o',typ='I',val_min=2),
12430          EXCIT           =FACT(statut='f',max='**',
12431            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
12432
12433          # Methode de partitionnement
12434          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
12435          
12436          LOGICIEL      =SIMP(statut='f',typ='TXM'),
12437
12438          # Corrige les problemes possibles de non-connexite des sous-domaines
12439          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
12440
12441          # Permet de grouper des mailles dans un meme sous-doamine
12442          GROUPAGE        =FACT(statut='f',max='**',
12443            GROUP_MA       =SIMP(statut='o',typ=grma,),
12444                           ),
12445          # Permet d'appliquer des poids sur certaines mailles
12446          POIDS_MAILLES   =FACT(statut='f',max='**',
12447            GROUP_MA       =SIMP(statut='o',typ=grma,),
12448            POIDS          =SIMP(statut='f',typ='I',val_min=2),
12449                           ),
12450          # Prefixe pour le nom des group_ma definissant les sous-domaines 
12451          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
12452
12453          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
12454          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
12455          
12456          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
12457          # Note : le calcul FETI sera impossible
12458          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
12459            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
12460              ),
12461
12462          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
12463 );
12464 #& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
12465 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12466 # ======================================================================
12467 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
12468 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12469 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12470 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12471 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12472 #                                                                       
12473 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12474 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12475 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12476 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12477 #                                                                       
12478 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12479 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12480 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12481 # ======================================================================
12482 # RESPONSABLE ASSIRE A.ASSIRE
12483
12484 DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster,
12485                     fr="Creation partitionnement en sous-domaines pour FETI",
12486                     docu="U4.23.05",reentrant='n',
12487                     UIinfo={"groupes":("Résolution",)},
12488          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
12489          MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
12490          NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
12491          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
12492          DEFI          =FACT(statut='f',max='**',
12493            GROUP_MA        =SIMP(statut='o',typ=grma),
12494            GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
12495          ),
12496          EXCIT           =FACT(statut='f',max='**',
12497            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
12498          ),
12499 );
12500 #& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
12501 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12502 # ======================================================================
12503 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
12504 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12505 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12506 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12507 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12508 #                                                                       
12509 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12510 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12511 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12512 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12513 #                                                                       
12514 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12515 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12516 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12517 # ======================================================================
12518 # RESPONSABLE ASSIRE A.ASSIRE
12519
12520 DEFI_PART_PA_OPS=OPER(nom="DEFI_PART_PA_OPS",op=29,sd_prod=sd_feti_sdaster,
12521                     fr="Creation partitionnement en sous-domaines pour FETI",
12522                     docu="U4.00.00",reentrant='n',
12523                     UIinfo={"groupes":("Résolution",)},
12524          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
12525          MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
12526          NB_PART         =SIMP(statut='o',typ='I',),
12527
12528          # Methode de partitionnement
12529          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
12530          
12531          LOGICIEL      =SIMP(statut='f',typ='TXM'),
12532
12533          # Corrige les problemes possibles de non-connexite des sous-domaines
12534          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
12535
12536          # Permet de grouper des mailles dans un meme sous-doamine
12537          GROUPAGE        =FACT(statut='f',max='**',
12538            GROUP_MA       =SIMP(statut='o',typ=grma,),
12539                           ),
12540          # Permet d'appliquer des poids sur certaines mailles
12541          POIDS_MAILLES   =FACT(statut='f',max='**',
12542            GROUP_MA       =SIMP(statut='o',typ=grma,),
12543            POIDS          =SIMP(statut='f',typ='I'),
12544                           ),
12545          # Prefixe pour le nom des group_ma definissant les sous-domaines 
12546          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
12547
12548          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
12549          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
12550
12551          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
12552          # Note : le calcul FETI sera impossible
12553          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
12554            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
12555              ),
12556
12557          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
12558
12559 );
12560 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
12561 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12562 # ======================================================================
12563 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12564 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12565 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12566 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12567 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12568 #
12569 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12570 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12571 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12572 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12573 #
12574 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12575 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12576 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12577 # ======================================================================
12578 DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
12579                     fr="Définition d'un spectre d'excitation turbulente",
12580                     reentrant='n',
12581             UIinfo={"groupes":("Modélisation",)},
12582          regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3',
12583                           'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2',
12584                           'SPEC_FONC_FORME','SPEC_EXCI_POINT'),),
12585          SPEC_LONG_COR_1 =FACT(statut='f',
12586            LONG_COR        =SIMP(statut='o',typ='R' ),
12587            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12588            VISC_CINE       =SIMP(statut='o',typ='R' ),
12589          ),
12590          SPEC_LONG_COR_2 =FACT(statut='f',
12591            regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
12592            LONG_COR        =SIMP(statut='o',typ='R' ),
12593            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12594            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.1 ),
12595            PHI0            =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
12596            BETA            =SIMP(statut='f',typ='R',defaut= 2.7 ),
12597          ),
12598          SPEC_LONG_COR_3 =FACT(statut='f',
12599            regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),),
12600            LONG_COR        =SIMP(statut='o',typ='R' ),
12601            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12602            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.2 ),
12603            PHI0_1          =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
12604            BETA_1          =SIMP(statut='f',typ='R',defaut= 0.5 ),
12605            PHI0_2          =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
12606            BETA_2          =SIMP(statut='f',typ='R',defaut= 3.5 ),
12607          ),
12608          SPEC_LONG_COR_4 =FACT(statut='f',
12609            regles=(ENSEMBLE('BETA','GAMMA'),),
12610            LONG_COR        =SIMP(statut='o',typ='R' ),
12611            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12612            TAUX_VIDE       =SIMP(statut='o',typ='R' ),
12613            BETA            =SIMP(statut='f',typ='R',defaut= 2. ),
12614            GAMMA           =SIMP(statut='f',typ='R',defaut= 4. ),
12615          ),
12616          SPEC_CORR_CONV_1=FACT(statut='f',
12617            LONG_COR_1      =SIMP(statut='o',typ='R' ),
12618            LONG_COR_2      =SIMP(statut='f',typ='R' ),
12619            VITE_FLUI       =SIMP(statut='o',typ='R' ),
12620            RHO_FLUI        =SIMP(statut='o',typ='R' ),
12621            FREQ_COUP       =SIMP(statut='f',typ='R' ),
12622            K               =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
12623            D_FLUI          =SIMP(statut='o',typ='R' ),
12624            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
12625            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
12626            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
12627                                  into=("AU_YANG","GENERALE","CORCOS") ),
12628          ),
12629          SPEC_CORR_CONV_2=FACT(statut='f',
12630            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12631            VITE_FLUI       =SIMP(statut='o',typ='R' ),
12632            FREQ_COUP       =SIMP(statut='f',typ='R' ),
12633            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
12634                                  into=("AU_YANG","GENERALE","CORCOS",) ),
12635            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
12636            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
12637          ),
12638          SPEC_FONC_FORME =FACT(statut='f',
12639            regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
12640                    ENSEMBLE('INTE_SPEC','FONCTION'),),
12641            INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
12642            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
12643            GRAPPE_1        =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
12644            NOEUD           =SIMP(statut='o',typ=no),
12645            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
12646            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
12647          ),
12648          SPEC_EXCI_POINT =FACT(statut='f',
12649            regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
12650            INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
12651            GRAPPE_2        =SIMP(statut='f',typ='TXM',
12652                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
12653 #  Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
12654            b_inte_spec =BLOC(condition = "INTE_SPEC != None",
12655              NATURE          =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
12656              ANGL            =SIMP(statut='o',typ='R',max='**'),
12657              NOEUD           =SIMP(statut='o',typ=no,max='**'),
12658            ),
12659            b_grappe_2      =BLOC(condition = "GRAPPE_2 != None",
12660              RHO_FLUI        =SIMP(statut='o',typ='R' ),
12661              NOEUD           =SIMP(statut='o',typ=no),
12662            ),
12663            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
12664            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
12665          ),
12666          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12667 )  ;
12668 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
12669 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12670 # ======================================================================
12671 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12672 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12673 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12674 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12675 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12676 #
12677 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12678 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12679 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12680 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12681 #
12682 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12683 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12684 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12685 # ======================================================================
12686 DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
12687                     fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique",
12688                     reentrant='n',
12689             UIinfo={"groupes":("Maillage",)},
12690          regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'),
12691                  PRESENT_PRESENT('CYCLIQUE','SECTEUR'),
12692                  EXCLUS('SOUS_STRUC','SECTEUR'),
12693                  PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
12694                  PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
12695          CYCLIQUE    =FACT(statut='f',max='**',
12696            regles=(UN_PARMI('MODE_CYCL','MAILLAGE'),
12697                    PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),),
12698            MODE_CYCL       =SIMP(statut='f',typ=mode_cycl ),
12699            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
12700            MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
12701          ),
12702          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
12703          SQUELETTE       =SIMP(statut='f',typ=squelette ),
12704          RECO_GLOBAL     =FACT(statut='f',max='**',
12705            regles=(EXCLUS('TOUT','GROUP_NO_1'),
12706                    PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
12707                    PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
12708                    PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
12709                    PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
12710            TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
12711            GROUP_NO_1      =SIMP(statut='f',typ=grno),
12712            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
12713            GROUP_NO_2      =SIMP(statut='f',typ=grno),
12714            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
12715            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12716            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12717            DIST_REFE       =SIMP(statut='f',typ='R' ),
12718          ),
12719          NOM_GROUP_MA    =FACT(statut='f',max='**',
12720            NOM             =SIMP(statut='o',typ='TXM' ),
12721            SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
12722            GROUP_MA        =SIMP(statut='o',typ=grma),
12723          ),
12724          EXCLUSIF        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
12725          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
12726          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12727          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12728          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12729          TRANS           =SIMP(statut='f',typ='R',min=3,max=3),
12730          ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),
12731          SOUS_STRUC      =FACT(statut='f',max='**',
12732            NOM             =SIMP(statut='f',typ='TXM' ),
12733            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12734            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12735            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12736          ),
12737          SECTEUR         =FACT(statut='f',max='**',
12738            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12739            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12740            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12741          ),
12742          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12743 )  ;
12744 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
12745 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12746 # ======================================================================
12747 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12748 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12749 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12750 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12751 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12752 #
12753 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12754 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12755 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12756 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12757 #
12758 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12759 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12760 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12761 # ======================================================================
12762 DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n',
12763             UIinfo={"groupes":("Modélisation",)},
12764               fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
12765                 +" pour les calculs métallurgiques.",
12766          HIST_EXP        =FACT(statut='o',max='**',
12767            VALE            =SIMP(statut='o',typ='R',max='**'),
12768          ),
12769          TEMP_MS         =FACT(statut='o',max='**',
12770            SEUIL           =SIMP(statut='o',typ='R'),
12771            AKM             =SIMP(statut='o',typ='R'),
12772            BKM             =SIMP(statut='o',typ='R'),
12773            TPLM            =SIMP(statut='o',typ='R'),
12774          ),
12775          GRAIN_AUST      =FACT(statut='f',max='**',
12776            DREF           =SIMP(statut='f',typ='R'),
12777            A              =SIMP(statut='f',typ='R'),
12778          ),
12779 )  ;
12780 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
12781 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12782 # ======================================================================
12783 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12784 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12785 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12786 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12787 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12788 #
12789 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12790 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12791 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12792 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12793 #
12794 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12795 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12796 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12797 # ======================================================================
12798 def depl_interne_prod(DEPL_GLOBAL,**args ):
12799     if AsType(DEPL_GLOBAL)     == cham_no_sdaster: return cham_no_sdaster
12800     if AsType(DEPL_GLOBAL)     == evol_elas      : return evol_elas
12801     if AsType(DEPL_GLOBAL)     == dyna_trans     : return dyna_trans
12802     if AsType(DEPL_GLOBAL)     == dyna_harmo     : return dyna_harmo
12803     if AsType(DEPL_GLOBAL)     == mode_meca      : return mode_meca
12804     if AsType(DEPL_GLOBAL)     == base_modale    : return base_modale
12805     raise AsException("type de concept resultat non prevu")
12806
12807 DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n',
12808             UIinfo={"groupes":("Matrices/vecteurs",)},
12809                   fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique",
12810          DEPL_GLOBAL     =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,base_modale,evol_elas,dyna_trans,dyna_harmo),),
12811          SUPER_MAILLE    =SIMP(statut='o',typ=ma,),
12812          NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
12813 )  ;
12814 #& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
12815 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12816 # ======================================================================
12817 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12818 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12819 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12820 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12821 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12822 #
12823 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12824 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12825 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12826 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12827 #
12828 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12829 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12830 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12831 # ======================================================================
12832 DETRUIRE=MACRO(nom="DETRUIRE",op=-7,
12833             UIinfo={"groupes":("Gestion du travail",)},
12834               fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX",
12835              op_init=ops.detruire,
12836              regles=(UN_PARMI('CONCEPT','OBJET',),),
12837             CONCEPT     =FACT(statut='f',max='**',
12838                 regles=(DERIVABLE('NOM'),),
12839                 NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
12840                 SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
12841                                  fr="Paramètre de sensibilité.",
12842                                  ang="Sensitivity parameter",max='**'),
12843             ),
12844             OBJET  =FACT(statut='f',max='**',
12845                CLASSE      =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'),  
12846                CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
12847                POSITION    =SIMP(statut='f',typ='I'  ,max='**'),
12848             ),
12849             ALARME        =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',),
12850             INFO          =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),           
12851 );
12852 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
12853 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12854 # ======================================================================
12855 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12856 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12857 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12858 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12859 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12860 #
12861 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12862 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12863 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12864 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12865 #
12866 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12867 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12868 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12869 # ======================================================================
12870 DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction,
12871                      fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP",
12872                      reentrant='n',
12873             UIinfo={"groupes":("Résolution",)},
12874          BASE_MODALE     =FACT(statut='o',
12875            regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
12876            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
12877            BANDE           =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2),
12878            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
12879            b_bande =BLOC(condition = "BANDE != None",
12880              AMOR_UNIF       =SIMP(statut='o',typ='R' ),
12881            ),
12882            b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
12883              AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
12884            ),
12885          ),
12886          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
12887 # MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait
12888 # ainsi rajouter un bloc du genre  b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')",        
12889          EXCIT           =FACT(statut='o',
12890            INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
12891            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
12892            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
12893            MODAL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
12894            b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')",           
12895              regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),),
12896              NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**'),
12897              NOEUD_I         =SIMP(statut='f',typ=no,max='**'),
12898              b_nume_ordre_i  =BLOC(condition = "NUME_ORDRE_I != None",
12899                regles=(EXCLUS('CHAM_NO','NOEUD'),),
12900 # on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO'
12901 # cela impliquerait d'enlever la valeur par defaut a GRANDEUR            
12902                NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
12903                CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
12904                NOEUD           =SIMP(statut='f',typ=no,max='**'),
12905                b_noeud         =BLOC(condition = "NOEUD != None",
12906                   NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
12907                 ),  
12908                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
12909                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
12910 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP  
12911                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
12912              ),           
12913              b_noeud_i       =BLOC(condition = "NOEUD_I != None",
12914                NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
12915                NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**'),
12916                NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**'),
12917                NOEUD           =SIMP(statut='o',typ=no,max='**'),
12918                NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
12919 # ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans
12920 # NOEUD_I, NOM_CMP_I ...  => modif. du Fortran
12921                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
12922                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
12923 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I  
12924                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
12925              ),
12926            ),  
12927            b_modal_oui = BLOC(condition = "(MODAL == 'OUI')",
12928 # dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes
12929              NUME_ORDRE_I    =SIMP(statut='o',typ='I',max='**'),
12930              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
12931              GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
12932                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
12933              DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
12934 # dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO   On devrait
12935 # pouvoir supprimer GRANDEUR et DERIVATION ici   
12936            ),  
12937                     
12938          ),
12939          REPONSE         =FACT(statut='f',
12940            regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
12941            DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ),
12942            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
12943            FREQ_MIN        =SIMP(statut='f',typ='R' ),
12944            FREQ_MAX        =SIMP(statut='f',typ='R' ),
12945            PAS             =SIMP(statut='f',typ='R' ),
12946            b_defaut_freq   =BLOC(condition = "FREQ_MIN == NONE",
12947               FREQ_EXCIT      =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
12948               NB_POIN_MODE    =SIMP(statut='f',typ='I',defaut= 50 ),
12949            ),
12950          ),
12951          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12952          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
12953 )  ;
12954 #& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
12955 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12956 # ======================================================================
12957 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12958 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12959 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12960 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12961 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12962 #
12963 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12964 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12965 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12966 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12967 #
12968 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12969 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12970 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12971 # ======================================================================
12972 def dyna_line_harm_prod(MATR_RIGI,**args):
12973    if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo
12974    elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo
12975    elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo
12976    elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene
12977    elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene
12978    raise AsException("type de concept resultat non prevu")
12979
12980 DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
12981                     fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique",
12982                     reentrant='f',
12983             UIinfo={"groupes":("Résolution",)},
12984          regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
12985                  PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
12986                  PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
12987                  UN_PARMI('FREQ','LIST_FREQ'),
12988                  CONCEPT_SENSIBLE('ENSEMBLE'),),
12989          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
12990          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
12991          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
12992          MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
12993          MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
12994                                               ,matr_asse_gene_r,matr_asse_gene_c ) ),
12995          MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
12996          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
12997          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
12998          MATR_IMPE_PHI   =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
12999          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
13000          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
13001          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
13002          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
13003          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire",
13004              RESULTAT      =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
13005          ),         
13006          EXCIT           =FACT(statut='o',max='**',
13007            regles=(UN_PARMI('VECT_ASSE','CHARGE'),
13008                    UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
13009                   ),
13010            VECT_ASSE       =SIMP(statut='f',typ=(cham_no_sdaster,vect_asse_gene) ),
13011            CHARGE          =SIMP(statut='f',typ=char_meca ),
13012            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
13013            FONC_MULT_C     =SIMP(statut='f',typ=fonction_c ),
13014            COEF_MULT_C     =SIMP(statut='f',typ='C' ),
13015            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13016            COEF_MULT       =SIMP(statut='f',typ='R' ),
13017            PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13018            PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
13019          ),
13020          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13021          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
13022                                fr="Liste des paramètres de sensibilité.",
13023                                ang="List of sensitivity parameters"),
13024 )  ;
13025 # Rajouter test icompatibilite vect_asse et sensibilite
13026 # Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation 
13027 #  presents dans le Fortran          
13028 #& MODIF COMMANDE  DATE 12/06/2006   AUTEUR BOITEAU O.BOITEAU 
13029 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13030 # ======================================================================
13031 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13032 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13033 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13034 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13035 # (AT YOUR OPTION) ANY LATER VERSION.
13036 #
13037 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13038 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13039 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13040 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13041 #
13042 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13043 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13044 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13045 # ======================================================================
13046 DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
13047                     fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque",
13048                     reentrant='f',
13049             UIinfo={"groupes":("Résolution",)},
13050 #         regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
13051          regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),
13052                  CONCEPT_SENSIBLE('ENSEMBLE'),),
13053          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
13054          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
13055          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
13056          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
13057          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
13058          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
13059          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
13060          NEWMARK         =FACT(statut='f',
13061            ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
13062            DELTA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
13063          ),
13064          WILSON          =FACT(statut='f',
13065            THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
13066          ),
13067          DIFF_CENTRE     =FACT(statut='f',
13068          ),
13069          ADAPT           =FACT(statut='f',
13070          ),
13071          ETAT_INIT       =FACT(statut='f',
13072            regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),
13073                    PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),),
13074            DYNA_TRANS      =SIMP(statut='f',typ=dyna_trans ),
13075            b_dyna_trans    =BLOC(condition = "DYNA_TRANS != None",
13076              regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
13077              NUME_INIT       =SIMP(statut='f',typ='I' ),
13078              INST_INIT       =SIMP(statut='f',typ='R' ),
13079              b_inst_init     =BLOC(condition = "INST_INIT != None",
13080                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
13081                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13082              ),
13083            ),
13084            DEPL_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
13085            VITE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
13086            ACCE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
13087          ),
13088          EXCIT           =FACT(statut='f',max='**',
13089            regles=(UN_PARMI('CHARGE','VECT_ASSE'),
13090                    EXCLUS('CHARGE','COEF_MULT'),
13091                    EXCLUS('FONC_MULT','COEF_MULT'),
13092                    EXCLUS('ACCE','COEF_MULT'),
13093                    PRESENT_ABSENT('ACCE','FONC_MULT'),
13094                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
13095                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
13096                    ),
13097            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
13098            CHARGE          =SIMP(statut='f',typ=char_meca ),
13099            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13100            COEF_MULT       =SIMP(statut='f',typ='R' ),
13101            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
13102            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13103            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13104            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13105            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13106            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
13107            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13108            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13109          ),
13110          AMOR_MODAL      =FACT(statut='f',
13111            MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
13112            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
13113            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13114            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13115          ),
13116
13117          SOLVEUR         =FACT(statut='d',
13118          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
13119
13120            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13121              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13122            ),
13123
13124            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
13125              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13126            ),
13127
13128            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
13129                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13130              NPREC           =SIMP(statut='f',typ='I',defaut=8),
13131              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13132            ),
13133
13134            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
13135              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13136              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
13137              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13138              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
13139              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13140            ),
13141            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13142              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13143              SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13144              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13145              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
13146              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
13147              ),
13148          ),
13149
13150          INCREMENT       =FACT(statut='o',max='**',
13151            regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
13152            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
13153            FONC_INST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13154            PAS             =SIMP(statut='f',typ='R' ),
13155            b_pas           =BLOC(condition = "PAS != None",
13156                INST_INIT       =SIMP(statut='f',typ='R' ),
13157                INST_FIN        =SIMP(statut='f',typ='R' ),
13158            ),
13159            b_list_fonc     =BLOC(condition = "LIST_INST != None or FONC_INST != None",
13160                regles=(EXCLUS('INST_FIN','NUME_FIN'),),
13161                NUME_FIN        =SIMP(statut='f',typ='I' ),
13162                INST_FIN        =SIMP(statut='f',typ='R' ),
13163            ),
13164            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
13165            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
13166            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.33334 ),
13167            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13168            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
13169            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
13170            PAS_CALCUL      =SIMP(statut='f',typ='I',defaut= 1 ),
13171          ),
13172          ARCHIVAGE       =FACT(statut='f',
13173            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
13174            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
13175            PAS_ARCH        =SIMP(statut='f',typ='I' ),
13176            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ),
13177          ),
13178          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
13179                                fr="Liste des paramétres de sensibilité.",
13180                                ang="List of sensitivity parameters",
13181          ),
13182          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13183          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
13184 )  ;
13185 #& MODIF COMMANDE  DATE 06/06/2007   AUTEUR SALMONA L.SALMONA 
13186 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13187 # ======================================================================
13188 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13189 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13190 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13191 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13192 # (AT YOUR OPTION) ANY LATER VERSION.
13193 #
13194 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13195 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13196 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13197 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13198 #
13199 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13200 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13201 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13202 # ======================================================================
13203 DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
13204             fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
13205             UIinfo={"groupes":("Résolution",)},
13206          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
13207                  UN_PARMI('NEWMARK','HHT','TETA_METHODE',),
13208                  CONCEPT_SENSIBLE('ENSEMBLE'),),
13209          MODELE          =SIMP(statut='o',typ=modele_sdaster),
13210          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
13211          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
13212          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
13213          EXCIT           =FACT(statut='o',max='**',
13214            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
13215                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
13216                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
13217                    ),
13218            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
13219                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
13220            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
13221            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13222            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13223            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13224            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13225            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13226            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
13227            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13228            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13229          ),
13230          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
13231                 regles=(UN_PARMI('TOUT','MAILLE'),),
13232                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
13233                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13234                 MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
13235               ),
13236          AMOR_MODAL      =FACT(statut='f',
13237            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
13238            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
13239            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
13240            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
13241            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13242            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13243          ),
13244          COMP_INCR       =C_COMP_INCR(),
13245          COMP_ELAS       =FACT(statut='f',max='**',
13246            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
13247                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
13248                                       "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
13249            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13250            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13251            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13252            ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
13253            ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
13254            CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13255            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
13256       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
13257            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13258            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
13259            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13260            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
13261            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
13262            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
13263            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
13264                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
13265          ),
13266 #-------------------------------------------------------------------
13267          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
13268          ETAT_INIT       =FACT(statut='o',
13269            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
13270                    EXCLUS('EVOL_NOLI','DEPL',),
13271                    EXCLUS('EVOL_NOLI','VITE'),
13272                    EXCLUS('EVOL_NOLI','ACCE'),
13273                    EXCLUS('EVOL_NOLI','SIGM',),
13274                    EXCLUS('EVOL_NOLI','VARI',),
13275                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
13276                    EXCLUS('NUME_ORDRE','INST'), ),
13277            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
13278            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
13279            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
13280            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
13281            VARI            =SIMP(statut='f',typ=cham_elem),
13282            VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
13283            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
13284            NUME_ORDRE      =SIMP(statut='f',typ='I'),
13285            INST            =SIMP(statut='f',typ='R'),
13286            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13287            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13288            NUME_DIDI       =SIMP(statut='f',typ='I'),
13289            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
13290          ),),
13291          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
13292          ETAT_INIT       =FACT(statut='f',
13293            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
13294                    EXCLUS('EVOL_NOLI','DEPL',),
13295                    EXCLUS('EVOL_NOLI','VITE'),
13296                    EXCLUS('EVOL_NOLI','ACCE'),
13297                    EXCLUS('EVOL_NOLI','SIGM',),
13298                    EXCLUS('EVOL_NOLI','VARI',),
13299                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
13300                    EXCLUS('NUME_ORDRE','INST'), ),
13301            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
13302            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
13303            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
13304            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
13305            VARI            =SIMP(statut='f',typ=cham_elem),
13306            VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
13307            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
13308            NUME_ORDRE      =SIMP(statut='f',typ='I'),
13309            INST            =SIMP(statut='f',typ='R'),
13310            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13311            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13312            NUME_DIDI       =SIMP(statut='f',typ='I'),
13313            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
13314          ),),
13315 #-------------------------------------------------------------------
13316          INCREMENT       =FACT(statut='o',
13317            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
13318                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
13319            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
13320            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
13321                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
13322            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
13323            INST_INIT       =SIMP(statut='f',typ='R'),
13324            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
13325            INST_FIN        =SIMP(statut='f',typ='R'),
13326            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
13327            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
13328            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
13329               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
13330               defaut="AUCUNE",
13331               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
13332            ),
13333            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
13334              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
13335              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
13336                 fr="Coefficient multiplicateur de la 1ère subdivision"),
13337              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
13338                 fr="Nombre de subdivision d'un pas de temps"),
13339              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
13340                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
13341              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
13342                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
13343            ),
13344            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
13345              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
13346              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
13347                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
13348                 defaut="IGNORE_PREMIERES",
13349                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
13350              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
13351                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
13352              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
13353                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
13354              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
13355                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
13356              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
13357                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
13358              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
13359                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
13360              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
13361                 fr="% itération autorisée en plus"),
13362            ),
13363            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
13364            OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
13365            NOM_CHAM        =SIMP(statut='f',typ='TXM',),
13366            NOM_CMP         =SIMP(statut='f',typ='TXM',),
13367            VALE            =SIMP(statut='f',typ='R'),
13368          ),
13369 #-------------------------------------------------------------------
13370          NEWMARK         =FACT(statut='f',
13371            ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25),
13372            DELTA           =SIMP(statut='f',typ='R',defaut= 0.5),
13373          ),
13374          HHT             =FACT(statut='f',
13375            ALPHA           =SIMP(statut='f',typ='R',defaut= -0.3 ),
13376            MODI_EQUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13377          ),
13378          TETA_METHODE      =FACT(statut='f',
13379            TETA            =SIMP(statut='f',typ='R'
13380                                 ,defaut= 1.,val_min=0.5,val_max=1. ),
13381          ),
13382          NEWTON          =FACT(statut='d',
13383            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
13384            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
13385            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
13386            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
13387            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
13388            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
13389          ),
13390          SOLVEUR         =FACT(statut='d',
13391            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
13392            b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13393              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13394            ),
13395            b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
13396              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13397            ),
13398            b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
13399                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13400              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
13401              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
13402            ),
13403            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13404              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13405              SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13406              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13407              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
13408              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
13409              ),
13410            b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
13411              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13412              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
13413              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13414              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13415              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13416            ),
13417            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13418          ),
13419 #-------------------------------------------------------------------
13420          RECH_LINEAIRE   =FACT(statut='f',
13421            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
13422            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
13423            ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
13424            PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
13425            RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
13426            RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
13427            RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.),
13428          ),
13429          PILOTAGE        =FACT(statut='f',
13430            regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
13431            TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
13432            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
13433            ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
13434            ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
13435            ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
13436            ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
13437            PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13438            SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
13439            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13440            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
13441            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13442            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
13443            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
13444            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
13445                          ),
13446          CONVERGENCE     =FACT(statut='d',
13447            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
13448            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
13449              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
13450                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),),
13451               SIGM_REFE       =SIMP(statut='f',typ='R'),
13452               EPSI_REFE       =SIMP(statut='f',typ='R'),
13453               FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
13454               FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
13455               FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
13456            ),
13457
13458            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
13459            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
13460            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
13461            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
13462            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
13463            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
13464          ),
13465 #-------------------------------------------------------------------
13466          SUIVI_DDL      = FACT(statut='f',max=4,
13467                                regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'),
13468                                        PRESENT_PRESENT('MAILLE','POINT'),),
13469              NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
13470              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
13471                                    into=("DEPL","VITE","ACCE","SIEF_ELGA",
13472                                          "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
13473              NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),
13474              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13475              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13476              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13477              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
13478              POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
13479              VALE_MAX        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),
13480              VALE_MIN        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),
13481          ),
13482
13483          AFFICHAGE      = FACT(statut='f',max=16,
13484
13485             UNITE       = SIMP(statut='f',typ='I',val_min=1),
13486
13487             LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
13488             PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
13489             LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
13490             
13491             NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
13492                                 into=("STANDARD","MINIMUM",
13493                                       "ITER_NEWT",
13494                                       "INCR_TPS",
13495                                       "RESI_RELA","RELA_NOEU",
13496                                       "RESI_MAXI","MAXI_NOEU",
13497                                       "RESI_REFE","REFE_NOEU",
13498                                       "RELI_ITER","RELI_COEF",
13499                                       "PILO_PARA",
13500                                       "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
13501                                       "MATR_ASSE",
13502                                       "ITER_DEBO",
13503                                       "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
13504                                       "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
13505                                       "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
13506                                      ),
13507                                ),
13508             b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
13509                     NOM_COLONNE == 'RESI_MAXI' or\
13510                     NOM_COLONNE == 'RESI_REFE' or\
13511                     NOM_COLONNE == 'CTCD_GEOM' or\
13512                     NOM_COLONNE == 'STANDARD' ",
13513                             INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
13514                           ),
13515          ),
13516 #-------------------------------------------------------------------
13517          ARCHIVAGE       =FACT(statut='f',
13518            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
13519                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
13520            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
13521            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
13522            PAS_ARCH        =SIMP(statut='f',typ='I' ),
13523            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
13524            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
13525            NUME_INIT       =SIMP(statut='f',typ='I'),
13526            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
13527            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
13528            into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
13529          ),
13530          OBSERVATION     =FACT(statut='f',max='**',
13531            regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
13532                    PRESENT_PRESENT('MAILLE','POINT'),),
13533            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
13534
13535 into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
13536            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
13537            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
13538            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
13539            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
13540            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13541            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13542            PAS_OBSE        =SIMP(statut='f',typ='I'),
13543            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13544            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13545            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13546            POINT           =SIMP(statut='f',typ='I' ,max='**'),
13547          ),
13548 #-------------------------------------------------------------------
13549          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
13550            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
13551            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.),
13552                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
13553          ),
13554          MODE_VIBR     =FACT(statut='f',min=1,max=1,
13555            MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE") ),
13556            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
13557          ),
13558 #-------------------------------------------------------------------
13559            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
13560                                fr="Liste des paramètres de sensibilité",
13561                                ang="List of sensitivity parameters"),
13562 #-------------------------------------------------------------------
13563            SOLV_NON_LOCAL  =FACT(statut='f',
13564              METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
13565              b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13566                RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13567              ),
13568              b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
13569                RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13570              ),
13571              b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
13572                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13573                NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
13574                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13575              ),
13576              b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13577                TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13578                SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13579                RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13580                PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
13581                RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
13582              ),
13583              b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
13584                PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13585                NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
13586                RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13587                NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13588              ),
13589              EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13590            ),
13591            LAGR_NON_LOCAL  =FACT(statut='f',
13592              ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
13593              RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
13594              RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
13595              R               =SIMP(statut='f',typ='R',defaut= 1000.),
13596              ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
13597            ),
13598 #-------------------------------------------------------------------
13599          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
13600          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13601 )  ;
13602 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
13603 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13604 # ======================================================================
13605 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13606 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13607 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13608 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
13609 # (AT YOUR OPTION) ANY LATER VERSION.                                 
13610 #
13611 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13612 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13613 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13614 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13615 #
13616 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13617 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13618 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13619 # ======================================================================
13620 DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_fonction,
13621                      fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
13622                      reentrant='n',
13623             UIinfo={"groupes":("Résolution",)},
13624          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
13625          EXCIT           =FACT(statut='o',
13626            INTE_SPEC_GENE  =SIMP(statut='o',typ=table_fonction),
13627          ),
13628          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
13629          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13630 )  ;
13631 #& MODIF COMMANDE  DATE 06/06/2007   AUTEUR SALMONA L.SALMONA 
13632 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13633 # ======================================================================
13634 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
13635 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13636 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13637 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13638 # (AT YOUR OPTION) ANY LATER VERSION.
13639 #
13640 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13641 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13642 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13643 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13644 #
13645 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13646 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13647 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13648 # ======================================================================
13649 #& RESPONSABLE
13650 DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)},
13651                    fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement"
13652                        +" non linéaire, par une méthode explicite sur les accélérations ",
13653          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),UN_PARMI('DIFF_CENT','TCHAMWA'),),
13654          MODELE          =SIMP(statut='o',typ=modele_sdaster),
13655          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
13656          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
13657          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
13658          MASS_DIAG       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
13659          EXCIT           =FACT(statut='o',max='**',
13660            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
13661                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
13662                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
13663                    ),
13664            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
13665                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
13666            CHARGE          =SIMP(statut='o',typ=char_meca),
13667            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13668            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13669            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13670            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13671            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13672            DIRECTION       =SIMP(statut='f',typ='R',max=3),
13673            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13674            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13675          ),
13676          AMOR_MODAL      =FACT(statut='f',
13677            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
13678            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
13679            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13680            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13681          ),
13682          PROJ_MODAL      =FACT(statut='f',max='**',
13683            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
13684            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13685            regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
13686            MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
13687            RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
13688            AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
13689          ),
13690          EXCIT_GENE      =FACT(statut='f',max='**',
13691            FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
13692            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
13693          ),
13694          COMP_INCR       =C_COMP_INCR(),
13695          COMP_ELAS       =FACT(statut='f',max='**',
13696            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
13697                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
13698                                       "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
13699            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13700            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13701            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13702            ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13703            ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
13704            CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13705            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
13706       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
13707            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13708            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
13709            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13710            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
13711            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
13712            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
13713            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
13714                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
13715          ),
13716 #-------------------------------------------------------------------
13717          ETAT_INIT       =FACT(statut='f',
13718            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
13719                    EXCLUS('EVOL_NOLI','DEPL',),
13720                    EXCLUS('EVOL_NOLI','VITE'),
13721                    EXCLUS('EVOL_NOLI','ACCE'),
13722                    EXCLUS('EVOL_NOLI','SIGM',),
13723                    EXCLUS('EVOL_NOLI','VARI',),
13724                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
13725                    EXCLUS('NUME_ORDRE','INST'), ),
13726            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
13727            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
13728            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
13729            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
13730            VARI            =SIMP(statut='f',typ=cham_elem),
13731            VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
13732            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
13733            NUME_ORDRE      =SIMP(statut='f',typ='I'),
13734            INST            =SIMP(statut='f',typ='R'),
13735            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13736            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13737            NUME_DIDI       =SIMP(statut='f',typ='I'),
13738            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
13739          ),
13740 #-------------------------------------------------------------------
13741          INCREMENT       =FACT(statut='o',
13742            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
13743                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
13744            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
13745            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
13746                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
13747            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
13748            INST_INIT       =SIMP(statut='f',typ='R'),
13749            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
13750            INST_FIN        =SIMP(statut='f',typ='R'),
13751            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
13752            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
13753            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
13754               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
13755               defaut="AUCUNE",
13756               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
13757            ),
13758            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
13759              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
13760              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
13761                 fr="Coefficient multiplicateur de la 1ère subdivision"),
13762              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
13763                 fr="Nombre de subdivision d'un pas de temps"),
13764              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
13765                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
13766              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
13767                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
13768            ),
13769            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
13770              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
13771              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
13772                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
13773                 defaut="IGNORE_PREMIERES",
13774                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
13775              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
13776                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
13777              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
13778                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
13779              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
13780                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
13781              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
13782                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
13783              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
13784                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
13785              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
13786                 fr="% itération autorisée en plus"),
13787            ),
13788            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
13789            OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
13790            NOM_CHAM        =SIMP(statut='f',typ='TXM',),
13791            NOM_CMP         =SIMP(statut='f',typ='TXM',),
13792            VALE            =SIMP(statut='f',typ='R'),
13793          ),
13794 #-------------------------------------------------------------------
13795          DIFF_CENT       =FACT(statut='f',
13796          ),
13797          TCHAMWA         =FACT(statut='f',
13798            PHI             =SIMP(statut='f',typ='R',defaut= 1.05),
13799          ),
13800          STOP_CFL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13801          NEWTON          =FACT(statut='c',
13802            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
13803            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
13804            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
13805            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
13806            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
13807            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
13808          ),
13809          SOLVEUR         =FACT(statut='d',
13810            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
13811            b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13812              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13813            ),
13814            b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
13815              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13816            ),
13817            b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
13818                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13819              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
13820              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
13821            ),
13822            b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
13823              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13824              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
13825              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13826              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13827              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13828            ),
13829            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13830          ),
13831 #-------------------------------------------------------------------
13832          RECH_LINEAIRE   =FACT(statut='c',
13833            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
13834            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
13835            ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
13836            PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
13837            RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
13838            RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
13839            RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
13840          ),
13841          PILOTAGE        =FACT(statut='c',
13842            regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
13843            TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
13844            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
13845            ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
13846            ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
13847            ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
13848            ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
13849            PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13850            SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
13851            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13852            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
13853            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
13854            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
13855            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
13856            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
13857                          ),
13858          CONVERGENCE     =FACT(statut='d',
13859            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
13860            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
13861              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
13862                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),),
13863               SIGM_REFE       =SIMP(statut='f',typ='R'),
13864               EPSI_REFE       =SIMP(statut='f',typ='R'),
13865               FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
13866               FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
13867               FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
13868              ),
13869  
13870  
13871            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
13872            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
13873            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
13874            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
13875            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
13876            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
13877            RESI_INTE_RELA  =SIMP(statut='f',typ='R'
13878                                 ,defaut= 1.0E-6),
13879            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
13880            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
13881            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
13882                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
13883          ),
13884 #-------------------------------------------------------------------
13885         AFFICHAGE      = FACT(statut='f',max=16,
13886
13887             UNITE       = SIMP(statut='f',typ='I',val_min=1),
13888
13889             LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
13890             PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
13891             LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
13892
13893             NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
13894                                 into=("STANDARD","MINIMUM",
13895                                       "ITER_NEWT",
13896                                       "INCR_TPS",
13897                                       "RESI_RELA","RELA_NOEU",
13898                                       "RESI_MAXI","MAXI_NOEU",
13899                                       "RESI_REFE","REFE_NOEU",
13900                                       "RELI_ITER","RELI_COEF",
13901                                       "PILO_PARA",
13902                                       "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
13903                                       "MATR_ASSE",
13904                                       "ITER_DEBO",
13905                                       "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
13906                                       "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
13907                                       "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
13908                                      ),
13909                                ),
13910             b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
13911                     NOM_COLONNE == 'RESI_MAXI' or\
13912                     NOM_COLONNE == 'RESI_REFE' or\
13913                     NOM_COLONNE == 'CTCD_GEOM' or\
13914                     NOM_COLONNE == 'STANDARD' ",
13915                             INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
13916                           ),
13917          ),
13918 #-------------------------------------------------------------------
13919          ARCHIVAGE       =FACT(statut='f',
13920            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
13921                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
13922            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
13923            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
13924            PAS_ARCH        =SIMP(statut='f',typ='I' ),
13925            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
13926            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
13927            NUME_INIT       =SIMP(statut='f',typ='I'),
13928            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
13929            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
13930            into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
13931          ),
13932          OBSERVATION     =FACT(statut='f',max='**',
13933            regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
13934                    PRESENT_PRESENT('MAILLE','POINT'),),
13935            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
13936
13937 into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
13938            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
13939            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
13940            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
13941            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
13942            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13943            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13944            PAS_OBSE        =SIMP(statut='f',typ='I'),
13945            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13946            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13947            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13948            POINT           =SIMP(statut='f',typ='I' ,max='**'),
13949          ),
13950 #-------------------------------------------------------------------
13951            SOLV_NON_LOCAL  =FACT(statut='f',
13952              METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
13953              b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13954                RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13955              ),
13956              b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
13957                RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13958              ),
13959              b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
13960                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13961                NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
13962                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13963              ),
13964              b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
13965                PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13966                NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
13967                RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13968                NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13969              ),
13970            ),
13971            LAGR_NON_LOCAL  =FACT(statut='f',
13972              ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
13973              RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
13974              RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
13975              R               =SIMP(statut='f',typ='R',defaut= 1000.),
13976              ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
13977            ),
13978 #-------------------------------------------------------------------
13979          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
13980          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13981 )  ;
13982 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
13983 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13984 # ======================================================================
13985 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13986 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13987 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13988 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
13989 # (AT YOUR OPTION) ANY LATER VERSION.                                 
13990 #
13991 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13992 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13993 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13994 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13995 #
13996 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13997 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13998 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13999 # ======================================================================
14000 DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
14001                      fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées"
14002                         +" par superposition modale ou par sous structuration",
14003                      reentrant='f',
14004             UIinfo={"groupes":("Résolution",)},
14005       regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), 
14006               PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
14007          METHODE         =SIMP(statut='f',typ='TXM',defaut="EULER",
14008                                into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
14009          MASS_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
14010          RIGI_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
14011          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
14012          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
14013          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
14014          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ),
14015          MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,),
14016          
14017          ETAT_INIT       =FACT(statut='f',
14018            regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
14019                    EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
14020            RESU_GENE       =SIMP(statut='f',typ=tran_gene ),
14021            b_resu_gene     =BLOC(condition = "RESU_GENE != None",
14022              INST_INIT       =SIMP(statut='f',typ='R' ),
14023              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
14024              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
14025            ),
14026            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
14027            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
14028          ),
14029          INCREMENT       =FACT(statut='o',max='**',
14030            INST_INIT       =SIMP(statut='f',typ='R' ),
14031            INST_FIN        =SIMP(statut='o',typ='R' ),
14032            PAS             =SIMP(statut='f',typ='R' ),
14033            VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
14034            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
14035            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
14036            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
14037            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
14038            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
14039            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
14040          ),
14041          ARCHIVAGE       =FACT(statut='f',
14042            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
14043            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
14044            PAS_ARCH        =SIMP(statut='f',typ='I' ),
14045          ),
14046          
14047          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
14048          RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
14049          LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
14050          
14051          EXCIT           =FACT(statut='f',max='**',
14052            regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
14053                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
14054                    PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
14055                    PRESENT_ABSENT('NUME_ORDRE','VECT_GENE','COEF_MULT'),
14056                    EXCLUS('MULT_APPUI','CORR_STAT'),
14057                    PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
14058                    PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
14059            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene ),
14060            NUME_ORDRE      =SIMP(statut='f',typ='I' ),
14061            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14062            COEF_MULT       =SIMP(statut='f',typ='R' ),
14063            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14064            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14065            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14066            MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14067            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
14068            b_loca          =BLOC(condition= "DIRECTION != None",
14069              regles=(EXCLUS('NOEUD','GROUP_NO'),),
14070              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
14071              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
14072            ),
14073            CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14074            D_FONC_DT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14075            D_FONC_DT2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14076          ),
14077          CHOC            =FACT(statut='f',max='**',
14078            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ),
14079                    EXCLUS('NOEUD_2','GROUP_NO_2'),
14080                    PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'),
14081                    PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),),
14082            INTITULE        =SIMP(statut='f',typ='TXM' ),
14083            GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
14084            MAILLE          =SIMP(statut='f',typ=ma,max='**'),
14085            NOEUD_1         =SIMP(statut='f',typ=no),
14086            NOEUD_2         =SIMP(statut='f',typ=no),
14087            GROUP_NO_1      =SIMP(statut='f',typ=grno),
14088            GROUP_NO_2      =SIMP(statut='f',typ=grno),
14089            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
14090            ORIG_OBST       =SIMP(statut='f',typ='R',min=3,max=3),
14091            NORM_OBST       =SIMP(statut='o',typ='R',min=3,max=3),
14092            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
14093            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
14094            DIST_1          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
14095            DIST_2          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
14096            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
14097            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
14098            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
14099            RIGI_NOR        =SIMP(statut='f',typ='R' ),
14100            AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14101            RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14102            AMOR_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14103            COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14104
14105            LAME_FLUIDE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14106            b_lame          =BLOC(condition="LAME_FLUIDE=='OUI'",
14107                ALPHA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14108                BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14109                CHI             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14110                DELTA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14111            ),
14112          ),
14113          VERI_CHOC       =FACT(statut='f',max='**',
14114            STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
14115            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
14116          ),
14117          FLAMBAGE        =FACT(statut='f',max='**',
14118            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
14119                    EXCLUS('NOEUD_2','GROUP_NO_2'),),
14120            NOEUD_1         =SIMP(statut='f',typ=no),
14121            NOEUD_2         =SIMP(statut='f',typ=no),
14122            GROUP_NO_1      =SIMP(statut='f',typ=grno),
14123            GROUP_NO_2      =SIMP(statut='f',typ=grno),
14124            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
14125            ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
14126            NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
14127            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
14128            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
14129            DIST_1          =SIMP(statut='f',typ='R' ),
14130            DIST_2          =SIMP(statut='f',typ='R' ),
14131            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
14132            RIGI_NOR        =SIMP(statut='f',typ='R' ),
14133            FNOR_CRIT       =SIMP(statut='f',typ='R' ),
14134            FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
14135            RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
14136          ),
14137          ANTI_SISM       =FACT(statut='f',max='**',
14138            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
14139                    UN_PARMI('NOEUD_2','GROUP_NO_2'),),
14140            NOEUD_1         =SIMP(statut='f',typ=no),
14141            NOEUD_2         =SIMP(statut='f',typ=no),
14142            GROUP_NO_1      =SIMP(statut='f',typ=grno),
14143            GROUP_NO_2      =SIMP(statut='f',typ=grno),
14144            RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14145            RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14146            SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14147            C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14148            PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14149            DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
14150          ),
14151          RELA_EFFO_DEPL  =FACT(statut='f',max='**',
14152            NOEUD           =SIMP(statut='o',typ=no),
14153            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
14154            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
14155            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14156          ),
14157          RELA_TRANSIS    =FACT(statut='f',max='**',
14158            NOEUD           =SIMP(statut='o',typ=no),
14159            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
14160            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
14161            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14162          ),
14163          RELA_EFFO_VITE  =FACT(statut='f',max='**',
14164            NOEUD           =SIMP(statut='o',typ=no),
14165            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
14166            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
14167            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14168          ),
14169          b_itmi          =BLOC(condition = "METHODE=='ITMI'",
14170                 regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
14171                 BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
14172                 NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
14173                 ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14174                 PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
14175                 CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14176                 NB_MODE         =SIMP(statut='f',typ='I' ),
14177                 NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
14178                 NB_MODE_DIAG    =SIMP(statut='f',typ='I' ),
14179                 TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
14180          ),
14181          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
14182          IMPRESSION      =FACT(statut='f',max='**',
14183            regles=(EXCLUS('TOUT','NIVEAU'),),
14184            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14185            NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
14186            INST_INIT       =SIMP(statut='f',typ='R' ),
14187            INST_FIN        =SIMP(statut='f',typ='R' ),
14188          ),
14189          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14190  )  ;
14191 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14192 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14193 # ======================================================================
14194 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14195 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14196 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14197 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14198 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14199 #
14200 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14201 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14202 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14203 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14204 #
14205 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14206 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14207 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14208 # ======================================================================
14209 # RESPONSABLE VABHHTS J.PELLET
14210 ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
14211             UIinfo={"groupes":("Impression",)},
14212       fr="Engendre des tests pour la non régression du code (pour développeurs)",
14213       regles=(UN_PARMI('TOUT','CO'),),
14214          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
14215          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14216          CO              =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
14217          TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ),
14218          FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
14219          PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
14220 )  ;
14221 #& MODIF COMMANDE  DATE 29/08/2006   AUTEUR MCOURTOI M.COURTOIS 
14222 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14223 # ======================================================================
14224 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14225 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14226 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14227 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14228 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14229 #
14230 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14231 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14232 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14233 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14234 #
14235 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14236 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14237 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14238 # ======================================================================
14239
14240 from Macro.exec_logiciel_ops import exec_logiciel_ops
14241 def exec_logiciel_prod(self, MAILLAGE, **args):
14242    if MAILLAGE != None:
14243       mcf = MAILLAGE[0]
14244       self.type_sdprod(mcf['MAILLAGE'], maillage_sdaster)
14245    return None
14246
14247 EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL",op=exec_logiciel_ops, sd_prod=exec_logiciel_prod,
14248                       fr="Exécute un logiciel ou une commande système depuis Aster",
14249                       UIinfo={"groupes":("Outils métier",)},
14250       
14251       regles = (AU_MOINS_UN('LOGICIEL', 'MAILLAGE'),),
14252       
14253       LOGICIEL = SIMP(statut='f', typ='TXM'),
14254       ARGUMENT = SIMP(statut='f', max='**', typ='TXM'),
14255
14256       MAILLAGE = FACT(statut='f',
14257          FORMAT     = SIMP(statut='o', typ='TXM', into=("GMSH", "GIBI", "SALOME")),
14258          UNITE_GEOM = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=16,
14259                            fr="Unité logique définissant le fichier (fort.N) contenant les données géométriques (datg)"),
14260          UNITE      = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=19,
14261                            fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"),
14262          MAILLAGE   = SIMP(statut='o', typ=CO),
14263       ),
14264
14265       CODE_RETOUR_MAXI = SIMP(statut='f', typ='I', defaut=0, val_min=-1,
14266                               fr="Valeur maximale du code retour toléré (-1 pour l'ignorer)"),
14267       
14268       INFO     = SIMP(statut='f', typ='I', defaut=2, into=(1,2),),
14269 )
14270 #& MODIF COMMANDE  DATE 14/10/2005   AUTEUR CIBHHLV L.VIVAN 
14271 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14272 # ======================================================================
14273 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14274 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14275 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14276 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14277 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14278 #
14279 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14280 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14281 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14282 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14283 #
14284 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14285 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14286 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14287 # ======================================================================
14288 def extr_mode_prod(FILTRE_MODE,**args):
14289   vale=FILTRE_MODE[0]['MODE']
14290   if AsType(vale) == mode_meca   : return mode_meca
14291   if AsType(vale) == mode_meca_c : return mode_meca_c
14292   if AsType(vale) == mode_gene   : return mode_gene
14293   raise AsException("type de concept resultat non prevu")
14294
14295 EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
14296                reentrant='n',fr="Extraire séléctivement des modes des structures de données modales",
14297             UIinfo={"groupes":("Résolution",)},
14298          FILTRE_MODE     =FACT(statut='o',max='**',
14299            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
14300            MODE            =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ),
14301            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14302            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14303            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14304            NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14305            FREQ_MIN        =SIMP(statut='f',typ='R' ),
14306            CRIT_EXTR       =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ),
14307            b_freq_min      =BLOC(condition = "FREQ_MIN != None",  
14308              FREQ_MAX        =SIMP(statut='o',typ='R' ),
14309              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
14310            ),
14311            b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
14312              regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),),
14313              SEUIL           =SIMP(statut='f',typ='R'),
14314              SEUIL_X         =SIMP(statut='f',typ='R'),
14315              SEUIL_Y         =SIMP(statut='f',typ='R'),
14316              SEUIL_Z         =SIMP(statut='f',typ='R'),
14317            ),    
14318          ),
14319          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14320          IMPRESSION      =FACT(statut='f',
14321            CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14322            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
14323          ),
14324 )  ;
14325 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR VABHHTS J.PELLET 
14326 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14327 # ======================================================================
14328 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14329 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14330 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14331 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14332 # (AT YOUR OPTION) ANY LATER VERSION.
14333 #
14334 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14335 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14336 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14337 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14338 #
14339 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14340 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14341 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14342 # ======================================================================
14343 def extr_resu_prod(RESULTAT,**args):
14344   if AsType(RESULTAT) == evol_elas    : return evol_elas
14345   if AsType(RESULTAT) == evol_noli    : return evol_noli
14346   if AsType(RESULTAT) == evol_ther    : return evol_ther
14347   if AsType(RESULTAT) == dyna_trans   : return dyna_trans
14348   if AsType(RESULTAT) == dyna_harmo   : return dyna_harmo
14349   if AsType(RESULTAT) == acou_harmo   : return acou_harmo
14350   if AsType(RESULTAT) == mode_meca    : return mode_meca
14351   if AsType(RESULTAT) == mode_acou    : return mode_acou
14352   if AsType(RESULTAT) == mode_stat_depl :    return mode_stat_depl
14353   if AsType(RESULTAT) == mode_stat_acce :    return mode_stat_acce
14354   if AsType(RESULTAT) == mode_stat_forc :    return mode_stat_forc
14355   if AsType(RESULTAT) == mult_elas    : return mult_elas
14356   if AsType(RESULTAT) == fourier_elas : return fourier_elas
14357   raise AsException("type de concept resultat non prevu")
14358
14359 EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
14360             UIinfo={"groupes":("Résultats et champs",)},
14361             fr="Extraire des champs au sein d'une SD Résultat",
14362          regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
14363                  DERIVABLE('RESULTAT'),),
14364          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
14365                                                mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli,
14366                                                mult_elas,fourier_elas,fourier_ther ) ),
14367
14368          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
14369                                    fr="Liste des paramètres de sensibilité.",
14370                                    ang="List of sensitivity parameters"),
14371
14372          ARCHIVAGE       =FACT(statut='f',
14373            regles=(  UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE',
14374                         'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE',
14375                         'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ),
14376                      EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ),   ),
14377            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
14378            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
14379            PRECISION       =SIMP(statut='f',typ='R',defaut=1.E-3 ),
14380            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"),
14381            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
14382            PAS_ARCH        =SIMP(statut='f',typ='I'),
14383            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14384            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
14385            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14386            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
14387            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14388            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
14389            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14390            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
14391            NOM_CAS         =SIMP(statut='f',typ='TXM'),
14392                                ),
14393
14394          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
14395 )  ;
14396 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14397 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14398 # ======================================================================
14399 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
14400 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14401 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14402 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14403 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14404 #                                                                       
14405 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14406 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14407 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14408 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14409 #                                                                       
14410 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14411 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14412 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14413 # ======================================================================
14414 def extr_table_prod(TYPE_RESU,**args):
14415   if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r
14416   raise AsException("type de concept resultat non prevu")
14417
14418 EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n',
14419             UIinfo={"groupes":("Résultats et champs",)},
14420          fr="Extraire d'une table la matrice de masse généralisée assemblée",
14421          TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ),
14422
14423          TABLE           =SIMP(statut='o',typ=table_sdaster),
14424
14425          NOM_PARA        =SIMP(statut='o',typ='TXM'),
14426
14427          FILTRE          =FACT(statut='f',min=1,max='**',
14428            NOM_PARA        =SIMP(statut='o',typ='TXM'),
14429            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
14430                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
14431                                        "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
14432            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
14433               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
14434               VALE            =SIMP(statut='f',typ='R'),
14435               VALE_I          =SIMP(statut='f',typ='I'),
14436               VALE_C          =SIMP(statut='f',typ='C'),
14437               VALE_K          =SIMP(statut='f',typ='TXM'),),
14438
14439            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
14440            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
14441          ),
14442
14443          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
14444 )  ;
14445 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14446 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14447 # ======================================================================
14448 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14449 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14450 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14451 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14452 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14453 #
14454 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14455 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14456 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14457 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14458 #
14459 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14460 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14461 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14462 # ======================================================================
14463 def fact_grad_prod(MATR_ASSE,**args):
14464   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
14465   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
14466   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
14467   raise AsException("type de concept resultat non prevu")
14468
14469 FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,
14470             UIinfo={"groupes":("Résolution",)},
14471                fr="Construire une matrice de préconditionnement pour une résolution par gradient conjugué",
14472                reentrant='n',
14473          MATR_ASSE       =SIMP(statut='o',
14474                                typ=(matr_asse_depl_r,matr_asse_temp_r,
14475                                     matr_asse_pres_r) ),
14476          PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
14477          NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),  
14478          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
14479 )  ;
14480 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14481 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14482 # ======================================================================
14483 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14484 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14485 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14486 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14487 # (AT YOUR OPTION) ANY LATER VERSION.
14488 #
14489 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14490 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14491 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14492 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14493 #
14494 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14495 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14496 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14497 # ======================================================================
14498 # RESPONSABLE VABHHTS J.PELLET
14499 def fact_ldlt_prod(MATR_ASSE,**args):
14500   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
14501   if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
14502   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
14503   if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
14504   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
14505   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
14506   raise AsException("type de concept resultat non prevu")
14507
14508 FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,
14509                fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires",
14510                reentrant='f',
14511             UIinfo={"groupes":("Résolution",)},
14512          regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
14513                  EXCLUS('BLOC_FIN','DDL_FIN'),),
14514          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
14515                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
14516          STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
14517          NPREC           =SIMP(statut='f',typ='I',defaut=8,val_min=0,),
14518          PRE_COND        =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
14519          BLOC_DEBUT      =SIMP(statut='f',typ='I',val_min=1,),
14520          DDL_DEBUT       =SIMP(statut='f',typ='I',val_min=1,),
14521          BLOC_FIN        =SIMP(statut='f',typ='I',val_min=1,),
14522          DDL_FIN         =SIMP(statut='f',typ='I',val_min=1,),
14523 #
14524          EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14525
14526 #        mots clés pour solveur MUMPS :
14527          TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
14528          PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
14529
14530          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14531          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
14532 )  ;
14533 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14534 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14535 # ======================================================================
14536 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14537 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14538 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14539 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14540 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14541 #
14542 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14543 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14544 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14545 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14546 #
14547 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14548 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14549 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14550 # ======================================================================
14551 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE",
14552             UIinfo={"groupes":("Gestion du travail",)},
14553          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
14554                                typ='TXM',defaut="NON",into=("OUI","NON",) ), 
14555          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
14556                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
14557          PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
14558                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
14559          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
14560                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
14561          UNITE           =SIMP(statut='f',typ='I',defaut=6),  
14562 )  ;
14563 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14564 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14565 # ======================================================================
14566 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14567 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14568 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14569 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14570 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14571 #
14572 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14573 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14574 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14575 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14576 #
14577 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14578 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14579 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14580 # ======================================================================
14581 FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster,
14582                     reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne",
14583             UIinfo={"groupes":("Fonction",)},
14584          TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
14585 )  ;
14586 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14587 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14588 # ======================================================================
14589 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14590 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14591 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14592 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14593 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14594 #
14595 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14596 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14597 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14598 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14599 #
14600 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14601 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14602 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14603 # ======================================================================
14604 def form_pyth_ops(self,d):
14605   import types,string
14606   NOM_PARA=self.etape['NOM_PARA']
14607   VALE    =self.etape['VALE']
14608   if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,]
14609   if self.sd==None : return
14610   texte=string.join(VALE.splitlines())
14611
14612   self.sd.setFormule(NOM_PARA,string.strip(texte))
14613
14614 FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5,
14615              sd_prod=formule,UIinfo={"groupes":("Fonction",)},
14616              fr="Définit une formule réelle à partir de son expression mathématique",
14617          VALE     =SIMP(statut='f',typ='TXM'),
14618          NOM_PARA =SIMP(statut='o',typ='TXM',max='**'),
14619 );
14620 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
14621 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14622 # ======================================================================
14623 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14624 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14625 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14626 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14627 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14628 #
14629 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14630 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14631 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14632 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14633 #
14634 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14635 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14636 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14637 # ======================================================================
14638 # RESPONSABLE CAMBIER S.CAMBIER
14639 GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction,
14640                     fr="Génération de la fonction temporelle à partir d une matrice interspectrale",
14641                     reentrant='n',
14642             UIinfo={"groupes":("Fonction",)},
14643          INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
14644          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
14645          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
14646          b_interpol_oui    =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee",
14647            DUREE_TIRAGE    =SIMP(statut='f',typ='R' ),
14648            FREQ_INIT       =SIMP(statut='f',typ='R' ),
14649            FREQ_FIN        =SIMP(statut='f',typ='R' ),
14650              ),
14651          NB_POIN         =SIMP(statut='f',typ='I'),
14652          NB_TIRAGE       =SIMP(statut='f',typ='I',defaut= 1 ),
14653          INIT_ALEA       =SIMP(statut='f',typ='I'),
14654          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
14655          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14656 )  ;
14657 #& MODIF COMMANDE  DATE 11/07/2005   AUTEUR CAMBIER S.CAMBIER 
14658 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14659 # ======================================================================
14660 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
14661 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14662 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14663 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14664 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14665 #                                                                       
14666 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14667 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14668 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14669 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14670 #                                                                       
14671 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14672 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14673 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14674 # ======================================================================
14675 # RESPONSABLE CAMBIER S.CAMBIER
14676 def gene_matr_alea_prod(MATR_MOYEN,**args ):
14677   if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
14678   if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
14679   raise AsException("type de concept resultat non prevu")
14680
14681 GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
14682 #sd_prod=matr_asse_gene_r,
14683 sd_prod=gene_matr_alea_prod,
14684                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",
14685                reentrant='n',
14686             UIinfo={"groupes":("Matrice",)},
14687    MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
14688
14689 #    cas matrice generalisee 
14690    b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
14691            COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
14692                                 fr="coefficient de variation de la matrice a generer" ),
14693            ),
14694 #    cas macr_elem_dyna 
14695    b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
14696            fr="cas macr_elem_dyna (sous-structuratio)",
14697            COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
14698                                 fr="coefficient de variation de la matrice de raideur" ),
14699            COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
14700                                 fr="coefficient de variation de la matrice de masse" ),
14701            COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
14702                                 fr="coefficient de variation de la matrice d'amortissement" ),),
14703
14704    INIT_ALEA    =SIMP(statut='f',typ='I'),
14705 ) ;
14706    
14707 #& MODIF COMMANDE  DATE 28/02/2006   AUTEUR VABHHTS J.PELLET 
14708 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14709 # ======================================================================
14710 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
14711 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14712 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14713 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14714 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14715 #                                                                       
14716 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14717 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14718 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14719 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14720 #                                                                       
14721 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14722 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14723 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14724 # ======================================================================
14725 # RESPONSABLE CAMBIER S.CAMBIER
14726 from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init
14727 GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA",
14728                op_init=gene_vari_alea_init,op=gene_vari_alea_ops,
14729                sd_prod=reel,reentrant='n',
14730                fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)",
14731                UIinfo={"groupes":("Fonction",)},
14732    TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
14733    b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
14734            VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
14735            BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
14736            COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
14737              ),
14738    b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
14739            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
14740            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
14741              ),
14742    b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
14743            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
14744            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
14745            BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
14746            COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1,val_min=0.),
14747              ),
14748    INIT_ALEA       =SIMP(statut='f',typ='I'),
14749 )
14750 #& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
14751 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14752 # ======================================================================
14753 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14754 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14755 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14756 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14757 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14758 #
14759 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14760 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14761 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14762 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14763 #
14764 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14765 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14766 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14767 # ======================================================================
14768 IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
14769                  fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl",
14770                  UIinfo={"groupes":("Fonction",)},
14771          UNITE           =SIMP(statut='f',typ='I',defaut=30),  
14772          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
14773          VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
14774          CHARGE          =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ),
14775 )  ;
14776 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
14777 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14778 # ======================================================================
14779 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14780 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14781 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14782 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14783 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14784 #
14785 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14786 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14787 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14788 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14789 #
14790 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14791 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14792 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14793 # ======================================================================
14794 IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,
14795             UIinfo={"groupes":("Fonction",)},fr="Ecrit le résultat d'une analyse modale au format du code CLASSI",
14796          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
14797                         'LIST_ORDRE' ),),
14798          UNITE_CLASSI    =SIMP(statut='o',typ='I' ),
14799          MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
14800          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14801          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14802          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
14803          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14804          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14805          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
14806          b_prec_crit     =BLOC(condition = "LIST_FREQ != None or FREQ != None",
14807              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
14808              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
14809                                    into=("RELATIF","ABSOLU") ),
14810          ),
14811          IMPRESSION      =FACT(statut='f',max='**',
14812            regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
14813            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
14814            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
14815            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
14816          ),
14817          AMOR            =SIMP(statut='o',typ='R',max='**'),
14818 )  ;
14819 #& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
14820 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14821 # ======================================================================
14822 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14823 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14824 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14825 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14826 # (AT YOUR OPTION) ANY LATER VERSION.
14827 #
14828 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14829 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14830 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14831 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14832 #
14833 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14834 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14835 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14836 # ======================================================================
14837 # RESPONSABLE VABHHTS J.PELLET
14838 IMPR_CO=PROC(nom="IMPR_CO",op=17,
14839             UIinfo={"groupes":("Impression",)},
14840              fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)",
14841          regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),),
14842
14843          UNITE           =SIMP(statut='f',typ='I',defaut=8),
14844          NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ),
14845          ATTRIBUT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
14846          CONTENU         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
14847          BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ),
14848          CONCEPT    =FACT(statut='f',max='**',
14849              regles=(DERIVABLE('NOM'),),
14850              NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
14851              SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
14852                                  fr="Paramètre de sensibilité.",
14853                                  ang="Sensitivity parameter",max='**'),),        
14854          CHAINE          =SIMP(statut='f',typ='TXM'),
14855          POSITION        =SIMP(statut='f',typ='I',defaut=1),
14856          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14857 )  ;
14858 #& MODIF COMMANDE  DATE 09/05/2007   AUTEUR SALMONA L.SALMONA 
14859 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14860 # ======================================================================
14861 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
14862 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14863 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14864 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14865 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14866 #                                                                       
14867 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14868 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14869 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14870 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14871 #                                                                       
14872 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14873 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14874 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14875 # ======================================================================
14876 # RESPONSABLE MCOURTOI M.COURTOIS
14877 from Macro.impr_fonction_ops import impr_fonction_ops
14878
14879 IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
14880                  fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe",
14881             UIinfo={"groupes":("Fonction",)},
14882          FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
14883                                into=("TABLEAU","AGRAF","XMGRACE",),),
14884          b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
14885                         fr="Mots-clés propres à XMGRACE",
14886            PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
14887                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
14888                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
14889            UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
14890                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
14891          ),
14892          b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
14893                         fr="Mots-clés propres à AGRAF",
14894            UNITE           =SIMP(statut='o',typ='I',defaut=25,
14895                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
14896            UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
14897                                  fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
14898          ),
14899          # unite pour TABLEAU dans le bloc de mise en forme spécifique
14900
14901          COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
14902            regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
14903            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
14904                                  fr="Fonction réelle ou complexe", ),
14905            LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
14906                                  fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
14907            FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
14908                                  fr="Fonction abscisses d'une fonction paramétrique",),
14909            ABSCISSE        =SIMP(statut='f',typ='R',max='**',
14910                                  fr="Valeurs des abscisses", ),
14911            b_fonction      =BLOC(condition = "FONCTION != None",
14912              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
14913            ),
14914            b_fonction_c  =BLOC(condition = "AsType(FONCTION) == fonction_c",
14915                                  fr="Fonction complexe définie par le mot-clé fonction",
14916              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
14917            ),
14918            b_list_resu     =BLOC(condition = "LIST_RESU != None",
14919              LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
14920            ),
14921            b_fonc_x        =BLOC(condition = "FONC_X != None",
14922              FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
14923              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
14924            ),
14925            b_vale_resu     =BLOC(condition = "ABSCISSE != None",
14926              ORDONNEE      =SIMP(statut='o',typ='R',max='**',
14927                                  fr="Valeurs des ordonnées"),
14928            ),
14929
14930            # mots-clés utilisant uniquement aux formats autres que TABLEAU
14931            # mais ce serait trop pénible de devoir les supprimer quand on change de format
14932            # donc on ne les met pas dans un bloc
14933            # "pseudo" bloc mise en forme :
14934
14935               LEGENDE         =SIMP(statut='f',typ='TXM',
14936                                     fr="Légende associée à la fonction" ),
14937               STYLE           =SIMP(statut='f',typ='I',val_min=0,
14938                                     fr="Style de la ligne représentant la fonction",),
14939               COULEUR         =SIMP(statut='f',typ='I',val_min=0,
14940                                     fr="Couleur associée à la fonction",),
14941               MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
14942                                     fr="Type du marqueur associé à la fonction",),
14943               FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
14944                                     fr="Fréquence d impression du marqueur associé à la fonction", ),
14945            # fin bloc mise en forme
14946
14947            TRI             =SIMP(statut='f',typ='TXM',defaut="N",
14948                                  fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
14949                                  into=("N","X","Y","XY","YX") ),
14950          ),
14951          # Mise en page du tableau ou du graphique
14952          b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
14953                           fr="Mots-clés propres au format Tableau",
14954            UNITE           =SIMP(statut='o',typ='I',defaut=8,
14955                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
14956            TITRE           =SIMP(statut='f',typ='TXM',
14957                                  fr="Titre associé au graphique" ),
14958            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
14959                                  fr="Sous-titre du graphique" ),
14960            SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
14961                                  fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
14962            COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
14963                                  fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
14964            DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
14965                                  fr="Caractère de debut de ligne"),
14966            FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
14967                                  fr="Caractère de fin de ligne"),
14968          ),
14969          b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
14970                         fr="Mise en page du graphique",
14971            TITRE           =SIMP(statut='f',typ='TXM',
14972                                  fr="Titre associé au graphique" ),
14973            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
14974                                  fr="Sous-titre du graphique" ),
14975            BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
14976                                  fr="Intervalles de variation des abscisses"),
14977            BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
14978                                  fr="Intervalles de variation des ordonnées"),
14979            ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
14980                                  fr="Type d'échelle pour les abscisses" ),
14981            ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
14982                                  fr="Type d'échelle pour les ordonnées" ),
14983            GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
14984                                  fr="Pas du quadrillage vertical" ),
14985            GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
14986                                  fr="Pas du quadrillage horizontal" ),
14987            LEGENDE_X       =SIMP(statut='f',typ='TXM',
14988                                  fr="Légende associée à l'axe des abscisses" ),
14989            LEGENDE_Y       =SIMP(statut='f',typ='TXM',
14990                                  fr="Légende associée à l'axe des ordonnées" ),
14991          ),
14992          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
14993 )  ;
14994 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
14995 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14996 # ======================================================================
14997 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14998 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14999 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15000 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15001 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15002 #
15003 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15004 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15005 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15006 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15007 #
15008 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15009 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15010 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15011 # ======================================================================
15012 IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
15013             fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT",
15014             UIinfo={"groupes":("Impression",)},
15015          FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
15016          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
15017          GENE            =FACT(statut='o',max='**',
15018            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
15019                           'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
15020                    EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
15021                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
15022                    EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
15023                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
15024                    EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
15025                    EXCLUS('TOUT_CHAM','NOM_CHAM'),
15026                    EXCLUS('TOUT_PARA','NOM_PARA'),),
15027 #  faut-il faire des blocs selon le type de RESU_GENE                   
15028            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
15029            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15030            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
15031            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
15032            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15033            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
15034            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15035            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15036            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
15037            TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15038            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
15039            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
15040            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
15041                                    into=("RELATIF","ABSOLU") ),
15042            TOUT_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15043            NUME_CMP_GENE   =SIMP(statut='f',typ='I',max='**'),
15044            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15045            NOM_CHAM        =SIMP(statut='f',typ='TXM',max='**'),
15046            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15047            NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
15048            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
15049            INFO_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15050            INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15051          ),
15052 )  ;
15053 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
15054 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15055 # ======================================================================
15056 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15057 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15058 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15059 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15060 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15061 #
15062 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15063 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15064 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15065 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15066 #
15067 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15068 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15069 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15070 # ======================================================================
15071 IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
15072             UIinfo={"groupes":("Impression",)},
15073                  fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)",
15074          ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
15075                                into=("DISQUE","MEMOIRE","REPERTOIRE",    
15076                                      "OBJET","ATTRIBUT","SYSTEME") ),
15077          b_objet      =BLOC(condition = "(ENTITE=='OBJET')",
15078             NOMOBJ          =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),  
15079             NUMOC           =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),  
15080             NOMOC           =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),  
15081          ),
15082          b_attribut   =BLOC(condition = "(ENTITE=='ATTRIBUT')",
15083             NOMOBJ          =SIMP(fr="nom de collection",statut='f',typ='TXM' ),  
15084             NOMATR          =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
15085                                   into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
15086                                       '$$LONO','$$LUTI','$$NUM') ),
15087          ),
15088          b_systeme    =BLOC(condition = "(ENTITE=='SYSTEME')",
15089             CLASSE          =SIMP(statut='o',typ='TXM',into=('G','V','L') ),  
15090             NOMATR          =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',   
15091                                   into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ',
15092                                       '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
15093                                       '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
15094                                       '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ),
15095          ),
15096          b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')",
15097             CLASSE          =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '),  
15098          ),
15099          b_disque     =BLOC(condition = "(ENTITE=='DISQUE')",
15100             CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '),  
15101          ),
15102          IMPRESSION      =FACT(statut='f',
15103            NOM             =SIMP(statut='f',typ='TXM' ),  
15104            UNITE           =SIMP(statut='f',typ='I'),  
15105          ),
15106          COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
15107 )  ;
15108 #& MODIF COMMANDE  DATE 06/06/2007   AUTEUR SALMONA L.SALMONA 
15109 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15110 # ======================================================================
15111 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15112 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15113 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15114 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15115 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15116 #
15117 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15118 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15119 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15120 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15121 #
15122 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15123 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15124 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15125 # ======================================================================
15126 IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
15127                     UIinfo={"groupes":("Impression",)},
15128          fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO",
15129          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
15130          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
15131                                into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ),
15132
15133          b_plexus         =BLOC(condition = "FORMAT == 'IDEAS'",
15134            UNITE           =SIMP(statut='f',typ='I',defaut=30),
15135            VERSION          =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
15136          ),             
15137
15138          b_ideas         =BLOC(condition = "FORMAT == 'PLEXUS'",
15139            UNITE           =SIMP(statut='f',typ='I',defaut=30),
15140            VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
15141          ),                      
15142
15143          b_miss_3d       =BLOC(condition = "FORMAT == 'MISS_3D'",
15144            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
15145            UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
15146            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
15147            AMOR_REDUIT     =SIMP(statut='f',typ='R'  ,max='**'),
15148            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
15149            GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'),
15150            GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'),
15151            GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'),
15152            GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
15153            FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ),
15154            IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15155            IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15156          ),
15157
15158          b_cadyro        =BLOC(condition = "FORMAT == 'CADYRO'",
15159            SQUELETTE       =SIMP(statut='f',typ=squelette ),
15160            UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
15161            UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
15162            UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 28 ),
15163            IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15164            IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15165          ),
15166
15167 )  ;
15168 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
15169 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15170 # ======================================================================
15171 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15172 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15173 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15174 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15175 # (AT YOUR OPTION) ANY LATER VERSION.
15176 #
15177 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15178 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15179 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15180 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15181 #
15182 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15183 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15184 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15185 # ======================================================================
15186 IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
15187                   fr="Imprimer sur un fichier au format IDEAS ou RESULTAT des matrices élémentaires et assemblées",
15188                   UIinfo={"groupes":("Impression",)},
15189                   regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
15190 # ======================================================================
15191    MATR_ELEM       =FACT(statut='f',max='**',
15192 #
15193            MATRICE     =SIMP(statut='o',typ=(matr_elem, vect_elem)),
15194            FORMAT      =SIMP(statut='f',typ='TXM',defaut="IDEAS",
15195                                  into=("IDEAS","RESULTAT") ),
15196 #
15197          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
15198            UNITE       =SIMP(statut='f',typ='I',defaut=30),  
15199            VERSION     =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ),  ),
15200 #
15201          b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
15202                              regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
15203            UNITE       =SIMP(statut='f',typ='I',defaut=8),
15204            TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15205            NOEUD       =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
15206            GROUP_NO    =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
15207            MAILLE      =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
15208            GROUP_MA    =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
15209            NOM_CMP     =SIMP(statut='f',typ='TXM',max='**'),
15210            GRAIN       =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD","MAILLE") ),
15211            NB_CHIFFRE  =SIMP(statut='f',typ='I',defaut= 4 ),  ),
15212          ),
15213 # ======================================================================
15214    MATR_ASSE       =FACT(statut='f',max='**',
15215 #
15216            MATRICE     =SIMP(statut='o',typ=matr_asse_gd),
15217            FORMAT      =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","RESULTAT") ),
15218
15219          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
15220            UNITE       =SIMP(statut='f',typ='I',defaut=30),  
15221            VERSION     =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ),  ),
15222
15223          b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
15224                              regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
15225            UNITE       =SIMP(statut='f',typ='I',defaut=8),
15226            TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15227            NOEUD       =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
15228            GROUP_NO    =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
15229            MAILLE      =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
15230            GROUP_MA    =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
15231            OPTION      =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE",into=("SOUS_MATRICE","LIGNE","COLONNE") ),
15232            NOM_CMP     =SIMP(statut='f',typ='TXM',max='**'),
15233            GRAIN       =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD") ),
15234            NB_CHIFFRE  =SIMP(statut='f',typ='I',defaut= 4 ),
15235            VALE_ZERO   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  ),
15236          ),
15237 # ======================================================================
15238 )  ;
15239 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
15240 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15241 # ======================================================================
15242 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15243 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15244 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15245 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15246 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15247 #
15248 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15249 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15250 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15251 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15252 #
15253 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15254 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15255 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15256 # ======================================================================
15257 IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
15258             UIinfo={"groupes":("Impression",)},
15259          fr="Impression des données d'entrée pour une étude sismique avec MISS3D",
15260          regles=(UN_PARMI('INST_INIT','FREQ_INIT'),
15261                  PRESENT_PRESENT('INST_INIT','INST_FIN'),
15262                  PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),),
15263          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
15264          EXCIT           =FACT(statut='f',max='**',
15265            regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
15266            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
15267            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15268            COEF_MULT       =SIMP(statut='f',typ='R' ),
15269          ),
15270          EXCIT_SOL       =FACT(statut='f',max='**',
15271            DIRECTION       =SIMP(statut='o',typ='R',min=3,max=3),
15272            FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15273            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",
15274                                  into=("DEPL","VITE","ACCE","FORC",) ),
15275          ),
15276          INST_INIT       =SIMP(statut='f',typ='R' ),
15277          INST_FIN        =SIMP(statut='f',typ='R' ),
15278          FREQ_INIT       =SIMP(statut='f',typ='R' ),
15279          FREQ_FIN        =SIMP(statut='f',typ='R' ),
15280          PAS             =SIMP(statut='o',typ='R' ),
15281          UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
15282          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
15283          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15284 )  ;
15285 #& MODIF COMMANDE  DATE 07/11/2006   AUTEUR DURAND C.DURAND 
15286 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15287 # ======================================================================
15288 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
15289 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
15290 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
15291 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
15292 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
15293 #                                                                       
15294 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
15295 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
15296 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
15297 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15298 #                                                                       
15299 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
15300 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
15301 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
15302 # ======================================================================
15303 # RESPONSABLE thomasso D.THOMASSON
15304 #
15305 from Macro.impr_oar_ops import impr_oar_ops
15306 IMPR_OAR =MACRO(nom="IMPR_OAR",op= impr_oar_ops, sd_prod=None,
15307                fr="Impression au format OAR",
15308                UIinfo={"groupes":("Impression",)},
15309    TYPE_CALC = SIMP(statut='o', typ='TXM',into=('COMPOSANT', 'MEF', 'TUYAUTERIE')),
15310    b_composant =BLOC(condition = "TYPE_CALC == 'COMPOSANT' ",
15311       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
15312       DIAMETRE = SIMP(statut='o', typ='R'),
15313       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
15314       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
15315       ANGLE_C  = SIMP(statut='o', typ='R',   defaut=0.0),
15316       REVET    = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
15317       RESU_MECA = FACT(statut='f', max='**',
15318          NUM_CHAR  = SIMP(statut='o', typ='I'),
15319          TYPE      = SIMP(statut='o', typ='TXM', defaut='FX', into=('FX', 'FY', 'FZ', 'MX', 'MY', 'MZ', 'PRE')),
15320          TABLE     = SIMP(statut='o', typ=table_sdaster),
15321          TABLE_S   = SIMP(statut='f', typ=table_sdaster)),
15322       RESU_THER = FACT(statut='f', max='**',
15323          NUM_TRAN  = SIMP(statut='o', typ='I'),
15324          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
15325          TABLE_TEMP= SIMP(statut='o', typ=table_sdaster),
15326          TABLE_S   = SIMP(statut='f', typ=table_sdaster),
15327          TABLE_ST  = SIMP(statut='f', typ=table_sdaster)),
15328          ),
15329    b_mef = BLOC(condition = "TYPE_CALC == 'MEF' ",
15330       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
15331       DIAMETRE = SIMP(statut='o', typ='R'),
15332       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
15333       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
15334       RESU_MECA = FACT(statut='f', max='**',
15335          AZI       = SIMP(statut='o', typ='R'),
15336          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
15337          TABLE_F   = SIMP(statut='o', typ=table_sdaster),
15338          TABLE_P   = SIMP(statut='o', typ=table_sdaster),
15339          TABLE_CA  = SIMP(statut='o', typ=table_sdaster)),
15340       RESU_THER=FACT(statut='f', max='**',
15341          AZI       = SIMP(statut='o', typ='R'),
15342          NUM_CHAR  = SIMP(statut='o', typ='I'),
15343          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
15344          TABLE_TI  = SIMP(statut='o', typ=table_sdaster)),
15345       ),
15346    b_tuyauterie = BLOC(condition = "TYPE_CALC == 'TUYAUTERIE' ",
15347       RESU_MECA = FACT(statut='o', max='**',
15348          NUM_CHAR  = SIMP(statut='o', typ='I'),
15349          TABLE     = SIMP(statut='o', typ=table_sdaster),
15350          MAILLAGE  = SIMP(statut='o', typ=maillage_sdaster)),
15351          ),
15352    UNITE = SIMP(statut='f',typ='I',defaut=38),
15353    AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
15354    );
15355 #& MODIF COMMANDE  DATE 09/05/2007   AUTEUR SALMONA L.SALMONA 
15356 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15357 # ======================================================================
15358 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15359 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15360 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15361 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15362 # (AT YOUR OPTION) ANY LATER VERSION.
15363 #
15364 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15365 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15366 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15367 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15368 #
15369 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15370 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15371 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15372 # ======================================================================
15373 IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
15374             UIinfo={"groupes":("Impression",)},
15375                fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)",
15376          MODELE          =SIMP(statut='f',typ=modele_sdaster),
15377
15378          FORMAT          =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT",
15379                                  into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
15380
15381          b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
15382            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
15383          ),
15384
15385          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
15386            UNITE           =SIMP(statut='f',typ='I',defaut=30),  
15387            VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
15388          ),
15389
15390          b_format_aster  =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER",
15391            UNITE           =SIMP(statut='f',typ='I',defaut=26),  
15392          ),
15393
15394          b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM",
15395            UNITE           =SIMP(statut='f',typ='I',defaut=37),  
15396            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
15397          ),
15398
15399          b_format_ensight  =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT",
15400            UNITE           =SIMP(statut='f',typ='I',defaut=31),  
15401          ),
15402
15403          b_format_med  =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED",
15404            UNITE           =SIMP(statut='f',typ='I',defaut=80),  
15405          ),
15406
15407          b_format_gmsh  =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH",
15408            UNITE           =SIMP(statut='f',typ='I',defaut=37),  
15409            VERSION         =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)),
15410          ),
15411
15412          RESU            =FACT(statut='o',max='**',
15413
15414            regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
15415                    EXCLUS('CHAM_GD','RESULTAT'),),
15416            MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster,squelette)),
15417            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
15418            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!!
15419
15420            b_info_med  =BLOC(condition="FORMAT=='MED'",
15421              INFO_MAILLAGE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15422            ),
15423
15424            b_sensibilite   =BLOC(condition="RESULTAT != None",
15425                                  fr="Définition des paramètres de sensibilité",
15426                                  ang="Definition of sensitivity parameters",
15427              regles=(DERIVABLE('RESULTAT'),),
15428              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
15429                                    fr="Liste des paramètres de sensibilité.",
15430                                    ang="List of sensitivity parameters"),),
15431
15432 #           b_partie        =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or  
15433 #                           (AsType(CHAM_GD)!=carte_sdaster))  and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""",
15434              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
15435 #           ),
15436            b_extrac        =BLOC(condition="RESULTAT != None",
15437                                  fr="extraction d un champ de grandeur",
15438              regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
15439                      EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
15440                             'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
15441              TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15442              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
15443
15444              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15445              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
15446              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
15447              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
15448              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
15449              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
15450              ANGL            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15451              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15452              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
15453              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15454              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
15455
15456              b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
15457                PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
15458                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15459              ),
15460            ),
15461 ###
15462            b_parametres    =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
15463              regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
15464              INFO_RESU       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15465              TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
15466              NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
15467              FORM_TABL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
15468            ),
15469 ###
15470            b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
15471            ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""",
15472                                 fr="sélection des composantes",
15473              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
15474              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15475              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
15476            ),
15477 ###
15478            b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
15479                                 fr="sélection des composantes et des entités toplogiques",
15480              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
15481              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15482              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15483            ),
15484 ###
15485            b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
15486            ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""",
15487                                 fr="sélection des entités topologiques",
15488              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15489              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
15490              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15491              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15492              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15493            ),
15494 ###
15495            b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')",
15496                                fr="sélection sur les valeurs",
15497              VALE_MAX        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15498              VALE_MIN        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15499              BORNE_SUP       =SIMP(statut='f',typ='R'),
15500              BORNE_INF       =SIMP(statut='f',typ='R'),
15501              IMPR_COOR       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15502              FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
15503            ),
15504
15505            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
15506          ),
15507          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15508 ) ;
15509 #& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
15510 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15511 # ======================================================================
15512 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15513 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15514 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15515 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15516 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15517 #
15518 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15519 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15520 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15521 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15522 #
15523 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15524 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15525 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15526 # ======================================================================
15527 IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné",
15528             UIinfo={"groupes":("Résolution",)},
15529          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
15530          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
15531          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
15532                                fr="Type d analyse" ),
15533          b_dynamique  =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
15534                             fr="Recheche du nombre de fréquences propres",
15535              FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
15536              FREQ_MAX        =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
15537          ),
15538          b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
15539                             fr="Recherche du nombre de charges critiques",
15540              CHAR_CRIT_MIN   =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
15541              CHAR_CRIT_MAX   =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
15542          ),
15543          NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
15544          NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
15545          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
15546          PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
15547          SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
15548 )  ;
15549 #& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
15550 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15551 # ======================================================================
15552 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15553 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15554 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15555 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15556 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15557 #
15558 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15559 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15560 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15561 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15562 #
15563 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15564 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15565 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15566 # ======================================================================
15567 # RESPONSABLE MCOURTOI M.COURTOIS
15568 from Macro.impr_table_ops import impr_table_ops
15569
15570 IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None,
15571             UIinfo={"groupes":("Impression",)},
15572                 fr="Impression du contenu d'une table dans un fichier",
15573            regles=(DERIVABLE("TABLE"),),
15574    TABLE          =SIMP(statut='o',typ=table_sdaster),
15575    SENSIBILITE    =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
15576                          fr="Liste des paramètres de sensibilité.",
15577                          ang="List of sensitivity parameters"),
15578    FORMAT         =SIMP(statut='f',typ='TXM',defaut="TABLEAU",
15579                          into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),),
15580    b_pilote       =BLOC(condition = "FORMAT == 'XMGRACE'",
15581                         fr="Mots-clés propres à XMGRACE",
15582       PILOTE         =SIMP(statut='f',typ='TXM',defaut='',
15583                            into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
15584                       fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
15585       UNITE          =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
15586                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
15587    ),
15588    b_unite        =BLOC(condition = "FORMAT != 'XMGRACE'",
15589       UNITE          =SIMP(statut='f',typ='I',defaut=8,
15590                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
15591    ),
15592    FILTRE         =FACT(statut='f',max='**',
15593       NOM_PARA       =SIMP(statut='o',typ='TXM'),
15594       CRIT_COMP      =SIMP(statut='f',typ='TXM',defaut="EQ",
15595                            into=("EQ","LT","GT","NE","LE","GE","VIDE",
15596                                  "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),),
15597       b_vale         =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
15598          regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
15599          VALE           =SIMP(statut='f',typ='R'),
15600          VALE_I         =SIMP(statut='f',typ='I'),
15601          VALE_C         =SIMP(statut='f',typ='C'),
15602          VALE_K         =SIMP(statut='f',typ='TXM'),
15603       ),
15604       b_crit         =BLOC(condition = "CRIT_COMP in ('EQ','NE')",
15605          CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15606          PRECISION      =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
15607       ),
15608    ),
15609    TRI            =FACT(statut='f',
15610       NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
15611       ORDRE          =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**',
15612                            into=("CROISSANT","DECROISSANT") ),
15613    ),
15614    PAGINATION     =SIMP(statut='f',typ='TXM',max='**'),
15615    FORMAT_R       =SIMP(statut='f',typ='TXM',defaut="E12.5"),
15616    FORMAT_C       =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",
15617                               into=("MODULE_PHASE","REEL_IMAG") ),
15618    NOM_PARA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
15619    IMPR_FONCTION  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15620
15621    # mise en forme pour les formats qui passent par Graph
15622    b_forme         =BLOC(condition = "FORMAT == 'XMGRACE'",
15623                          fr="Données de mise en forme du graphique",
15624       # pour la courbe
15625       LEGENDE         =SIMP(statut='f',typ='TXM',
15626                             fr="Légende associée à la fonction" ),
15627       STYLE           =SIMP(statut='f',typ='I',val_min=0,
15628                             fr="Style de la ligne représentant la fonction",),
15629       COULEUR         =SIMP(statut='f',typ='I',val_min=0,
15630                             fr="Couleur associée à la fonction",),
15631       MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
15632                             fr="Type du marqueur associé à la fonction",),
15633       FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
15634                             fr="Fréquence d impression du marqueur associé à la fonction", ),
15635       # format du graphique
15636       BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
15637                             fr="Intervalles de variation des abscisses"),
15638       BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
15639                             fr="Intervalles de variation des ordonnées"),
15640       ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
15641                             fr="Type d'échelle pour les abscisses" ),
15642       ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
15643                             fr="Type d'échelle pour les ordonnées" ),
15644       GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
15645                             fr="Pas du quadrillage vertical" ),
15646       GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
15647                             fr="Pas du quadrillage horizontal" ),
15648       LEGENDE_X       =SIMP(statut='f',typ='TXM',
15649                             fr="Légende associée à l'axe des abscisses" ),
15650       LEGENDE_Y       =SIMP(statut='f',typ='TXM',
15651                             fr="Légende associée à l'axe des ordonnées" ),
15652    ),
15653
15654    TITRE          =SIMP(statut='f',typ='TXM',max='**'),
15655    INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15656 )  
15657 #& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
15658 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15659 # ======================================================================
15660 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15661 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15662 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15663 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15664 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15665 #
15666 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15667 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15668 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15669 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15670 #
15671 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15672 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15673 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15674 # ======================================================================
15675 INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include,
15676             UIinfo={"groupes":("Gestion du travail",)},
15677              fr="Débranchement vers un fichier de commandes secondaires",
15678              sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1,
15679          UNITE = SIMP(statut='o',typ='I'),
15680          INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15681 );
15682 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
15683 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15684 # ======================================================================
15685 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15686 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15687 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15688 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15689 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15690 #
15691 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15692 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15693 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15694 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15695 #
15696 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15697 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15698 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15699 # ======================================================================
15700 INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,
15701             UIinfo={"groupes":("Modélisation",)},
15702          fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ",
15703          sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
15704          NOM_AFNOR       =SIMP(statut='o',typ='TXM' ),  
15705          TYPE_MODELE     =SIMP(statut='o',typ='TXM',into=("REF","PAR") ),
15706          VARIANTE        =SIMP(statut='o',typ='TXM',     
15707                                into=("A","B","C","D","E","F","G","H","I","J",    
15708                                      "K","L","M","N","O","P","Q","R","S","T","U","V",   
15709                                      "W","X","Y","Z",) ),
15710          TYPE_VALE       =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ),
15711          NOM_MATER       =SIMP(statut='o',typ='TXM' ),  
15712          UNITE           =SIMP(statut='f',typ='I',defaut= 32 ),  
15713          EXTRACTION      =FACT(statut='f',max=99,
15714            COMPOR          =SIMP(statut='o',typ='TXM' ),  
15715            TEMP_EVAL       =SIMP(statut='o',typ='R' ),  
15716          ),
15717          UNITE_LONGUEUR  =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ),  
15718          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
15719 )  ;
15720 #& MODIF COMMANDE  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
15721 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15722 # ======================================================================
15723 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
15724 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
15725 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
15726 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
15727 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
15728 #                                                                       
15729 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
15730 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
15731 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
15732 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15733 #                                                                       
15734 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
15735 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
15736 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
15737 # ======================================================================
15738 # RESPONSABLE D6BHHJP J.P.LEFEBVRE
15739 INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
15740                     fr="Récupère différentes informations propres à l'exécution en cours",
15741                     reentrant='n',
15742                     UIinfo={"groupes":("Gestion du travail",)},
15743
15744          regles=(),
15745          LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
15746                               into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
15747          b_etat_unite   =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", 
15748             regles=(UN_PARMI('UNITE','FICHIER'),),
15749             UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
15750                                  fr="Unité logique dont on veut obtenir l'état",),
15751             FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
15752                                  fr="Nom du fichier dont on veut obtenir l'état",),
15753          ),
15754          TITRE          =SIMP(statut='f',typ='TXM',max='**'),
15755          INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15756 )  ;
15757 #& MODIF COMMANDE  DATE 24/10/2006   AUTEUR DURAND C.DURAND 
15758 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15759 # ======================================================================
15760 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
15761 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
15762 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
15763 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
15764 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
15765 #                                                                       
15766 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
15767 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
15768 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
15769 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15770 #                                                                       
15771 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
15772 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
15773 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
15774 # ======================================================================
15775 from Macro.info_fonction_ops import info_fonction_ops
15776 def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args):
15777    if (RMS         != None): return table_sdaster
15778    if (MAX         != None): return table_sdaster
15779    if (NOCI_SEISME != None): return table_sdaster
15780    if (ECART_TYPE  != None): return table_sdaster
15781    if (NORME       != None): return table_sdaster
15782    raise AsException("type de concept resultat non prevu")
15783
15784 INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod
15785                     ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe",
15786                      reentrant='n',
15787             UIinfo={"groupes":("Fonction",)},
15788          regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),),
15789          RMS             =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**',
15790            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
15791            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
15792            INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
15793            INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
15794            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15795            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
15796          ),
15797          NOCI_SEISME     =FACT(statut='f',
15798            regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
15799            FONCTION        =SIMP(statut='f',typ=fonction_sdaster ),
15800            SPEC_OSCI       =SIMP(statut='f',typ=nappe_sdaster ),
15801            b_option_f      =BLOC(condition="""FONCTION !=None""",
15802              OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**',
15803                                    into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
15804                                          "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ),
15805              b_amor          =BLOC(condition="""OPTION=="TOUT" or OPTION=="INTE_SPEC" """,
15806                AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),),
15807            b_option_n      =BLOC(condition="""SPEC_OSCI !=None""",
15808              OPTION          =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ),
15809              NATURE          =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ),
15810              AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),
15811            INST_INIT       =SIMP(statut='f',typ='R'),
15812            INST_FIN        =SIMP(statut='f',typ='R'),
15813            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
15814            PESANTEUR       =SIMP(statut='f',typ='R',defaut= 9.81E+0 ),
15815            FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
15816            FREQ_FIN        =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
15817            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
15818            FREQ            =SIMP(statut='f',typ='R',max='**'),
15819            NORME           =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
15820            BORNE_INF       =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
15821            BORNE_SUP       =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
15822            b_acce_reel     =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
15823              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,val_min=0.E+0),
15824              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15825            ),
15826          ),
15827          MAX             =FACT(statut='f',fr="Extrémas locaux d'une fonction",
15828            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
15829          ),
15830          NORME           =FACT(statut='f',fr="Norme L2 d'une fonction",
15831             FONCTION      =SIMP(statut='o', typ=nappe_sdaster),
15832          ),     
15833          ECART_TYPE      =FACT(statut='f',fr="Ecart-type d'une fonction",
15834             METHODE       =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
15835             FONCTION      =SIMP(statut='o',typ=fonction_sdaster),
15836             INST_INIT     =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
15837             INST_FIN      =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
15838             CRITERE       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15839             PRECISION     =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
15840          ),     
15841          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15842 )
15843 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
15844 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15845 # ======================================================================
15846 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15847 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15848 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15849 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15850 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15851 #
15852 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15853 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15854 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15855 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15856 #
15857 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15858 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15859 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15860 # ======================================================================
15861 # RESPONSABLE G8BHHXD X.DESROCHES
15862 INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
15863             UIinfo={"groupes":("Post traitements",)},
15864                   fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
15865
15866          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
15867
15868          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
15869                  AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
15870                  PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
15871                  PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
15872                  PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
15873                  EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
15874                  EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
15875                  EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
15876
15877          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15878          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15879          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15880
15881          DEFI_SEGMENT    =FACT(statut='f',max='**',
15882            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
15883                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
15884            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
15885            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15886            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15887            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
15888            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
15889            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
15890          ),
15891
15892          DEFI_ARC        =FACT(statut='f',max='**',
15893            regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
15894                    UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
15895                    UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),               
15896                    PRESENT_PRESENT('RAYON','SECTEUR'),),
15897            CENTRE          =SIMP(statut='f',typ='R',min=2,max=2),  
15898            NOEUD_CENTRE    =SIMP(statut='f',typ=no,),
15899            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,),
15900            RAYON           =SIMP(statut='f',typ='R',val_min=0.E+0),  
15901            SECTEUR         =SIMP(statut='f',typ='R',min=2,max=2,
15902                                  val_min=-180.E+0,val_max=180E+0),  
15903            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
15904            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15905            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15906            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
15907            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
15908            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
15909            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
15910            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",    
15911                                  into=("RELATIF","ABSOLU",) ),
15912          ),
15913
15914          DEFI_CHEMIN     =FACT(statut='f',max='**',
15915            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
15916            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15917            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15918          ),
15919
15920          NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15921          GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15922          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
15923          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15924 )  ;
15925 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
15926 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15927 # ======================================================================
15928 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15929 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15930 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15931 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15932 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15933 #
15934 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15935 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15936 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15937 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15938 #
15939 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15940 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15941 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15942 # ======================================================================
15943 # RESPONSABLE G8BHHXD X.DESROCHES
15944 INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
15945             UIinfo={"groupes":("Post traitements",)},
15946                   fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n',
15947          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
15948          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15949          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15950          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15951          DEFI_SEGMENT    =FACT(statut='o',max='**',
15952            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
15953                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
15954            ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
15955            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15956            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15957            EXTREMITE       =SIMP(statut='f',typ='R',min=3,max=3),  
15958            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
15959            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
15960          ),
15961          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
15962          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15963 )  ;
15964 #& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
15965 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15966 # ======================================================================
15967 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15968 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15969 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15970 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15971 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15972 #
15973 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15974 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15975 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15976 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15977 #
15978 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15979 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15980 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15981 # ======================================================================
15982 def lire_champ_prod(TYPE_CHAM=None,**args):
15983 # Remarque : si cette liste évolue, il faut penser à mettre à jour son
15984 #            homologue dans macr_adap_mail
15985   import string
15986 #  
15987   if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster
15988   if TYPE_CHAM[0:2] == "EL"    : return cham_elem
15989   raise AsException("type de concept resultat non prevu")
15990
15991 LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
15992                 fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.",
15993                 reentrant='n',UIinfo={"groupe":("Résultats et champs",)},
15994          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster,),
15995          FORMAT          =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),),
15996          UNITE           =SIMP(statut='f',typ='I',defaut= 81,),  
15997          b_format =BLOC(condition = "FORMAT == 'MED'",
15998          regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
15999                   PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),
16000                   EXCLUS('NUME_ORDRE','INST'),
16001                   EXCLUS('NUME_PT','INST'),),
16002             NOM_MED      =SIMP(statut='o',typ='TXM', ),
16003             NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ),
16004             NOM_CMP      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
16005             NOM_CMP_MED  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
16006             NUME_PT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',),
16007             NUME_ORDRE   =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',
16008                            fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ),
16009             INST         =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ),
16010 #
16011             b_precision     =BLOC(condition="(INST != None)",
16012               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,
16013               fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),
16014               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
16015               fr="Critère de précision sur le choix de l'instant associé",
16016               ang="Accuracy criterium over instant choice" ),),
16017 #
16018             NOM_MAIL_MED =SIMP(statut='f',typ='TXM',),
16019                   ),
16020 #        Remarque : si cette liste évolue, il faut penser à mettre à jour son
16021 #                   homologue dans macr_adap_mail
16022          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
16023          b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'",
16024             MODELE      =SIMP(statut='o',typ=modele_sdaster, ),
16025                   ),
16026          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
16027 )  ;
16028 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
16029 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16030 # ======================================================================
16031 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16032 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16033 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16034 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16035 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16036 #
16037 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16038 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16039 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16040 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16041 #
16042 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16043 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16044 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16045 # ======================================================================
16046
16047 from Macro.lire_fonction_ops import lire_fonction_ops
16048
16049 def lire_fonction_prod(self,TYPE,**args):
16050   if   (TYPE == 'FONCTION')  : return fonction_sdaster
16051   elif (TYPE == 'FONCTION_C'): return fonction_c
16052   elif (TYPE == 'NAPPE'   )  : return nappe_sdaster
16053   raise AsException("type de concept resultat non prevu")
16054
16055 LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod,
16056                    fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et"
16057                      +" crée un concept de type fonction ou nappe",
16058                    reentrant='n',
16059             UIinfo={"groupes":("Fonction",)},
16060          FORMAT          =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE"  ),
16061          TYPE            =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION"  ),
16062          SEPAR           =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ),
16063          INDIC_PARA      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]),
16064          b_fonction      =BLOC(condition = "TYPE=='FONCTION' ",
16065            INDIC_RESU      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ),
16066          b_fonction_c    =BLOC(condition = "TYPE=='FONCTION_C' ",
16067            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ),
16068            b_reel_imag     =BLOC(condition = "FORMAT_C=='REEL_IMAG' ",
16069              INDIC_REEL      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
16070              INDIC_IMAG      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) ,
16071            b_modu_phas     =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ",
16072              INDIC_MODU      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
16073              INDIC_PHAS      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ),
16074          b_nappe         =BLOC(condition = "TYPE=='NAPPE' ",
16075            NOM_PARA_FONC   =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
16076            INDIC_ABSCISSE  =SIMP(statut='o',typ='I',min=2,max=2,),
16077            INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
16078            PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
16079            PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
16080            DEFI_FONCTION   =FACT(statut='f',max='**',
16081              INDIC_RESU      =SIMP(statut='o',typ='I',min=2,max=2,),),  ),
16082          UNITE           =SIMP(statut='o',typ='I' ),
16083          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
16084          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
16085          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
16086          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
16087          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
16088          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
16089          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16090          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16091 )  ;
16092 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
16093 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16094 # ======================================================================
16095 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
16096 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16097 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16098 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16099 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16100 #                                                                       
16101 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16102 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16103 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16104 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16105 #                                                                       
16106 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16107 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16108 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16109 # ======================================================================
16110 LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene,
16111                     fr="Création d un vecteur assemblé à partir de base modale",
16112                     reentrant='n',
16113             UIinfo={"groupes":("Matrices/vecteurs",)},           
16114          BASE            =SIMP(statut='o',typ=base_modale ),
16115          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
16116          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
16117          NOM_CMP         =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
16118          NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
16119          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),
16120 )  ;
16121
16122 #& MODIF COMMANDE  DATE 19/09/2006   AUTEUR ACBHHCD G.DEVESA 
16123 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16124 # ======================================================================
16125 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
16126 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16127 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16128 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16129 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16130 #                                                                       
16131 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16132 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16133 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16134 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16135 #                                                                       
16136 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16137 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16138 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16139 # ======================================================================
16140 LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
16141                     fr="Création d une matrice assemblée à partir de base modale",
16142                     reentrant='n',
16143             UIinfo={"groupes":("Matrices/vecteurs",)},           
16144          BASE            =SIMP(statut='o',typ=base_modale ),
16145          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
16146          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
16147          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
16148          TYPE            =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ),         
16149 )  ;
16150
16151 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
16152 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16153 # ======================================================================
16154 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16155 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16156 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16157 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16158 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16159 #
16160 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16161 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16162 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16163 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16164 #
16165 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16166 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16167 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16168 # ======================================================================
16169
16170 from Macro.lire_inte_spec_ops import lire_inte_spec_ops
16171
16172 LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_fonction,
16173                     fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale",
16174                     reentrant='n',
16175             UIinfo={"groupes":("Fonction",)},
16176          UNITE           =SIMP(statut='o',typ='I' ),
16177          FORMAT          =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ),
16178          NOM_PARA        =SIMP(statut='f',typ='TXM',defaut="FREQ",
16179                                into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
16180                                      "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
16181          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="DSP" ),
16182          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
16183          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
16184          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
16185          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16186          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16187 )  ;
16188 #& MODIF COMMANDE  DATE 21/11/2006   AUTEUR COURTOIS M.COURTOIS 
16189 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16190 # ======================================================================
16191 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16192 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16193 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16194 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16195 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16196 #
16197 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16198 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16199 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16200 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16201 #
16202 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16203 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16204 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16205 # ======================================================================
16206 # RESPONSABLE VABHHTS J.PELLET
16207 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
16208                    fr="Crée un maillage par lecture d'un fichier au format Aster ou Med",
16209                    ang="Readings of a mesh file",
16210                    reentrant='n',
16211             UIinfo={"groupes":("Maillage",)},
16212 #
16213          UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
16214 #
16215          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
16216                             fr="Format du fichier : ASTER ou MED.",
16217                             ang="Format of the file : ASTER or MED.",),
16218 #
16219          ABSC_CURV       =FACT(statut='f',min=0,
16220                TOUT          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16221          ),
16222 #
16223          VERI_MAIL       =FACT(statut='d',
16224                VERIF         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
16225                APLAT         =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
16226          ),
16227 #
16228          b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
16229                              fr="Informations complémentaires pour la lecture MED.",
16230                              ang="Further information for MED readings.",
16231 #
16232 # Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
16233 # le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
16234             NOM_MED    = SIMP(statut='f',typ='TXM',
16235                               fr="Nom du maillage dans le fichier MED.",
16236                               ang="Name of the mesh into the MED file.",),
16237             INFO_MED   = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
16238 #
16239             RENOMME = FACT(statut='f', max='**',
16240                                  fr="Renommer un nom de groupe MED",
16241                  NOM_MED     = SIMP(statut='o', typ=grma,
16242                                     fr="Nom du groupe dans le fichier MED"),
16243                  NOM         = SIMP(statut='o', typ=grma, validators=LongStr(1,8),
16244                                     fr="Nom du groupe dans le maillage ASTER"),
16245             ),
16246          ),
16247 #
16248          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
16249 #
16250 )  ;
16251 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
16252 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16253 # ======================================================================
16254 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16255 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16256 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16257 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16258 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16259 #
16260 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16261 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16262 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16263 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16264 #
16265 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16266 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16267 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16268 # ======================================================================
16269 def lire_miss_3d_prod(TYPE_RESU,**args):
16270   if TYPE_RESU == "TRANS" : return dyna_trans
16271   if TYPE_RESU == "HARMO" : return dyna_harmo
16272   raise AsException("type de concept resultat non prevu")
16273
16274 LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
16275                   fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D",
16276                   reentrant='n',
16277             UIinfo={"groupes":("Maillage",)},
16278          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
16279          UNITE           =SIMP(statut='f',typ='I',defaut= 27 ),
16280          NOM             =SIMP(statut='f',typ='TXM' ),
16281          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
16282          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16283 )  ;
16284 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
16285 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16286 # ======================================================================
16287 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16288 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16289 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16290 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16291 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16292 #
16293 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16294 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16295 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16296 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16297 #
16298 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16299 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16300 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16301 # ======================================================================
16302 LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
16303                  fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS",
16304                  reentrant='n',
16305             UIinfo={"groupes":("Maillage",)},
16306          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
16307          UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16308          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
16309          MAIL_PLEXUS     =SIMP(statut='o',typ=maillage_sdaster ),
16310          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
16311          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
16312          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16313          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
16314          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
16315          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16316          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
16317          b_prec_crit     =BLOC(condition = "LIST_INST != None or INST != None",
16318              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
16319              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
16320                                    into=("RELATIF","ABSOLU") ),
16321          ),
16322          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16323 )  ;
16324 #& MODIF COMMANDE  DATE 03/10/2005   AUTEUR NICOLAS O.NICOLAS 
16325 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16326 # ======================================================================
16327 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16328 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16329 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16330 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16331 # (AT YOUR OPTION) ANY LATER VERSION.
16332 #
16333 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16334 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16335 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16336 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16337 #
16338 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16339 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16340 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16341 # ======================================================================
16342 # RESPONSABLE VABHHTS J.PELLET
16343
16344 def lire_resu_prod(TYPE_RESU,**args):
16345   if TYPE_RESU == "EVOL_CHAR" :  return evol_char
16346   if TYPE_RESU == "EVOL_THER" :  return evol_ther
16347   if TYPE_RESU == "EVOL_ELAS" :  return evol_elas
16348   if TYPE_RESU == "EVOL_NOLI" :  return evol_noli
16349   if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
16350   if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
16351   if TYPE_RESU == "HARM_GENE" :  return harm_gene
16352   if TYPE_RESU == "MODE_MECA" :  return mode_meca
16353   if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c
16354   raise AsException("type de concept resultat non prevu")
16355
16356 # pour éviter d'écrire 3 fois cette liste :
16357 def l_nom_cham_pas_elga(): return (
16358      "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM",
16359      "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL",
16360      "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE",
16361      "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL",
16362      "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO",
16363      "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL",
16364      "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU",
16365      "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL",
16366      "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI",
16367      "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1",
16368      "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM",
16369      "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D",
16370      "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA",
16371      "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA",
16372      "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF",
16373      "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL",
16374      "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL",
16375      "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA",
16376      "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO",
16377      "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF",
16378      "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU",
16379      "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA",
16380      "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL",
16381      "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA",
16382      "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU",
16383      "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL",
16384      "VITE", "VITE_ABSOLU", "VITE_VENT",
16385                            )
16386
16387 LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
16388             UIinfo={"groupes":("Résultats et champs",)},
16389                fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED,"
16390                  +" des champs et les stocker dans une SD résultat",
16391
16392
16393 # 0) mots clés généraux :
16394 #----------------------
16395          TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA",
16396                                                           "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE",
16397                                                           "EVOL_CHAR") ),
16398
16399          FORMAT          =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ),
16400
16401          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
16402          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16403
16404          regles=(UN_PARMI('MAILLAGE','MODELE'),),
16405          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
16406          MODELE          =SIMP(statut='f',typ=modele_sdaster),
16407
16408          NB_VARI         =SIMP(statut='f',typ='I' ),
16409
16410
16411 # 1) blocs selon le format choisi :
16412 #---------------------------------
16413
16414 # 1-1 ideas dataset-58 :
16415 # ----------------------
16416          b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'",
16417            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16418          ),
16419          b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\
16420                                         (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))",
16421            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16422            NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ),
16423            REDEFI_ORIENT=FACT(statut='f',max='**',
16424                               regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),),
16425                               CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ),
16426                               DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,),
16427                               NOEUD    =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),),
16428          ),
16429
16430 # 1-2 ideas  :
16431 # ---------
16432          b_ideas         =BLOC(condition="FORMAT=='IDEAS'",
16433            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16434 #           TEST            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
16435            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
16436            FORMAT_IDEAS    =FACT(statut='f',max='**',
16437              regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
16438              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
16439              NUME_DATASET    =SIMP(statut='f',typ='I',into=(55,57,2414) ),
16440              RECORD_3        =SIMP(statut='f',typ='I',max=10),
16441              RECORD_6        =SIMP(statut='f',typ='I',max=10),
16442              RECORD_9        =SIMP(statut='f',typ='I',max=10),
16443              POSI_ORDRE      =SIMP(statut='o',typ='I',min=2,max=2),
16444              POSI_NUME_MODE  =SIMP(statut='f',typ='I',min=2,max=2),
16445              POSI_MASS_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
16446              POSI_AMOR_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
16447              POSI_INST       =SIMP(statut='f',typ='I',min=2,max=2),
16448              POSI_FREQ       =SIMP(statut='f',typ='I',min=2,max=2),
16449              NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),),
16450          ),
16451 # 1-3 ensight :
16452 # -------------
16453          b_ensight       =BLOC(condition="FORMAT=='ENSIGHT'",
16454            NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
16455            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
16456          ),
16457
16458 # 1-4 med :
16459 # ---------
16460          b_med           =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
16461            UNITE           =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",),
16462            FORMAT_MED      =FACT(statut='f',max='**',
16463              regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),),
16464              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
16465              NOM_CHAM_MED    =SIMP(statut='o',typ='TXM',               fr="Nom du champ dans le fichier MED.",  ),
16466              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans ASTER.", ),
16467              NOM_CMP_MED     =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans MED.", ),
16468            ),
16469                   ),
16470
16471 # 2) blocs selon le type du résultat :
16472 #---------------------------------
16473          b_mode_meca     =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')",
16474            MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r,),
16475            MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r,),
16476          ),
16477
16478
16479 # 3) autres blocs :
16480 #---------------------------------
16481          b_extrac        =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat",
16482            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),),
16483            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16484            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
16485            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16486            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
16487            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
16488            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16489            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
16490
16491            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
16492              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
16493              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16494            ),
16495          ),
16496 )  ;
16497 #& MODIF COMMANDE  DATE 03/04/2006   AUTEUR MCOURTOI M.COURTOIS 
16498 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16499 # ======================================================================
16500 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
16501 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16502 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16503 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16504 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16505 #                                                                       
16506 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16507 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16508 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16509 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16510 #                                                                       
16511 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16512 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16513 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16514 # ======================================================================
16515
16516 from Macro.lire_table_ops import lire_table_ops
16517
16518 LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster,
16519                  fr="Lecture d'un fichier contenant une table",
16520             UIinfo={"groupes":("Table",)},
16521          UNITE           =SIMP(statut='o',typ='I' ),
16522          FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
16523          NUME_TABLE      =SIMP(statut='f',typ='I',defaut=1),
16524          SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' '),
16525          PARA            =SIMP(statut='f',typ='TXM',max='**'),
16526          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16527          )  ;
16528
16529 #& MODIF COMMANDE  DATE 13/02/2006   AUTEUR DURAND C.DURAND 
16530 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16531 # ======================================================================
16532 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
16533 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16534 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16535 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16536 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16537 #                                                                       
16538 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16539 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16540 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16541 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16542 #                                                                       
16543 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16544 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16545 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16546 # ======================================================================
16547 # ======================================================================
16548
16549 MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
16550                fr="Normalisation de modes propres",
16551                reentrant='n',
16552             UIinfo={"groupes":("Résolution",)},
16553          BASE_1       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
16554          BASE_2       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
16555          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
16556          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
16557          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16558 )  ;
16559 #& MODIF COMMANDE  DATE 30/10/2006   AUTEUR DURAND C.DURAND 
16560 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16561 # ======================================================================
16562 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16563 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16564 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16565 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16566 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16567 #
16568 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16569 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16570 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16571 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16572 #
16573 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16574 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16575 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16576 # ======================================================================
16577 # RESPONSABLE GNICOLAS G.NICOLAS
16578
16579
16580 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
16581
16582 def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
16583 #
16584 # 0. Typage des structures produites
16585 #
16586   maillage_np1=args['MAILLAGE_NP1']
16587   self.type_sdprod(maillage_np1,maillage_sdaster)
16588 #
16589   if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) :
16590     maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE']
16591     self.type_sdprod(maillage_np1_annexe,maillage_sdaster)
16592 #
16593   if MAJ_CHAM == None:return None
16594 # Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP
16595   for ch in MAJ_CHAM:
16596     t=ch['TYPE_CHAM']
16597     if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster)
16598     if t[0:2] == "EL":   self.type_sdprod(ch['CHAM_MAJ'],cham_elem)
16599   return None
16600
16601
16602 MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod,
16603                      fr="Adapter un maillage avec le logiciel HOMARD.",
16604                      ang="Mesh adaptation with HOMARD software.",
16605                      docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)},
16606 #
16607 # 1. Le niveau d'information
16608 #
16609   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
16610 #
16611 # 2. Version de HOMARD
16612 #
16613   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_5",
16614                         into=("V8_5", "V8_N", "V8_N_PERSO"),
16615                         fr="Version de HOMARD",
16616                         ang="HOMARD release"),
16617 #
16618 # 3. Langue des messages produits par HOMARD
16619 #
16620   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
16621                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
16622                 fr="Langue des messages produits par HOMARD.",
16623                 ang="Language for HOMARD messages." ),
16624 #
16625 # 4. Les maillages
16626 # 4.1. Quel que soit le type de traitement, il faut donner  :
16627 #      A. Le concept du maillage initial (entree)
16628 #      B. Le concept du maillage final (sortie)
16629 #
16630   MAILLAGE_N   = SIMP(statut='o',typ=maillage_sdaster,
16631                       fr="Maillage avant adaptation",
16632                       ang="Mesh before adaptation" ),
16633 #
16634   MAILLAGE_NP1 = SIMP(statut='o',typ=CO,
16635                       fr="Maillage apres adaptation",
16636                       ang="Mesh after adaptation" ),
16637 #
16638 # 4.2. Eventuellement, on peut produire un maillage annexe
16639 #      Actuellement, c'est le maillage n+1, mais de degré différent.
16640 #
16641   MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO,
16642                              fr="Maillage annexe apres adaptation",
16643                              ang="Additional mesh after adaptation" ),
16644 #
16645 # 5. Le pilotage de l'adaptation, avec les variantes suivantes :
16646 #  . Raffinement et deraffinement, selon un champ d'indicateurs d'erreur
16647 #  . Raffinement seul, selon un champ d'indicateurs d'erreur
16648 #  . Deraffinement seul, selon un champ d'indicateurs d'erreur
16649 #  . Raffinement seul, selon des zones geometriques
16650 #  . Raffinement uniforme : toutes les mailles sont divisées
16651 #  . Deraffinement uniforme : toutes les mailles sont regroupées
16652 #  . Rien : le maillage est le meme a la sortie et a l'entree
16653 #
16654   ADAPTATION = SIMP(statut='o',typ='TXM',
16655                     into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \
16656                           "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME","RIEN"),    
16657                     fr="Pilotage de l'adaptation : selon un indicateur d'erreur ou uniforme.",
16658                     ang="Adaptation control : among an error indicator or uniform" ),
16659 #
16660 # 6. Pour de l'adaptation libre, il faut un indicateur d'erreur
16661 #
16662   b_indicateur_d_erreur = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16663                                               (ADAPTATION == 'RAFFINEMENT') or \
16664                                               (ADAPTATION == 'DERAFFINEMENT') " ,
16665                                 fr="Pour une adaptation libre, choix de l'indicateur d'erreur ou d'une zone à raffiner",
16666                                 ang="For free adaptation, selection of error indicator or zone",
16667 #
16668     regles=(UN_PARMI('CHAM_GD','RESULTAT_N')),
16669 #
16670 # 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur
16671 #
16672 # 6.1.1. Sous forme de champ de grandeur
16673 #
16674     CHAM_GD    = SIMP(statut='f',typ=cham_gd_sdaster,
16675                       fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur",
16676                       ang="Code_Aster champ de grandeur with error indicator" ),
16677 #
16678 # 6.1.2. Sous forme de concept resultat_sdaster
16679 #
16680     RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ,
16681                       fr="Concept resultat Code_Aster contenant l'indicateur d'erreur",
16682                       ang="Code_Aster result with error indicator" ),
16683 #
16684     b_champ_indicateur = BLOC(condition="(RESULTAT_N != None)",
16685       INDICATEUR = SIMP(statut='o',typ='TXM',     
16686                         fr="Champ de l'indicateur d'erreur dans le résultat",
16687                         ang="Error indicator field in the result structure" ),
16688     ),
16689 #
16690 # 6.1.3. Est-ce un champ dérivé
16691 #
16692     b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16693                         fr="Est-ce un champ dérivé",
16694                         ang="Is the indicator a derivative field",
16695 #
16696       SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),
16697                          fr="Paramètre de sensibilité.",
16698                          ang="Sensitivity parameter")
16699 #
16700     ),
16701 #
16702 # 6.1.4. La composante retenue
16703 #
16704     b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16705                         fr="Choix de la composante pour l'indicateur",
16706                         ang="Component selection for error indicator",
16707 #
16708       NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
16709                             fr="Composante retenue pour l'indicateur d'erreur",
16710                             ang="Selected component for error indicator" ),
16711 #
16712     ),
16713 #
16714 # 6.1.5. Le paramètre temporel pour l'indicateur
16715 #
16716     b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)",
16717                                 fr="Choix éventuel du paramètre temporel pour l'indicateur",
16718                                 ang="Time selection for error indicator (option)",
16719 #
16720       regles=(EXCLUS('NUME_ORDRE','INST'),),
16721 #
16722 # 6.1.5.1. Soit le numero d'ordre
16723 #
16724       NUME_ORDRE = SIMP(statut='f',typ='I',
16725                         fr="Numero d ordre",
16726                         ang="Rank" ),  
16727 #
16728 # 6.1.5.2. Soit l'instant
16729 # 6.1.5.2.1. Sa valeur
16730 #
16731       INST       = SIMP(statut='f',typ='R',
16732                         fr="Instant associé",
16733                         ang="Instant" ),
16734 #
16735 # 6.1.5.2.2. La précision du choix de l'instant
16736 #
16737       b_precision = BLOC(condition="(INST != None)",
16738                          fr="Choix de la précision du choix de l'instant",
16739                          ang="Selection for instant choice",
16740         PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
16741                          fr="Précision sur le choix de l'instant associé",
16742                          ang="Accuracy over instant choice" ),
16743         CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
16744                          fr="Critère de précision sur le choix de l'instant associé",
16745                          ang="Accuracy criterium over instant choice" ),
16746       ),
16747 #
16748     ),
16749 #
16750 # 6.1.6. Type de valeur de l'indicateur : absolue ou relative
16751 #
16752     b_valeur_indicateur = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16753                                fr="Type de valeur pour l'indicateur",
16754                                ang="Value type for error indicator",
16755 #
16756       TYPE_VALEUR_INDICA = SIMP(statut='f',typ='TXM',defaut="V_ABSOLUE",into=("V_ABSOLUE","V_RELATIVE"),
16757                                 fr="Valeur absolue ou relative pour l'indicateur",
16758                                 ang="Absolute or relative value for error indicator" ),
16759 #
16760     ),
16761 #
16762   ) ,
16763 #
16764 # 7. Les criteres pour de l'adaptation libre avec un indicateur d'erreur :
16765 #        absolu, relatif, en proportion d'entite
16766 # 7.1. Pour le raffinement :
16767 #
16768   b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16769                                                  (ADAPTATION == 'RAFFINEMENT') " ,
16770                                 fr="Critère de raffinement.",
16771                                 ang="Refinement threshold.",
16772 #
16773     regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
16774 #
16775     CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
16776                          fr="Critère absolu",
16777                          ang="Absolute threshold" ),  
16778     CRIT_RAFF_REL = SIMP(statut='f',typ='R',
16779                          fr="Critère relatif : fraction réelle entre 0. et 1.",
16780                          ang="Relative threshold : ratio between 0. and 1." ),  
16781     CRIT_RAFF_PE  = SIMP(statut='f',typ='R',
16782                          fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.",
16783                          ang="Percentage of elements : ratio between 0. and 1." ),  
16784   ) ,
16785 #
16786 # 7.2. Pour le deraffinement :
16787 #
16788   b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16789                                                    (ADAPTATION == 'DERAFFINEMENT') " ,
16790                                      fr="Critère de déraffinement.",
16791                                      ang="Unrefinement threshold.",
16792 #
16793     regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
16794 #
16795     CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
16796                          fr="Critère absolu",
16797                          ang="Absolute threshold" ),  
16798     CRIT_DERA_REL = SIMP(statut='f',typ='R',
16799                          fr="Critère relatif : fraction réelle entre 0. et 1.",
16800                          ang="Relative threshold : ratio between 0. and 1." ),  
16801     CRIT_DERA_PE  = SIMP(statut='f',typ='R',
16802                          fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.",
16803                          ang="Percentage of elements : ratio between 0. and 1." ),  
16804   ) ,
16805 #
16806 # 8. Pour de l'adaptation par zone, définitions des zones
16807 #
16808   b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
16809                                 fr="Pour une adaptation selon une zone à raffiner",
16810                                 ang="For adaptation among zone",
16811     ZONE = FACT(statut='f',max='**',
16812                   fr="Définition de zones à raffiner.",
16813                   ang="Refined zone definition.",
16814 #
16815       regles=(AU_MOINS_UN('X_MINI','X_CENTRE'),
16816               EXCLUS('X_MINI','X_CENTRE',),
16817               EXCLUS('Z_MINI','X_CENTRE',),
16818               EXCLUS('X_MINI','Z_CENTRE',),
16819               EXCLUS('Z_MINI','Z_CENTRE',),
16820               PRESENT_PRESENT('X_MINI','X_MAXI','Y_MINI','Y_MAXI'),
16821               PRESENT_PRESENT('Z_MINI','Z_MAXI'),
16822               PRESENT_PRESENT('X_CENTRE','Y_CENTRE','RAYON'),),
16823 #
16824 # 6.2.1. Une boite parallelepipedique
16825 #
16826       X_MINI = SIMP(statut='f',typ='R',
16827                     fr="Abscisse minimum de la boite",
16828                     ang="Minimum X for the box"),
16829       X_MAXI = SIMP(statut='f',typ='R',
16830                     fr="Abscisse maximum de la boite",
16831                     ang="Maximum X for the box"),
16832 #
16833       Y_MINI = SIMP(statut='f',typ='R',
16834                     fr="Orodnnée minimum de la boite",
16835                     ang="Minimum Y for the box"),
16836       Y_MAXI = SIMP(statut='f',typ='R',
16837                     fr="Abscisse maximum de la boite",
16838                     ang="Maximum Y for the box"),
16839 #
16840       Z_MINI = SIMP(statut='f',typ='R',
16841                     fr="Cote minimum de la boite",
16842                     ang="Minimum Z for the box"),
16843       Z_MAXI = SIMP(statut='f',typ='R',
16844                     fr="Cote maximum de la boite",
16845                     ang="Maximum Z for the box"),
16846 #
16847 # 6.2.2. Une sphere
16848 #
16849       X_CENTRE = SIMP(statut='f',typ='R',
16850                       fr="Abscisse du centre de la sphere",
16851                       ang="X for the center of the sphere"),
16852       Y_CENTRE = SIMP(statut='f',typ='R',
16853                       fr="Ordonnee du centre de la sphere",
16854                       ang="Y for the center of the sphere"),
16855       Z_CENTRE = SIMP(statut='f',typ='R',
16856                       fr="Cote du centre de la sphere",
16857                       ang="Z for the center of the sphere"),
16858       RAYON = SIMP(statut='f',typ='R',
16859                    fr="Rayon de la sphere",
16860                    ang="Radius of the sphere"),
16861 #
16862     ) ,
16863 #
16864   ) ,
16865 #
16866 # 9. Les niveaux extremes pour le maillage adapte
16867 # 9.1. Pour le raffinement :
16868 #
16869   b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16870                                          (ADAPTATION == 'RAFFINEMENT') or \
16871                                          (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
16872                                          (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
16873                            fr="Niveau maximum de profondeur de raffinement",
16874                            ang="Maximum level for refinement",
16875     NIVE_MAX = SIMP(statut='f',typ='I',
16876                     fr="Niveau maximum de profondeur de raffinement",
16877                     ang="Maximum level for refinement"),
16878   ) ,
16879 #
16880 # 9.2. Pour le deraffinement :
16881 #
16882   b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16883                                          (ADAPTATION == 'DERAFFINEMENT') or \
16884                                          (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
16885                            fr="Niveau minimum de profondeur de déraffinement",
16886                            ang="Minimum level for unrefinement",
16887     NIVE_MIN = SIMP(statut='f',typ='I',
16888                     fr="Niveau minimum de profondeur de déraffinement",
16889                     ang="Minimum level for unrefinement"),
16890   ) ,
16891 #
16892 # 10. Suivi d'une frontiere
16893 #
16894   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
16895                            fr="Maillage de la frontiere à suivre",
16896                            ang="Boundary mesh" ),
16897 #
16898   b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
16899                       fr="Information complémentaire sur la frontière",
16900                       ang="Further information about boundary",
16901 #
16902     GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
16903                     fr="Liste des groupes de mailles définissant la frontière",
16904                     ang="Mesh groups which define the boundary" ),
16905 #
16906   ) ,
16907 #
16908 # 11. Mise à jour de champs sur le nouveau maillage
16909 #
16910   MAJ_CHAM = FACT(statut='f',max='**',
16911                   fr="Mise à jour de champs sur le nouveau maillage.",
16912                   ang="Updating of fields over the new mesh.",
16913 #
16914 # 11.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour
16915 #
16916     CHAM_MAJ = SIMP(statut='o',typ=CO,
16917                     fr="Nom du champ de grandeur qui contiendra le champ mis à jour",
16918                     ang="Name of the field for the updated field"),
16919 #
16920 # 11.2. Le type du champ qui contiendra le resultat de la mise a jour
16921 #
16922     TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(),
16923                      fr="Type du champ qui contiendra le champ mis à jour",
16924                      ang="Type of the field for the updated field" ),
16925 #
16926 # 11.3. Le champ a interpoler
16927 #
16928     regles=(UN_PARMI('CHAM_GD','RESULTAT')),
16929 #
16930 # 11.3.1. Sous forme de champ de grandeur
16931 #
16932     CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster,
16933                    fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour",
16934                    ang="Champ de grandeur with field to be updated" ),
16935 #
16936 # 11.3.2. Sous forme de champ dans un resultat
16937 #
16938     RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
16939                     fr="Resultat contenant le champ à mettre à jour",
16940                     ang="Result with field to be updated" ),
16941 #
16942     b_nom_du_champ = BLOC(condition="(RESULTAT != None)",
16943                           fr="Choix éventuel du nom du champ à interpoler",
16944                           ang="Selection for the name of the field (option)",
16945 #
16946       NOM_CHAM = SIMP(statut='o',typ='TXM',
16947                       fr="Nom du champ à mettre à jour",
16948                       ang="Name of the field to be updated" ),
16949 #
16950     ),
16951 #
16952 # 11.4. Est-ce un champ dérivé
16953 #
16954     SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),
16955                        fr="Paramètre de sensibilité.",
16956                        ang="Sensitivity parameter"),
16957 #
16958 # 11.5. Le paramètre temporel pour le champ a interpoler
16959 #
16960     b_parametre_temporel = BLOC(condition="(RESULTAT != None)",
16961                                 fr="Choix éventuel du paramètre temporel pour le champ à interpoler",
16962                                 ang="Time selection for the field (option)",
16963 #
16964       regles=(EXCLUS('NUME_ORDRE','INST'),),
16965 #
16966 # 11.5.1. Soit le numero d'ordre
16967 #
16968       NUME_ORDRE = SIMP(statut='f',typ='I',
16969                         fr="Numero d ordre du champ à mettre à jour",
16970                         ang="Rank of the field to be updated" ),
16971 #
16972 # 11.5.2. Soit l'instant
16973 # 11.5.2.1. Sa valeur
16974 #
16975       INST = SIMP(statut='f',typ='R',
16976                   fr="Instant associé",
16977                   ang="Instant" ),
16978 #
16979 # 11.5.2.2. La précision du choix de l'instant
16980 #
16981       b_precision = BLOC(condition="(INST != None)",
16982                          fr="Choix de la précision du choix de l'instant",
16983                          ang="Selection for instant choice",
16984 #
16985         PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
16986                          fr="Précision sur le choix de l'instant associé",
16987                          ang="Accuracy over instant choice" ),
16988 #
16989         CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
16990                        fr="Critère de précision sur le choix de l'instant associé",
16991                        ang="Accuracy criterium over instant choice" ),
16992 #
16993       ),
16994 #
16995     ),
16996   ),
16997 #
16998 # 12. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
16999 # 12.1. Nombre de noeuds et éléments
17000 #
17001   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
17002                           fr="Nombre de noeuds et éléments du maillage",
17003                           ang="Number of nodes and éléments in the mesh" ),
17004 #
17005 # 12.2. Determination de la qualité des éléments du maillage
17006 #
17007   QUALITE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17008                           fr="Qualité du maillage",
17009                           ang="Mesh quality" ),
17010 #
17011 # 12.3. Connexite du maillage
17012 #
17013   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17014                           fr="Connexité du maillage.",
17015                           ang="Mesh connexity." ),
17016 #
17017 # 12.4. Taille des sous-domaines du maillage
17018 #
17019   TAILLE         = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17020                           fr="Tailles des sous-domaines du maillage.",
17021                           ang="Sizes of mesh sub-domains." ),
17022 #
17023 # 12.5. Controle de la non-interpenetration des éléments
17024 #
17025   INTERPENETRATION= SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17026                           fr="Controle de la non interpénétration des éléments.",
17027                           ang="Overlapping checking." ),
17028 #
17029 # 13. Gestion des éléments autres que ceux compatibles avec HOMARD
17030 #       "REFUSER" : ils sont refuses (defaut)
17031 #       "IGNORER" : ils sont ignorés
17032 #
17033   ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
17034                              fr="Acceptation d'éléments incompatibles avec HOMARD",
17035                              ang="Incompatible elements for HOMARD" ),
17036 #
17037 ) ;
17038 #& MODIF COMMANDE  DATE 25/09/2006   AUTEUR MJBHHPE J.L.FLEJOU 
17039 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17040 # ======================================================================
17041 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17042 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17043 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17044 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17045 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17046 #
17047 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17048 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17049 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17050 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17051 #
17052 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17053 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17054 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17055 # ======================================================================
17056 # RESPONSABLE F1BHHAJ J.ANGLES
17057 from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops
17058 def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args):
17059   self.type_sdprod(MODELE,modele_sdaster)
17060   if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
17061   if CARA_ELEM  != None:self.type_sdprod(CARA_ELEM,cara_elem)
17062   if FOND_FISS  != None:self.type_sdprod(FOND_FISS,fond_fiss)
17063   if CHARGE     != None:self.type_sdprod(CHARGE,char_meca)
17064   if RESU_THER  != None:self.type_sdprod(RESU_THER,evol_ther)
17065   return evol_noli
17066
17067 MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod,
17068                       fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL",
17069                       reentrant='n',
17070             UIinfo={"groupes":("Outils métier",)},
17071          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
17072
17073          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
17074                                into=("SAIN",
17075                                      "FISS_COUDE",
17076                                      "FISS_AXIS_DEB",
17077                                      "SOUS_EPAIS_COUDE"
17078                                      ) ),
17079
17080          CL_BOL_P2_GV    =FACT(statut='f',
17081            ANGLE           =SIMP(statut='o',typ='R' ),
17082            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
17083          ),
17084
17085          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
17086          MODELE          =SIMP(statut='o',typ=CO,),
17087          CHAM_MATER      =SIMP(statut='f',typ=CO,),
17088          CARA_ELEM       =SIMP(statut='f',typ=CO,),
17089          FOND_FISS       =SIMP(statut='f',typ=CO,),
17090          CHARGE          =SIMP(statut='f',typ=CO,),
17091          RESU_THER       =SIMP(statut='f',typ=CO,),
17092
17093          AFFE_MATERIAU   =FACT(statut='o',max=3,
17094            regles=(UN_PARMI('TOUT','GROUP_MA'),),
17095            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17096            GROUP_MA        =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ),
17097            MATER           =SIMP(statut='o',typ=mater_sdaster ),
17098            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17099          ),
17100
17101          PRES_REP        =FACT(statut='f',
17102            PRES            =SIMP(statut='o',typ='R' ),
17103            EFFE_FOND_P1    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17104            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17105            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17106          ),
17107
17108          ECHANGE         =FACT(statut='f',
17109            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17110            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17111          ),
17112
17113          TORS_P1         =FACT(statut='f',max=6,
17114            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
17115            FX              =SIMP(statut='f',typ='R' ),
17116            FY              =SIMP(statut='f',typ='R' ),
17117            FZ              =SIMP(statut='f',typ='R' ),
17118            MX              =SIMP(statut='f',typ='R' ),
17119            MY              =SIMP(statut='f',typ='R' ),
17120            MZ              =SIMP(statut='f',typ='R' ),
17121            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17122          ),
17123
17124          COMP_INCR       =FACT(statut='f',
17125            RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
17126            VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
17127            RESI_INTE_RELA  =SIMP(statut='f',typ='R'
17128                                 ,defaut= 1.0E-6),
17129            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
17130            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
17131            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17132                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17133          ),
17134
17135          COMP_ELAS       =FACT(statut='f',
17136            RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
17137            ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17138            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17139            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
17140            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
17141            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
17142            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17143                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17144          ),
17145
17146          SOLVEUR         =FACT(statut='d',
17147            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
17148            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
17149              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
17150            ),
17151            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
17152              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
17153            ),
17154            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
17155                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
17156              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
17157              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17158            ),
17159            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
17160              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
17161              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
17162              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
17163              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
17164              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
17165            ),
17166            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17167          ),
17168
17169          CONVERGENCE     =FACT(statut='d',
17170            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
17171            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
17172            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17173            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
17174          ),
17175
17176          NEWTON          =FACT(statut='d',
17177            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
17178            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
17179            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
17180            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
17181            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
17182          ),
17183
17184          RECH_LINEAIRE   =FACT(statut='d',
17185            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
17186            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
17187          ),
17188
17189          INCREMENT       =FACT(statut='o',
17190            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
17191                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
17192            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
17193            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
17194                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
17195            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
17196            INST_INIT       =SIMP(statut='f',typ='R'),
17197            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
17198            INST_FIN        =SIMP(statut='f',typ='R'),
17199            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
17200            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
17201            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
17202               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
17203               defaut="AUCUNE",
17204               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
17205            ),
17206            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
17207              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17208              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
17209                 fr="Coefficient multiplicateur de la 1ère subdivision"),
17210              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
17211                 fr="Nombre de subdivision d'un pas de temps"),
17212              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17213                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17214              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17215                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17216            ),
17217            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
17218              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17219              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
17220                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
17221                 defaut="IGNORE_PREMIERES",
17222                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
17223              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
17224                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
17225              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
17226                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
17227              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
17228                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
17229              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17230                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17231              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17232                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17233              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
17234                 fr="% itération autorisée en plus"),
17235            ),
17236            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
17237          ),
17238
17239          THETA_3D        =FACT(statut='f',max='**',
17240            R_INF           =SIMP(statut='o',typ='R' ),
17241            R_SUP           =SIMP(statut='o',typ='R' ),
17242          ),
17243
17244          IMPR_TABLE      =FACT(statut='f',
17245            regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
17246             PRESENT_PRESENT('TOUT_PARA','ANGLE',    ),
17247             PRESENT_PRESENT('TOUT_PARA','R_CINTR',  ),
17248                    UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
17249            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4,
17250                                  into=("TRESCA_MEMBRANE",
17251                                        "TRESCA_MFLE",
17252                                        "TRESCA",
17253                                        "SI_LONG"
17254                                        "SI_RADI"
17255                                        "SI_CIRC"
17256                                        ) ),
17257            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17258            ANGLE           =SIMP(statut='f',typ='R',max='**' ),
17259            R_CINTR         =SIMP(statut='f',typ='R',max='**' ),
17260            POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
17261            POSI_ANGUL      =SIMP(statut='f',typ='R',max='**' ),
17262            TRANSFORMEE     =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
17263          ),
17264
17265          IMPRESSION      =FACT(statut='f',
17266            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
17267                                  into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
17268                                  
17269            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17270              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17271            ),  
17272
17273            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17274              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17275            ),
17276
17277          ),
17278
17279          TITRE           =SIMP(statut='f',typ='TXM' ),
17280
17281          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
17282 )  ;
17283 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
17284 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17285 # ======================================================================
17286 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17287 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17288 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17289 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17290 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17291 #
17292 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17293 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17294 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17295 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17296 #
17297 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17298 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17299 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17300 # ======================================================================
17301 # RESPONSABLE F1BHHAJ J.ANGLES
17302 from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops
17303 MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster,
17304             fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)",
17305             UIinfo={"groupes":("Outils métier",)},reentrant='n',
17306
17307          regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
17308
17309          EXEC_MAILLAGE   =FACT(statut='o',
17310            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
17311            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
17312            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
17313            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
17314          ),
17315
17316          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
17317
17318          COUDE           =FACT(statut='o',
17319            ANGLE           =SIMP(statut='o',typ='R' ),  
17320            R_CINTR         =SIMP(statut='o',typ='R' ),  
17321            L_TUBE_P1       =SIMP(statut='o',typ='R' ),  
17322            L_TUBE_P2       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
17323            NB_ELEM_EPAIS   =SIMP(statut='f',typ='I',defaut= 3 ),  
17324            SYME            =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ),
17325            TRANSFORMEE     =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
17326            b_transf_coude  =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
17327               DEXT            =SIMP(statut='o',typ='R' ),  
17328               EPAIS           =SIMP(statut='o',typ='R' ),  
17329               SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
17330               BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
17331            ),
17332            b_transf_tube   =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
17333               TRAN_EPAIS      =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
17334               b_trans_epais_oui    =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
17335                       regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
17336                               UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
17337                       DEXT_T1         =SIMP(statut='o',typ='R' ),  
17338                       EPAIS_T1        =SIMP(statut='o',typ='R' ),  
17339                       EPAIS_T2        =SIMP(statut='o',typ='R' ),  
17340                       EPAIS_TI        =SIMP(statut='f',typ='R' ),  
17341                       ANGL_TETA1      =SIMP(statut='o',typ='R' ),  
17342                       ANGL_TETA2      =SIMP(statut='f',typ='R' ),  
17343                       ABSC_CURV_TRAN  =SIMP(statut='f',typ='R' ),  
17344                       POSI_ANGU_TRAN  =SIMP(statut='f',typ='R' ),  
17345               ),
17346               b_trans_epais_non    =BLOC(condition = "TRAN_EPAIS == 'NON' ",
17347                       DEXT            =SIMP(statut='o',typ='R' ),  
17348                       EPAIS           =SIMP(statut='o',typ='R' ),  
17349                       SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
17350                       BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
17351               ),
17352            ),
17353          ),
17354
17355          SOUS_EPAIS_COUDE=FACT(statut='f',
17356            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
17357                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
17358            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
17359            AXE_CIRC        =SIMP(statut='f',typ='R' ),  
17360            AXE_LONGI       =SIMP(statut='o',typ='R' ),  
17361            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
17362            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
17363            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
17364            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
17365            AZIMUT          =SIMP(statut='f',typ='R' ),  
17366            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
17367            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
17368            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
17369            NB_ELEM_RADI    =SIMP(statut='f',typ='I',defaut= 3 ),  
17370            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17371          ),
17372
17373          SOUS_EPAIS_MULTI=FACT(statut='f',max='**',
17374            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
17375                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
17376            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
17377            AXE_CIRC        =SIMP(statut='f',typ='R' ),  
17378            AXE_LONGI       =SIMP(statut='o',typ='R' ),  
17379            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
17380            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
17381            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
17382            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
17383            AZIMUT          =SIMP(statut='f',typ='R' ),  
17384            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
17385            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
17386            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
17387            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17388          ),
17389
17390          FISS_COUDE      =FACT(statut='f',
17391            regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
17392            AXIS            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),  
17393            b_axis_non    =BLOC(condition = "AXIS == 'NON' ",
17394                    LONGUEUR        =SIMP(statut='o',typ='R' ),  
17395            ),
17396            b_axis_oui    =BLOC(condition = "AXIS == 'OUI' ",
17397                    LONGUEUR        =SIMP(statut='f',typ='R' ),  
17398            ),
17399            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
17400            ABSC_CURV       =SIMP(statut='f',typ='R' ),  
17401            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
17402            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
17403            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),  
17404            ORIEN           =SIMP(statut='o',typ='R',
17405                                  into=(45.,-45.,90.,0.E+0) ),
17406            NB_TRANCHE      =SIMP(statut='o',typ='I' ),  
17407            NB_SECTEUR      =SIMP(statut='o',typ='I' ),  
17408            NB_COURONNE     =SIMP(statut='o',typ='I' ),  
17409            RAYON_TORE      =SIMP(statut='f',typ='R' ),  
17410            COEF_MULT_RC2   =SIMP(statut='f',typ='R',defaut= 1. ),  
17411            COEF_MULT_RC3   =SIMP(statut='f',typ='R' ),  
17412            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.5 ),  
17413          ),
17414
17415          IMPRESSION      =FACT(statut='f',max='**',
17416            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
17417            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",   
17418                                  into=("ASTER","IDEAS","CASTEM") ),
17419            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17420              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17421            ),  
17422            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17423              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17424            ),
17425            FICHIER         =SIMP(statut='f',typ='TXM' ),  
17426            UNITE           =SIMP(statut='f',typ='I' ),  
17427          ),
17428
17429          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
17430 )  ;
17431 #& MODIF COMMANDE  DATE 25/09/2006   AUTEUR MJBHHPE J.L.FLEJOU 
17432 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17433 # ======================================================================
17434 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17435 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17436 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17437 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17438 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17439 #
17440 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17441 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17442 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17443 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17444 #
17445 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17446 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17447 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17448 # ======================================================================
17449 # RESPONSABLE F1BHHAJ J.ANGLES
17450 from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops
17451
17452 def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args):
17453   if MODELE      != None:self.type_sdprod(MODELE,modele_sdaster)
17454   if CHAM_MATER  != None:self.type_sdprod(CHAM_MATER,cham_mater)
17455   if CARA_ELEM   != None:self.type_sdprod(CARA_ELEM,cara_elem)
17456   if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
17457   if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
17458   if CHARGE      != None:self.type_sdprod(CHARGE,char_meca)
17459   if RESU_THER   != None:self.type_sdprod(RESU_THER,evol_ther)
17460   return evol_noli
17461
17462 MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod,
17463             fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ",
17464             UIinfo={"groupes":("Outils métier",)},reentrant='n',
17465          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
17466
17467          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
17468                                into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
17469                                      "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
17470
17471          TUBULURE        =FACT(statut='o',
17472            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
17473          ),
17474          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
17475          MODELE          =SIMP(statut='f',typ=CO,),
17476          CHAM_MATER      =SIMP(statut='f',typ=CO,),
17477          CARA_ELEM       =SIMP(statut='f',typ=CO,),
17478          FOND_FISS_1     =SIMP(statut='f',typ=CO,),
17479          FOND_FISS_2     =SIMP(statut='f',typ=CO,),
17480          CHARGE          =SIMP(statut='f',typ=CO,),
17481          RESU_THER       =SIMP(statut='f',typ=CO,),
17482
17483          AFFE_MATERIAU   =FACT(statut='o',max=3,
17484            regles=(UN_PARMI('TOUT','GROUP_MA'),),
17485            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
17486            GROUP_MA        =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
17487            MATER           =SIMP(statut='o',typ=mater_sdaster),
17488            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17489            RCCM            =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
17490          ),
17491
17492          EQUILIBRE       =FACT(statut='o',
17493            NOEUD           =SIMP(statut='o',typ=no),
17494          ),
17495
17496          PRES_REP        =FACT(statut='o',
17497            PRES            =SIMP(statut='o',typ='R'),
17498            NOEUD           =SIMP(statut='f',typ=no),
17499            EFFE_FOND       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
17500            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17501            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17502          ),
17503
17504          ECHANGE         =FACT(statut='f',
17505            COEF_H_TUBU     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17506            COEF_H_CORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17507            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17508          ),
17509
17510          TORS_CORP       =FACT(statut='f',max=6,
17511            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
17512            NOEUD           =SIMP(statut='o',typ=no),
17513            FX              =SIMP(statut='f',typ='R'),
17514            FY              =SIMP(statut='f',typ='R'),
17515            FZ              =SIMP(statut='f',typ='R'),
17516            MX              =SIMP(statut='f',typ='R'),
17517            MY              =SIMP(statut='f',typ='R'),
17518            MZ              =SIMP(statut='f',typ='R'),
17519            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17520          ),
17521
17522          TORS_TUBU       =FACT(statut='f',max=6,
17523            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
17524            FX              =SIMP(statut='f',typ='R'),
17525            FY              =SIMP(statut='f',typ='R'),
17526            FZ              =SIMP(statut='f',typ='R'),
17527            MX              =SIMP(statut='f',typ='R'),
17528            MY              =SIMP(statut='f',typ='R'),
17529            MZ              =SIMP(statut='f',typ='R'),
17530            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17531          ),
17532
17533          COMP_INCR       =FACT(statut='f',
17534            RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
17535            VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
17536            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-6),
17537            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17538            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut=0),
17539            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17540                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17541          ),
17542
17543          COMP_ELAS       =FACT(statut='f',
17544            RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
17545            ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17546            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17547            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
17548            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
17549            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
17550            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17551                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17552          ),
17553
17554          THETA_3D        =FACT(statut='f',max='**',
17555            R_INF           =SIMP(statut='o',typ='R'),
17556            R_SUP           =SIMP(statut='o',typ='R'),
17557          ),
17558
17559          OPTION          =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ),
17560          BORNES          =FACT(statut='f',max='**',
17561            NUME_ORDRE      =SIMP(statut='o',typ='I'),
17562            VALE_MIN        =SIMP(statut='o',typ='R'),
17563            VALE_MAX        =SIMP(statut='o',typ='R'),
17564          ),
17565
17566          SOLVEUR         =FACT(statut='d',
17567            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
17568            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
17569              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
17570            ),
17571            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
17572              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
17573            ),
17574            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
17575                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
17576              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
17577              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17578            ),
17579            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
17580              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
17581              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
17582              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
17583              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
17584              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
17585            ),
17586            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17587          ),
17588
17589          CONVERGENCE     =FACT(statut='d',
17590            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
17591            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
17592            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17593            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
17594          ),
17595
17596          NEWTON          =FACT(statut='d',
17597            REAC_INCR       =SIMP(statut='f',typ='I',defaut=1),
17598            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")),
17599            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")),
17600            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
17601          ),
17602
17603          RECH_LINEAIRE   =FACT(statut='d',
17604            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-3),
17605            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut=3),
17606          ),
17607
17608          INCREMENT       =FACT(statut='o',
17609            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
17610                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
17611            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
17612            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
17613                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
17614            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
17615            INST_INIT       =SIMP(statut='f',typ='R'),
17616            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
17617            INST_FIN        =SIMP(statut='f',typ='R'),
17618            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
17619            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
17620            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
17621               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
17622               defaut="AUCUNE",
17623               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
17624            ),
17625            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
17626              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17627              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
17628                 fr="Coefficient multiplicateur de la 1ère subdivision"),
17629              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
17630                 fr="Nombre de subdivision d'un pas de temps"),
17631              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17632                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17633              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17634                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17635            ),
17636            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
17637              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17638              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
17639                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
17640                 defaut="IGNORE_PREMIERES",
17641                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
17642              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
17643                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
17644              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
17645                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
17646              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
17647                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
17648              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17649                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17650              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17651                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17652              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
17653                 fr="% itération autorisée en plus"),
17654            ),
17655            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
17656          ),
17657
17658          PAS_AZIMUT      =SIMP(statut='f',typ='I',defaut=1),
17659
17660          IMPRESSION      =FACT(statut='f',
17661            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
17662                                  into=("RESULTAT","ASTER","CASTEM","IDEAS")),
17663                                  
17664            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17665              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17666            ),  
17667
17668            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17669              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17670            ),
17671
17672            b_extrac        =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
17673                                  fr="extraction d un champ de grandeur",
17674              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
17675              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,
17676                                    into=("DEPL","EQUI_ELNO_SIGM","TEMP")),
17677              
17678              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17679              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17680              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
17681            ),      
17682          ),
17683
17684          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
17685
17686          TITRE           =SIMP(statut='f',typ='TXM'),
17687 )
17688 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
17689 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17690 # ======================================================================
17691 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17692 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17693 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17694 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17695 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17696 #
17697 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17698 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17699 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17700 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17701 #
17702 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17703 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17704 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17705 # ======================================================================
17706 # RESPONSABLE F1BHHAJ J.ANGLES
17707
17708 from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops
17709
17710 MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n',
17711             fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)",
17712             UIinfo={"groupes":("Outils métier",)},
17713
17714          EXEC_MAILLAGE   =FACT(statut='o',
17715            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")),
17716            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
17717            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
17718            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
17719          ),
17720
17721          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
17722
17723          RAFF_MAIL       =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
17724
17725          TUBULURE        =FACT(statut='o',
17726            E_BASE          =SIMP(statut='o',typ='R'),  
17727            DEXT_BASE       =SIMP(statut='o',typ='R'),  
17728            L_BASE          =SIMP(statut='o',typ='R'),  
17729            L_CHANF         =SIMP(statut='o',typ='R'),  
17730            E_TUBU          =SIMP(statut='o',typ='R'),  
17731            DEXT_TUBU       =SIMP(statut='o',typ='R'),  
17732            Z_MAX           =SIMP(statut='o',typ='R'),  
17733            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
17734            L_PENETR        =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
17735          ),
17736
17737          SOUDURE         =FACT(statut='o',
17738            H_SOUD          =SIMP(statut='o',typ='R'),  
17739            ANGL_SOUD       =SIMP(statut='o',typ='R'),  
17740            JEU_SOUD        =SIMP(statut='o',typ='R'),  
17741          ),
17742
17743          CORPS           =FACT(statut='o',
17744            E_CORP          =SIMP(statut='o',typ='R'),  
17745            DEXT_CORP       =SIMP(statut='o',typ='R'),  
17746            X_MAX           =SIMP(statut='o',typ='R'),  
17747          ),
17748
17749          FISS_SOUDURE    =FACT(statut='f',
17750            TYPE            =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
17751            AXIS            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
17752            PROFONDEUR      =SIMP(statut='o',typ='R'),  
17753            LONGUEUR        =SIMP(statut='f',typ='R'),  
17754            AZIMUT          =SIMP(statut='o',typ='R'),  
17755            RAYON_TORE      =SIMP(statut='f',typ='R'),  
17756            POSITION        =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
17757            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
17758            LIGA_INT        =SIMP(statut='f',typ='R'),  
17759            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
17760            COEF_MULT_RC1   =SIMP(statut='f',typ='R'),  
17761            COEF_MULT_RC2   =SIMP(statut='f',typ='R'),  
17762            COEF_MULT_RC3   =SIMP(statut='f',typ='R'),  
17763            NB_TRANCHE      =SIMP(statut='f',typ='I'),  
17764            NB_SECTEUR      =SIMP(statut='f',typ='I'),  
17765            NB_COURONNE     =SIMP(statut='f',typ='I'),  
17766          ),
17767
17768          IMPRESSION      =FACT(statut='f',max='**',
17769            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
17770            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
17771
17772            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17773              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17774            ),  
17775
17776            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17777              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17778            ),
17779            FICHIER         =SIMP(statut='f',typ='TXM'),  
17780            UNITE           =SIMP(statut='f',typ='I'),  
17781          ),
17782
17783          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
17784 )  ;
17785 #& MODIF COMMANDE  DATE 25/09/2006   AUTEUR MJBHHPE J.L.FLEJOU 
17786 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17787 # ======================================================================
17788 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
17789 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17790 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17791 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17792 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17793 #                                                                       
17794 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17795 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17796 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17797 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17798 #                                                                       
17799 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17800 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17801 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17802 # ======================================================================
17803
17804 from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops
17805    
17806 def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER,
17807                          CHAR_THER,CHAR_MECA,RESU_THER,**args):
17808   if MODELE_THER != None:
17809    self.type_sdprod(MODELE_THER,modele_sdaster)   
17810   if MODELE_MECA != None:
17811    self.type_sdprod(MODELE_MECA,modele_sdaster)  
17812   if RESU_THER != None:
17813    self.type_sdprod(RESU_THER,evol_ther)     
17814   if CHAM_MATER != None:
17815    self.type_sdprod(CHAM_MATER,cham_mater)     
17816   if CHAR_THER != None: 
17817     for m in CHAR_THER:
17818       self.type_sdprod(m['CHARGE'],char_ther)
17819   if CHAR_MECA != None: 
17820     for m in CHAR_MECA:
17821       self.type_sdprod(m['CHARGE'],char_meca)
17822   return evol_noli
17823
17824
17825 MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
17826                       op=macr_cabri_calc_ops,
17827                       sd_prod=macr_cabri_calc_prod,
17828                       fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie",
17829                       reentrant='n',
17830                       UIinfo={"groupes":("Outils métier",)},
17831                       MAILLAGE   = SIMP(statut='o',typ=maillage_sdaster,),
17832                       AFFE_MATERIAU = FACT(statut='o',max='**',
17833                         regles=(UN_PARMI('TOUT','GROUP_MA',),),
17834                         TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
17835                         GROUP_MA = SIMP(statut='f',typ='TXM',into=(
17836                                                                   "BRIDE",
17837                                                                   "GOUJON",
17838                                                                   "ROND",
17839                                                                   "ECROU",
17840                                                                   "JOINT",) ),
17841                         MATER    = SIMP(statut='o',typ=mater_sdaster),
17842                         TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
17843                       ),                      
17844                       CHAM_MATER = SIMP(statut = 'f',typ=CO,),
17845                       MODELE_THER= SIMP(statut = 'f',typ=CO,),
17846                       
17847                       DEFI_CHAR_THER = FACT(statut ='d',
17848                         TEMP_INIT     = SIMP(statut='d',typ='R',defaut= 25.,),
17849                         COEF_H_FLUI   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17850                         TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17851                         COEF_H_AIR    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17852                         TEMP_EXT_AIR  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17853                         LIST_INST     = SIMP(statut='f',typ=listr8_sdaster),
17854                       ),                      
17855                       
17856                       CHAR_THER  = FACT(statut = 'f',max=4,
17857                         CHARGE    = SIMP(statut='o',typ=CO),
17858                         TYPE      = SIMP(statut='o',typ='TXM',
17859                                  into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
17860                                        "BRIDE_JOINT"),)
17861                                        ),
17862
17863                       RESU_THER  = SIMP(statut = 'f',typ=CO,),                                       
17864
17865                                        
17866                       MODELE_MECA= SIMP(statut = 'f',typ=CO,),
17867
17868                       DEFI_CHAR_MECA   = FACT(statut='o',
17869                         PRETENS    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17870                         PRES_REP   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17871                         EFFE_FOND  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
17872                       ),                                                             
17873
17874                       CHAR_MECA  = FACT(statut = 'f',max=11,
17875                         CHARGE    = SIMP(statut='o',typ=CO),
17876                         TYPE      = SIMP(statut='o',typ='TXM',
17877                                  into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT",
17878                                        "BLOC_LAT_ALES","BLOC_LAT_NALES",
17879                                        "PLAN_TUBE",
17880                                        "PRES_FLU","EFFET_FOND",
17881                                        "CONT_JOINT",
17882                                        "DEFO_THER",
17883                                        "SERR_ECROU_1","SERR_ECROU_2",),)
17884                                        ),
17885                      
17886                       RELATION = SIMP(statut='f',typ='TXM',
17887                                        into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
17888                         
17889                       SOLVEUR   = FACT(statut='d',
17890                         METHODE  = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ),
17891                         b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
17892                            fr="Paramètres de la méthode multi frontale",
17893                            RENUM           = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
17894                            NPREC           = SIMP(statut='d',typ='I',defaut=8),
17895                            STOP_SINGULIER  = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17896                            ),                 
17897                       ),                                             
17898                       INCREMENT = FACT(statut='f',
17899                         regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
17900                                 EXCLUS('NUME_INST_FIN','INST_FIN'),),
17901                         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
17902                         EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
17903                                  into=("CHRONOLOGIQUE",) ),                                 
17904                         NUME_INST_INIT  =SIMP(statut='f',typ='I'),
17905                         INST_INIT       =SIMP(statut='f',typ='R'),
17906                         NUME_INST_FIN   =SIMP(statut='f',typ='I'),
17907                         INST_FIN        =SIMP(statut='f',typ='R'),
17908                         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
17909            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
17910            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
17911               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
17912               defaut="AUCUNE",
17913               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
17914            ),
17915            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
17916              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17917              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
17918                 fr="Coefficient multiplicateur de la 1ère subdivision"),
17919              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
17920                 fr="Nombre de subdivision d'un pas de temps"),
17921              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17922                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17923              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17924                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17925            ),
17926            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
17927              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17928              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
17929                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
17930                 defaut="IGNORE_PREMIERES",
17931                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
17932              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
17933                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
17934              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
17935                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
17936              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
17937                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
17938              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17939                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17940              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17941                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17942              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
17943                 fr="% itération autorisée en plus"),
17944            ),
17945            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
17946                         OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
17947                         NOM_CHAM        =SIMP(statut='f',typ='TXM',),
17948                         NOM_CMP         =SIMP(statut='f',typ='TXM',),
17949                         VALE            =SIMP(statut='f',typ='R'),
17950                       ),
17951                       NEWTON          =FACT(statut='d',
17952                         REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
17953                         PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
17954                         MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
17955                         PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
17956                         REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
17957                         EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
17958                       ),
17959                       RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17960                                 into=("IMPLICITE",)),
17961                       CONVERGENCE     =FACT(statut='d',
17962                         regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
17963                         SIGM_REFE       =SIMP(statut='f',typ='R'),
17964                         EPSI_REFE       =SIMP(statut='f',typ='R'),
17965                         FLUX_THER_REFE  =SIMP(statut='f',typ='R'),        
17966                         RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
17967                         RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
17968                         RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
17969                         ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17970                         ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
17971                       ),
17972                      );
17973
17974 #& MODIF COMMANDE  DATE 07/02/2005   AUTEUR MABBAS M.ABBAS 
17975 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17976 # ======================================================================
17977 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
17978 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17979 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17980 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17981 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17982 #                                                                       
17983 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17984 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17985 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17986 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17987 #                                                                       
17988 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17989 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17990 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17991 # ======================================================================
17992
17993 from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops
17994
17995 MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL",
17996                       op=macr_cabri_mail_ops,
17997                       sd_prod=maillage_sdaster,
17998                       fr="maillage d'une jonction boulonnée de tuyauterie",
17999                       reentrant='n',
18000                       UIinfo={"groupes":("Outils métier",)},
18001                       EXEC_MAILLAGE = FACT(statut='o',
18002                         LOGICIEL      = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),),
18003                         UNITE_DATG    = SIMP(statut = 'f',typ='I',defaut=70,),
18004                         UNITE_MGIB    = SIMP(statut = 'f',typ='I',defaut=19,),
18005                         NIVE_GIBI     = SIMP(statut = 'f',typ='I',defaut=10,
18006                                           into = (3,4,5,6,7,8,9,10,11),
18007                                             ),
18008                                           ),
18009                       RAFF_MAILLAGE   = FACT(statut = 'd',
18010                         NB_RADIAL    = SIMP(statut = 'f',typ='I',defaut=2,),
18011                         NB_CIRCONF   = SIMP(statut = 'f',typ='I',defaut=3,),
18012                         NB_VERTICAL  = SIMP(statut = 'f',typ='I',defaut=6,),
18013                         NB_ALESAGE   = SIMP(statut = 'f',typ='I',defaut=5,),
18014                                           ),
18015                       VERI_MAIL     = FACT(statut='d',
18016                         VERIF         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
18017                         APLAT         = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
18018                                           ),                                          
18019                       GEOM_BRID     = FACT(statut = 'o',
18020                         NORME         = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),),
18021                         b_bride_iso   = BLOC(condition = "NORME == 'OUI'",
18022                           TYPE           = SIMP(statut='o',typ='TXM',
18023                                                 into=('A','AA','B','B1','C','D','D1','E','F',
18024                                                       'FF','G','GG','H','H1','I','J','J1',
18025                                                       'K','L','L1','M','N','O','P','S','T','W'), 
18026                                                ),
18027                                             ),
18028                         b_bride_niso  = BLOC(condition = "NORME == 'NON'",
18029                           TUBU_D_EXT     = SIMP(statut='o',typ='R',),
18030                           TUBU_H         = SIMP(statut='o',typ='R',),
18031                           BRID_D_EXT     = SIMP(statut='o',typ='R',),
18032                           BRID_D_INT     = SIMP(statut='o',typ='R',),
18033                           BRID_H         = SIMP(statut='o',typ='R',),
18034                           BRID_D_CONGE   = SIMP(statut='o',typ='R',),
18035                           BRID_R_CONGE   = SIMP(statut='o',typ='R',),
18036                           BRID_D_EPAUL   = SIMP(statut='o',typ='R',),
18037                           BRID_H_EPAUL   = SIMP(statut='o',typ='R',),
18038                           BRID_D_ALESAG  = SIMP(statut='o',typ='R',),
18039                           BRID_P_ALESAG  = SIMP(statut='o',typ='R',),
18040                           BRID_H_ALESAG  = SIMP(statut='o',typ='R',),
18041                           GOUJ_N_GOUJON  = SIMP(statut='o',typ='I',),
18042                           GOUJ_D_GOUJON  = SIMP(statut='o',typ='R',),
18043                           GOUJ_E_FILET   = SIMP(statut='o',typ='R',),
18044                           GOUJ_D_RONDEL  = SIMP(statut='o',typ='R',),
18045                           GOUJ_E_RONDEL  = SIMP(statut='o',typ='R',),
18046                           GOUJ_D_ECROU   = SIMP(statut='o',typ='R',),
18047                           GOUJ_E_ECROU   = SIMP(statut='o',typ='R',),
18048                           ETAN_E_JOINT   = SIMP(statut='o',typ='R',),
18049                                             ),
18050                                          ),
18051                       IMPRESSION    = FACT(statut='d',
18052                         UNITE          = SIMP(statut='f',typ='I'),
18053                         FORMAT         = SIMP(statut='f',typ='TXM',defaut="ASTER",    
18054                                               into=("ASTER","CASTEM","IDEAS"),
18055                                              ),
18056                         b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'",
18057                           NIVE_GIBI      = SIMP(statut='f',typ='I',defaut=10,into=(3,10),),
18058                                             ),
18059                         b_impr_ideas  = BLOC(condition = "FORMAT == 'IDEAS'",
18060                           VERSION        = SIMP(statut='f',typ='I',defaut=5,into=(4,5),),
18061                                             ),
18062                                           ),
18063                      );
18064
18065 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
18066 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18067 # ======================================================================
18068 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
18069 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18070 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18071 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18072 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18073 #                                                                       
18074 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18075 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18076 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18077 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18078 #                                                                       
18079 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18080 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18081 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18082 # ======================================================================
18083 # RESPONSABLE JMBHH01 J.M.PROIX
18084
18085 from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops
18086
18087 MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster,
18088                        reentrant='n',
18089           UIinfo={"groupes":("Modélisation",)},
18090           fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
18091           regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
18092                   EXCLUS('SYME_Y','GROUP_MA_BORD'),),
18093                  
18094           UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 20 ),  
18095           ORIG_INER       =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
18096                                 fr="Point par rapport auquel sont calculées les inerties"),  
18097           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18098          
18099           SYME_X          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"),
18100           SYME_Y          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"),
18101          
18102           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
18103           fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
18104           
18105           GROUP_MA_BORD   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
18106                                fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
18107          
18108                b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
18109                             fr=" calcul des carac. mecaniques",
18110
18111                     NOEUD           =SIMP(statut='f',typ=no,max='**',
18112                     fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
18113                     GROUP_MA_INTE   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
18114                     fr="groupes de mailles linéiques bordant des trous dans la section"),
18115                     ),
18116                     
18117                b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
18118                            fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
18119                             regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
18120                             LONGUEUR        =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"),  
18121                             MATERIAU        =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"),
18122                             LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
18123                             fr="type de conditions aux limites sur le plancher supérieur" ),
18124                               ), 
18125                     )
18126 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
18127 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18128 # ======================================================================
18129 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
18130 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18131 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18132 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18133 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18134 #                                                                       
18135 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18136 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18137 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18138 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18139 #                                                                       
18140 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18141 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18142 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18143 # ======================================================================
18144
18145
18146 from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops
18147
18148 def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
18149   self.type_sdprod(RESULTAT,AsType(RESU_INIT))   
18150   self.type_sdprod(MAILLAGE,maillage_sdaster)
18151   return None
18152
18153
18154 MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n',
18155              UIinfo={"groupes":("Post traitements",)},
18156              fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation",
18157                     
18158
18159              # SD résultat ,modèle et champs à "éclater" :
18160              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
18161              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
18162              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
18163                                    into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
18164                                    
18165              # paramètres numériques de la commande :
18166              SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
18167              TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
18168              
18169              # concepts produits par la commande :
18170              RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
18171              MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
18172                      
18173              # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :           
18174              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18175              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
18176              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
18177              
18178              # Sélection des numéros d'ordre :
18179              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
18180              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
18181              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
18182              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
18183              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18184              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
18185              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
18186              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
18187             )
18188 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
18189 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18190 # ======================================================================
18191 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18192 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18193 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18194 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18195 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18196 #
18197 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18198 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18199 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18200 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18201 #
18202 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18203 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18204 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18205 # ======================================================================
18206 MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
18207                     fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique",
18208                     reentrant='n',
18209             UIinfo={"groupes":("Matrices/vecteurs",)},
18210          regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
18211          BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
18212          MATR_RIGI       =SIMP(statut='f',typ=matr_asse_depl_r ),
18213          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
18214          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
18215          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),         
18216          OPTION          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
18217                           "DIAG_MASS") ),
18218 )  ;
18219 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
18220 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18221 # ======================================================================
18222 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18223 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18224 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18225 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18226 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18227 #
18228 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18229 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18230 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18231 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18232 #
18233 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18234 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18235 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18236 # ======================================================================
18237 MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f',
18238             UIinfo={"groupes":("Matrices/vecteurs",)},
18239                     fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration",
18240         regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),
18241                 ENSEMBLE('DEFINITION','EXTERIEUR'),),
18242          DEFINITION      =FACT(statut='f',
18243            regles=(PRESENT_PRESENT('PROJ_MESU','MODE_MESURE'),),
18244            MODELE          =SIMP(statut='o',typ=modele_sdaster),
18245            CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
18246            CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
18247            CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
18248            INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
18249            NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),
18250            NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),
18251            PROJ_MESU       =SIMP(statut='f',typ=(mode_gene,tran_gene,harm_gene),max=1),
18252            MODE_MESURE     =SIMP(statut='f',typ=( mode_meca,base_modale) ),
18253          ),
18254          EXTERIEUR       =FACT(statut='f',
18255            regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
18256            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
18257            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
18258          ),
18259          RIGI_MECA       =FACT(statut='f',
18260          ),
18261          MASS_MECA       =FACT(statut='f',
18262          ),
18263          CAS_CHARGE      =FACT(statut='f',max='**',
18264            NOM_CAS         =SIMP(statut='o',typ='TXM'),
18265            SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
18266            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18267            INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
18268          ),
18269
18270 )  ;
18271 #& MODIF COMMANDE  DATE 27/11/2006   AUTEUR GNICOLAS G.NICOLAS 
18272 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18273 # ======================================================================
18274 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
18275 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18276 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18277 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18278 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18279 #                                                                       
18280 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18281 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18282 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18283 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18284 #                                                                       
18285 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18286 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18287 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18288 # ======================================================================
18289 # RESPONSABLE GNICOLAS G.NICOLAS
18290
18291 from Macro.macr_fiabilite_ops import macr_fiabilite_ops
18292
18293 #
18294 #====
18295 # 1. Le retour : une liste de rééls.
18296 #====
18297 #
18298 def macr_fiabilite_prod ( self , **args ):
18299   return listr8_sdaster
18300 #
18301 #====
18302 # 2. L'entete
18303 #====
18304 #
18305 MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops,
18306                          docu="U7.03.31",UIinfo={"groupe":("Post traitements",)},
18307                          sd_prod=macr_fiabilite_prod,
18308                          fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).",
18309                          ang="Fiability mechanics.",
18310 #
18311 #====
18312 # 3. Le niveau d'information
18313 #====
18314 #
18315    INFO           = SIMP(statut="f",typ="I",defaut=1,into=(1,2)),
18316 #
18317 #====
18318 # 4. Nom et Version du logiciel de fiabilité
18319 #====
18320 #
18321    LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO",
18322                    into=("MEFISTO",),
18323                    fr="Nom du logiciel de fiabilité.",
18324                    ang="Fiability software name."),
18325 #
18326    VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2",
18327                   into=("V3_2", "V3_N"),
18328                   fr="Version du logiciel de fiabilité.",
18329                   ang="Fiability software release."),
18330 #
18331 #====
18332 # 5. Les entrees-sorties du calcul ASTER déterministe
18333 #====
18334 #
18335 # 5.1. ==> Le jeu de commandes déterministe
18336 #
18337    UNITE_ESCL = SIMP(statut="o",typ="I",
18338                      fr="Unité logique associée aux commandes du calcul ASTER déterministe.",
18339                      ang="Logical unit for the commands of the ASTER deterministic calculation."),
18340 #
18341 # 5.2. ==> Le destin des messages produits par ASTER
18342 #
18343    MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER",
18344                         into=("AUCUN", "DERNIER", "TOUS"),
18345                         fr="Quels messages ASTER récupérer.",
18346                         ang="Which ASTER messages must be kept."),
18347 #
18348 #====
18349 # 6. Options
18350 #====
18351 # 6.1. ==> Générales
18352 #
18353 # 6.1.1. ==> La valeur du seuil
18354 #
18355    SEUIL = SIMP(statut="o",typ="R",max=1,
18356                 fr="Le seuil de défaillance.",
18357                 ang="Failure threshold."),
18358 #
18359 # 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que
18360 #            la défaillance a lieu au dessus d'un seuil maximum ou
18361 #            en dessous d'un seuil minimum
18362 #
18363    SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1,
18364                      into=("MINIMUM","MAXIMUM"),
18365                      fr="Que faut-il ne pas dépasser : un maximum ou un minimum.",
18366                      ang="What is the failure threshold : maximum or minimum."),
18367 #
18368 # 6.2. ==> Pour MEFISTO
18369 #
18370 ### en attente de résolution de AL 2004-006 (1/2)   b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'",
18371 #
18372 # 6.2.1. ==> Pilotage de la recherche du point de conception
18373 #
18374      RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI",
18375                             into=("OUI","NON"),
18376                             fr="Pour trouver le point de conception.",
18377                             ang="To find the design point."),
18378 #
18379      b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
18380 #
18381        EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2,
18382                         fr="Précision du test d'arret sur les points itératifs dans l'espace standard.",
18383                         ang="Precision of stop test for iterative points in standard space."),
18384 #
18385        EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2,
18386                         fr="Précision du test d'arret sur la proximité de la surface d'état limite.",
18387                         ang="Precision of stop test for limit state surface."),
18388 #
18389        TAU       = SIMP(statut="f",typ="R",defaut=5.0E-1,
18390                         fr="Paramètre de la méthode de minimisation.",
18391                         ang="Parameter for the minimization method."),
18392 #
18393        OMEGA     = SIMP(statut="f",typ="R",defaut=1.0E-4,
18394                         fr="Paramètre de la méthode de minimisation.",
18395                         ang="Parameter for the minimization method."),
18396 #
18397        ITER_MAX  = SIMP(statut="f",typ="I",defaut=50,
18398                         fr="Nombre maximum d'itérations.",
18399                         ang="Maximum number of iterations."),
18400      ),
18401 #
18402 # 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance
18403 #
18404      METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI",
18405                          into=("OUI","NON"),
18406                          fr="Recherche de la probabilité de défaillance avec la méthode FORM.",
18407                          ang="Research of failure probability with FORM method."),
18408 #
18409      METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON",
18410                          into=("OUI","NON"),
18411                          fr="Recherche de la probabilité de défaillance avec la méthode SORM.",
18412                          ang="Research of failure probability with SORM method."),
18413 #
18414      TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON",
18415                               into=("OUI","NON"),
18416                               fr="Recherche de la probabilité de défaillance avec le tirage d'importance.",
18417                               ang="Research of failure probability with ."),
18418 #
18419      b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'",
18420 #
18421        NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3,
18422                             fr="Nombre de simulations pour le tirage d'importance.",
18423                             ang="Number of simulation for."),
18424 #
18425      ),
18426 #
18427 # 6.2.3. ==> Création d'une surface de réponse polynomiale
18428 #
18429      POLYNOME_TAYLOR   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),),
18430      HGRAD             = SIMP(statut="f",typ="R",defaut=1.0E-2,
18431                               fr="Pas incrémental pour le calcul des gradients.",
18432                               ang="Step for calculation of gradients."),
18433      HHESS             = SIMP(statut="f",typ="R",defaut=1.0E-2,
18434                               fr="Pas incrémental pour le calcul des dérivées secondes.",
18435                               ang="Step for calculation of second derivatives."),
18436 #
18437 # 6.2.4. ==> Recherche d'un plan d'expérience
18438 #
18439      PLAN_EXPERIENCE   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18440                               fr="Construction d'un plan d'expérience.",
18441                               ang="Construction of an experiment plan."),
18442 #
18443      b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
18444 #
18445        ALPHA         = SIMP(statut="f",typ="R",defaut=2.0E-1,
18446                             fr="Plan d'expérience : maille du plan de type composite centré.",
18447                             ang="Experiment plane : mesh centered composite."),
18448 #
18449        BETA          = SIMP(statut="f",typ="R",defaut=4.0E-1,
18450                             fr="Plan d'expérience : maille du plan de type factoriel.",
18451                             ang="Experiment plane : mesh factor."),
18452 #
18453      ),
18454 #
18455 # 6.2.5. ==> Les tests
18456 # 6.2.5.1. ==> Test de la sphere
18457 #
18458      T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18459                      fr="Test de la sphère.",
18460                      ang="Sphere test."),
18461 #
18462      b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
18463 #
18464        METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
18465                            into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
18466                            fr="Type de méthode.",
18467                            ang="Method."),
18468 #
18469        NB_POINT     = SIMP(statut="f",typ="I",max=1,defaut=60,
18470                            fr="Nombre de points de la sphere.",
18471                            ang="Number of points over the sphere.")
18472      ),
18473 #
18474 # 6.2.5.2. ==> Test du maximum fort
18475 #
18476      T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18477                            fr="Test du maximum fort.",
18478                            ang="Strong maximum test."),
18479 #
18480      b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
18481 #
18482        COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0,
18483                       fr="Cosinus de l'angle d'exclusion.",
18484                       ang="Cosine of angle of exclusion."),
18485 #
18486        DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
18487                       fr="Fraction d'iso-densité de probabilité de défaillance.",
18488                       ang="Fraction.")
18489 #
18490      ),
18491 #
18492 # 6.2.5.3. ==> Test du hessien
18493 #
18494      T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18495                       fr="Test du hessien.",
18496                       ang="Hessian test."),
18497 #
18498 # 6.2.6. ==> Les correlations entre les variables
18499 #
18500      MATRICE = SIMP(statut="f",typ="R",max="**",
18501                     fr="Matrice de corrélation entre les variables.",
18502                     ang="Correlation matrix."), 
18503 #
18504 ### en attente de résolution de AL 2004-006 (2/2)   ),
18505 #
18506 #====
18507 # 7. Definition des paramètres
18508 #====
18509 #
18510    VARIABLE = FACT(statut="o",min=1,max="**",
18511 #
18512 # 7.1. ==> Nom de la variable
18513 #
18514        NOM = SIMP(statut="o",typ="TXM",
18515                   fr="Nom de la variable, identique au nom de concept PARA_SENSI.",
18516                   ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."),
18517 #
18518 # 7.2. ==> Loi de distribution
18519 #
18520        LOI = SIMP(statut="o",typ="TXM",
18521                   into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
18522                   fr="Choix de la loi",
18523                   ang="Law."),
18524 #
18525 # 7.2.1. ==> Loi normale
18526 #
18527        b_normale=BLOC(condition="LOI=='NORMALE'",
18528 #
18529          VALE_MOY   = SIMP(statut="o",typ="R",max=1,
18530                                fr="Valeur moyenne.",
18531                                ang="Mean value."),
18532 #
18533          ECART_TYPE = SIMP(statut="o",typ="R",max=1,
18534                                fr="Ecart type.",
18535                                ang="Standard deviation."),
18536 #
18537        ),
18538 #
18539 # 7.2.2. ==> Loi lognormale
18540 #
18541        b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
18542 #
18543          VALE_MIN       = SIMP(statut="o",typ="R",max=1,
18544                                    fr="Valeur minimale.",
18545                                    ang="Minimal value."),
18546 #
18547          VALE_MOY       = SIMP(statut="f",typ="R",max=1,
18548                                    fr="Valeur moyenne dans l'espace de la loi normale.",
18549                                    ang="Mean value in the space of the normal law."),
18550 #
18551          ECART_TYPE     = SIMP(statut="f",typ="R",max=1,
18552                                    fr="Ecart type dans l'espace de la loi normale.",
18553                                    ang="Standard deviation in the space of the normal law."),
18554 #
18555          VALE_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
18556                                    fr="Valeur moyenne dans l'espace physique.",
18557                                    ang="Mean value in the physical space."),
18558 #
18559          ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
18560                                    fr="Ecart type dans l'espace physique.",
18561                                    ang="Standard deviation in the physical space."),
18562 #
18563          regles=(AU_MOINS_UN("VALE_MOY"  ,"VALE_MOY_PHY"),
18564                  AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"),
18565                  EXCLUS  ("VALE_MOY"  ,"VALE_MOY_PHY"),
18566                  EXCLUS  ("VALE_MOY"  ,"ECART_TYPE_PHY"),
18567                  EXCLUS  ("ECART_TYPE","VALE_MOY_PHY"),
18568                  EXCLUS  ("ECART_TYPE","ECART_TYPE_PHY")),
18569 #
18570        ),
18571 #
18572 # 7.2.3. ==> Loi uniforme
18573 #
18574        b_uniforme=BLOC(condition="LOI=='UNIFORME'",
18575 #
18576          VALE_MIN = SIMP(statut="o",typ="R",max=1,
18577                              fr="Valeur minimale.",
18578                              ang="Minimal value."),
18579 #
18580          VALE_MAX = SIMP(statut="o",typ="R",max=1,
18581                              fr="Valeur maximale.",
18582                              ang="Maximal value."),
18583 #
18584        ),
18585 #
18586 # 7.2.4. ==> Loi normale tronquée
18587 #
18588        b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
18589 #
18590          VALE_MOY   = SIMP(statut="o",typ="R",max=1,
18591                                fr="Valeur moyenne de la loi normale complète.",
18592                                ang="Mean value for the entire normal law."),
18593 #
18594          ECART_TYPE = SIMP(statut="o",typ="R",max=1,
18595                                fr="Ecart type de la loi normale complète.",
18596                                ang="Standard deviation for the entire normal law."),
18597 #
18598          VALE_MIN   = SIMP(statut="o",typ="R",max=1,
18599                                fr="Valeur minimale.",
18600                                ang="Minimal value."),
18601 #
18602          VALE_MAX   = SIMP(statut="o",typ="R",max=1,
18603                                fr="Valeur maximale.",
18604                                ang="Maximal value."),
18605 #
18606        ),
18607 #
18608 # 7.3. ==> Paramètres de calcul
18609 # 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
18610 #
18611        regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
18612                EXCLUS("POINT_REF","POINT_CONCEPT"),),
18613 #
18614 # 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme.
18615 #            Si on ne le fait pas, le programme prendra la valeur moyenne.
18616 #
18617        POINT_INI = SIMP(statut="f",typ="R",max=1,
18618                           fr="Point de démarrage de l'algorithme itératif.",
18619                           ang="Initial point for iterative process."),
18620 #
18621 # 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser.
18622 #            Si on ne le fait pas, le programme prendra la valeur moyenne.
18623 #
18624        POINT_REF = SIMP(statut="f",typ="R",max=1,
18625                           fr="Point de référence de l'algorithme itératif.",
18626                           ang="Reference point for iterative process."),
18627 #
18628 # 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
18629 #
18630        POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
18631                               fr="Point de conception.",
18632                               ang="Design point."),
18633 #
18634 # 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
18635 #
18636        GRADIENT = SIMP(statut="o",typ="TXM",max=1,
18637                            into=("OUI","NON"),
18638                            fr="ASTER calcule directement le gradient.",
18639                        ang="ASTER computes the gradient for this parameter."),
18640
18641        b_gradient=BLOC(condition="GRADIENT=='NON'",
18642          INCREMENT = SIMP(statut="o",typ="R",max=1,
18643                              fr="Incrément dans la direction.",
18644                          ang="Direction increment."),
18645        ),
18646
18647    ),
18648 #
18649 );
18650 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
18651 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18652 # ======================================================================
18653 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
18654 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18655 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18656 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18657 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18658 #                                                                       
18659 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18660 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18661 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18662 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18663 #                                                                       
18664 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18665 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18666 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18667 # ======================================================================
18668 # RESPONSABLE GNICOLAS G.NICOLAS
18669
18670 from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops
18671
18672 MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
18673                      docu="U7.04.41",UIinfo={"groupe":("Impression",)},
18674                      fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.",
18675                      ang="Print values for the fiability software",
18676 #
18677 # 1. Le niveau d'information
18678 #
18679    INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18680 #
18681 # 2. Impression de la valeur de la cible
18682 #
18683 # 2.1. ==> La table contenant la valeur à imprimer
18684 #
18685    TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster,
18686                  fr="Table contenant la valeur cible.",
18687                  ang="Table which includes the target value."),
18688 #
18689 # 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table
18690 #
18691    NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM',
18692                     fr="Nom du paramètre associé à la valeur cible.",
18693                     ang="Name of the parameter connected to the target value."),
18694 #
18695 # 3. Impressions des valeurs des éventuels gradients
18696 #
18697    GRADIENTS = FACT(statut='f',min=1,max='**',
18698 #
18699 # 3.1. ==> La table contenant la valeur à imprimer
18700 #
18701        TABLE = SIMP(statut='o',typ=table_sdaster,
18702                     fr="Table contenant le gradient.",
18703                     ang="Table which includes the gradient."),
18704 #
18705 # 3.2. ==> Le paramètre sensible
18706 #
18707        PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom),
18708                        fr="Paramètre sensible associé au gradient.",
18709                        ang="Sensitivity parameter connected to the gradient."),
18710 #
18711 # 3.3. ==> Le nom du paramètre associé au gradient dans cette table
18712 #
18713        NOM_PARA = SIMP(statut='o',typ='TXM',
18714                        fr="Nom du paramètre associé au gradient.",
18715                        ang="Name of the parameter connected to the gradient."),
18716 #
18717          ),
18718 #
18719 );
18720 #& MODIF COMMANDE  DATE 30/10/2006   AUTEUR DURAND C.DURAND 
18721 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18722 # ======================================================================
18723 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18724 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18725 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18726 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18727 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18728 #
18729 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18730 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18731 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18732 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18733 #
18734 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18735 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18736 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18737 # ======================================================================
18738 # RESPONSABLE GNICOLAS G.NICOLAS
18739
18740 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
18741
18742 MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
18743                      docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)},
18744                      fr="Donner des informations sur un maillage.",
18745                      ang="To give information about a mesh.",
18746 #
18747 # 1. Le niveau d'information
18748 #
18749   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18750 #
18751 # 2. Version de HOMARD
18752 #
18753   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_5",
18754                         into=("V8_5", "V8_N", "V8_N_PERSO"),
18755                         fr="Version de HOMARD",
18756                         ang="HOMARD release"),
18757 #
18758 # 3. Langue des messages issus de HOMARD
18759 #
18760   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
18761                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
18762                 fr="Langue des messages issus de HOMARD.",
18763                 ang="Language for HOMARD messages." ),
18764 #
18765 # 4. Le nom du maillage a analyser
18766 #
18767   MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,
18768                   fr="Maillage à analyser.",
18769                   ang="Mesh to be checked." ),
18770 #
18771 # 5. Suivi d'une frontiere
18772 #
18773   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
18774                            fr="Maillage de la frontiere à suivre",
18775                            ang="Boundary mesh" ),
18776 #
18777   b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
18778                       fr="Information complémentaire sur la frontière",
18779                       ang="Further information about boundary",
18780 #
18781     GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
18782                     fr="Groupes de mailles définissant la frontière",
18783                     ang="Mesh groups which define the boundary" ),
18784 #
18785                     ) ,
18786 #
18787 # 6. Les options ; par defaut, on controle tout
18788 # 6.1. Nombre de noeuds et elements
18789 #
18790   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18791                         fr="Nombre de noeuds et éléments du maillage",
18792                         ang="Number of nodes and elements in the mesh" ),
18793 #
18794 # 6.2. Determination de la qualite des elements du maillage
18795 #
18796   QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18797                         fr="Qualité du maillage",
18798                         ang="Mesh quality" ),
18799 #
18800 # 6.3. Connexite du maillage
18801 #
18802   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18803                         fr="Connexité du maillage.",
18804                         ang="Mesh connexity." ),
18805 #
18806 # 6.4. Taille des sous-domaines du maillage
18807 #
18808   TAILLE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18809                         fr="Tailles des sous-domaines du maillage.",
18810                         ang="Sizes of mesh sub-domains." ),
18811 #
18812 # 6.5. Controle de la non-interpenetration des elements
18813 #
18814   INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
18815                         fr="Controle de la non interpénétration des éléments.",
18816                         ang="Overlapping checking." ),
18817 #
18818 # 7. Gestion des éléments autres que ceux compatibles avec HOMARD
18819 #       "REFUSER" : ils sont refuses (defaut)
18820 #       "IGNORER" : ils sont ignorés
18821 #
18822   ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
18823                              fr="Acceptation d'éléments incompatibles avec HOMARD",
18824                              ang="Incompatible elements for HOMARD" ),
18825 )  ;
18826 #& MODIF COMMANDE  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
18827 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18828 # ======================================================================
18829 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
18830 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18831 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18832 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18833 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18834 #                                                                       
18835 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18836 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18837 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18838 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18839 #                                                                       
18840 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18841 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18842 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18843 # ======================================================================
18844
18845 from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops
18846
18847 MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster,
18848                        reentrant='n',
18849             UIinfo={"groupes":("Outils métier",)},
18850             fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies"
18851              +" par deux points et un intervalle",
18852          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ),
18853 # extraction des résultats
18854          b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
18855            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ),  
18856          ),
18857          b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
18858            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP' ),  
18859          ),
18860          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),  
18861          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
18862          GROUP_MA        =SIMP(statut='f',typ=grma),
18863          MAILLE          =SIMP(statut='f',typ=ma,max='**'),
18864          regles=(EXCLUS('GROUP_MA','MAILLE'),),
18865          LIGN_COUPE     =FACT(statut='o',max='**',
18866            regles=(UN_PARMI('NB_POINTS','GROUP_NO'),),
18867            INTITULE        =SIMP(statut='f',typ='TXM',),
18868            GROUP_NO        =SIMP(statut='f',typ=grno),
18869            NB_POINTS       =SIMP(statut='f',typ='I'),
18870            b_nbpts = BLOC(condition = "NB_POINTS != None",
18871               COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),  
18872               COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),
18873               VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),), 
18874          ),
18875 )  ;
18876
18877
18878 #& MODIF COMMANDE  DATE 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
18879 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18880 # ======================================================================
18881 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18882 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18883 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18884 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18885 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18886 #
18887 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18888 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18889 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18890 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18891 #
18892 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18893 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18894 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18895 # ======================================================================
18896 # RESPONSABLE G8BHHXD X.DESROCHES
18897
18898 from Macro.macro_elas_mult_ops import macro_elas_mult_ops
18899
18900 def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
18901   if isinstance(NUME_DDL,CO) :
18902     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
18903   else:
18904     self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
18905   if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
18906   if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
18907   raise AsException("type de concept resultat non prevu")
18908
18909 MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f',
18910             UIinfo={"groupes":("Résolution",)},
18911          fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier",
18912          regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
18913          MODELE          =SIMP(statut='o',typ=modele_sdaster),
18914          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
18915          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
18916          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)),
18917          CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18918          CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18919          LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
18920          CAS_CHARGE      =FACT(statut='o',max='**',
18921            regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
18922                    UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),),
18923            NOM_CAS         =SIMP(statut='f',typ='TXM' ),
18924            MODE_FOURIER    =SIMP(statut='f',typ='I' ),
18925            TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
18926            CHAR_MECA       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18927            CHAR_CINE       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18928            OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
18929                                  into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
18930                                        "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL",
18931                                        "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA",
18932                                        "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
18933                                        "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",
18934                                        "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA",
18935                                        "ERZ2_ELEM_SIGM","VNOR_ELEM_DEPL","ERRE_ELNO_ELEM","SIRE_ELNO_DEPL",
18936                                        "ERRE_ELEM_SIGM","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
18937                                        "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
18938                                        "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
18939                                        "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
18940            NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),
18941            NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
18942            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
18943            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
18944          ),
18945          SOLVEUR         =FACT(statut='d',
18946            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
18947            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",
18948                                     fr="Paramètres de la méthode multi frontale",
18949              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
18950            ),
18951            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
18952              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
18953             ),
18954            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
18955                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
18956              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
18957              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18958            ),
18959          ),
18960          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
18961          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
18962 )  ;
18963 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
18964 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18965 # ======================================================================
18966 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18967 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18968 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18969 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18970 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18971 #
18972 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18973 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18974 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18975 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18976 #
18977 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18978 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18979 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18980 # ======================================================================
18981
18982 from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops
18983
18984 def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
18985   self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r)
18986   self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r)
18987   self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r)
18988   if FORC_AJOU != None:
18989     for m in FORC_AJOU:
18990       self.type_sdprod(m['VECTEUR'],vect_asse_gene)
18991
18992   return None
18993
18994 MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod,
18995             UIinfo={"groupes":("Matrices/vecteurs",)},
18996             fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement"
18997               +" ou de rigidité ajoutés",
18998       regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
18999               AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
19000               EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
19001               EXCLUS('MONO_APPUI','MODE_STAT',),
19002              ),
19003          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
19004          GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
19005          GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
19006          MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
19007          FLUIDE          =FACT(statut='o',max='**',
19008            RHO             =SIMP(statut='o',typ='R'),
19009            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
19010            GROUP_MA        =SIMP(statut='f',typ=grma),
19011            MAILLE          =SIMP(statut='f',typ=ma),
19012          ),
19013          DDL_IMPO        =FACT(statut='o',max='**',
19014            regles=(UN_PARMI('NOEUD','GROUP_NO'),
19015                    UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
19016            NOEUD           =SIMP(statut='f',typ=no),
19017            GROUP_NO        =SIMP(statut='f',typ=grno),
19018            PRES_FLUIDE     =SIMP(statut='f',typ='R'),
19019            PRES_SORTIE     =SIMP(statut='f',typ='R'),
19020          ),
19021          ECOULEMENT      =FACT(statut='f',
19022            GROUP_MA_1      =SIMP(statut='o',typ=grma),
19023            GROUP_MA_2      =SIMP(statut='o',typ=grma),
19024            VNOR_1          =SIMP(statut='o',typ='R'),
19025            VNOR_2          =SIMP(statut='f',typ='R'),
19026            POTENTIEL       =SIMP(statut='f',typ=evol_ther),
19027          ),
19028          MODE_MECA       =SIMP(statut='f',typ=mode_meca),
19029          DEPL_IMPO       =SIMP(statut='f',typ=cham_no_sdaster),
19030          MODELE_GENE     =SIMP(statut='f',typ=modele_gene),
19031          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene),
19032          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.0E-2),
19033          MATR_MASS_AJOU  =SIMP(statut='f',typ=CO,),
19034          MATR_RIGI_AJOU  =SIMP(statut='f',typ=CO,),
19035          MATR_AMOR_AJOU  =SIMP(statut='f',typ=CO,),
19036          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
19037          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
19038          FORC_AJOU       =FACT(statut='f',max='**',
19039            DIRECTION     =SIMP(statut='o',typ='R',max=3),
19040            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
19041            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
19042            VECTEUR       =SIMP(statut='o',typ=CO),
19043          ),
19044          SOLVEUR         =FACT(statut='d',
19045            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
19046            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
19047              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
19048            ),
19049            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
19050              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
19051            ),
19052            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
19053                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
19054              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
19055              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19056            ),
19057            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
19058              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
19059              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
19060              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
19061              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
19062              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
19063            ),
19064          ),
19065          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19066          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
19067          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
19068 )
19069 #& MODIF COMMANDE  DATE 06/02/2008   AUTEUR MACOCCO K.MACOCCO 
19070 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19071 # ======================================================================
19072 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19073 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19074 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19075 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
19076 # (AT YOUR OPTION) ANY LATER VERSION.
19077 #
19078 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
19079 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
19080 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
19081 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
19082 #
19083 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
19084 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
19085 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19086 # ======================================================================
19087
19088 from Macro.macro_matr_asse_ops import macro_matr_asse_ops
19089
19090 def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
19091   if not MATR_ASSE:  raise AsException("Impossible de typer les concepts resultats")
19092   if not NUME_DDL :  raise AsException("Impossible de typer les concepts resultats")
19093   if isinstance(NUME_DDL,CO) :
19094     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
19095   else:
19096     self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
19097   for m in MATR_ASSE:
19098     opti=m['OPTION']
19099
19100     if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
19101        "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
19102        "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
19103        "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
19104
19105     if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
19106
19107     if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
19108        "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r
19109
19110     if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
19111
19112     self.type_sdprod(m['MATRICE'],t)
19113   return None
19114
19115 MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
19116             UIinfo={"groupes":("Matrices/vecteurs",)},
19117                       sd_prod=macro_matr_asse_prod,
19118                       fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ",
19119          MODELE          =SIMP(statut='o',typ=modele_sdaster),
19120          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
19121          INST            =SIMP(statut='f',typ='R',defaut=0.),
19122          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
19123          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
19124          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
19125          NUME_DDL        =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
19126          SOLVEUR         =FACT(statut='d',
19127            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",),
19128          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale",
19129            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
19130          ),
19131          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT",
19132            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
19133          ),
19134          b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
19135            RENUM         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
19136          ),
19137          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="Paramètres associés à la méthode gradient conjugué",
19138            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
19139          ),
19140          ),
19141
19142          MATR_ASSE       =FACT(statut='o',max='**',
19143              MATRICE         =SIMP(statut='o',typ=CO),
19144              OPTION          =SIMP(statut='o',typ='TXM',
19145                                    into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
19146                                          "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
19147                                          "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
19148                                          "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR",
19149                                          "RIGI_THER","MASS_THER",
19150                                          "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
19151                                          "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
19152                                    ),
19153
19154              b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
19155                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
19156              ),
19157
19158              b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
19159                SIEF_ELGA       =SIMP(statut='o',typ=cham_elem),
19160                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
19161              ),
19162
19163              b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'",
19164                THETA           =SIMP(statut='o',typ=theta_geom),
19165                PROPAGATION     =SIMP(statut='f',typ='R'),
19166              ),
19167
19168              b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'",
19169                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
19170              ),
19171
19172          ), # fin MATR_ASSE
19173
19174          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19175          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19176 )  ;
19177 #& MODIF COMMANDE  DATE 28/05/2008   AUTEUR GREFFET N.GREFFET 
19178 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19179 # ======================================================================
19180 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19181 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19182 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19183 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19184 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19185 #
19186 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19187 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19188 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19189 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19190 #
19191 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19192 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19193 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19194 # ======================================================================
19195
19196 from Macro.macro_miss_3d_ops import macro_miss_3d_ops
19197
19198 MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,
19199             fr="Préparation des données puis exécution du logiciel MISS3D",
19200             UIinfo={"groupes":("Matrices/vecteurs",)},
19201          OPTION          =FACT(statut='o',
19202            regles=(UN_PARMI('TOUT','MODULE'),),
19203            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
19204            MODULE          =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
19205          ),
19206          PROJET          =SIMP(statut='o',typ='TXM'),  
19207          REPERTOIRE      =SIMP(statut='f',typ='TXM'),
19208          VERSION         =SIMP(statut='f',typ='TXM',into=("V1_3","V1_4",),defaut="V1_4"),
19209          UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),  
19210          UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),  
19211          UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),  
19212          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
19213          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0),
19214          PARAMETRE       =FACT(statut='f',         
19215            regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'),
19216                    PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'),
19217                    PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'),
19218                    PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'),
19219                    PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),),
19220            FREQ_MIN        =SIMP(statut='f',typ='R'), 
19221            FREQ_MAX        =SIMP(statut='f',typ='R'),
19222            FREQ_PAS        =SIMP(statut='f',typ='R'),
19223            Z0              =SIMP(statut='f',typ='R'), 
19224            SURF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
19225            RFIC            =SIMP(statut='f',typ='R'),
19226            FICH_RESU_IMPE  =SIMP(statut='f',typ='TXM'),
19227            FICH_RESU_FORC  =SIMP(statut='f',typ='TXM'),
19228            TYPE            =SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII",),defaut="ASCII"),
19229            DREF            =SIMP(statut='f',typ='R'),
19230            ALGO            =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")),
19231            OFFSET_MAX      =SIMP(statut='f',typ='R'),
19232            OFFSET_NB       =SIMP(statut='f',typ='I'),
19233            SPEC_MAX        =SIMP(statut='f',typ='R'),
19234            SPEC_NB         =SIMP(statut='f',typ='I'),
19235            ISSF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
19236            FICH_POST_TRAI  =SIMP(statut='f',typ='TXM'),
19237            CONTR_NB        =SIMP(statut='f',typ='I'),
19238            CONTR_LISTE     =SIMP(statut='f',typ='R',max='**'),
19239            LFREQ_NB        =SIMP(statut='f',typ='I'),
19240            LFREQ_LISTE     =SIMP(statut='f',typ='R',max='**'),
19241          ),
19242 )  ;
19243 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
19244 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19245 # ======================================================================
19246 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19247 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19248 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19249 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19250 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19251 #
19252 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19253 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19254 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19255 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19256 #
19257 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19258 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19259 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19260 # ======================================================================
19261
19262 from Macro.macro_mode_meca_ops import macro_mode_meca_ops
19263
19264 MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca,
19265                      reentrant='n',fr="Lancer une succession de calculs de modes propres réels",
19266             UIinfo={"groupes":("Résolution",)},
19267          MATR_A          =SIMP(statut='o',typ=matr_asse_depl_r ),
19268          MATR_B          =SIMP(statut='o',typ=matr_asse_depl_r ),
19269          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
19270 #  ce mot cle ne devrait il pas etre dans calc_freq  
19271          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",    
19272                                into=("TRI_DIAG","JACOBI","SORENSEN",) ),
19273          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
19274            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
19275            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19276            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
19277            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
19278          ),
19279          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
19280            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
19281            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
19282            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19283            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
19284          ),
19285          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
19286            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
19287            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
19288            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
19289          ),
19290          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",    
19291                                into=("MODE_RIGIDE","SANS") ),
19292          CALC_FREQ       =FACT(statut='d',min=0,
19293            regles=(UN_PARMI('FREQ','FREQ_MAX'),
19294                    PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
19295                    PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),
19296                    EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
19297            FREQ            =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**',val_min=0.E+0 ),  
19298            FREQ_MIN        =SIMP(statut='f',typ='R' ),  
19299            FREQ_MAX        =SIMP(statut='f',typ='R' ),  
19300            NB_BLOC_FREQ    =SIMP(statut='f',typ='I' ),  
19301            DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),  
19302            COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
19303            NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),  
19304            NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),  
19305            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),  
19306            SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),  
19307            STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
19308          ),
19309          VERI_MODE       =FACT(statut='d',min=0,
19310            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19311            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),  
19312            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),  
19313            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19314          ),
19315          NORM_MODE       =FACT(statut='o',max='**',
19316            MASS_INER       =SIMP(statut='o',typ=table_sdaster),
19317            NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",    
19318                                  into=("MASS_GENE","RIGI_GENE","EUCL",           
19319                                        "EUCL_TRAN","TRAN","TRAN_ROTA") ),
19320            INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
19321          ),
19322          FILTRE_MODE     =FACT(statut='f',
19323            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
19324                                  into=("MASS_EFFE_UN","MASS_GENE") ),
19325            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
19326          ),
19327          IMPRESSION      =FACT(statut='d',
19328            TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19329            CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19330            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
19331                                  into=("MASS_EFFE_UN","MASS_GENE",) ),
19332          ),
19333 )  ;
19334 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
19335 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19336 # ======================================================================
19337 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19338 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19339 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19340 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19341 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19342 #
19343 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19344 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19345 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19346 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19347 #
19348 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19349 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19350 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19351 # ======================================================================
19352
19353 from Macro.macro_proj_base_ops import macro_proj_base_ops
19354
19355 def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ):
19356   if MATR_ASSE_GENE != None:
19357     for m in MATR_ASSE_GENE:
19358       self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
19359   if VECT_ASSE_GENE != None:
19360     for v in VECT_ASSE_GENE:
19361       self.type_sdprod(v['VECTEUR'],vect_asse_gene)
19362   return None
19363
19364 MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
19365          regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')),
19366             UIinfo={"groupes":("Matrices/vecteurs",)},
19367                       sd_prod=macro_proj_base_prod,
19368          fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)",
19369          BASE            =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ),
19370          NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),
19371          PROFIL          =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
19372          MATR_ASSE_GENE  =FACT(statut='f',max='**',
19373            MATRICE         =SIMP(statut='o',typ=CO,),
19374            regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),),
19375            MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r),
19376            MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
19377          ),
19378          VECT_ASSE_GENE  =FACT(statut='f',max='**',
19379            VECTEUR         =SIMP(statut='o',typ=CO,),
19380            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),),
19381            TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
19382            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
19383            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
19384          ),
19385          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19386 )  ;
19387 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR ASSIRE A.ASSIRE 
19388 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19389 # ======================================================================
19390 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
19391 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19392 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19393 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19394 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19395 #                                                                       
19396 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19397 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19398 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19399 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19400 #                                                                       
19401 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19402 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19403 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19404 # ======================================================================
19405    
19406 from Macro.macr_recal_ops import macr_recal_ops
19407
19408 def macr_recal_prod(self,**args ):
19409   return listr8_sdaster
19410
19411 MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
19412             UIinfo={"groupes":("Résultats et champs",)},
19413                       sd_prod=macr_recal_prod,
19414                       fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux"
19415                         +" ou sur d'autres résultats de calculs",
19416          UNITE_ESCL      =SIMP(statut='o',typ='I'),
19417          RESU_EXP        =SIMP(statut='o',typ=assd,max='**'),
19418          POIDS           =SIMP(statut='f',typ=assd,max='**'),
19419          RESU_CALC       =SIMP(statut='o',typ=assd,max='**'),
19420          LIST_PARA       =SIMP(statut='o',typ=assd,max='**'),
19421          LIST_DERIV      =SIMP(statut='f',typ=assd,max='**'),
19422          ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10),
19423          ITER_FONC_MAXI  =SIMP(statut='f',typ='I',defaut=100),
19424          RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3),
19425          UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
19426          PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.001),
19427 #         GRAPHIQUE       =FACT(statut='d',
19428          GRAPHIQUE       =FACT(statut='f',
19429            UNITE           =SIMP(statut='f',typ='I',defaut=90),
19430            FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")),
19431            INTERACTIF      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),
19432            AFFICHAGE       =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE")),),
19433          SUIVI_ESCLAVE   =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),),
19434
19435          METHODE         =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG","FMIN","FMINBFGS","FMINNCG","EXTERNE")),
19436
19437          b_gradient =BLOC(condition = "METHODE == 'FMINBFGS' or METHODE == 'FMINNCG'" ,
19438             GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )),
19439          ),
19440
19441          b_gradient_externe =BLOC(condition = "METHODE == 'EXTERNE'" ,
19442             GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )),
19443          ),
19444
19445          b_type_fonctionnelle =BLOC(condition = "METHODE == 'EXTERNE'" ,
19446             FONCTIONNELLE   =SIMP(statut='f',typ='TXM',defaut='SCALAIRE',into=("SCALAIRE","VECTORIELLE")),
19447          ),
19448
19449          INFO            =SIMP(statut='f',typ='I',defaut=2,into=( 1, 2 ) ),
19450 );
19451 #& MODIF COMMANDE  DATE 09/01/2007   AUTEUR VIVAN L.VIVAN 
19452 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19453 # ======================================================================
19454 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
19455 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19456 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19457 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19458 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19459 #                                                                       
19460 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19461 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19462 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19463 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19464 #                                                                       
19465 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19466 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19467 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19468 # ======================================================================
19469
19470 from Macro.macr_spectre_ops import macr_spectre_ops
19471
19472 MACR_SPECTRE=MACRO(nom="MACR_SPECTRE",op=macr_spectre_ops,sd_prod=table_sdaster,
19473                        reentrant='n', UIinfo={"groupes":("Outils métier",)},
19474                        fr="calcul de spectre, post-traitement de séisme",
19475          MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster,),
19476          PLANCHER      =FACT(statut='o',max='**',
19477             regles=(AU_MOINS_UN('NOEUD','GROUP_NO' ),),
19478             NOM           =SIMP(statut='o',typ='TXM',),
19479             GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
19480             NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'), ),
19481          NOM_CHAM      =SIMP(statut='o',typ='TXM' ,into=('ACCE','DEPL')),
19482          CALCUL        =SIMP(statut='o',typ='TXM' ,into=('ABSOLU','RELATIF'),position='global'),
19483          b_acce  =BLOC( condition = "NOM_CHAM=='ACCE'",
19484            regles=(UN_PARMI('LIST_FREQ','FREQ'),),
19485            AMOR_SPEC     =SIMP(statut='o',typ='R',max='**'),
19486            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster ),
19487            LIST_FREQ     =SIMP(statut='f',typ=listr8_sdaster ),
19488            FREQ          =SIMP(statut='f',typ='R',max='**'),
19489            NORME         =SIMP(statut='o',typ='R'),  
19490            RESU          =FACT(statut='o',max='**',
19491                 regles=(UN_PARMI('RESU_GENE','RESULTAT'),),
19492                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
19493                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
19494                 b_calc  =BLOC( condition = "CALCUL=='RELATIF'",
19495                    ACCE_X        =SIMP(statut='o',typ=fonction_sdaster),
19496                    ACCE_Y        =SIMP(statut='o',typ=fonction_sdaster),
19497                    ACCE_Z        =SIMP(statut='o',typ=fonction_sdaster),), ),
19498            IMPRESSION    =FACT(statut='f',
19499                 TRI           =SIMP(statut='f',typ='TXM',defaut='AMOR_SPEC',into=("AMOR_SPEC","DIRECTION",),),
19500                 FORMAT        =SIMP(statut='f',typ='TXM',defaut='TABLEAU',into=("TABLEAU","XMGRACE",),),
19501                 UNITE         =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
19502                                     fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
19503                 b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
19504                    PILOTE        =SIMP(statut='f',typ='TXM',defaut='',
19505                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),),),
19506                 TOUT          =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON",),),
19507                               ),
19508          ),
19509          b_depl  =BLOC( condition = "NOM_CHAM=='DEPL'",
19510            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),  
19511            RESU          =FACT(statut='o',max=3,
19512                 regles=(UN_PARMI('RESU_GENE','RESULTAT'),),
19513                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
19514                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
19515                 b_calc  =BLOC( condition = "CALCUL=='ABSOLU'",
19516                    DEPL_X        =SIMP(statut='o',typ=fonction_sdaster),
19517                    DEPL_Y        =SIMP(statut='o',typ=fonction_sdaster),
19518                    DEPL_Z        =SIMP(statut='o',typ=fonction_sdaster),),),
19519          ),
19520 )
19521 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
19522 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19523 # ======================================================================
19524 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19525 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19526 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19527 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19528 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19529 #
19530 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19531 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19532 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19533 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19534 #
19535 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19536 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19537 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19538 # ======================================================================
19539 MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
19540             UIinfo={"groupes":("Gestion du travail",)},
19541               fr="Compilation des catalogues de commandes et d'éléments",
19542
19543          ELEMENT         =FACT(statut='f',),
19544
19545 )  ;
19546 #& MODIF COMMANDE  DATE 12/06/2006   AUTEUR BOITEAU O.BOITEAU 
19547 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19548 # ======================================================================
19549 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19550 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19551 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19552 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
19553 # (AT YOUR OPTION) ANY LATER VERSION.
19554 #
19555 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
19556 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
19557 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
19558 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
19559 #
19560 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
19561 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
19562 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19563 # ======================================================================
19564 # RESPONSABLE VABHHTS J.PELLET
19565 MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
19566                    fr="Résoudre un problème de mécanique statique linéaire",reentrant='f',
19567             UIinfo={"groupes":("Résolution",)},
19568          regles=(EXCLUS("INST","LIST_INST"),
19569                  AU_MOINS_UN('CHAM_MATER','CARA_ELEM',),
19570                  CONCEPT_SENSIBLE('ENSEMBLE'),),
19571          MODELE          =SIMP(statut='o',typ=modele_sdaster),
19572          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,
19573          fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
19574          ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
19575          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,
19576          fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
19577          ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
19578          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19579          EXCIT           =FACT(statut='o',max='**',
19580            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
19581            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19582            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
19583          ),
19584          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
19585          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
19586          INST_FIN        =SIMP(statut='f',typ='R'),
19587          OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1,
19588              fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.",
19589                           ),
19590          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
19591                                fr="Liste des paramètres de sensibilité.",
19592                                ang="List of sensitivity parameters"),
19593
19594          SOLVEUR         =FACT(statut='d',
19595          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI","MUMPS") ),
19596
19597            b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
19598              PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
19599              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
19600              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
19601              NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19602              TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
19603              NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19604              NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19605              PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
19606              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
19607              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19608              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
19609              INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
19610              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
19611              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19612              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19613            ),
19614
19615            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
19616              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
19617            ),
19618
19619            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
19620              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
19621            ),
19622
19623            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI' ",
19624                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
19625              NPREC           =SIMP(statut='f',typ='I',defaut=8),
19626              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19627            ),
19628
19629            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
19630              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
19631              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
19632              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
19633              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
19634              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
19635            ),
19636
19637            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
19638              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
19639              SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
19640              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
19641              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
19642              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
19643              ),
19644          ),
19645          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
19646 )  ;
19647 #& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
19648 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19649 # ======================================================================
19650 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19651 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19652 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19653 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19654 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19655 #
19656 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19657 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19658 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19659 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19660 #
19661 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19662 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19663 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19664 # ======================================================================
19665 # RESPONSABLE GNICOLAS G.NICOLAS
19666 MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,
19667             UIinfo={"groupes":("Fonction",)},
19668                     fr="Mémorisation des noms des concepts dérivés.",
19669                     ang="Memorisation of the names of the sensitive concepts.",
19670
19671          regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),),
19672
19673          NOM=FACT(statut='f',max='**',
19674              regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),),
19675
19676              NOM_SD=SIMP(statut='o',typ='TXM',
19677                          fr="Nom de la structure de base",
19678                          ang="Name of the basic structure"),
19679
19680              PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom),
19681                          fr="Nom du paramètre sensible",
19682                          ang="Name of the sensitive parameter"),
19683
19684              NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ",
19685                          fr="Nom de la structure composée",
19686                          ang="Name of the built structure"),
19687
19688              MOT_FACT=SIMP(statut='f',typ='TXM',max='**',
19689                          fr="Liste des mots clés facteurs concernés par la dérivation",
19690                          ang="Factor keyword list involved in derivation"),
19691
19692              MOT_CLE=SIMP(statut='f',typ='TXM',max='**',
19693                          fr="Liste des mots clés concernés par la dérivation",
19694                          ang="Keyword list involved in derivation"),
19695
19696              VALEUR=SIMP(statut='f',typ='TXM',max='**',
19697                          fr="Liste des objets concernés par la dérivation",
19698                          ang="Object list involved in derivation"),
19699
19700                  ),
19701
19702          NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster,
19703                        fr="Nom de la fonction nulle",
19704                        ang="Name of the zero fonction"),
19705
19706          NOM_UN  =SIMP(statut='f',typ=fonction_sdaster,
19707                        fr="Nom de la fonction unité",
19708                        ang="Name of the one fonction"),
19709
19710 )  ;
19711 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
19712 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19713 # ======================================================================
19714 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19715 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19716 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19717 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19718 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19719 #
19720 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19721 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19722 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19723 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19724 #
19725 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19726 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19727 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19728 # ======================================================================
19729 MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
19730                     fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir"
19731                         +" d'une base de modes propres réels",
19732                     reentrant='n',
19733             UIinfo={"groupes":("Résolution",)},
19734          BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
19735          NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
19736          NB_SECTEUR      =SIMP(statut='o',typ='I' ),
19737          LIAISON         =FACT(statut='o',
19738            DROITE          =SIMP(statut='o',typ='TXM' ),
19739            GAUCHE          =SIMP(statut='o',typ='TXM' ),
19740            AXE             =SIMP(statut='f',typ='TXM' ),
19741          ),
19742          VERI_CYCL       =FACT(statut='f',
19743            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
19744            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
19745            DIST_REFE       =SIMP(statut='f',typ='R' ),
19746          ),
19747          CALCUL          =FACT(statut='o',
19748            TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
19749            NB_DIAM         =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
19750            OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
19751                                 ,into=("PLUS_PETITE","CENTRE","BANDE") ),
19752            b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
19753              FREQ            =SIMP(statut='o',typ='R',),
19754            ),
19755            b_bande       =BLOC(condition = "OPTION == 'BANDE'",
19756              FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
19757            ),
19758 #  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
19759            NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
19760            PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
19761            PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
19762            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
19763          ),
19764          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19765 )  ;
19766 #& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
19767 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19768 # ======================================================================
19769 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19770 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19771 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19772 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19773 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19774 #
19775 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19776 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19777 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19778 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19779 #
19780 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19781 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19782 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19783 # ======================================================================
19784 def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
19785   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
19786   if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
19787   if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
19788   if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
19789   if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
19790   raise AsException("type de concept resultat non prevu")
19791
19792 MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
19793                     ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
19794                      reentrant='n',
19795             UIinfo={"groupes":("Résolution",)},
19796          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
19797          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
19798          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
19799          MATR_C          =SIMP(statut='f',typ=matr_asse_depl_r ),
19800          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",   
19801                                into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ),
19802          b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
19803            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
19804            
19805              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
19806                                    fr="Choix de l option pour estimer les valeurs propres"  ),
19807              FREQ            =SIMP(statut='o',typ='R',max='**'),
19808              AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),     
19809              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
19810              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
19811              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
19812              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
19813              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
19814
19815              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19816              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19817              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
19818              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
19819            ),
19820          ),
19821          b_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
19822            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
19823            
19824              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
19825                                  fr="Choix de l option pour estimer les valeurs propres"  ),
19826              CHAR_CRIT       =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
19827              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
19828              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
19829              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
19830              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
19831              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
19832            
19833              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19834              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19835              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
19836              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
19837            ),
19838          ),
19839          CALC_MODE       =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres",
19840            OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
19841            PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ),
19842            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
19843          ),
19844          VERI_MODE       =FACT(statut='d',min=0,
19845            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19846            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0,
19847                                  fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
19848          ),
19849          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
19850                                fr="Liste des param\350tres de sensibilit\351.",
19851                                ang="List of sensitivity parameters",
19852          ),
19853          b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
19854              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
19855              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
19856              EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
19857          ),
19858          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19859          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
19860 )  ;
19861 #& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
19862 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19863 # ======================================================================
19864 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19865 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19866 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19867 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19868 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19869 #
19870 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19871 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19872 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19873 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19874 #
19875 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19876 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19877 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19878 # ======================================================================
19879 def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
19880   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
19881   if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
19882   if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
19883   if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c
19884   if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
19885   if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
19886   raise AsException("type de concept resultat non prevu")
19887
19888 MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
19889                       fr="Calcul des modes propres par itérations simultanées ; valeurs propres et"
19890                          +" modes propres réels ou complexes",
19891                       reentrant='n',
19892             UIinfo={"groupes":("Résolution",)},
19893          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
19894          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
19895          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
19896          MATR_C          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
19897          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
19898                                into=("TRI_DIAG","JACOBI","SORENSEN") ),
19899          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
19900            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
19901            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19902            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
19903            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
19904          ),
19905          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
19906            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
19907            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
19908            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19909            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
19910          ),
19911          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
19912            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
19913            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
19914            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
19915          ),
19916          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
19917                                into=("MODE_FLAMB","DYNAMIQUE"),
19918                                fr="Type d analyse" ),
19919          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
19920                                fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
19921
19922          b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
19923            CALC_FREQ       =FACT(statut='d',min=0,
19924              OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
19925                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
19926              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
19927                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19928              ),
19929              b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
19930                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
19931                CHAR_CRIT       =SIMP(statut='o',typ='R',
19932                                      fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
19933                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19934              ),
19935              b_bande       =BLOC(condition = "(OPTION == 'BANDE')",
19936                                  fr="Recherche des valeurs propres dans une bande donnée",
19937                CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
19938                                      fr="Valeur des deux charges critiques délimitant la bande de recherche"),
19939              ),           
19940              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
19941                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
19942              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
19943              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
19944              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
19945              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19946              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19947              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
19948              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19949            ),
19950          ),
19951
19952          b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
19953            CALC_FREQ       =FACT(statut='d',min=0,
19954              OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
19955                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
19956              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
19957                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19958              ),
19959              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
19960                                   fr="Recherche des valeurs propres les plus proches d une valeur donnée",
19961                FREQ            =SIMP(statut='o',typ='R',
19962                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
19963                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
19964                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19965              ),
19966              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
19967                                    fr="Recherche des valeurs propres dans une bande donnée",
19968                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
19969                                      fr="Valeur des deux fréquences délimitant la bande de recherche"),
19970              ),           
19971              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
19972                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
19973              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
19974              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
19975              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
19976              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19977              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19978              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
19979              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19980            ),
19981          ),
19982
19983          VERI_MODE       =FACT(statut='d',min=0,
19984            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19985            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
19986            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
19987                                  fr="Valeur limite admise pour l ereur a posteriori des modes" ),
19988            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19989          ),
19990          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
19991                                fr="Liste des param\350tres de sensibilit\351.",
19992                                ang="List of sensitivity parameters",
19993          ),
19994          b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
19995              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
19996              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
19997              EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
19998          ),
19999          STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
20000          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
20001          TITRE           =SIMP(statut='f',typ='TXM',max='**'),        
20002 )  ;
20003 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
20004 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20005 # ======================================================================
20006 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20007 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20008 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20009 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20010 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20011 #
20012 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20013 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20014 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20015 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20016 #
20017 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20018 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20019 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20020 # ======================================================================
20021 def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
20022  if (MODE_STAT != None)          : return mode_stat_depl
20023  if (PSEUDO_MODE !=None)         : return mode_stat_acce
20024  if (FORCE_NODALE != None)       : return mode_stat_forc
20025  raise AsException("type de concept resultat non prevu")
20026 MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
20027                    fr="Calcul de modes statiques pour un déplacement, une force ou une accélération unitaire imposé",
20028                    reentrant='n',
20029             UIinfo={"groupes":("Résolution",)},
20030          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
20031          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
20032                regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),),
20033          MODE_STAT       =FACT(statut='f',max='**',
20034            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
20035                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
20036            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
20037            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
20038            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
20039            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
20040            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20041            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20042          ),
20043          FORCE_NODALE    =FACT(statut='f',max='**',
20044            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
20045                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
20046            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
20047            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
20048            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
20049            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",), ),
20050            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20051            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20052          ),
20053          PSEUDO_MODE       =FACT(statut='f',max='**',
20054            regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
20055            AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
20056            DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3),
20057            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
20058            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
20059            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
20060            b_dir           =BLOC(condition = "DIRECTION != None",
20061              NOM_DIR         =SIMP(statut='f',typ='TXM' ),),
20062            b_cmp          =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
20063              regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
20064              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20065              AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20066              SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'), 
20067         ),
20068          ),
20069          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20070          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
20071 )  ;
20072 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
20073 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20074 # ======================================================================
20075 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20076 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20077 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20078 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20079 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20080 #
20081 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20082 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20083 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20084 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20085 #
20086 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20087 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20088 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20089 # ======================================================================
20090 MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
20091                       reentrant='f',
20092             fr="Définir la base modale d'une structure sous écoulement",
20093             UIinfo={"groupes":("Matrices/vecteurs",)},
20094 #  la commande modi_base _modale : reentrant = f ou o                      
20095          regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
20096          BASE            =SIMP(statut='o',typ=mode_meca ),
20097          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
20098          NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
20099          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20100          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
20101          AMOR_UNIF       =SIMP(statut='f',typ='R' ),
20102          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20103          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20104 )  ;
20105 #& MODIF COMMANDE  DATE 01/10/2008   AUTEUR MACOCCO K.MACOCCO 
20106 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20107 # ======================================================================
20108 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20109 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20110 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20111 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20112 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20113 #
20114 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20115 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20116 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20117 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20118 #
20119 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20120 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20121 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20122 # ======================================================================
20123 # RESPONSABLE G8BHHXD X.DESROCHES
20124 MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
20125                    fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant,"
20126                       +" à l'application d'une pression, à la modélisation du contact,...",
20127                    reentrant='o',
20128             UIinfo={"groupes":("Maillage",)},
20129       regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20130                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
20131                        'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE',
20132                        ),
20133               PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20134                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
20135               PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D',
20136                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
20137               PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D',
20138                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
20139               PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA',
20140                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
20141               PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20142                        'PLAQ_TUBE','MODI_MAILLE',),
20143               PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20144                        'PLAQ_TUBE','MODI_MAILLE',),
20145               PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20146                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',),
20147               PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20148                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',),
20149               EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
20150               EXCLUS('EQUE_PIQUA','TUBE_COUDE'),
20151               EXCLUS('ROTATION','MODI_BASE'),
20152               EXCLUS('SYMETRIE','ROTATION'),
20153               EXCLUS('SYMETRIE','TRANSLATION'),
20154               EXCLUS('SYMETRIE','MODI_BASE'),
20155               EXCLUS('SYMETRIE','ECHELLE'),
20156               ),
20157          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
20158
20159          ORIE_FISSURE    =FACT(statut='f',
20160            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20161          ),
20162
20163          DEFORME         =FACT(statut='f',
20164            OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
20165            DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
20166         b_deform        =BLOC(condition = "OPTION=='TRAN_APPUI'", 
20167            GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),
20168            GROUP_NO_STRU  = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),),
20169          ),
20170
20171          EQUE_PIQUA      =FACT(statut='f',
20172            GROUP_NO        =SIMP(statut='o',typ=grno),
20173            E_BASE          =SIMP(statut='o',typ='R' ),
20174            DEXT_BASE       =SIMP(statut='o',typ='R' ),
20175            L_BASE          =SIMP(statut='o',typ='R' ),
20176            L_CHANF         =SIMP(statut='o',typ='R' ),
20177            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
20178            H_SOUD          =SIMP(statut='o',typ='R' ),
20179            ANGL_SOUD       =SIMP(statut='o',typ='R' ),
20180            JEU_SOUD        =SIMP(statut='o',typ='R' ),
20181            E_CORP          =SIMP(statut='o',typ='R' ),
20182            DEXT_CORP       =SIMP(statut='o',typ='R' ),
20183            AZIMUT          =SIMP(statut='o',typ='R' ),
20184            RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
20185            X_MAX           =SIMP(statut='o',typ='R' ),
20186          ),
20187          ORIE_PEAU_2D    =FACT(statut='f',max='**',
20188            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20189          ),
20190          ORIE_PEAU_3D    =FACT(statut='f',max='**',
20191            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20192          ),
20193          ORIE_SHB8       =FACT(statut='f',max=1,
20194            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20195          ),
20196          ORIE_NORM_COQUE =FACT(statut='f',max='**',
20197            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20198            VECT_NORM       =SIMP(statut='f',typ='R',max=3),
20199            b_vect_norm     =BLOC(condition = "VECT_NORM != None",
20200              regles=UN_PARMI('NOEUD','GROUP_NO'),
20201              NOEUD           =SIMP(statut='f',typ=no),
20202              GROUP_NO        =SIMP(statut='f',typ=grno),
20203            ),
20204          ),
20205          PLAQ_TUBE       =FACT(statut='f',
20206            DEXT            =SIMP(statut='o',typ='R' ),
20207            EPAIS           =SIMP(statut='o',typ='R' ),
20208            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
20209            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
20210            COUTURE         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",)  ),
20211          ),
20212          TUBE_COUDE      =FACT(statut='f',
20213            ANGLE           =SIMP(statut='o',typ='R' ),
20214            R_CINTR         =SIMP(statut='o',typ='R' ),
20215            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
20216          ),
20217          MODI_MAILLE     =FACT(statut='f',max=1,
20218            regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),),
20219            OPTION          =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ),
20220            GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
20221            MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
20222            GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
20223            NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
20224          ),
20225          MODI_BASE       =FACT(statut='f',
20226            VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
20227            VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),
20228          ),
20229          ECHELLE         =SIMP(statut='f',typ='R',),
20230          TRANSLATION     =SIMP(statut='f',typ='R',min=2,max=3),
20231          ROTATION        =FACT(statut='f',max='**',
20232            POIN_1           =SIMP(statut='o',typ='R',min=2,max=3),
20233            ANGL             =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
20234            regles=(EXCLUS('DIR','POIN_2'),),
20235            POIN_2           =SIMP(statut='f',typ='R',min=2,max=3),
20236            DIR              =SIMP(statut='f',typ='R',min=2,max=3),
20237          ),
20238          SYMETRIE        =FACT(statut='f',max='**',
20239                           fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.",
20240            POINT           =SIMP(statut='o',typ='R',min=2,max=3,
20241                             fr="Point appartenant à la droite ou au plan."),
20242            AXE_1           =SIMP(statut='o',typ='R',min=2,max=3,
20243                             fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."),
20244            AXE_2           =SIMP(statut='f',typ='R',min=3,max=3,
20245                             fr="2nd vecteur appartenant du plan."),
20246          ),
20247          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
20248 )  ;
20249 #& MODIF COMMANDE  DATE 13/06/2006   AUTEUR GENIAUT S.GENIAUT 
20250 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20251 # ======================================================================
20252 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
20253 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
20254 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
20255 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
20256 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
20257 #                                                                       
20258 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
20259 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
20260 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
20261 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
20262 #                                                                       
20263 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
20264 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
20265 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
20266 # ======================================================================
20267
20268 MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f',
20269             UIinfo={"groupes":("Modélisation",)},
20270                fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
20271
20272     MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,),
20273     FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,),
20274     CRITERE         =SIMP(statut='f',typ='R',defaut=1.67E-8),
20275     INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
20276
20277 )  ;
20278 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
20279 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20280 # ======================================================================
20281 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20282 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20283 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20284 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20285 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20286 #
20287 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20288 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20289 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20290 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20291 #
20292 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20293 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20294 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20295 # ======================================================================
20296 MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=table_fonction,
20297             fr="Calculer les obstacles dans les systèmes guidage-tube après usure",
20298             reentrant='f',
20299             UIinfo={"groupes":("Modélisation",)},
20300       regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
20301               PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
20302          OBSTACLE        =SIMP(statut='f',typ=table_fonction),
20303          GUIDE           =SIMP(statut='o',typ=table_sdaster),
20304          CRAYON          =SIMP(statut='f',typ=table_sdaster),
20305          TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
20306          INST            =SIMP(statut='f',typ='R'),  
20307          R_MOBILE        =SIMP(statut='f',typ='R'),  
20308          PERCEMENT       =SIMP(statut='f',typ='R',defaut=1),  
20309          V_USUR_TUBE     =SIMP(statut='f',typ='R',max='**'),
20310          V_USUR_OBST     =SIMP(statut='f',typ='R',max='**'),
20311          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
20312 )  ;
20313 #& MODIF COMMANDE  DATE 12/09/2005   AUTEUR CIBHHLV L.VIVAN 
20314 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20315 # ======================================================================
20316 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20317 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20318 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20319 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20320 # (AT YOUR OPTION) ANY LATER VERSION.
20321 #
20322 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20323 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20324 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20325 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20326 #
20327 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20328 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20329 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20330 # ======================================================================
20331 # RESPONSABLE JMBHH01 J.M.PROIX
20332 def modi_repere_prod(RESULTAT,**args):
20333   if AsType(RESULTAT) == evol_elas :    return evol_elas
20334   if AsType(RESULTAT) == evol_noli :    return evol_noli
20335   if AsType(RESULTAT) == evol_ther :    return evol_ther
20336   if AsType(RESULTAT) == dyna_trans :   return dyna_trans
20337   if AsType(RESULTAT) == dyna_harmo :   return dyna_harmo
20338   if AsType(RESULTAT) == mode_meca :    return mode_meca
20339   if AsType(RESULTAT) == mode_flamb :   return mode_flamb
20340   if AsType(RESULTAT) == mult_elas :    return mult_elas
20341   if AsType(RESULTAT) == base_modale  : return base_modale
20342   raise AsException("type de concept resultat non prevu")
20343
20344 MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n',
20345             UIinfo={"groupes":("Résultats et champs",)},
20346                     fr="Calcule des résultats dans le repère cylindrique",
20347          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
20348                                                evol_noli,mult_elas,
20349                                                evol_ther,base_modale,mode_flamb) ),
20350          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20351                         'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
20352          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20353          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20354          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20355          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20356          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
20357
20358          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20359          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20360          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
20361          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
20362
20363          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
20364          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
20365
20366          MODI_CHAM       =FACT(statut='o',max='**',
20367            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20368            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
20369            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20370            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
20371            TYPE_CHAM       =SIMP(statut='o',typ='TXM',
20372                                  into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
20373            NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
20374            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
20375               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
20376            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
20377               NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
20378            b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
20379               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
20380            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
20381               NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
20382            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
20383               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
20384          ),
20385          DEFI_REPERE     =FACT(statut='o',
20386          regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),),
20387            REPERE          =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",
20388                                  into=("UTILISATEUR","CYLINDRIQUE"),),
20389            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
20390            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
20391            AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),
20392          ),
20393          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20394          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
20395 )  ;
20396 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
20397 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20398 # ======================================================================
20399 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20400 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20401 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20402 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20403 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20404 #
20405 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20406 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20407 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20408 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20409 #
20410 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20411 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20412 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20413 # ======================================================================
20414 def norm_mode_prod(MODE,**args ):
20415   if AsType(MODE) == mode_meca   : return mode_meca
20416   if AsType(MODE) == mode_meca_c : return mode_meca_c
20417   if AsType(MODE) == mode_flamb  : return mode_flamb
20418   if AsType(MODE) == base_modale : return base_modale
20419   raise AsException("type de concept resultat non prevu")
20420
20421 NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
20422                fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur",
20423                reentrant='f',
20424             UIinfo={"groupes":("Résolution",)},
20425          regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),
20426                  CONCEPT_SENSIBLE('SEPARE'),
20427                  DERIVABLE('MODE'),),
20428          MODE       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
20429          NORME      =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
20430                           into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
20431          NOEUD      =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
20432          b_noeud    =BLOC(condition = "NOEUD != None",
20433            NOM_CMP    =SIMP(statut='o',typ='TXM' ),
20434          ),
20435          AVEC_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20436          SANS_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20437          MASS_INER  =SIMP(statut='f',typ=table_sdaster),
20438          MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes",
20439            NOEUD      =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
20440            NOM_CMP    =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
20441            SIGNE      =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
20442                             fr="Choix du signe" ),
20443          ),
20444          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
20445                                fr="Liste des param\350tres de sensibilit\351.",
20446                                ang="List of sensitivity parameters",
20447          ),
20448          b_base    =BLOC(condition = "AsType(MODE) == base_modale",
20449               MASSE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ),
20450               RAIDE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ),
20451               AMOR  = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
20452          ),
20453          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
20454          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
20455 )  ;
20456 #& MODIF COMMANDE  DATE 12/06/2006   AUTEUR BOITEAU O.BOITEAU 
20457 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20458 # ======================================================================
20459 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20460 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20461 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20462 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20463 # (AT YOUR OPTION) ANY LATER VERSION.
20464 #
20465 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20466 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20467 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20468 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20469 #
20470 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20471 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20472 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20473 # ======================================================================
20474 # RESPONSABLE VABHHTS J.PELLET
20475 NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n',
20476             UIinfo={"groupes":("Matrices/vecteurs",)},
20477               fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
20478                   regles=(UN_PARMI('MATR_RIGI','MODELE'),),
20479          MATR_RIGI       =SIMP(statut='f',validators=NoRepeat(),max=100,
20480                                typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ),
20481          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
20482          b_modele        =BLOC(condition = "MODELE != None",
20483            CHARGE     =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
20484          ),
20485          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
20486          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
20487            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
20488          ),
20489          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
20490            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
20491          ),
20492          b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
20493            RENUM         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
20494          ),
20495          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
20496            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
20497          ),
20498          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
20499 )  ;
20500 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
20501 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20502 # ======================================================================
20503 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20504 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20505 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20506 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20507 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20508 #
20509 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20510 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20511 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20512 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20513 #
20514 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20515 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20516 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20517 # ======================================================================
20518 NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
20519                    fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées",
20520                     reentrant='n',
20521             UIinfo={"groupes":("Matrices/vecteurs",)},
20522          regles=UN_PARMI('MODELE_GENE','BASE'),
20523          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
20524              b_modele_gene     =BLOC(condition = "MODELE_GENE != None",
20525                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
20526                METHODE            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE") ),
20527                                     ),
20528          BASE     =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ),
20529              b_base     =BLOC(condition = "BASE != None",
20530                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ),
20531                NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
20532                              ),
20533 )  ;
20534 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
20535 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20536 # ======================================================================
20537 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
20538 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
20539 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
20540 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
20541 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
20542 #                                                                       
20543 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
20544 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
20545 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
20546 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
20547 #                                                                       
20548 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
20549 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
20550 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
20551 # ======================================================================
20552 POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster,
20553                     reentrant='n',UIinfo={"groupes":("Post traitements",)},
20554             fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré",
20555     MAILLAGE = SIMP(statut='o',typ=maillage_sdaster),
20556     MODELE   = SIMP(statut='o',typ=modele_sdaster,),
20557     RESULTAT = SIMP(statut='o',typ=resultat_sdaster),
20558     NOM_CHAM = SIMP(statut='o',typ='TXM',into=("DEPL","SIEF_ELGA"),)
20559 );                     
20560 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
20561 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20562 # ======================================================================
20563 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20564 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20565 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20566 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20567 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20568 #
20569 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20570 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20571 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20572 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20573 #
20574 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20575 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20576 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20577 # ======================================================================
20578 from Macro.post_dyna_alea_ops import post_dyna_alea_ops
20579
20580 POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA",op= post_dyna_alea_ops,sd_prod=table_sdaster,
20581                     fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers",
20582                     reentrant='n',
20583             UIinfo={"groupes":("Post traitements",)},
20584          regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
20585          INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
20586          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),  
20587          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20588          NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**' ),
20589          NOEUD_I         =SIMP(statut='f',typ=no,max='**'),         
20590          OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
20591          b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
20592            NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),   
20593          ),  
20594          b_noeud_i      =BLOC(condition = "NOEUD_I != None",
20595            NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
20596            NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),  
20597            NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),     
20598          ),  
20599          MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),  
20600          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
20601          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20602 )  ;
20603 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
20604 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20605 # ======================================================================
20606 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20607 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20608 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20609 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20610 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20611 #
20612 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20613 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20614 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20615 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20616 #
20617 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20618 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20619 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20620 # ======================================================================
20621 POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster,
20622                       fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL",
20623                       reentrant='n',
20624             UIinfo={"groupes":("Post traitements",)},
20625         regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
20626          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
20627          CHOC            =FACT(statut='f',max='**',
20628                                fr="Analyse des non linéarités de choc",
20629            INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
20630            INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
20631            NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
20632            SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20633            DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20634            OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
20635            NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
20636          ),
20637          RELA_EFFO_DEPL  =FACT(statut='f',
20638                                fr="Analyse des relationsnon linéaires effort-déplacement",
20639            NOEUD           =SIMP(statut='o',typ=no),
20640            NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
20641          ),
20642          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20643          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
20644 )  ;
20645 #& MODIF COMMANDE  DATE 12/09/2006   AUTEUR REZETTE C.REZETTE 
20646 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20647 # ======================================================================
20648 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20649 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20650 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20651 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20652 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20653 #
20654 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20655 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20656 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20657 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20658 #
20659 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20660 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20661 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20662 # ======================================================================
20663 # RESPONSABLE G8BHHXD X.DESROCHES
20664 POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n',
20665             UIinfo={"groupes":("Post traitements",)},
20666                fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
20667
20668          regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT',
20669                           'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
20670                           'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
20671                           'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','INTEGRALE'),
20672                 ),
20673
20674          MASS_INER      = FACT(statut='f',max='**',
20675                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20676                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20677                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20678                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20679                                ORIG_INER    = SIMP(statut='f',typ='R',min=3,max=3 ),
20680                               ),
20681          b_mass_iner = BLOC(condition = "( MASS_INER != None )",
20682                        fr="calcul de la masse, les inerties et le centre de gravité",
20683                        regles=(EXCLUS('CHAM_GD','RESULTAT'),
20684                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20685                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
20686                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20687                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20688                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20689                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20690                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20691                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20692                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20693                        GEOMETRIE      = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
20694                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20695                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
20696                                                              fourier_elas,dyna_trans) ),
20697                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20698                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20699                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20700                        NUME_ORDRE     = SIMP(statut='f',typ='I',),
20701                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20702                        INST           = SIMP(statut='f',typ='R',),
20703                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20704                        FREQ           = SIMP(statut='f',typ='R',),
20705                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
20706                        NUME_MODE      = SIMP(statut='f',typ='I',),
20707                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2),
20708                        NOM_CAS        = SIMP(statut='f',typ='TXM',),
20709          ),
20710
20711          ENER_POT       = FACT(statut='f',max='**',
20712                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20713                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20714                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20715                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20716                               ),
20717          b_ener_pot = BLOC(condition = "( ENER_POT  != None )",
20718                        fr="calcul de l'énergie potentielle de déformation",
20719                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
20720                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20721                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
20722                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20723                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20724                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20725                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20726                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20727                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20728                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
20729                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20730                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20731                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ),
20732                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20733                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20734                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20735                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20736                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20737                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20738                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20739                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20740                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
20741                        NUME_MODE      = SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
20742                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20743                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20744          ),
20745
20746          ENER_CIN       = FACT(statut='f',max='**',
20747                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20748                                OPTION       = SIMP(statut='f',typ='TXM',
20749                                                    into=("MASS_MECA","MASS_MECA_DIAG"),
20750                                                    defaut="MASS_MECA" ),
20751                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20752                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20753                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20754                               ),
20755          b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
20756                        fr="calcul de l'énergie cinétique",
20757                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
20758                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20759                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
20760                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20761                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20762                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20763                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20764                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20765                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20766                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
20767                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20768                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20769                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
20770                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20771                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20772                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20773                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20774                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20775                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20776                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20777                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20778                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
20779                        NUME_MODE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20780                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20781                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20782          ),
20783
20784          ENER_ELAS      = FACT(statut='f',max='**',
20785                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20786                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20787                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20788                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20789                               ),
20790          b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
20791                        fr="calcul de l'énergie de déformation élastique",
20792                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20793                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20794                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20795                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20796                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20797                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20798                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20799                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20800                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20801                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20802                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20803                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20804                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20805                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20806                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20807                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20808          ),
20809
20810          ENER_TOTALE    = FACT(statut='f',max='**',
20811                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20812                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20813                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20814                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20815                               ),
20816          b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
20817                        fr="calcul de l'énergie de déformation totale",
20818                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20819                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20820                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20821                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20822                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20823                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20824                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20825                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20826                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20827                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20828                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20829                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20830                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20831                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20832                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20833                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20834          ),
20835
20836          INTEGRALE  = FACT(statut='f',max='**',
20837                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20838                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20839                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20840                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20841                                NOM_CHAM       = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
20842                                NOM_CMP        = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
20843                               ),
20844          b_integrale = BLOC(condition = "( INTEGRALE != None )",
20845                        fr="calcul de la moyenne d'une composante",
20846                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20847                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20848                        RESULTAT       = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas) ),
20849                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20850                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20851                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20852                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20853                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20854                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20855                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20856          ),
20857
20858          WEIBULL        = FACT(statut='f',max='**',
20859                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20860                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20861                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20862                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20863                                OPTION       = SIMP(statut='f',typ='TXM',
20864                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
20865                                                    defaut="SIGM_ELGA"),
20866                                CORR_PLAST   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
20867                                COEF_MULT    = SIMP(statut='f',typ='R',defaut=1.),
20868                               ),
20869          b_weibull = BLOC(condition = "( WEIBULL != None )",
20870                        fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
20871                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
20872                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20873                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20874                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20875                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20876                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20877                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20878                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20879                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20880                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20881                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
20882                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20883                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20884                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20885                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20886                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20887                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20888                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20889          ),
20890
20891          RICE_TRACEY    = FACT(statut='f',max='**',
20892                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20893                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20894                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20895                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20896                                OPTION       = SIMP(statut='f',typ='TXM',
20897                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
20898                                                    defaut="SIGM_ELGA"),
20899                                LOCAL        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
20900                               ),
20901          b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
20902                        fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
20903                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
20904                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20905                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20906                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20907                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20908                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20909                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20910                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20911                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20912                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20913                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
20914                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20915                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20916                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20917                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20918                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20919                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20920                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20921          ),
20922
20923          INDIC_ENER     = FACT(statut='f',max='**',
20924                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20925                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20926                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20927                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20928                               ),
20929          b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
20930                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
20931                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20932                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20933                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20934                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20935                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20936                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20937                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20938                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20939                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20940                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20941                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20942                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20943                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20944          ),
20945
20946          INDIC_SEUIL    = FACT(statut='f',max='**',
20947                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20948                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20949                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20950                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20951                               ),
20952          b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
20953                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
20954                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20955                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20956                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20957                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20958                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20959                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20960                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20961                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20962                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20963                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20964                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20965                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20966                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20967          ),
20968
20969          CHAR_LIMITE    = FACT(statut='f',min=0,
20970                                CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
20971                               ),
20972          b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
20973                        fr="post-traitement du calcul de la charge limite",
20974                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20975                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20976                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20977                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
20978                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20979                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20980                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20981                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20982                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20983                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20984                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20985                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20986                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20987                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20988          ),
20989
20990          CARA_GEOM      = FACT(statut='f',max='**',
20991                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20992                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20993                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20994                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20995                                SYME_X       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
20996                                SYME_Y       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
20997                                ORIG_INER    = SIMP(statut='f',typ='R',min=2,max=2),
20998                               ),
20999          b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
21000                        fr="calcul des caractéristiques géométriques d'un section de poutre",
21001                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21002                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21003                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
21004                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21005          ),
21006
21007          CARA_POUTRE    = FACT(statut='f',max='**',
21008                                regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
21009                                        ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
21010                                TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21011                                GROUP_MA      = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21012                                GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21013                                CARA_GEOM     = SIMP(statut='o',typ=table_sdaster),
21014                                RT            = SIMP(statut='f',typ='R'),
21015                                LAPL_PHI      = SIMP(statut='f',typ=evol_ther),
21016                                LAPL_PHI_Y    = SIMP(statut='f',typ=evol_ther),
21017                                LAPL_PHI_Z    = SIMP(statut='f',typ=evol_ther),
21018                                LIAISON       = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
21019                                LONGUEUR      = SIMP(statut='f',typ='R'),
21020                                MATERIAU      = SIMP(statut='f',typ=mater_sdaster),
21021                                OPTION        = SIMP(statut='f',typ='TXM',
21022                                                     into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
21023                              ),
21024          b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
21025                        fr="calcul des caractéristiques mécaniques d'un section de poutre",
21026                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21027                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21028                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
21029                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21030          ),
21031
21032           AIRE_INTERNE   = FACT(statut='f',max='**',
21033                                 GROUP_MA_BORD  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
21034                                ),
21035          b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
21036                        fr="calcul de l'aire d'un trou dans un maillage 2D",
21037                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21038          ),
21039
21040          TRAV_EXT       = FACT(statut='f',),
21041          b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
21042                        fr="calcul du travail des efforts extérieurs",
21043                        RESULTAT       = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ),
21044                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21045                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21046                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21047          ),
21048
21049          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
21050          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21051
21052  )  ;
21053 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
21054 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21055 # ======================================================================
21056 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21057 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21058 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21059 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21060 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21061 #
21062 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21063 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21064 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21065 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21066 #
21067 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21068 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21069 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21070 # ======================================================================
21071 POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n',
21072             UIinfo={"groupes":("Post traitements",)},
21073                     fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire",
21074          regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
21075                  PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
21076                  UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
21077          MOMENT_SPEC_0   =SIMP(statut='f',typ='R'),  
21078          MOMENT_SPEC_2   =SIMP(statut='f',typ='R'),  
21079          MOMENT_SPEC_4   =SIMP(statut='f',typ='R'),  
21080          TABL_POST_ALEA  =SIMP(statut='f',typ=table_sdaster),
21081          COMPTAGE        =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
21082          DUREE           =SIMP(statut='f',typ='R',defaut= 1.),  
21083          CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
21084          DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
21085          MATER           =SIMP(statut='o',typ=mater_sdaster),
21086          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
21087 )  ;
21088 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
21089 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21090 # ======================================================================
21091 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21092 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21093 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21094 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21095 # (AT YOUR OPTION) ANY LATER VERSION.
21096 #
21097 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21098 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21099 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21100 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21101 #
21102 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21103 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21104 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21105 # ======================================================================
21106 POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n',
21107             UIinfo={"groupes":("Post traitements",)},
21108                   fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement",
21109
21110          CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
21111
21112          b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
21113                       regles=(PRESENT_PRESENT('CORR_KE','MATER'),
21114                               PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
21115                               PRESENT_PRESENT('DOMMAGE','MATER'),),
21116              HISTOIRE       = FACT(statut='o',
21117                                  regles=(UN_PARMI('SIGM','EPSI'),),
21118                                  SIGM  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21119                                  EPSI  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
21120              COMPTAGE       = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
21121              DELTA_OSCI     = SIMP(statut='f',typ='R',defaut= 0.0E+0),
21122              COEF_MULT      = FACT(statut='f',
21123                                  KT    = SIMP(statut='o',typ='R'),),
21124              CORR_KE        = SIMP(statut='f',typ='TXM',into=("RCCM",)),
21125              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN",
21126                                                               "TAHERI_MANSON","TAHERI_MIXTE")),
21127              MATER          = SIMP(statut='f',typ=mater_sdaster),
21128              CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
21129              TAHERI_NAPPE   = SIMP(statut='f',typ=(nappe_sdaster,formule)),
21130              TAHERI_FONC    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21131              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
21132          ),
21133
21134          b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
21135              HISTOIRE       = FACT(statut='o',
21136                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21137                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21138                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21139                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21140                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21141                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
21142              CRITERE        = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
21143              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
21144              MATER          = SIMP(statut='o',typ=mater_sdaster),
21145              COEF_CORR      = SIMP(statut='f',typ='R'),
21146          ),
21147
21148          b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
21149              HISTOIRE       = FACT(statut='o',
21150                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21151                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21152                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21153                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21154                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21155                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21156                                  EPSP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21157                                  TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),),
21158              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),),
21159              MATER          = SIMP(statut='o',typ=mater_sdaster),
21160              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
21161          ),
21162
21163          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21164          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21165 )  ;
21166 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR REZETTE C.REZETTE 
21167 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21168 # ======================================================================
21169 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
21170 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21171 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21172 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21173 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21174 #                                                                       
21175 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21176 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21177 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21178 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21179 #                                                                       
21180 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21181 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21182 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21183 # ======================================================================
21184
21185 from Macro.post_gp_ops import post_gp_ops
21186 def post_gp_prod(self, TABL_RESU, **kargs):
21187    """Typage des sd_prod
21188    """
21189    if TABL_RESU != None:
21190       self.type_sdprod(TABL_RESU, table_sdaster)
21191    return table_sdaster
21192
21193 POST_GP=MACRO(nom="POST_GP", op=post_gp_ops, sd_prod=post_gp_prod,
21194               fr="Calcul du critère énergétique Gp suite à un calcul thermo-mécanique",
21195               reentrant='n',
21196               UIinfo={"groupes":("Post traitements",)},
21197               regles=(AU_MOINS_UN('IDENTIFICATION', 'PREDICTION'),),
21198       
21199       # Résultat, modèle, comportement, chargement
21200       RESULTAT     = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
21201       RESU_THER    = SIMP(statut='f',typ=evol_ther,),
21202       MODELE       = SIMP(statut='o',typ=modele_sdaster),
21203       MATER        = SIMP(statut='o',typ=mater_sdaster),
21204       
21205       COMP_ELAS    = FACT(statut='o',
21206             RELATION    = SIMP(statut='f',typ='TXM',defaut="ELAS",
21207                             into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC"),),
21208             DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN"),),
21209       ),
21210       
21211       EXCIT        = FACT(statut='f', max='**',
21212             CHARGE      = SIMP(statut='o', typ=(char_meca,char_cine_meca)),
21213             FONC_MULT   = SIMP(statut='f', typ=(fonction_sdaster,nappe_sdaster,formule)),
21214             TYPE_CHARGE = SIMP(statut='f', typ='TXM', defaut="FIXE", into=("FIXE",)),
21215       ),
21216       SYME_CHAR    = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS")),
21217       
21218       DIRECTION    = SIMP(statut='o', typ='R', max=3),
21219       THETA_2D     = FACT(statut='o', max='**',
21220                           fr="paramètres de définition des champs theta",
21221             GROUP_NO    = SIMP(statut='o', typ=grno, validators=NoRepeat(), max='**'),
21222             R_INF       = SIMP(statut='o', typ='R'),
21223             R_SUP       = SIMP(statut='o', typ='R'),
21224       ),
21225       
21226       # copeaux
21227       GROUP_MA     = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'),
21228       PAS_ENTAILLE = SIMP(statut='o', typ='R', val_min=0.),
21229       
21230       # critère sur Gp
21231       CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU",
21232                           into=("RELATIF","ABSOLU")),
21233       
21234       # correction axisymétrie
21235       RAYON_AXIS   = SIMP(statut='f', typ='R', val_min=0., defaut=1.),
21236       
21237       # identification
21238       IDENTIFICATION = FACT(statut='f', max=1,
21239             KJ_CRIT     = SIMP(statut='o', typ='R', val_min=0., max='**'),
21240             TEMP        = SIMP(statut='o', typ='R', val_min=0., max='**'),
21241       ),
21242       
21243       # prédiction
21244       PREDICTION   = FACT(statut='f', max=1,
21245             GP_CRIT     = SIMP(statut='o', typ='R', val_min=0., max='**'),
21246             TEMP        = SIMP(statut='o', typ='R', val_min=0., max='**'),
21247       ),
21248       
21249       # table résultat
21250       TABL_RESU    = SIMP(statut='o', typ=CO,),
21251       
21252       INFO         = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),),
21253 )
21254 #& MODIF COMMANDE  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
21255 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21256 # ======================================================================
21257 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21258 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21259 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21260 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21261 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21262 #
21263 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21264 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21265 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21266 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21267 #
21268 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21269 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21270 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21271 # ======================================================================
21272 # RESPONSABLE GALENNE E.GALENNE
21273 from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops
21274 POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster,
21275                    fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements"
21276                      +" sur les lèvres de la fissure",
21277                    reentrant='n',
21278             UIinfo={"groupes":("Post traitements",)},
21279
21280            regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
21281                    PRESENT_PRESENT('RESULTAT','FOND_FISS'),),
21282
21283          MODELISATION  =SIMP(statut='o',typ='TXM',
21284                              into=("3D","AXIS","D_PLAN","C_PLAN"),
21285                              fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
21286          FOND_FISS     =SIMP(statut='f',typ=fond_fiss),
21287          b_fond_fiss   =BLOC (condition="(FOND_FISS!= None)",
21288                          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
21289                          TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"),
21290                          NB_NOEUD_COUPE= SIMP(statut='f',typ='I' ,defaut=5 ),
21291                          NOEUD         = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21292                          GROUP_NO      = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21293                          SANS_NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21294                          SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21295                          TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) )
21296                          ),
21297          MATER         =SIMP(statut='o',typ=mater_sdaster,
21298                              fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
21299          RESULTAT      =SIMP(statut='f',typ=(evol_elas,evol_noli),
21300                              fr="Table déplacement des noeuds de la lèvre supérieure et inférieure"),
21301          TABL_DEPL_SUP =SIMP(statut='f',typ=table_sdaster,
21302                              fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
21303          TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster,
21304                              fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
21305          ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
21306                              fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"),  
21307          PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1),
21308          TOUT_ORDRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21309          NUME_ORDRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21310          LIST_ORDRE    =SIMP(statut='f',typ=listis_sdaster),
21311          INST          =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21312          LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),
21313              b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
21314                PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
21315                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21316              ),
21317          SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ),
21318          INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21319          VECT_K1       =SIMP(statut='o',typ='R',max=3,
21320                              fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"),  
21321          TITRE         =SIMP(statut='f',typ='TXM',max='**'),  
21322 )  ;
21323 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
21324 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21325 # ======================================================================
21326 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
21327 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21328 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21329 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21330 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21331 #
21332 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21333 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21334 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21335 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21336 #
21337 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21338 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21339 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21340 #                                                                       
21341 #                                                                       
21342 # ======================================================================
21343 #
21344 POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster,
21345                    fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA",
21346                    reentrant='n',
21347             UIinfo={"groupes":("Post traitements",)},
21348          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
21349          MATER_REV     = SIMP(statut='o',typ=mater_sdaster),
21350          EPAIS_REV     = SIMP(statut='o',typ='R'),
21351          FISSURE       = FACT(statut='o',
21352             DECALAGE       = SIMP(statut='f',typ='R',defaut=-2.e-04),
21353             PROFONDEUR     = SIMP(statut='o',typ='R'),
21354             LONGUEUR       = SIMP(statut='o',typ='R'),
21355             ORIENTATION    = SIMP(statut='o',typ='TXM',
21356                                  into=("CIRC","LONGI"),),
21357          ),
21358          K1D           = FACT(statut='o',max='**',
21359             TABL_MECA_REV  = SIMP(statut='o',typ=(table_sdaster)),
21360             TABL_MECA_MDB  = SIMP(statut='o',typ=(table_sdaster)),
21361             TABL_THER      = SIMP(statut='o',typ=(table_sdaster)),
21362             INTITULE       = SIMP(statut='o',typ='TXM' ), 
21363          ),
21364          TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
21365 );
21366 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR REZETTE C.REZETTE 
21367 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21368 # ======================================================================
21369 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
21370 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21371 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21372 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21373 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21374 #                                                                       
21375 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21376 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21377 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21378 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21379 #                                                                       
21380 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21381 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21382 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21383 # ======================================================================
21384
21385 from Macro.post_k_trans_ops import post_k_trans_ops
21386
21387 POST_K_TRANS=MACRO(nom="POST_K_TRANS",op=post_k_trans_ops,sd_prod=table_sdaster,
21388             fr="Calcul des facteurs d intensite des contrainte par recombinaison modale",reentrant='n',
21389             UIinfo={"groupes":("Post traitements",)},
21390         RESU_TRANS      =SIMP(statut='o',typ=tran_gene), 
21391         K_MODAL         =FACT(statut='o',
21392            TABL_K_MODA     =SIMP(statut='f',typ=table_sdaster,),
21393            RESU_MODA       =SIMP(statut='f',typ=mode_meca,),
21394            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,),
21395            FISSURE         =SIMP(statut='f',typ=fiss_xfem,),
21396            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster)),
21397            R_INF           =SIMP(statut='f',typ='R'),
21398            R_SUP           =SIMP(statut='f',typ='R'),
21399            MODULE          =SIMP(statut='f',typ='R'),
21400            DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
21401            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
21402            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21403            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),             
21404            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21405            DEGRE           =SIMP(statut='f',typ='I',into=(0,1,2,3,4,5,6,7) ),
21406            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
21407            LISSAGE_G       =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),),
21408
21409
21410            regles=(UN_PARMI('TABL_K_MODA','RESU_MODA'),
21411                    UN_PARMI('FISSURE','FOND_FISS'),
21412                    EXCLUS('MODULE','MODULE_FO'),
21413                    PRESENT_PRESENT('R_INF','R_SUP'),
21414                    PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
21415          ),
21416         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
21417         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21418         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21419         LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
21420         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21421         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
21422         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
21423         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
21424
21425         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21426         TITRE           =SIMP(statut='f',typ='TXM'),
21427 )
21428
21429 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
21430 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21431 # ======================================================================
21432 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
21433 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21434 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21435 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21436 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21437 #                                                                       
21438 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21439 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21440 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21441 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21442 #                                                                       
21443 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21444 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21445 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21446 # ======================================================================
21447 POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
21448                     reentrant='n',UIinfo={"groupes":("Maillage",)},
21449             fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM",
21450     MODELE  = SIMP(statut='o',typ=modele_sdaster),
21451     TITRE   = SIMP(statut='f',typ='TXM',max='**'),
21452 );                     
21453 #& MODIF COMMANDE  DATE 21/02/2008   AUTEUR VIVAN L.VIVAN 
21454 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21455 # ======================================================================
21456 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21457 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21458 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21459 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21460 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21461 #
21462 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21463 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21464 # MERCHANTABILITY OR FITNESS FOR A PARTIC               
21465 #
21466 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21467 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21468 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21469 # ======================================================================
21470 # RESPONSABLE JMBHH01 J.M.PROIX
21471 POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster,
21472                fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
21473                reentrant='n',
21474             UIinfo={"groupes":("Post traitements",)},
21475          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ),
21476          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
21477          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21478          TYPE_RESU_MECA  =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ),
21479
21480 # ======================================================================
21481      b_evolution  =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')",
21482
21483          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
21484                                into=("PM_PB","SN","FATIGUE_ZH210") ),
21485          MATER           =SIMP(statut='o',typ=mater_sdaster ),
21486          SY_MAX          =SIMP(statut='f',typ='R',
21487                                fr="limite élastique utilisée pourle calcul du rochet thermique" ),
21488
21489          TRANSITOIRE     =FACT(statut='o',max='**',fr="transitoire à dépouiller",
21490            regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),),
21491            NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,
21492                                  fr="nombre d occurences réelles de ce transitoire" ),
21493            TABL_RESU_MECA  =SIMP(statut='o',typ=table_sdaster,
21494                                  fr="relevé des contraintes sur le chemin"),
21495            TABL_SIGM_THER  =SIMP(statut='f',typ=table_sdaster,
21496                                  fr="résultat sous chargement thermique seul" ),
21497            TABL_RESU_PRES  =SIMP(statut='f',typ=table_sdaster,
21498                                  fr="table relevé des contraintes sous chargement de pression" ),
21499            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21500            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21501            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
21502            b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
21503              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
21504              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
21505                                  ), 
21506                              ),
21507          ),
21508
21509 # ======================================================================
21510      b_unitaire  =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')",
21511
21512          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
21513                                into=("PM_PB","SN","FATIGUE") ),
21514          MATER           =SIMP(statut='o',typ=mater_sdaster ),
21515          SY_MAX          =SIMP(statut='f',typ='R',
21516                                fr="limite élastique utilisée pourle calcul du rochet thermique" ),
21517          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
21518                                fr="Ke meca seul ou partition mecanique + thermique" ),
21519          CHAR_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
21520                            regles=(UN_PARMI('MX','MX_TUBU'),),
21521            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
21522            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
21523            TYPE_CHAR     =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
21524            MX            =SIMP(statut='f',typ='R',fr="moment suivant x", ),
21525            MX_TUBU       =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ),
21526            b_1_tenseur     =BLOC( condition = "MX != None",
21527              FX            =SIMP(statut='f',typ='R',fr="effort suivant x", ),
21528              FY            =SIMP(statut='f',typ='R',fr="effort suivant y", ),
21529              FZ            =SIMP(statut='f',typ='R',fr="effort suivant z", ),
21530              MY            =SIMP(statut='o',typ='R',fr="moment suivant y", ),
21531              MZ            =SIMP(statut='o',typ='R',fr="moment suivant z", ),
21532            ),
21533            b_2_tenseurs    =BLOC( condition = "MX_TUBU != None",
21534              FX_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ),
21535              FY_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ),
21536              FZ_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ),
21537              MY_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ),
21538              MZ_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ),
21539              FX_CORP       =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ),
21540              FY_CORP       =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ),
21541              FZ_CORP       =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ),
21542              MX_CORP       =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ),
21543              MY_CORP       =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ),
21544              MZ_CORP       =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ),
21545            ),
21546
21547                          ),
21548          RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires",
21549                               regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),),
21550            TABL_MX       =SIMP(statut='f',typ=table_sdaster,
21551                                fr="table relevé des contraintes pour chargement unitaire MX"),
21552            TABL_MX_TUBU  =SIMP(statut='f',typ=table_sdaster,
21553                                fr="table relevé des contraintes pour chargement unitaire MX_TUBU"),
21554            b_1_tenseur     =BLOC( condition = "TABL_MX != None",
21555              TABL_FX       =SIMP(statut='f',typ=table_sdaster,
21556                                  fr="table relevé des contraintes pour chargement unitaire FX"),
21557              TABL_FY       =SIMP(statut='f',typ=table_sdaster,
21558                                  fr="table relevé des contraintes pour chargement unitaire FY"),
21559              TABL_FZ       =SIMP(statut='f',typ=table_sdaster,
21560                                  fr="table relevé des contraintes pour chargement unitaire FZ"),
21561              TABL_MY       =SIMP(statut='o',typ=table_sdaster,
21562                                  fr="table relevé des contraintes pour chargement unitaire MY"),
21563              TABL_MZ       =SIMP(statut='o',typ=table_sdaster,
21564                                  fr="table relevé des contraintes pour chargement unitaire MZ"),
21565            ),
21566            b_2_tenseurs    =BLOC( condition = "TABL_MX_TUBU != None",
21567              TABL_FX_TUBU  =SIMP(statut='f',typ=table_sdaster,
21568                                  fr="table relevé des contraintes pour chargement unitaire FX_TUBU"),
21569              TABL_FY_TUBU  =SIMP(statut='f',typ=table_sdaster,
21570                                  fr="table relevé des contraintes pour chargement unitaire FY_TUBU"),
21571              TABL_FZ_TUBU  =SIMP(statut='f',typ=table_sdaster,
21572                                  fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"),
21573              TABL_MY_TUBU  =SIMP(statut='o',typ=table_sdaster,
21574                                  fr="table relevé des contraintes pour chargement unitaire MY_TUBU"),
21575              TABL_MZ_TUBU  =SIMP(statut='o',typ=table_sdaster,
21576                                  fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"),
21577              TABL_FX_CORP  =SIMP(statut='f',typ=table_sdaster,
21578                                  fr="table relevé des contraintes pour chargement unitaire FX_CORP"),
21579              TABL_FY_CORP  =SIMP(statut='f',typ=table_sdaster,
21580                                  fr="table relevé des contraintes pour chargement unitaire FY_CORP"),
21581              TABL_FZ_CORP  =SIMP(statut='f',typ=table_sdaster,
21582                                  fr="table relevé des contraintes pour chargement unitaire FZ_CORP"),
21583              TABL_MX_CORP  =SIMP(statut='o',typ=table_sdaster,
21584                                  fr="table relevé des contraintes pour chargement unitaire MX_CORP"),
21585              TABL_MY_CORP  =SIMP(statut='o',typ=table_sdaster,
21586                                  fr="table relevé des contraintes pour chargement unitaire MY_CORP"),
21587              TABL_MZ_CORP  =SIMP(statut='o',typ=table_sdaster,
21588                                  fr="table relevé des contraintes pour chargement unitaire MZ_CORP"),
21589            ),
21590            TABL_PRES     =SIMP(statut='o',typ=table_sdaster,
21591                                fr="table relevé des contraintes pour chargement unitaire de pression"),
21592                          ),
21593
21594           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
21595            NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
21596            TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
21597                               fr="table relevé des contraintes sous chargement thermique seul" ),
21598                            ),
21599          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
21600               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
21601               NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
21602               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
21603               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
21604               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
21605               NUME_GROUPE      =SIMP(statut='f',typ='I',max=2,
21606                  fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ),
21607               NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
21608               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
21609               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
21610               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
21611               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
21612               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
21613               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
21614                                ),
21615                       ),
21616 # ======================================================================
21617      b_tuyauterie  =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')",
21618
21619          OPTION          =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ),
21620          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
21621          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
21622                                fr="Ke meca seul ou partition mecanique + thermique" ),
21623          MODELE          =SIMP(statut='o',typ=modele_sdaster),
21624          CARA_ELEM       =SIMP(statut='o',typ=cara_elem),
21625          ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
21626             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21627             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21628             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21629             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21630             ),
21631          RESU_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
21632            regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
21633            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
21634            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
21635            TYPE_CHAR     =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
21636            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
21637            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
21638            b_extrac        =BLOC(condition="RESULTAT != None",
21639                                  fr="extraction d un champ de grandeur",
21640              regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),),
21641              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),),
21642              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21643              NUME_ORDRE      =SIMP(statut='f',typ='I',),
21644              INST            =SIMP(statut='f',typ='R',),
21645              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
21646              b_acce_reel     =BLOC(condition="(INST != None)",
21647                PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
21648                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ),
21649              ),
21650            ),
21651                           ),
21652          INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes",
21653             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21654             C1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"),
21655             K1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"),
21656             C2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"),
21657             K2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"),
21658             C3              =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"),
21659             K3              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"),
21660             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),),
21661             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
21662                              fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
21663             MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
21664                              fr="liste des mailles ou sont affectés les indices de contraintes"),
21665             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
21666                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21667                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21668             ),
21669             TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"),
21670                               fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"),
21671                          ),
21672           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
21673             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21674             NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
21675             TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
21676                               fr="table relevé des températures sur la section"),
21677             TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster,
21678                               fr="table relevé des moyennes sur la section"),
21679             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21680             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21681             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21682             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
21683                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21684                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21685             ),
21686                            ),
21687          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
21688               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
21689               NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
21690               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
21691               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
21692               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
21693               NUME_GROUPE      =SIMP(statut='f',typ='I',max=2,
21694                  fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ),
21695               NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
21696               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
21697               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
21698               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
21699               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
21700               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
21701               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
21702                                ),
21703                ),
21704 )  ;
21705 #& MODIF COMMANDE  DATE 27/11/2006   AUTEUR GNICOLAS G.NICOLAS 
21706 # ======================================================================
21707 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21708 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21709 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21710 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21711 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21712 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21713 #
21714 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21715 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21716 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21717 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21718 #
21719 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21720 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21721 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21722 # ======================================================================
21723 # RESPONSABLE G8BHHXD X.DESROCHES
21724 POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f',
21725             fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)"
21726                +" ou pour les exprimer dans d'autres repères",
21727             docu="U4.81.21",UIinfo={"groupes":("Post traitements",)},
21728
21729          ACTION          =FACT(statut='o',max='**',
21730                                regles=(UN_PARMI('RESULTAT','CHAM_GD'),), 
21731
21732            OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","EXTREMA"),validators=NoRepeat(),max=2),
21733            INTITULE        =SIMP(statut='o',typ='TXM'),  
21734
21735            CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
21736                                                  cham_elem,),),
21737            RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans,
21738                                                  mode_meca,mode_flamb,mode_acou,base_modale,mode_stat,
21739                                                  mult_elas,fourier_elas,fourier_ther,dyna_harmo,acou_harmo)),
21740 #
21741 #  1. Sensibilité
21742 #  1.1. Cas d'un résultat réel
21743 #       Cas d'un résultat harmonique dont on veut partie réelle ou imaginaire
21744 #
21745            b_sensibilite   =BLOC(condition=" (RESULTAT != None) and \
21746                                       (   AsType(RESULTAT) in (evol_elas,evol_ther,evol_noli,dyna_trans, \
21747                                                                mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, \
21748                                                                mult_elas,fourier_elas,fourier_ther) or \
21749                                         ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C != 'MODULE' ) )",
21750                                  fr="Définition des paramètres de sensibilité",
21751                                  ang="Definition of sensitivity parameters",
21752              regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
21753                      DERIVABLE('RESULTAT'),),
21754              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
21755                                    fr="Liste des paramètres de sensibilité.",
21756                                    ang="List of sensitivity parameters"),
21757
21758            ),
21759 #
21760 #  1.2. Cas d'un résultat harmonique dont on veut le module
21761 #
21762            b_sensibilite_harmo =BLOC(condition=" (RESULTAT != None) and \
21763                                       ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C == 'MODULE' )",
21764                                      fr="Définition des paramètres de sensibilité",
21765                                      ang="Definition of sensitivity parameters",
21766              regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
21767                      DERIVABLE('RESULTAT'),),
21768              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
21769                                    fr="Liste des paramètres de sensibilité.",
21770                                    ang="List of sensitivity parameters"),
21771                b_sensibilite_harmo =BLOC(condition=" SENSIBILITE != None",
21772                                          fr="Option pour la sensibilite",
21773                                          ang="Option for sensitivity",
21774                SENSIBILITE_OPTION =SIMP(statut='o',typ='TXM',into=("MODULE_SENSIBILITE","SENSIBILITE_MODULE",),
21775                                         fr="Option : module de la dérivée ou dérivée du module",
21776                                         ang="Option : modulus of derivative or derivative of modulus"),
21777                ),
21778            ),
21779
21780            b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
21781                                  regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',         
21782                                                 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),           
21783              NOM_CHAM        =SIMP(statut='o',typ='TXM' ),  
21784              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21785              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
21786              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
21787              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
21788              LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
21789              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
21790              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),  
21791              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
21792              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
21793              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
21794              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
21795              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
21796              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21797            ),
21798
21799            b_extrema   =BLOC(condition="OPERATION == 'EXTREMA'",
21800                              fr="recherche de MIN MAX",
21801                              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
21802               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21803               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21804               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21805               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21806               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21807               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
21808               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
21809            ),
21810
21811            b_autre   =BLOC(condition="OPERATION != 'EXTREMA'",
21812                            fr="extraction et moyenne",
21813                            regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
21814                                    EXCLUS('CHEMIN','GROUP_NO'),
21815                                    EXCLUS('CHEMIN','NOEUD'),
21816                                    PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
21817                                    UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
21818                                    PRESENT_PRESENT('TRAC_DIR','DIRECTION'),          
21819                                    ENSEMBLE('MOMENT','POINT'),
21820                                    PRESENT_PRESENT('MOMENT','RESULTANTE'),
21821                                    PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
21822                                    EXCLUS('TRAC_DIR','TRAC_NOR'),
21823                                    PRESENT_PRESENT('ORIGINE','AXE_Z'),),
21824                    
21825               CHEMIN          =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ),
21826               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21827               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21828               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21829               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21830               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21831
21832               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
21833               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
21834               INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
21835               ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21836               RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),  
21837
21838               MOMENT          =SIMP(statut='f',typ='TXM',max='**'),  
21839               POINT           =SIMP(statut='f',typ='R',max='**'),  
21840
21841               REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
21842                                  into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
21843               ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),  
21844               ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
21845               AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),  
21846
21847               TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
21848               TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
21849               DIRECTION       =SIMP(statut='f',typ='R',max='**'),  
21850  
21851               VECT_Y          =SIMP(statut='f',typ='R',max='**'),  
21852               MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
21853            ),
21854
21855            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
21856
21857          ),
21858          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21859          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
21860 )  ;
21861 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
21862 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21863 # ======================================================================
21864 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21865 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21866 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21867 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21868 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21869 #
21870 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21871 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21872 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21873 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21874 #
21875 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21876 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21877 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21878 # ======================================================================
21879 POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f',
21880             UIinfo={"groupes":("Post traitements",)},
21881                 fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure",
21882          regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'),
21883                  PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'),
21884                  PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),),
21885          TUBE_NEUF       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21886          ETAT_INIT       =FACT(statut='f',
21887            TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
21888            INST_INIT       =SIMP(statut='f',typ='R'),  
21889                          ),
21890          RESU_GENE       =SIMP(statut='f',typ=tran_gene),
21891          NOEUD           =SIMP(statut='f',typ=no,),
21892          INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),  
21893          INST_FIN        =SIMP(statut='f',typ='R'),  
21894          NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
21895          PUIS_USURE      =SIMP(statut='f',typ='R'),  
21896          LOI_USURE       =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
21897          b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
21898            regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), 
21899                    EXCLUS('MATER_USURE','OBSTACLE'),
21900                    EXCLUS('MOBILE','USURE_OBST'),),
21901            MOBILE          =FACT(statut='f',
21902              COEF_USURE      =SIMP(statut='o',typ='R'), 
21903            ),   
21904            OBSTACLE        =FACT(statut='f',
21905              COEF_USURE      =SIMP(statut='o',typ='R'), 
21906            ),
21907            SECTEUR         =FACT(statut='f',max='**',
21908              CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",  
21909                                                               "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", 
21910                                                               "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
21911              COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),  
21912              COEF_USUR_OBST  =SIMP(statut='f',typ='R'),  
21913              ANGL_INIT       =SIMP(statut='f',typ='R'),  
21914              ANGL_FIN        =SIMP(statut='f',typ='R'),  
21915            ),
21916            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
21917            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
21918          ),
21919          b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
21920            regles=(UN_PARMI('MOBILE','MATER_USURE'), 
21921                    EXCLUS('MATER_USURE','OBSTACLE'),
21922                    EXCLUS('MOBILE','USURE_OBST'),),
21923            MOBILE          =FACT(statut='f',
21924              COEF_FNOR       =SIMP(statut='f',typ='R'),  
21925              COEF_VTAN       =SIMP(statut='f',typ='R'),  
21926              COEF_USURE      =SIMP(statut='f',typ='R'),  
21927              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
21928              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
21929            ),   
21930            OBSTACLE        =FACT(statut='f',
21931              COEF_FNOR       =SIMP(statut='f',typ='R' ),  
21932              COEF_VTAN       =SIMP(statut='f',typ='R' ),  
21933              COEF_USURE      =SIMP(statut='o',typ='R'), 
21934              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
21935              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
21936            ),   
21937            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
21938            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
21939            FNOR_MAXI       =SIMP(statut='f',typ='R' ),  
21940            VTAN_MAXI       =SIMP(statut='f',typ='R' ),  
21941          ),
21942          b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
21943            regles=(UN_PARMI('MOBILE','MATER_USURE'), 
21944                    EXCLUS('MATER_USURE','OBSTACLE'),
21945                    EXCLUS('MOBILE','USURE_OBST'),),
21946            MOBILE          =FACT(statut='f',
21947              COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),  
21948              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
21949              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
21950              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
21951            ),   
21952            OBSTACLE        =FACT(statut='f',
21953              COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13), 
21954              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
21955              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
21956              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
21957            ),   
21958            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
21959            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
21960          ),
21961          b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
21962             TABL_USURE      =SIMP(statut='o',typ=table_sdaster),
21963             INST            =SIMP(statut='f',typ='R'),
21964          ),
21965          CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",    
21966                                                           "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",        
21967                                                           "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
21968          RAYON_MOBILE    =SIMP(statut='f',typ='R'),  
21969          RAYON_OBST      =SIMP(statut='f',typ='R'),  
21970          LARGEUR_OBST    =SIMP(statut='f',typ='R'),  
21971          ANGL_INCLI      =SIMP(statut='f',typ='R'),  
21972          ANGL_ISTHME     =SIMP(statut='f',typ='R'),  
21973          ANGL_IMPACT     =SIMP(statut='f',typ='R'),  
21974          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
21975          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
21976          COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
21977          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21978          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
21979 )  ;
21980 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
21981 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21982 # ======================================================================
21983 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21984 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21985 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21986 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21987 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21988 #
21989 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21990 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21991 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21992 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21993 #
21994 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21995 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21996 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21997 # ======================================================================
21998 POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n',
21999             UIinfo={"groupes":("Post traitements",)},
22000               fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous"
22001                 +" chargement cyclique élastique affine ou non",
22002          MODELE          =SIMP(statut='o',typ=modele_sdaster),
22003          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
22004          EXCIT           =FACT(statut='o',max='**',
22005            CHARGE          =SIMP(statut='o',typ=char_meca),
22006            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
22007            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)),
22008          ),
22009          EVOL_ELAS       =SIMP(statut='o',typ=evol_elas),
22010          b_evol_elas     =BLOC(condition="EVOL_ELAS != None",
22011            regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),),
22012            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
22013            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22014            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
22015          ),
22016          TEMP_ZAC        =SIMP(statut='f',typ='R',defaut=0.0E+0),  
22017          EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
22018          b_evol_noli     =BLOC(condition="EVOL_NOLI != None",
22019            INST_MAX        =SIMP(statut='o',typ='R'),  
22020          ),
22021          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
22022          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
22023
22024 )  ;
22025 #& MODIF COMMANDE  DATE 19/06/2006   AUTEUR VABHHTS J.PELLET 
22026 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22027 # ======================================================================
22028 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22029 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22030 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22031 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22032 # (AT YOUR OPTION) ANY LATER VERSION.
22033 #
22034 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22035 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22036 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22037 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22038 #
22039 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22040 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22041 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22042 # ======================================================================
22043 POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
22044                 fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale",
22045                 sd_prod = ops.POURSUITE,
22046             UIinfo={"groupes":("Gestion du travail",)},
22047                 op_init = ops.POURSUITE_context,fichier_ini = 1,
22048          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
22049                                typ='TXM',defaut="NON",into=("OUI","NON",) ),
22050          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
22051                            into=("OUI","NON"),defaut="OUI"),
22052          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
22053                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
22054          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
22055                                statut='f',min=1,max=2,
22056            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
22057            TITRE           =SIMP(statut='f',typ='TXM'),
22058            CAS             =SIMP(statut='f',typ='TXM'),
22059            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
22060            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
22061            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
22062          ),
22063          IMPRESSION      =FACT(statut='f',min=1,max=3,
22064            FICHIER         =SIMP(statut='o',typ='TXM'),
22065            UNITE           =SIMP(statut='o',typ='I'),
22066          ),
22067          CATALOGUE       =FACT(statut='f',min=1,max=10,
22068            FICHIER         =SIMP(statut='o',typ='TXM'),
22069            TITRE           =SIMP(statut='f',typ='TXM'),
22070            UNITE           =SIMP(statut='f',typ='I'),
22071          ),
22072          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
22073            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
22074          ),
22075          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
22076                                statut='f',min=1,max=1,
22077            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
22078                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
22079            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
22080                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
22081            JEVEUX          =SIMP(fr="force les déchargement sur disque",
22082                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
22083            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
22084                                  statut='f',typ='TXM',into=('TEST',)),
22085          ),
22086          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
22087            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
22088            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
22089            TAILLE          =SIMP(statut='f',typ='I'),
22090            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
22091            PARTITION       =SIMP(statut='f',typ='R' ),
22092          ),
22093          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1,
22094            regles=(EXCLUS('VALE','POURCENTAGE'),),
22095            VALE            =SIMP(statut='f',typ='I',val_min=0),
22096            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
22097 #          valeur en pourcentage du temps maximum bornée à 180 secondes
22098            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=180)
22099          ),
22100          CODE            =FACT("définition d un nom pour l'esemble d'une étude",
22101                                statut='f',min=1,max=1,
22102            NOM             =SIMP(statut='o',typ='TXM'),
22103            UNITE           =SIMP(statut='f',typ='I',defaut=15),
22104          ),
22105 )  ;
22106 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
22107 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22108 # ======================================================================
22109 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22110 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22111 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22112 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22113 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22114 #
22115 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22116 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22117 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22118 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22119 #
22120 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22121 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22122 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22123 # ======================================================================
22124 PRE_GIBI=PROC(nom="PRE_GIBI",op=49,
22125             UIinfo={"groupes":("Gestion du travail",)},
22126               fr="Conversion d'un fichier de maillage GIBI au format Aster",
22127          UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
22128          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
22129 )  ;
22130 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
22131 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22132 # ======================================================================
22133 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22134 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22135 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22136 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22137 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22138 #
22139 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22140 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22141 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22142 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22143 #
22144 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22145 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22146 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22147 # ======================================================================
22148
22149 PRE_GMSH=PROC(nom="PRE_GMSH",op=47,
22150             UIinfo={"groupes":("Gestion du travail",)},
22151                fr="Conversion d'un fichier de maillage GMSH au format Aster",
22152          UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
22153          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
22154 )  ;
22155 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
22156 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22157 # ======================================================================
22158 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22159 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22160 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22161 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22162 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22163 #
22164 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22165 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22166 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22167 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22168 #
22169 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22170 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22171 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22172 # ======================================================================
22173 PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
22174             UIinfo={"groupes":("Gestion du travail",)},
22175                fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster",
22176          UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
22177          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
22178          CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22179 )  ;
22180 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
22181 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22182 # ======================================================================
22183 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22184 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22185 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22186 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22187 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22188 #
22189 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22190 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22191 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22192 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22193 #
22194 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22195 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22196 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22197 # ======================================================================
22198
22199 PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster,
22200                     fr="Effectuer le produit d'une matrice par un vecteur",
22201                     reentrant='n',
22202             UIinfo={"groupes":("Résultats et champs",)},
22203          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ),
22204          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
22205          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22206 )  ;
22207 #& MODIF COMMANDE  DATE 12/09/2006   AUTEUR VABHHTS J.PELLET 
22208 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22209 # ======================================================================
22210 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22211 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22212 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22213 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22214 # (AT YOUR OPTION) ANY LATER VERSION.
22215 #
22216 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22217 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22218 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22219 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22220 #
22221 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22222 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22223 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22224 # ======================================================================
22225 # RESPONSABLE VABHHTS J.PELLET
22226 def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
22227     if AsType(RESULTAT)     == evol_ther      : return evol_ther
22228     if AsType(RESULTAT)     == evol_elas      : return evol_elas
22229     if AsType(RESULTAT)     == evol_noli      : return evol_noli
22230     if AsType(RESULTAT)     == evol_char      : return evol_char
22231     if AsType(RESULTAT)     == dyna_trans     : return dyna_trans
22232     if AsType(RESULTAT)     == dyna_harmo     : return dyna_harmo
22233     if AsType(RESULTAT)     == mode_meca      : return mode_meca
22234     if AsType(RESULTAT)     == mode_stat_depl : return mode_stat_depl
22235     if AsType(RESULTAT)     == base_modale    : return base_modale
22236     if CHAM_NO_REFE         != None           : return cham_no_sdaster
22237     raise AsException("type de concept resultat non prevu")
22238
22239 PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
22240             UIinfo={"groupes":("Résultats et champs",)},
22241                 fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage",
22242 #
22243          METHODE         =SIMP(statut='f',typ='TXM',defaut="ELEM",
22244                                into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
22245          b_nuage         =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
22246                                fr="Lissage d'un nuage de points",
22247            CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
22248            CHAM_NO_REFE    =SIMP(statut='o',typ=cham_no_sdaster),
22249          ),
22250          b_elem          =BLOC(condition="METHODE=='ELEM'",
22251                               fr="Utilisation des fonctions de forme du maillage initial",
22252            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
22253                    EXCLUS('TOUT_CHAM','NOM_CHAM',),
22254                    CONCEPT_SENSIBLE('SEPARE'),
22255                    REUSE_SENSIBLE(),
22256                    DERIVABLE('RESULTAT'),),
22257            RESULTAT        =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,dyna_trans,evol_char,dyna_harmo,
22258                                                  mode_meca,mode_stat_depl,base_modale) ),
22259            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
22260                                fr="Liste des paramètres de sensibilité.",
22261                                ang="List of sensitivity parameters",),
22262            MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
22263            MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
22264
22265            NOM_PARA        =SIMP(statut='f',typ='TXM', max='**'),
22266            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22267            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22268
22269 #          POUR IMPOSER LA NUMEROTATION DES DDLS :
22270 #          ------------------------------------------------------------------
22271            NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
22272
22273
22274            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22275            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
22276            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
22277            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22278            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22279            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22280            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
22281            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
22282            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22283
22284
22285            CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
22286            DISTANCE_MAX    =SIMP(statut='f',typ='R',
22287                 fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
22288            TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
22289                 fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
22290                    " aux noeuds du MODELE_2 avant la projection."),
22291
22292            ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
22293
22294            TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
22295                 fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
22296
22297            PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
22298                 fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger"
22299                    +" les champs par zéro la ou la projection ne donne pas de valeurs."),
22300
22301          ),
22302
22303          VIS_A_VIS       =FACT(statut='f',max='**',
22304            regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
22305                    AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
22306            TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22307            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22308            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22309            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22310            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22311            TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22312            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22313            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22314            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22315            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22316            CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
22317            TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
22318                 fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
22319                    " aux noeuds du MODELE_2 avant la projection."),
22320          ),
22321
22322          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
22323          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
22324 )  ;
22325 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
22326 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22327 # ======================================================================
22328 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22329 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22330 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22331 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22332 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22333 #
22334 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22335 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22336 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22337 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22338 #
22339 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22340 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22341 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22342 # ======================================================================
22343 def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
22344   if AsType(MATR_ASSE) == matr_asse_depl_r  : return matr_asse_gene_r
22345   if AsType(MATR_ASSE_GENE) == matr_asse_gene_r  : return matr_asse_gene_r
22346   if AsType(MATR_ASSE) == matr_asse_depl_c  : return matr_asse_gene_c
22347   if AsType(MATR_ASSE_GENE) == matr_asse_gene_c  : return matr_asse_gene_c
22348   raise AsException("type de concept resultat non prevu")
22349
22350 PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
22351                     fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)",
22352                     reentrant='n',
22353             UIinfo={"groupes":("Matrices/vecteurs",)},
22354          regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
22355          BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
22356          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
22357          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
22358          MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
22359 )  ;
22360
22361 #& MODIF COMMANDE  DATE 19/06/2006   AUTEUR VABHHTS J.PELLET 
22362 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22363 # ======================================================================
22364 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22365 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22366 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22367 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22368 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22369 #
22370 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22371 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22372 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22373 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22374 #
22375 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22376 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22377 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22378 # ======================================================================
22379 def proj_mesu_modal_prod(MODELE_MESURE,**args):
22380      vale=MODELE_MESURE['MESURE']
22381      if  AsType(vale) == dyna_trans   : return tran_gene
22382      if  AsType(vale) == dyna_harmo   : return harm_gene
22383      if  AsType(vale) == mode_meca    : return mode_gene
22384 #     if  AsType(vale) == mode_meca_c  : return mode_gene_c
22385      if  AsType(vale) == base_modale  : return mode_gene
22386      raise AsException("type de concept resultat non prevu")
22387
22388 PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
22389                      sd_prod=proj_mesu_modal_prod,
22390                      reentrant='n',
22391             UIinfo={"groupes":("Résultats et champs",)},
22392                      fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection",
22393
22394          MODELE_CALCUL   =FACT(statut='o',
22395            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
22396            BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,) ),
22397                          ),
22398          MODELE_MESURE   =FACT(statut='o',
22399            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
22400            MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
22401            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
22402                          ),
22403          CORR_MANU       =FACT(statut='f',max='**',
22404            regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
22405            NOEU_CALCUL     =SIMP(statut='f',typ=no),
22406            NOEU_MESURE     =SIMP(statut='f',typ=no),
22407                          ),
22408          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
22409          RESOLUTION      =FACT(statut='f',
22410            METHODE         =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
22411            b_svd =BLOC(condition="METHODE=='SVD'",
22412                        EPS=SIMP(statut='f',typ='R',defaut=0. ),
22413                       ),
22414            REGUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
22415            b_regul =BLOC(condition="REGUL!='NON'",
22416                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
22417                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),  
22418                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
22419                         ),
22420              ),
22421
22422           ); 
22423 #& MODIF COMMANDE  DATE 06/06/2007   AUTEUR SALMONA L.SALMONA 
22424 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22425 # ======================================================================
22426 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22427 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22428 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22429 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22430 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22431 #
22432 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22433 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22434 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22435 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22436 #
22437 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22438 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22439 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22440 # ======================================================================
22441 PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n',
22442             UIinfo={"groupes":("Matrices/vecteurs",)},
22443             fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ",
22444       regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),),
22445          SPEC_TURB       =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ),
22446          TOUT_CMP        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
22447          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
22448          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
22449          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
22450          FREQ_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
22451          FREQ_FIN        =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
22452          NB_POIN         =SIMP(statut='o',typ='I' ),  
22453          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
22454          GROUP_MA        =SIMP(statut='f',typ=grma),
22455 #  Quel est le type attendu derriere  MODELE_INTERFACE         
22456          MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster),
22457          VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),  
22458          VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3 ),  
22459          ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
22460          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
22461 )  ;
22462 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
22463 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22464 # ======================================================================
22465 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22466 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22467 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22468 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22469 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22470 #
22471 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22472 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22473 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22474 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22475 #
22476 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22477 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22478 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22479 # ======================================================================
22480
22481 PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
22482                     fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)",
22483                     reentrant='n',
22484             UIinfo={"groupes":("Matrices/vecteurs",)},
22485          regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
22486          BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
22487          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
22488          TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
22489          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
22490          VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
22491 )  ;
22492 #& MODIF COMMANDE  DATE 22/08/2006   AUTEUR MASSIN P.MASSIN 
22493 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22494 # ======================================================================
22495 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
22496 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
22497 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
22498 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
22499 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
22500 #                                                                       
22501 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
22502 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
22503 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
22504 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
22505 #                                                                       
22506 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
22507 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
22508 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
22509 # ======================================================================
22510
22511 PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n',
22512                 UIinfo={"groupes":("Modélisation",)},
22513                 fr="Propagation de fissure avec X-FEM",
22514     
22515     MODELE        =SIMP(statut='o',typ=modele_sdaster),
22516         
22517     TABLE         =SIMP(statut='o',typ=table_sdaster),
22518
22519     LOI_PROPA     =FACT(statut='o',max=01,
22520       LOI            =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
22521       b_paris        =BLOC( condition = "LOI=='PARIS'",
22522         C            =SIMP(statut='o',typ='R',),
22523         M            =SIMP(statut='o',typ='R',),),
22524             ),
22525             
22526     RAYON          =SIMP(statut='o',typ='R',),
22527           
22528     METHODE        =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="COEFF_POSITIF"),
22529
22530 #    RUNGE_KUTTA    =SIMP(statut='f',typ='I',into=("1","2",),defaut=1),
22531
22532     INFO           =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
22533 )  ;
22534 #& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
22535 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22536 # ======================================================================
22537 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22538 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22539 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22540 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22541 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22542 #
22543 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22544 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22545 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22546 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22547 #
22548 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22549 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22550 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22551 # ======================================================================
22552 RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster,
22553                      fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n',
22554             UIinfo={"groupes":("Post traitements",)},
22555          LIST_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ),
22556          RESU            =FACT(statut='o',max='**',
22557            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),
22558                    AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
22559            EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
22560            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
22561            CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
22562            TEMPE           =SIMP(statut='f',typ='R' ),
22563            LIST_INST_RUPT  =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
22564            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22565            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
22566            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22567            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
22568            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22569            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22570            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22571            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),
22572                          ),
22573          OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
22574          CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
22575          METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
22576          INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
22577          ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
22578          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
22579                        )  ;
22580 #& MODIF COMMANDE  DATE 07/11/2006   AUTEUR DURAND C.DURAND 
22581 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22582 # ======================================================================
22583 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22584 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22585 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22586 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22587 # (AT YOUR OPTION) ANY LATER VERSION.
22588 #
22589 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22590 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22591 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22592 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22593 #
22594 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22595 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22596 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22597 # ======================================================================
22598 # RESPONSABLE MCOURTOI M.COURTOIS
22599 def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None,
22600                        BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None,
22601                        NOM_PARA_TABL=None,**args):
22602    if AsType(RESULTAT)  == dyna_harmo or \
22603       AsType(RESU_GENE) == harm_gene or \
22604       (TABLE != None and NOM_PARA_TABL == "FONCTION_C"):
22605       return fonction_c
22606    else:
22607       return fonction_sdaster
22608
22609 RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
22610                    fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre",
22611                    reentrant='f',
22612             UIinfo={"groupes":("Fonction",)},
22613          regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE'),),
22614
22615          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
22616                                                cham_elem,),),
22617          RESULTAT        =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ),
22618          RESU_GENE       =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)),
22619          TABLE           =SIMP(statut='f',typ=(table_sdaster,table_fonction)),
22620          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
22621          NAPPE           =SIMP(statut='f',typ=nappe_sdaster),
22622
22623 # ======= SENSIBILITE =================================================
22624          b_sensibilite   =BLOC(condition="RESULTAT != None",
22625                                  fr="Définition des paramètres de sensibilité",
22626                                  ang="Definition of sensitivity parameters",
22627            regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
22628                    DERIVABLE('RESULTAT'),),
22629            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
22630                                    fr="Liste des paramètres de sensibilité.",
22631                                    ang="List of sensitivity parameters"),),
22632 # ======= ACCES A LA SD RESULTAT =================================================
22633          b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)",
22634                           fr="acces a une SD résultat",
22635 # on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran
22636            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22637            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22638            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
22639            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22640            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22641            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
22642            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22643            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
22644            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22645            b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
22646              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22647              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22648              INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
22649            ),
22650          ),
22651 # ======= BASE_ELAS_FLUI =================================================
22652          b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
22653                                    fr="Récupération de la fonction à partir d un concept melasflu",
22654            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
22655            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22656            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22657            NUME_MODE       =SIMP(statut='o',typ='I' ),
22658            PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
22659            PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),
22660          ),
22661
22662 # ======= TABLE =================================================
22663          b_table = BLOC ( condition = "TABLE != None",
22664                           fr="Récupération de la fonction à partir d un concept table",
22665                           regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
22666                                   PRESENT_PRESENT('PARA_X','PARA_Y'),),
22667            PARA_X        = SIMP(statut='f',typ='TXM',
22668                                  fr="1ère colonne de la table qui définit la fonction à récupérer", ),
22669            PARA_Y        = SIMP(statut='f',typ='TXM',
22670                                  fr="2ème colonne de la table qui définit la fonction à récupérer", ),
22671            #b_tabl_fonc = BLOC(condition = "AsType(TABLE) == table_fonction",
22672            NOM_PARA_TABL = SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C"),
22673                                 fr="Nom du paramètre de la table contenant la fonction" ),
22674            #),
22675
22676            FILTRE        = FACT(statut='f',max='**',
22677               NOM_PARA        =SIMP(statut='o',typ='TXM' ),
22678               CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
22679                                     into=("EQ","LT","GT","NE","LE","GE","VIDE",
22680                                           "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
22681               b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
22682                  regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
22683                  VALE            =SIMP(statut='f',typ='R' ),
22684                  VALE_I          =SIMP(statut='f',typ='I' ),
22685                  VALE_C          =SIMP(statut='f',typ='C' ),
22686                  VALE_K          =SIMP(statut='f',typ='TXM' ),),
22687
22688               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22689               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22690            ),
22691          ),
22692
22693 # ======= RESULTAT =================================================
22694          b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
22695                          regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
22696            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
22697            NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
22698            b_cham = BLOC ( condition = "NOM_CHAM != None",
22699                            regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
22700                                    PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
22701                                    PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
22702                                    EXCLUS('GROUP_MA','MAILLE'),
22703                                    EXCLUS('GROUP_NO','NOEUD'),),
22704              NOM_CMP         =SIMP(statut='o',typ='TXM' ),
22705              MAILLE          =SIMP(statut='f',typ=ma),
22706              GROUP_MA        =SIMP(statut='f',typ=grma),
22707              NOEUD           =SIMP(statut='f',typ=no),
22708              GROUP_NO        =SIMP(statut='f',typ=grno),
22709              POINT           =SIMP(statut='f',typ='I' ),
22710              SOUS_POINT      =SIMP(statut='f',typ='I' ),
22711            ),
22712          ),
22713
22714 # ======= RESU_GENE =================================================
22715          b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene",
22716                               fr="Récupération d'une fonction à partir d un concept TRAN_GENE",
22717                               regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),),
22718              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
22719              NOEUD_CHOC      =SIMP(statut='f',typ=no),
22720              GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
22721            b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')",
22722                            regles=(UN_PARMI('GROUP_NO','NOEUD'),
22723                                    EXCLUS('MULT_APPUI','CORR_STAT'),),
22724              NOM_CMP         =SIMP(statut='o',typ='TXM' ),
22725              NOEUD           =SIMP(statut='f',typ=no),
22726              GROUP_NO        =SIMP(statut='f',typ=grno),
22727              MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22728              CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22729              ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)),
22730            ),
22731            b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)",
22732                            regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),),
22733              PARA_X          =SIMP(statut='o',typ='TXM',
22734                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
22735              PARA_Y          =SIMP(statut='o',typ='TXM',
22736                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
22737              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
22738              INTITULE        =SIMP(statut='f',typ='TXM' ),
22739              SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
22740            ),
22741          ),
22742          b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene",
22743                               fr="Récupération d'une fonction à partir d un concept HARM_GENE",
22744                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
22745              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
22746              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
22747            b_cham = BLOC ( condition = "NOM_CHAM != None",
22748                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
22749              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
22750              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
22751              b_cmp = BLOC ( condition = "NOM_CMP != None",
22752                             regles=(UN_PARMI('NOEUD','GROUP_NO'),),
22753                NOEUD         =SIMP(statut='f',typ=no),
22754                GROUP_NO      =SIMP(statut='f',typ=grno),
22755              ),
22756            ),
22757          ),
22758          b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene",
22759                               fr="Récupération d'une fonction à partir d un concept MODE_GENE",
22760                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
22761              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
22762              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
22763            b_cham = BLOC ( condition = "NOM_CHAM != None",
22764                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
22765              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
22766              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
22767              b_cmp = BLOC ( condition = "NOM_CMP != None",
22768                             regles=(UN_PARMI('NOEUD','GROUP_NO'),
22769                                     UN_PARMI('SQUELETTE','SOUS_STRUC'),),
22770                NOEUD         =SIMP(statut='f',typ=no),
22771                GROUP_NO      =SIMP(statut='f',typ=grno),
22772                SQUELETTE     =SIMP(statut='f',typ=squelette ),
22773                SOUS_STRUC    =SIMP(statut='f',typ='TXM' ),  
22774              ),
22775            ),
22776          ),
22777
22778 # ======= CHAM_GD =================================================
22779          b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
22780                             regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
22781                                     PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
22782                                     PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
22783                                     EXCLUS('GROUP_MA','MAILLE'),
22784                                     EXCLUS('GROUP_NO','NOEUD'),),
22785            NOM_CMP         =SIMP(statut='o',typ='TXM' ),
22786            MAILLE          =SIMP(statut='f',typ=ma),
22787            GROUP_MA        =SIMP(statut='f',typ=grma),
22788            NOEUD           =SIMP(statut='f',typ=no),
22789            GROUP_NO        =SIMP(statut='f',typ=grno),
22790            POINT           =SIMP(statut='f',typ='I' ),
22791            SOUS_POINT      =SIMP(statut='f',typ='I' ),
22792          ),
22793
22794 # ======= NAPPE =================================================
22795          b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de NAPPE",
22796          VALE_PARA_FONC  =SIMP(statut='o',typ='R' ),
22797          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22798          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22799          ),
22800
22801 # ======= SURCHARGE DES ATTRIBUTS =================================================
22802          NOM_PARA        =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ),
22803          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
22804          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
22805          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
22806          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
22807
22808          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22809          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
22810 )  ;
22811 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
22812 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22813 # ======================================================================
22814 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22815 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22816 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22817 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22818 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22819 #
22820 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22821 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22822 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22823 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22824 #
22825 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22826 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22827 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22828 # ======================================================================
22829 RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,reentrant='n',
22830             UIinfo={"groupes":("Résultats et champs",)},
22831                fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
22832                   +" en coordonnées généralisées",
22833          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
22834          INST            =SIMP(statut='o',typ='R' ),
22835          NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
22836          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
22837          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
22838          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22839 )  ;
22840 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
22841 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22842 # ======================================================================
22843 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22844 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22845 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22846 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22847 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22848 #
22849 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22850 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22851 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22852 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22853 #
22854 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22855 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22856 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22857 # ======================================================================
22858 # RESPONSABLE VABHHTS J.PELLET
22859 RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
22860          fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue"
22861             +" dans une autre SD pour celles qui le permettent",
22862          UIinfo={"groupes":("Résultats et champs",)},reentrant='n',
22863          CO              =SIMP(statut='o',typ=assd),
22864          regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
22865          NOM_TABLE       =SIMP(statut='f',typ='TXM' ),
22866          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
22867          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
22868 )  ;
22869 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
22870 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22871 # ======================================================================
22872 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22873 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22874 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22875 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22876 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22877 #
22878 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22879 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22880 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22881 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22882 #
22883 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22884 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22885 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22886 # ======================================================================
22887
22888 RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=cham_no_sdaster,
22889                fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
22890                reentrant='f',
22891             UIinfo={"groupes":("Résolution",)},
22892          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
22893          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
22894          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
22895          MATR_FACT       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
22896          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),  
22897          REPRISE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22898          RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1E-6 ),  
22899          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
22900 )  ;
22901 #& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
22902 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22903 # ======================================================================
22904 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22905 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22906 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22907 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22908 # (AT YOUR OPTION) ANY LATER VERSION.
22909 #
22910 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22911 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22912 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22913 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22914 #
22915 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22916 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22917 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22918 # ======================================================================
22919 # RESPONSABLE VABHHTS J.PELLET
22920
22921 RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=cham_no_sdaster,reentrant='f',
22922                fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT",
22923             UIinfo={"groupes":("Résolution",)},
22924          MATR_FACT       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
22925                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
22926          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
22927          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
22928          # RESI_RELA : précision utilisée si SOLVEUR=MUMPS
22929          RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.e-6),
22930          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22931          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
22932 )  ;
22933 #& MODIF COMMANDE  DATE 31/10/2006   AUTEUR CIBHHLV L.VIVAN 
22934 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22935 # ======================================================================
22936 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22937 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22938 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22939 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22940 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22941 #
22942 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22943 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22944 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22945 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22946 #
22947 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22948 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22949 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22950 # ======================================================================
22951 # RESPONSABLE BOYERE E.BOYERE
22952 def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ):
22953   if AsType(RESU_GENE) == tran_gene : return dyna_trans
22954   if AsType(RESU_GENE) == mode_gene : return mode_meca
22955   if AsType(RESU_GENE) == mode_cycl : return mode_meca
22956   if AsType(RESU_GENE) == harm_gene : return dyna_harmo
22957   if AsType(RESU_PHYS) == evol_noli : return dyna_trans
22958   if AsType(RESULTAT)  == evol_elas      : return evol_elas
22959   if AsType(RESULTAT)  == evol_noli      : return evol_noli
22960   if AsType(RESULTAT)  == evol_char      : return evol_char
22961   if AsType(RESULTAT)  == dyna_trans     : return dyna_trans
22962   if AsType(RESULTAT)  == mode_meca      : return mode_meca
22963   if AsType(RESULTAT)  == mode_stat_depl : return mode_stat_depl
22964   if AsType(RESULTAT)  == base_modale    : return base_modale
22965   raise AsException("type de concept resultat non prevu")
22966
22967 REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
22968                     fr="Restituer dans la base physique des résultats en coordonnées généralisées",
22969                     reentrant='n',
22970             UIinfo={"groupes":("Matrices/vecteurs",)},
22971         regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'),
22972                 EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
22973                 EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
22974 #  Doc U à revoir
22975                 EXCLUS('MULT_APPUI','CORR_STAT'),
22976                 EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
22977                 EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
22978                 EXCLUS('NOEUD','GROUP_NO'),
22979                 PRESENT_PRESENT('RESU_PHYS','BASE_MODALE'),
22980                 PRESENT_PRESENT('RESULTAT','SQUELETTE'),
22981                 PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
22982          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
22983                                                mode_meca,mode_stat_depl,base_modale) ),
22984          
22985          RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
22986          RESU_PHYS       =SIMP(statut='f',typ=evol_noli ),
22987          BASE_MODALE     =SIMP(statut='f',typ=(base_modale,mode_meca) ),
22988          NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
22989          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
22990          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22991          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
22992          NUME_MODE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
22993          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22994          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
22995          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
22996          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
22997          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
22998          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
22999          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
23000          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
23001          MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23002          CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23003          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",   
23004                                into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",                 
23005                                      "SIGM_ELNO_DEPL","FORC_NODA",) ),
23006          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23007          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23008          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23009          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23010          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23011  
23012          ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23013          DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
23014
23015          CYCLIQUE    =FACT(statut='f',max='**',
23016            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
23017            NUME_DIAMETRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
23018            RESULTAT2       =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
23019                                                mode_meca,mode_stat_depl,base_modale) ),
23020          ),
23021
23022          SQUELETTE       =SIMP(statut='f',typ=squelette ),
23023          SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
23024          SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
23025          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
23026 )  ;
23027 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR MCOURTOI M.COURTOIS 
23028 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23029 # ======================================================================
23030 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23031 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23032 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23033 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23034 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23035 #
23036 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23037 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23038 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23039 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23040 #
23041 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23042 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23043 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23044 # ======================================================================
23045 REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction,
23046                     reentrant='n',
23047             fr="Calculer la réponse d'une structure dans la base physique",
23048             UIinfo={"groupes":("Matrices/vecteurs",)},
23049          regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
23050          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
23051          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
23052          BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
23053          NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),  
23054          INTE_SPEC_GENE  =SIMP(statut='o',typ=table_fonction),
23055          NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
23056          MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
23057          NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
23058          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,    
23059                                into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",
23060                                      "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
23061          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ),
23062          EXCIT           =FACT(statut='f',
23063            NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
23064            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
23065          ),
23066          MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
23067          OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
23068                                into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
23069          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
23070 )  ;
23071 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR REZETTE C.REZETTE 
23072 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23073 # ======================================================================
23074 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
23075 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23076 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23077 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23078 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23079 #                                                                       
23080 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23081 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23082 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23083 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23084 #                                                                       
23085 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23086 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23087 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23088 # ======================================================================
23089 # -*- coding: iso-8859-1 -*-
23090
23091 from Macro.simu_point_mat_ops import simu_point_mat_ops
23092
23093 SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", op=simu_point_mat_ops,sd_prod=table_sdaster,
23094                    UIinfo={"groupes":("Résolution",)},
23095                    fr="Calcul de l'évolution mécanique, en quasi-statique,"
23096                       +" d'un point matériel en non linéaire",
23097    COMP_INCR       =C_COMP_INCR(),
23098    MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
23099    INCREMENT       =FACT(statut='o',
23100            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
23101            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
23102            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
23103               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
23104               defaut="AUCUNE",
23105               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
23106            ),
23107            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
23108              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23109              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
23110                 fr="Coefficient multiplicateur de la 1ère subdivision"),
23111              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
23112                 fr="Nombre de subdivision d'un pas de temps"),
23113              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23114                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23115              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23116                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23117            ),
23118            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
23119              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23120              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
23121                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
23122                 defaut="IGNORE_PREMIERES",
23123                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
23124              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
23125                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
23126              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
23127                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
23128              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
23129                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
23130              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23131                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23132              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23133                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23134              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
23135                 fr="% itération autorisée en plus"),
23136            ),
23137            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
23138          ),
23139    NEWTON          =FACT(statut='d',
23140            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
23141            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
23142            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
23143            REAC_ITER       =SIMP(statut='f',typ='I',defaut=1),
23144            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
23145          ),
23146    CONVERGENCE     =FACT(statut='d',
23147      regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
23148      SIGM_REFE       =SIMP(statut='f',typ='R'),
23149      EPSI_REFE       =SIMP(statut='f',typ='R'),
23150      RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
23151      RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
23152      RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
23153      ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=50),
23154      ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
23155      ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23156    ),
23157    SUIVI_DDL      = FACT(statut='f',max=4,                                                                   
23158        NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),                                               
23159        NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,                               
23160                              into=("DEPL","SIEF_ELGA","VARI_ELGA",)),                                        
23161        NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),                                                   
23162    ),                                                                                                        
23163    SIGM_IMPOSE=FACT(statut='f',
23164           SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23165           SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23166           SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23167           SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23168           SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23169           SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23170                      ),
23171    EPSI_IMPOSE=FACT(statut='f',
23172           EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23173           EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23174           EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23175           EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23176           EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23177           EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23178                      ),
23179          
23180          
23181    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23182 )
23183 #& MODIF COMMANDE  DATE 15/05/2006   AUTEUR ASSIRE A.ASSIRE 
23184 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23185 # ======================================================================
23186 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
23187 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23188 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23189 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23190 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23191 #                                                                       
23192 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23193 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23194 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23195 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23196 #                                                                       
23197 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23198 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23199 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23200 # ======================================================================
23201
23202 from Macro.stanley_ops import stanley_ops
23203
23204 STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None,
23205                        reentrant='n',
23206               UIinfo={"groupes":("Outils métier",)},
23207                        fr="Outil de post-traitement interactif Stanley ",
23208          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ),
23209          MODELE          =SIMP(statut='f',typ=modele_sdaster),
23210          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
23211          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23212          DISPLAY         =SIMP(statut='f',typ='TXM'),
23213          UNITE_VALIDATION=SIMP(statut='c',typ='I',val_min=10,val_max=90,
23214                                fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
23215
23216 )  ;
23217 #& MODIF COMMANDE  DATE 06/06/2007   AUTEUR SALMONA L.SALMONA 
23218 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23219 # ======================================================================
23220 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23221 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23222 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23223 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23224 # (AT YOUR OPTION) ANY LATER VERSION.
23225 #
23226 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23227 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23228 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23229 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23230 #
23231 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23232 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23233 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23234 # ======================================================================
23235 # RESPONSABLE MABBAS M.ABBAS
23236 STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
23237                    fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
23238                       +" d'une structure en non linéaire",
23239                    reentrant='f',
23240             UIinfo={"groupes":("Résolution",)},
23241          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
23242                  CONCEPT_SENSIBLE('ENSEMBLE'),),
23243          MODELE          =SIMP(statut='o',typ=modele_sdaster),
23244          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
23245          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23246          EXCIT           =FACT(statut='o',max='**',
23247            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
23248            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23249            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
23250                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
23251          ),
23252          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
23253                 regles=(UN_PARMI('TOUT','MAILLE'),),
23254                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
23255                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23256                 MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
23257               ),
23258          COMP_INCR       =C_COMP_INCR(),
23259          COMP_ELAS       =FACT(statut='f',max='**',
23260            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
23261            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
23262            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
23263            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
23264                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
23265            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
23266                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
23267                                       "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
23268            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23269            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23270            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23271            ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
23272            ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
23273            CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23274            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
23275       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
23276            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23277            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23278            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23279          ),
23280          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
23281            ETAT_INIT       =FACT(statut='o',
23282              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
23283                      EXCLUS('EVOL_NOLI','DEPL',),
23284                      EXCLUS('EVOL_NOLI','SIGM',),
23285                      EXCLUS('EVOL_NOLI','VARI',),
23286                      EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
23287                      EXCLUS('NUME_ORDRE','INST'), ),
23288              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
23289              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
23290              VARI            =SIMP(statut='f',typ=cham_elem),
23291              VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
23292              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
23293              NUME_ORDRE      =SIMP(statut='f',typ='I'),
23294              INST            =SIMP(statut='f',typ='R'),
23295              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23296              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23297              NUME_DIDI       =SIMP(statut='f',typ='I'),
23298              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
23299          ),),
23300          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
23301            ETAT_INIT       =FACT(statut='f',
23302              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
23303                      EXCLUS('EVOL_NOLI','DEPL',),
23304                      EXCLUS('EVOL_NOLI','SIGM',),
23305                      EXCLUS('EVOL_NOLI','VARI',),
23306                      EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
23307                      EXCLUS('NUME_ORDRE','INST'), ),
23308              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
23309              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
23310              VARI            =SIMP(statut='f',typ=cham_elem),
23311              VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
23312              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
23313              NUME_ORDRE      =SIMP(statut='f',typ='I'),
23314              INST            =SIMP(statut='f',typ='R'),
23315              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23316              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23317              NUME_DIDI       =SIMP(statut='f',typ='I'),
23318              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
23319          ),),
23320          INCREMENT       =FACT(statut='o',
23321            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
23322                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
23323            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
23324            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
23325                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
23326            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
23327            INST_INIT       =SIMP(statut='f',typ='R'),
23328            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
23329            INST_FIN        =SIMP(statut='f',typ='R'),
23330            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
23331            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
23332            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
23333               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
23334               defaut="AUCUNE",
23335               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
23336            ),
23337            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
23338              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23339              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
23340                 fr="Coefficient multiplicateur de la 1ère subdivision"),
23341              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
23342                 fr="Nombre de subdivision d'un pas de temps"),
23343              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23344                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23345              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23346                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23347            ),
23348            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
23349              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23350              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
23351                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
23352                 defaut="IGNORE_PREMIERES",
23353                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
23354              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
23355                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
23356              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
23357                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
23358              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
23359                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
23360              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23361                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23362              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23363                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23364              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
23365                 fr="% itération autorisée en plus"),
23366            ),
23367            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
23368            OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
23369            NOM_CHAM        =SIMP(statut='f',typ='TXM',),
23370            NOM_CMP         =SIMP(statut='f',typ='TXM',),
23371            VALE            =SIMP(statut='f',typ='R'),
23372          ),
23373          NEWTON          =FACT(statut='d',
23374            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
23375            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
23376            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
23377            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
23378            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
23379            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
23380            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
23381          ),
23382          RECH_LINEAIRE   =FACT(statut='f',
23383            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
23384            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
23385            ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
23386            PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
23387            RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
23388            RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
23389            RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.),
23390          ),
23391          PILOTAGE        =FACT(statut='f',
23392            regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
23393            TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
23394            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
23395            ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
23396            ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
23397            ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
23398            ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
23399            PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23400            SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
23401            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23402            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
23403            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
23404            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
23405            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
23406            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
23407                          ),
23408          CONVERGENCE     =FACT(statut='d',
23409            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
23410            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
23411              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
23412                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),),
23413               SIGM_REFE       =SIMP(statut='f',typ='R'),
23414               EPSI_REFE       =SIMP(statut='f',typ='R'),
23415               FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
23416               FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
23417               FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
23418            ),
23419
23420            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
23421            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
23422            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
23423            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
23424            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
23425            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23426          ),
23427          SOLVEUR         =FACT(statut='d',
23428            METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI") ),
23429            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23430              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23431            ),
23432            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23433              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
23434            ),
23435            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
23436                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
23437              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
23438              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
23439            ),
23440            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
23441              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
23442              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
23443              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23444              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23445              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
23446            ),
23447            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23448              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23449              SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23450              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
23451              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
23452              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23453              ),
23454            b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
23455              PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
23456              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23457              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
23458              NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23459              TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
23460              NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23461              NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23462              PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
23463              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
23464              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23465              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
23466              INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
23467              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
23468              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23469              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23470            ),
23471            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23472          ),
23473          ARCHIVAGE       =FACT(statut='f',
23474            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
23475                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
23476            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
23477            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
23478            PAS_ARCH        =SIMP(statut='f',typ='I' ),
23479            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
23480            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
23481            NUME_INIT       =SIMP(statut='f',typ='I'),
23482            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
23483            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
23484                                                                      "VARI_NON_LOCAL","LANL_ELGA")),
23485          ),
23486          OBSERVATION     =FACT(statut='f',max='**',
23487            regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
23488                    PRESENT_PRESENT('MAILLE','POINT'),),
23489            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
23490                                               "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")),
23491            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
23492            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
23493            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
23494            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
23495            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23496            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23497            PAS_OBSE        =SIMP(statut='f',typ='I'),
23498            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23499            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23500            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23501            POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
23502          ),
23503
23504          SUIVI_DDL      = FACT(statut='f',max=4,
23505                                regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'),
23506                                        PRESENT_PRESENT('MAILLE','POINT'),),
23507              NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
23508              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
23509                                    into=("DEPL","VITE","ACCE","SIEF_ELGA",
23510                                          "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
23511              NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),
23512              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23513              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23514              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23515              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23516              POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
23517              VALE_MAX        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),
23518              VALE_MIN        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),
23519          ),
23520
23521          AFFICHAGE      = FACT(statut='f',max=16,
23522
23523             UNITE       = SIMP(statut='f',typ='I',val_min=1),
23524
23525             LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
23526             PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
23527             LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
23528             
23529             NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
23530                                 into=("STANDARD","MINIMUM",
23531                                       "ITER_NEWT",
23532                                       "INCR_TPS",
23533                                       "RESI_RELA","RELA_NOEU",
23534                                       "RESI_MAXI","MAXI_NOEU",
23535                                       "RESI_REFE","REFE_NOEU",
23536                                       "RELI_ITER","RELI_COEF",
23537                                       "PILO_PARA",
23538                                       "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
23539                                       "MATR_ASSE",
23540                                       "ITER_DEBO",
23541                                       "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
23542                                       "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
23543                                       "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI",
23544                                      ),
23545                                ),
23546             b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
23547                     NOM_COLONNE == 'RESI_MAXI' or\
23548                     NOM_COLONNE == 'RESI_REFE' or\
23549                     NOM_COLONNE == 'CTCD_GEOM' or\
23550                     NOM_COLONNE == 'STANDARD' ",
23551                             INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
23552                           ),
23553          ),
23554
23555
23556
23557          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
23558            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
23559            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10),
23560                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
23561          ),
23562            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
23563                                fr="Liste des paramètres de sensibilité",
23564                                ang="List of sensitivity parameters"),
23565            SOLV_NON_LOCAL  =FACT(statut='f',
23566              METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
23567              b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23568                RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23569              ),
23570              b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23571                RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
23572              ),
23573              b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
23574                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
23575                NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
23576                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23577              ),
23578              b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23579                TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23580                SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23581                RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
23582                PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
23583                RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23584              ),
23585              b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
23586                PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
23587                NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
23588                RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23589                NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
23590              ),
23591              EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
23592            ),
23593            LAGR_NON_LOCAL  =FACT(statut='f',
23594              ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
23595              RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
23596              RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
23597              R               =SIMP(statut='f',typ='R',defaut= 1000.),
23598              ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
23599            ),
23600          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
23601          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
23602  )
23603
23604 #& MODIF COMMANDE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
23605 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23606 # ======================================================================
23607 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
23608 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23609 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23610 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23611 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23612 #                                                                       
23613 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23614 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23615 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23616 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23617 #                                                                       
23618 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23619 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23620 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23621 # ======================================================================
23622
23623 # RESPONSABLE MCOURTOI M.COURTOIS
23624
23625 from Macro.test_fichier_ops import test_fichier_ops
23626
23627 TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops,
23628                    UIinfo={"groupes":("Impression",)},
23629                    fr="Tester la non régression de fichiers produits par des commandes aster",
23630    FICHIER          =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)),
23631    NB_CHIFFRE      =SIMP(statut='o',typ='I',),   # defaut=6        pas de defaut, il faut
23632    EPSILON         =SIMP(statut='o',typ='R',),   # defaut=1.E-12   se poser la question !
23633    EXPR_IGNORE     =SIMP(statut='f',typ='TXM',max='**',
23634                          fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"),
23635    VALE_K          =SIMP(statut='o',typ='TXM' ),
23636    REFERENCE       =SIMP(statut='f',typ='TXM',
23637                          into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
23638
23639    b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
23640       VERSION         =SIMP(statut='f',typ='TXM' ),
23641    ),
23642
23643    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23644 )
23645 #& MODIF COMMANDE  DATE 17/10/2006   AUTEUR MCOURTOI M.COURTOIS 
23646 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23647 # ======================================================================
23648 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23649 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23650 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23651 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23652 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23653 #
23654 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23655 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23656 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23657 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23658 #
23659 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23660 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23661 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23662 # ======================================================================
23663 # RESPONSABLE MCOURTOI M.COURTOIS
23664 TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,
23665             fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
23666             UIinfo={"groupes":("Impression",)},
23667          TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23668          VALEUR          =FACT(statut='f',max='**',
23669                                fr="Tester la valeur d une fonction ou d une nappe",
23670            regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',),
23671                    DERIVABLE('FONCTION'),),
23672            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
23673            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
23674                                  fr="Paramètre de sensibilité.",
23675                                  ang="Sensitivity parameter"),
23676            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
23677            VALE_PARA       =SIMP(statut='o',typ='R'  ,validators=NoRepeat(),max=2),
23678            VALE_REFE       =SIMP(statut='f',typ='R',max='**' ),
23679            VALE_REFE_C     =SIMP(statut='f',typ='C',max='**' ),
23680            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23681            CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
23682                                  defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23683            PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
23684                                  defaut= 1.E-3 ),
23685            REFERENCE       =SIMP(statut='f',typ='TXM',
23686                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
23687            b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", 
23688              VERSION         =SIMP(statut='f',typ='TXM' ),
23689            ),
23690          ),
23691          ATTRIBUT        =FACT(statut='f',max='**',
23692                                fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
23693            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
23694            PARA            =SIMP(statut='f',typ='R' ),
23695            CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23696            PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
23697            ATTR            =SIMP(statut='o',typ='TXM',
23698                                  into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
23699                                        "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
23700            ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
23701            REFERENCE       =SIMP(statut='f',typ='TXM',
23702                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
23703            b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
23704              VERSION         =SIMP(statut='f',typ='TXM' ),
23705            ),
23706          ),
23707          TABL_INTSP      =FACT(statut='f',max='**',
23708                                fr="Tester la valeur d une fonction contenue dans une table interspectrale",
23709            regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
23710            INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
23711            NOEUD_I         =SIMP(statut='f',typ=no),
23712            NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
23713            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", 
23714              NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
23715            ),
23716            b_noeud_i = BLOC (condition = "NOEUD_I != None",             
23717              NOEUD_J         =SIMP(statut='o',typ=no),
23718              NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
23719              NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
23720            ),
23721            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
23722            VALE_PARA       =SIMP(statut='o',typ='R' ),
23723            VALE_REFE_C     =SIMP(statut='o',typ='C',max='**' ),
23724            CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
23725                                  defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23726            PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
23727                                  defaut= 1.E-3 ),
23728            REFERENCE       =SIMP(statut='f',typ='TXM',
23729                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
23730            b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
23731              VERSION         =SIMP(statut='f',typ='TXM' ),
23732            ),
23733          ),
23734 )  ;
23735 #& MODIF COMMANDE  DATE 10/10/2006   AUTEUR REZETTE C.REZETTE 
23736 # RESPONSABLE VABHHTS J.PELLET
23737 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23738 # ======================================================================
23739 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23740 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23741 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23742 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23743 # (AT YOUR OPTION) ANY LATER VERSION.
23744 #
23745 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23746 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23747 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23748 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23749 #
23750 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23751 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23752 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23753 #
23754 #
23755 # ======================================================================
23756 TEST_RESU=PROC(nom="TEST_RESU",op=23,
23757             UIinfo={"groupes":("Impression",)},
23758          fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
23759          regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')),
23760
23761          CHAM_NO         =FACT(statut='f',max='**',
23762            regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
23763                    EXCLUS('NOEUD','GROUP_NO'),
23764                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
23765                    PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
23766                    UN_PARMI('VALE','VALE_I','VALE_C'),),
23767            CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
23768            NOEUD           =SIMP(statut='f',typ=no   ),
23769            GROUP_NO        =SIMP(statut='f',typ=grno ),
23770            NOM_CMP         =SIMP(statut='f',typ='TXM'),
23771            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
23772            VALE            =SIMP(statut='f',typ='R',max='**'),
23773            VALE_I          =SIMP(statut='f',typ='I',max='**'),
23774            VALE_C          =SIMP(statut='f',typ='C',max='**'),
23775            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23776            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
23777            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
23778            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
23779                                                             "NON_REGRESSION","AUTRE_ASTER")),
23780            VERSION         =SIMP(statut='f',typ='TXM'),
23781          ),
23782
23783          CHAM_ELEM       =FACT(statut='f',max='**',
23784            regles=(UN_PARMI('MAILLE','TYPE_TEST',),
23785                    EXCLUS('NOEUD','GROUP_NO','POINT'),
23786                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
23787                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
23788                    PRESENT_PRESENT('POINT','NOM_CMP'),
23789                    UN_PARMI('VALE','VALE_I','VALE_C'), ),
23790            CHAM_GD         =SIMP(statut='o',typ=cham_elem),
23791            MAILLE          =SIMP(statut='f',typ=ma),
23792            POINT           =SIMP(statut='f',typ='I' ),
23793            SOUS_POINT      =SIMP(statut='f',typ='I'),
23794            NOEUD           =SIMP(statut='f',typ=no),
23795            GROUP_NO        =SIMP(statut='f',typ=grno),
23796            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
23797            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
23798            VALE            =SIMP(statut='f',typ='R',max='**' ),
23799            VALE_I          =SIMP(statut='f',typ='I',max='**' ),
23800            VALE_C          =SIMP(statut='f',typ='C',max='**' ),
23801            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23802            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
23803            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23804            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
23805                                                             "NON_REGRESSION","AUTRE_ASTER") ),
23806            VERSION         =SIMP(statut='f',typ='TXM' ),
23807          ),
23808
23809          RESU            =FACT(statut='f',max='**',
23810            regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
23811                    UN_PARMI('NOM_CHAM','PARA'),
23812                    PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
23813                    PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
23814                    EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
23815                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
23816                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
23817                    PRESENT_PRESENT('POINT','NOM_CMP'),
23818                    UN_PARMI('VALE','VALE_I','VALE_C'),
23819                    DERIVABLE('RESULTAT'),),
23820            RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
23821            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
23822                                  fr="Paramètre de sensibilité.",
23823                                  ang="Sensitivity parameter"),
23824            NUME_ORDRE      =SIMP(statut='f',typ='I'),
23825            INST            =SIMP(statut='f',typ='R'),
23826            FREQ            =SIMP(statut='f',typ='R'),
23827            NUME_MODE       =SIMP(statut='f',typ='I'),
23828            NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
23829            NOM_CAS         =SIMP(statut='f',typ='TXM'),
23830            ANGL            =SIMP(statut='f',typ='R'),
23831            PARA            =SIMP(statut='f',typ='TXM'),
23832            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
23833            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
23834            MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
23835            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
23836            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
23837            POINT           =SIMP(statut='f',typ='I'),
23838            SOUS_POINT      =SIMP(statut='f',typ='I'),
23839            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
23840            VALE            =SIMP(statut='f',typ='R',max='**'),
23841            VALE_I          =SIMP(statut='f',typ='I',max='**'),
23842            VALE_C          =SIMP(statut='f',typ='C',max='**'),
23843            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23844            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
23845            PRECISION       =SIMP(statut='f',typ='R',max=2),
23846            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
23847                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
23848            VERSION         =SIMP(statut='f',typ='TXM' ),
23849          ),
23850
23851          GENE            =FACT(statut='f',max='**',
23852            regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,),
23853            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
23854            b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene",
23855              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
23856            ),
23857            b_mode          =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)",
23858                             regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
23859                                     UN_PARMI('NOM_CHAM','PARA'),
23860                                     PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
23861              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
23862              NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
23863              PARA            =SIMP(statut='f',typ='TXM'),
23864              NUME_ORDRE      =SIMP(statut='f',typ='I'),
23865              NUME_MODE       =SIMP(statut='f',typ='I'),
23866              FREQ            =SIMP(statut='f',typ='R'),
23867            ),
23868            b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
23869                             regles=(UN_PARMI('NUME_ORDRE','INST') ,),
23870              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
23871              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
23872              NUME_ORDRE      =SIMP(statut='f',typ='I'),
23873              INST            =SIMP(statut='f',typ='R'),
23874            ),
23875            VALE            =SIMP(statut='f',typ='R',max='**'),
23876            VALE_I          =SIMP(statut='f',typ='I',max='**'),
23877            VALE_C          =SIMP(statut='f',typ='C',max='**'),
23878            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23879            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
23880            PRECISION       =SIMP(statut='f',typ='R',max=2),
23881            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
23882                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
23883            VERSION         =SIMP(statut='f',typ='TXM' ),
23884          ),
23885
23886          OBJET           =FACT(statut='f',max='**',
23887            regles=(UN_PARMI('S_I','S_R','RESUME',),
23888                    UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
23889            NOM             =SIMP(statut='o',typ='TXM'),
23890            S_R             =SIMP(statut='f',typ='R'),
23891            S_I             =SIMP(statut='f',typ='I'),
23892            RESUME          =SIMP(statut='f',typ='I'),
23893            VALE            =SIMP(statut='f',typ='R'),
23894            VALE_I          =SIMP(statut='f',typ='I'),
23895            VALE_C          =SIMP(statut='f',typ='C'),
23896            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23897            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
23898            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
23899            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
23900                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
23901            VERSION         =SIMP(statut='f',typ='TXM' ),
23902          ),
23903 )  ;
23904 #& MODIF COMMANDE  DATE 09/05/2007   AUTEUR SALMONA L.SALMONA 
23905 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23906 # ======================================================================
23907 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23908 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23909 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23910 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23911 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23912 #
23913 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23914 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23915 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23916 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23917 #
23918 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23919 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23920 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23921 # ======================================================================
23922 # RESPONSABLE VABHHTS J.PELLET
23923 TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
23924             UIinfo={"groupes":("Impression",)},
23925          fr="Tester une cellule ou une colonne d'une table",
23926          regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),
23927                  DERIVABLE('TABLE'),),
23928 #  concept table_sdaster à tester
23929          TABLE           =SIMP(statut='o',typ=table_sdaster),
23930
23931          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
23932                                  fr="Paramètre de sensibilité.",
23933                                  ang="Sensitivity parameter"),
23934          FILTRE          =FACT(statut='f',max='**',
23935            NOM_PARA        =SIMP(statut='o',typ='TXM' ),
23936            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
23937                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
23938                                        "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
23939            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
23940               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
23941               VALE            =SIMP(statut='f',typ='R',),
23942               VALE_I          =SIMP(statut='f',typ='I',),
23943               VALE_C          =SIMP(statut='f',typ='C',),
23944               VALE_K          =SIMP(statut='f',typ='TXM' ),),
23945
23946            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23947            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
23948          ),
23949          TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
23950          NOM_PARA        =SIMP(statut='o',typ='TXM' ),
23951          VALE            =SIMP(statut='f',typ='R',max='**' ),
23952          VALE_I          =SIMP(statut='f',typ='I',max='**' ),
23953          VALE_C          =SIMP(statut='f',typ='C',max='**' ),
23954          VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23955          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23956          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
23957          REFERENCE       =SIMP(statut='f',typ='TXM',
23958                                into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
23959          b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
23960              VERSION         =SIMP(statut='f',typ='TXM' ),
23961          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23962          ),
23963 )  ;
23964 #& MODIF COMMANDE  DATE 12/06/2006   AUTEUR BOITEAU O.BOITEAU 
23965 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23966 # ======================================================================
23967 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23968 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23969 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23970 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23971 # (AT YOUR OPTION) ANY LATER VERSION.
23972 #
23973 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23974 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23975 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23976 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23977 #
23978 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23979 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23980 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23981 # ======================================================================
23982 THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
23983             UIinfo={"groupes":("Résolution",)},
23984                    fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
23985          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
23986          MODELE          =SIMP(statut='o',typ=modele_sdaster),
23987          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
23988          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23989          EXCIT           =FACT(statut='o',max='**',
23990            CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
23991            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23992          ),
23993          INCREMENT       =FACT(statut='f',
23994            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster ),
23995            NUME_INIT       =SIMP(statut='f',typ='I'),
23996            NUME_FIN        =SIMP(statut='f',typ='I'),
23997          ),
23998          TEMP_INIT       =FACT(statut='f',
23999            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
24000            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24001            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
24002            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
24003            VALE            =SIMP(statut='f',typ='R'),
24004            NUME_INIT       =SIMP(statut='f',typ='I'),
24005          ),
24006          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
24007                                fr="Liste des paramètres de sensibilité.",
24008                                ang="List of sensitivity parameters",
24009          ),
24010            SENS_INIT       =FACT(statut='f',
24011              regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
24012              STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24013              EVOL_THER       =SIMP(statut='f',typ=evol_ther),
24014              NUME_INIT       =SIMP(statut='f',typ='I'),
24015            ),
24016          SOLVEUR         =FACT(statut='d',
24017            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
24018            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
24019              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24020            ),
24021            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
24022              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24023            ),
24024            b_ldlt_mult      =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
24025                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
24026              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24027              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24028            ),
24029            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
24030              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
24031              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
24032              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24033              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
24034              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24035            ),
24036            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
24037              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
24038              SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
24039              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
24040              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
24041              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
24042              ),
24043          ),
24044          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
24045          ARCHIVAGE       =FACT(statut='f',
24046            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),),
24047            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
24048            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
24049            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24050            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24051            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
24052                                  into=("RELATIF","ABSOLU")),
24053            PAS_ARCH        =SIMP(statut='f',typ='I'),
24054            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
24055          ),
24056          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24057          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
24058 )  ;
24059 #& MODIF COMMANDE  DATE 19/06/2006   AUTEUR BOITEAU O.BOITEAU 
24060 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24061 # ======================================================================
24062 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24063 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24064 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24065 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24066 # (AT YOUR OPTION) ANY LATER VERSION.
24067 #
24068 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24069 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24070 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24071 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24072 #
24073 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24074 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24075 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24076 # ======================================================================
24077 THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
24078             UIinfo={"groupes":("Résolution",)},
24079                    fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
24080                       +" stationnaire ou transitoire" ,
24081          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
24082          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
24083          CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
24084          CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
24085          COMP_THER_NL    =FACT(statut='d',max='**',
24086            RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
24087                                  into=("THER_NL",
24088                                        "THER_HYDR",
24089                                        "SECH_GRANGER",
24090                                        "SECH_MENSI",
24091                                        "SECH_BAZANT",
24092                                        "SECH_NAPPE"
24093                                        ) ),
24094          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
24095            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24096            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24097            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24098          ),
24099          EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
24100          EXCIT           =FACT(statut='o',max='**',
24101            CHARGE          =SIMP(statut='o',typ=char_ther),
24102            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24103          ),
24104          INCREMENT       =FACT(statut='f',
24105            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
24106            NUME_INIT       =SIMP(statut='f',typ='I'),
24107            NUME_FIN        =SIMP(statut='f',typ='I'),
24108          ),
24109          TEMP_INIT       =FACT(statut='f',
24110            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
24111            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
24112            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
24113            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
24114            VALE            =SIMP(statut='f',typ='R'),
24115            NUME_INIT       =SIMP(statut='f',typ='I'),
24116          ),
24117          NEWTON          =FACT(statut='d',
24118            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24119            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24120            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
24121          ),
24122          CONVERGENCE     =FACT(statut='d',
24123            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
24124            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
24125            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
24126          ),
24127          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
24128                                fr="Liste des paramètres de sensibilité.",
24129                                ang="List of sensitivity parameters",
24130          ),
24131          SOLVEUR         =FACT(statut='d',
24132            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
24133            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale",
24134              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24135            ),
24136            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
24137              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24138            ),
24139            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
24140                                    fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
24141              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24142              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24143            ),
24144            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
24145              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
24146              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I'  ,defaut= 0 ),
24147              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24148              RESI_RELA       =SIMP(statut='f',typ='R'  ,defaut= 1.E-6 ),
24149              NMAX_ITER       =SIMP(statut='f',typ='I'  ,defaut= 0 ),
24150            ),
24151            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
24152              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
24153              SCALING         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
24154              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
24155              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=80,),
24156              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
24157              ),
24158            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
24159          ),
24160          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
24161          ARCHIVAGE       =FACT(statut='f',
24162            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
24163            LIST_ARCH       =SIMP(statut='f',typ=(listis_sdaster) ),
24164            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
24165            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
24166            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24167            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
24168            PAS_ARCH        =SIMP(statut='f',typ='I'),
24169            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
24170          ),
24171          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24172          OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
24173                                into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
24174          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
24175
24176 )  ;
24177 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
24178 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24179 # ======================================================================
24180 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24181 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24182 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24183 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24184 # (AT YOUR OPTION) ANY LATER VERSION.
24185 #
24186 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24187 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24188 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24189 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24190 #
24191 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24192 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24193 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24194 # ======================================================================
24195 THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
24196                      fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
24197                         +" stationnaire avec chargement mobile",
24198                      reentrant='n',
24199             UIinfo={"groupes":("Résolution",)},
24200          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
24201          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
24202          CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
24203          EXCIT           =FACT(statut='o',max='**',
24204            CHARGE          =SIMP(statut='o',typ=char_ther ),
24205            FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
24206          ),
24207          TEMP_INIT       =FACT(statut='f',
24208            EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
24209            NUME_INIT       =SIMP(statut='f',typ='I',defaut= 0 ),
24210          ),
24211          CONVERGENCE     =FACT(statut='d',
24212            CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
24213            CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
24214            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
24215            ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24216          ),
24217          SOLVEUR         =FACT(statut='d',
24218            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
24219            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
24220              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24221            ),
24222            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
24223              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24224            ),
24225            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
24226                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
24227              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24228              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24229            ),
24230            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
24231              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
24232              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
24233              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24234              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
24235              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24236            ),
24237            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24238          ),
24239          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
24240          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
24241 )  ;
24242
24243
24244