]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/cata.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / cata.py
1 #& MODIF ENTETE  DATE 12/02/2008   AUTEUR REZETTE C.REZETTE 
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 # faire que la division soit toujours réelle
22 from __future__ import division
23
24 __version__ = "$Name:  $"
25 __Id__ = "$Id: cata.py,v 1.2.6.5.4.3 2008-10-10 13:31:49 pnoyret Exp $"
26
27 import Accas
28 from Accas import *
29 from Accas import _F
30 import Numeric
31 from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10
32 from math import sqrt,pi
33 import ops
34
35 try:
36   import aster
37 except:
38   pass
39
40 # -----------------------------------------------------------------------------
41 JdC = JDC_CATA(code='ASTER',
42                execmodul=None,
43                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
44                          AU_MOINS_UN('FIN'),
45                          A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
46 # Type le plus general
47 class entier   (ASSD):
48    def __init__(self,valeur=None,**args):
49       ASSD.__init__(self,**args)
50       self.valeur=valeur
51
52    def __adapt__(self,validator):
53       if validator.name == "list":
54          #validateur liste,cardinalité
55          return (self,)
56       elif validator.name == "type":
57          #validateur type
58          return validator.adapt(self.valeur or 0)
59       else:
60          #validateur into et valid
61          return self
62
63 class reel(ASSD):
64    def __init__(self,valeur=None,**args):
65       ASSD.__init__(self,**args)
66       self.valeur=valeur
67
68    def __call__(self):
69       return self.valeur
70
71    def __adapt__(self,validator):
72       if validator.name == "list":
73          #validateur liste,cardinalité
74          return (self,)
75       elif validator.name == "type":
76          #validateur type
77          return validator.adapt(self.valeur or 0.)
78       else:
79          #validateur into et valid
80          return self
81
82 # -----------------------------------------------------------------------------
83 # Type geometriques
84 class no  (GEOM):pass
85 class grno(GEOM):pass
86 class ma  (GEOM):pass
87 class grma(GEOM):pass
88
89 # -----------------------------------------------------------------------------
90 from SD.co_cabl_precont     import cabl_precont
91 from SD.co_cara_elem        import cara_elem
92 from SD.co_cham_mater       import cham_mater
93 from SD.co_char_acou        import char_acou
94 from SD.co_char_cine_acou   import char_cine_acou
95 from SD.co_char_cine_meca   import char_cine_meca
96 from SD.co_char_cine_ther   import char_cine_ther
97 from SD.co_char_meca        import char_meca
98 from SD.co_char_ther        import char_ther
99 from SD.co_compor           import compor_sdaster
100 from SD.co_courbe           import courbe_sdaster
101 from SD.co_fiss_xfem        import fiss_xfem
102 from SD.co_fond_fiss        import fond_fiss
103 from SD.co_interf_dyna_clas import interf_dyna_clas
104 from SD.co_gfibre           import gfibre_sdaster
105 from SD.co_listis           import listis_sdaster
106 from SD.co_melasflu         import melasflu_sdaster
107 from SD.co_mode_cycl        import mode_cycl
108 from SD.co_nume_ddl_gene    import nume_ddl_gene
109 from SD.co_nume_ddl         import nume_ddl_sdaster
110 from SD.co_sd_feti          import sd_feti_sdaster
111 from SD.co_spectre          import spectre_sdaster
112 from SD.co_surface          import surface_sdaster
113 from SD.co_tran_gene        import tran_gene
114 from SD.co_type_flui_stru   import type_flui_stru
115
116 # -----------------------------------------------------------------------------
117 # modeles :
118 from SD.co_modele      import modele_sdaster
119 from SD.co_modele_gene import modele_gene
120
121 # -----------------------------------------------------------------------------
122 # materiau
123 from SD.co_mater import mater_sdaster
124
125 # -----------------------------------------------------------------------------
126 # macro-elements :
127 from SD.co_macr_elem_dyna import macr_elem_dyna
128 from SD.co_macr_elem_stat import macr_elem_stat
129
130 # -----------------------------------------------------------------------------
131 # liste :
132 from SD.co_listr8 import listr8_sdaster
133
134 # -----------------------------------------------------------------------------
135 # maillage :
136 from SD.co_maillage  import maillage_sdaster
137 from SD.co_squelette import squelette
138
139 # -----------------------------------------------------------------------------
140 # champs
141 from SD.co_champ     import cham_gd_sdaster
142 from SD.co_cham_no   import cham_no_sdaster
143 from SD.co_carte     import carte_sdaster
144 from SD.co_cham_elem import cham_elem
145
146 # -----------------------------------------------------------------------------
147 # resultat : (evol_sdaster,mode_stat,mode_meca)
148 from SD.co_resultat     import resultat_sdaster, resultat_jeveux
149 from SD.co_resultat_dyn import resultat_dyn
150 from SD.co_base_modale  import base_modale
151
152 # -----------------------------------------------------------------------------
153 class acou_harmo    (resultat_dyn):pass
154 class dyna_harmo    (resultat_dyn):pass
155 class dyna_trans    (resultat_dyn):pass
156 class harm_gene     (resultat_dyn):pass
157 class mode_acou     (resultat_dyn):pass
158 class mode_flamb    (resultat_dyn):pass
159 class mode_gene     (resultat_dyn):pass
160
161 # -----------------------------------------------------------------------------
162 class comb_fourier  (resultat_sdaster):pass
163 class fourier_elas  (resultat_sdaster):pass
164 class fourier_ther  (resultat_sdaster):pass
165 class mult_elas     (resultat_sdaster):pass
166 class theta_geom    (resultat_sdaster):pass
167
168 # -----------------------------------------------------------------------------
169 # resultat_sdaster/evol_sdaster :
170 class evol_sdaster(resultat_sdaster):pass
171 class evol_char(evol_sdaster):pass
172 class evol_elas(evol_sdaster):pass
173 class evol_noli(evol_sdaster):pass
174 class evol_ther(evol_sdaster):pass
175 class evol_varc(evol_sdaster):pass
176
177 # -----------------------------------------------------------------------------
178 # resultat_sdaster/mode_stat :
179 class mode_stat(resultat_dyn):pass
180 class mode_stat_depl(mode_stat):pass
181 class mode_stat_acce(mode_stat):pass
182 class mode_stat_forc(mode_stat):pass
183
184 # -----------------------------------------------------------------------------
185 # resultat_sdaster/mode_meca :
186 class mode_meca(resultat_dyn):pass
187 class mode_meca_c(mode_meca):pass
188
189 # -----------------------------------------------------------------------------
190 # fonctions / nappe / para_sensi
191 from SD.co_fonction import fonction_sdaster, para_sensi, fonction_c, nappe_sdaster
192
193 # -----------------------------------------------------------------------------
194 # matr_asse :
195 from SD.co_matr_asse      import matr_asse
196 from SD.co_matr_asse_gene import matr_asse_gene
197 from SD.co_matr_asse_gene import matr_asse_gene_r
198 from SD.co_matr_asse_gene import matr_asse_gene_c
199
200 from SD.co_matr_asse_gd import matr_asse_gd, \
201                                matr_asse_depl_r, matr_asse_depl_c, \
202                                matr_asse_pres_r, matr_asse_pres_c, \
203                                matr_asse_temp_r, matr_asse_temp_c
204
205 # -----------------------------------------------------------------------------
206 # matr_elem :
207 from SD.co_matr_elem import matr_elem, \
208                             matr_elem_depl_r, matr_elem_depl_c, \
209                                               matr_elem_pres_c, \
210                             matr_elem_temp_r
211
212 # -----------------------------------------------------------------------------
213 # table :
214 from SD.co_table import table_sdaster, table_jeveux
215 from SD.co_table_fonction import table_fonction
216 from SD.co_table_container import table_container
217
218 # -----------------------------------------------------------------------------
219 # vect_asse_gene :
220 from SD.co_vect_asse_gene import vect_asse_gene
221
222 # -----------------------------------------------------------------------------
223 # vect_elem :
224 from SD.co_vect_elem import vect_elem, \
225                             vect_elem_depl_r, \
226                             vect_elem_pres_r, vect_elem_pres_c, \
227                             vect_elem_temp_r
228
229 #& MODIF COMMUN  DATE 06/05/2008   AUTEUR MARKOVIC D.MARKOVIC 
230 #            CONFIGURATION MANAGEMENT OF EDF VERSION
231 # ======================================================================
232 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
233 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
234 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
235 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
236 # (AT YOUR OPTION) ANY LATER VERSION.
237 #
238 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
239 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
240 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
241 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
242 #
243 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
244 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
245 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
246 # ======================================================================
247 # RESPONSABLE PROIX J.M.PROIX
248 def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
249            RELATION        =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
250                                  into=( "ELAS",
251 # Spécial Discrets : début
252                                         "DIS_VISC",        # RESP. : FLEJOU J.L.FLEJOU
253                                         "DIS_ECRO_CINE",   # RESP. : FLEJOU J.L.FLEJOU
254                                         "DIS_BILI_ELAS",   # RESP. : FLEJOU J.L.FLEJOU
255 # Spécial Discrets : fin
256                                         "ELAS_HYPER",      # RESP. : ABBAS M.ABBAS
257                                         "VMIS_ISOT_TRAC",  # RESP. : PROIX J.M.PROIX
258                                         "VISC_ISOT_TRAC",  # RESP. : PROIX J.M.PROIX
259                                         "VMIS_ISOT_LINE",  # RESP. : PROIX J.M.PROIX
260                                         "VISC_ISOT_LINE",  # RESP. : MICHEL S.MICHEL
261                                         "VMIS_ISOT_PUIS",  # RESP. : PROIX J.M.PROIX
262                                         "VMIS_ECMI_TRAC",  # RESP. : PROIX J.M.PROIX
263                                         "VMIS_ECMI_LINE",  # RESP. : PROIX J.M.PROIX
264                                         "LABORD_1D",       # RESP. : VOLDOIRE F.VOLDOIRE
265                                         "ENDO_FRAGILE",    # RESP. : MICHEL S.MICHEL
266                                         "ENDO_ISOT_BETON", # RESP. : MICHEL S.MICHEL
267                                         "ENDO_ORTH_BETON", # RESP. : MICHEL S.MICHEL
268                                         "BETON_REGLE_PR",  # RESP. : NECS
269                                         "MAZARS",          # RESP. : MICHEL S.MICHEL
270                                         "JOINT_BA",        # RESP. : MICHEL S.MICHEL
271                                         "RUPT_FRAG",       # RESP. : LAVERNE J.LAVERNE
272                                         "CZM_EXP_REG",     # RESP. : LAVERNE J.LAVERNE
273                                         "CZM_LIN_REG",     # RESP. : LAVERNE J.LAVERNE
274                                         "CZM_EXP",         # RESP. : LAVERNE J.LAVERNE
275                                         "META_P_IL",       # RESP. : CANO V.CANO
276                                         "META_P_IL_PT",    # RESP. : CANO V.CANO
277                                         "META_P_IL_RE",    # RESP. : CANO V.CANO
278                                         "META_P_IL_PT_RE", # RESP. : CANO V.CANO
279                                         "META_V_IL",       # RESP. : CANO V.CANO
280                                         "META_V_IL_PT",    # RESP. : CANO V.CANO
281                                         "META_V_IL_RE",    # RESP. : CANO V.CANO
282                                         "META_V_IL_PT_RE", # RESP. : CANO V.CANO
283                                         "META_P_INL",      # RESP. : CANO V.CANO
284                                         "META_P_INL_PT",   # RESP. : CANO V.CANO
285                                         "META_P_INL_RE",   # RESP. : CANO V.CANO
286                                         "META_P_INL_PT_RE",# RESP. : CANO V.CANO
287                                         "META_V_INL",      # RESP. : CANO V.CANO
288                                         "META_V_INL_PT",   # RESP. : CANO V.CANO
289                                         "META_V_INL_RE",   # RESP. : CANO V.CANO
290                                         "META_V_INL_PT_RE",# RESP. : CANO V.CANO
291                                         "META_P_CL",       # RESP. : CANO V.CANO
292                                         "META_P_CL_PT",    # RESP. : CANO V.CANO
293                                         "META_P_CL_RE",    # RESP. : CANO V.CANO
294                                         "META_P_CL_PT_RE", # RESP. : CANO V.CANO
295                                         "META_V_CL",       # RESP. : CANO V.CANO
296                                         "META_V_CL_PT",    # RESP. : CANO V.CANO
297                                         "META_V_CL_RE",    # RESP. : CANO V.CANO
298                                         "META_V_CL_PT_RE", # RESP. : CANO V.CANO
299                                         "META_LEMA_ANI",   # RESP. : CANO V.CANO                                     
300                                         "VMIS_CINE_LINE",  # RESP. : PROIX J.M.PROIX
301                                         "VISC_TAHERI",     # RESP. : TAHERI S.TAHERI
302                                         "VISCOCHAB",       # RESP. : None
303                                         "VMIS_CIN1_CHAB",  # RESP. : PROIX J.M.PROIX
304                                         "VMIS_CIN2_CHAB",  # RESP. : PROIX J.M.PROIX
305                                         "VISC_CIN1_CHAB",  # RESP. : PROIX J.M.PROIX
306                                         "VISC_CIN2_CHAB",  # RESP. : PROIX J.M.PROIX
307                                         "VMIS_CIN2_MEMO",  # RESP. : PROIX J.M.PROIX
308                                         "VISC_CIN2_MEMO",  # RESP. : PROIX J.M.PROIX
309                                         "LMARC",           # RESP. : None
310                                         "LMARC_IRRA",      # RESP. : FERNANDES R.FERNANDES
311                                         "ROUSSELIER",      # RESP. : CANO V.CANO
312                                         "ROUSS_PR",        # RESP. : PARROT A.PARROT
313                                         "ROUSS_VISC",      # RESP. : CANO V.CANO
314                                         "VMIS_POU_LINE",   # RESP. : PROIX J.M.PROIX
315                                         "VMIS_POU_FLEJOU", # RESP. : FLEJOU J.L.FLEJOU
316                                         "ARME",            # RESP. : PEYRARD C.PEYRARD
317                                         "ASSE_CORN",       # RESP. : PEYRARD C.PEYRARD
318                                         "NORTON_HOFF",     # RESP. : MICHEL S.MICHEL
319                                         "LEMAITRE",        # RESP. : DEBONNIERES P.DEBONNIERES
320                                         "LEMAITRE_IRRA",   # RESP. : FERNANDES R.FERNANDES
321                                         "LEMA_SEUIL",      # RESP. : LECLERC S.LECLERC
322                                         "IRRAD3M",         # RESP. : FLEJOU J.L.FLEJOU
323                                         "VISC_IRRA_LOG",   # RESP. : FERNANDES R.FERNANDES
324                                         "GRAN_IRRA_LOG",   # RESP. : FERNANDES R.FERNANDES
325                                         "VENDOCHAB",       # RESP. : None
326                                         "NADAI_B",         # RESP. : None
327                                         "DIS_CHOC",        # RESP. : DEVESA G.DEVESA
328                                         "DIS_GRICRA",      # RESP. : FERNANDES R.FERNANDES
329                                         "DIS_GOUJ2E_PLAS", # RESP. : ANGLES J.ANGLES
330                                         "DIS_GOUJ2E_ELAS", # RESP. : ANGLES J.ANGLES
331                                         "GRILLE_ISOT_LINE",# RESP. : ROSPARS C.ROSPARS
332                                         "GRILLE_CINE_LINE",# RESP. : ROSPARS C.ROSPARS
333                                         "GRILLE_PINTO_MEN",# RESP. : ROSPARS C.ROSPARS
334                                         "PINTO_MENEGOTTO", # RESP. : ROSPARS C.ROSPARS
335                                         "CJS",             # RESP. : CHAVANT C.CHAVANT
336                                         "HUJEUX",          # RESP. : FOUCAULT A.FOUCAULT
337                                         "CAM_CLAY",        # RESP. : ELGHARIB J.ELGHARIB
338                                         "BARCELONE",       # RESP. : ELGHARIB J.ELGHARIB
339                                         "LAIGLE",          # RESP. : ELGHARIB J.ELGHARIB
340                                         "LETK",            # RESP. : ELGHARIB J.ELGHARIB
341                                         "DRUCK_PRAGER",    # RESP. : FERNANDES R.FERNANDES
342                                         "DRUCK_PRAG_N_A",  # RESP. : FERNANDES R.FERNANDES
343                                         "HOEK_BROWN",      # RESP. : CHAVANT C.CHAVANT
344                                         "HOEK_BROWN_EFF",  # RESP. : CHAVANT C.CHAVANT
345                                         "HOEK_BROWN_TOT",  # RESP. : CHAVANT C.CHAVANT
346                                         "GRANGER_FP",      # RESP. : ROSPARS C.ROSPARS
347                                         "GRANGER_FP_INDT", # RESP. : ROSPARS C.ROSPARS
348                                         "GRANGER_FP_V",    # RESP. : ROSPARS C.ROSPARS
349                                         "BETON_UMLV_FP",   # RESP. : LEPAPE Y.LEPAPE
350                                         "BETON_DOUBLE_DP", # RESP. : ELGHARIB J.ELGHARIB
351                                         "KIT_HH",          # RESP. : GRANET S.GRANET
352                                         "KIT_HM",          # RESP. : GRANET S.GRANET
353                                         "KIT_HHM",         # RESP. : GRANET S.GRANET
354                                         "KIT_THH",         # RESP. : GRANET S.GRANET
355                                         "KIT_THV",         # RESP. : GRANET S.GRANET
356                                         "KIT_THM",         # RESP. : GRANET S.GRANET
357                                         "KIT_THHM",        # RESP. : GRANET S.GRANET
358                                         "VMIS_ASYM_LINE",  # RESP. : None
359                                         "KIT_DDI",         # RESP. : CHAVANT C.CHAVANT
360                                         "GLRC_DAMAGE",     # RESP. : MARKOVIC D.MARKOVIC
361                                         "GLRC_DM",         # RESP. : MARKOVIC D.MARKOVIC
362                                         "SANS",            # RESP. : None
363                                         "CORR_ACIER",      # RESP. : LEPAPE Y.LEPAPE
364                                         "MONOCRISTAL",     # RESP. : PROIX J.M.PROIX
365                                         "POLYCRISTAL",     # RESP. : PROIX J.M.PROIX
366                                         "ZMAT",            # RESP. : PROIX J.M.PROIX
367                                         "GATT_MONERIE",    # RESP. : DEBONNIERES P.DEBONNIERES
368                                         "MULTIFIBRE",      # RESP. : FLEJOU J.L.FLEJOU
369                                      ) ),
370 # Spécial discrets : début
371           DIS_VISC       =SIMP(statut='c',typ='I',defaut=12,into=(12,)),
372           DIS_ECRO_CINE  =SIMP(statut='c',typ='I',defaut=18,into=(18,)),
373           DIS_BILI_ELAS  =SIMP(statut='c',typ='I',defaut= 6,into=( 6,)),
374 # Spécial discrets : fin
375           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
376           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
377           SANS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
378           CORR_ACIER      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
379           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
380           VISC_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
381           VMIS_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
382           VISC_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
383           VMIS_ISOT_PUIS  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
384           VMIS_ECMI_TRAC  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
385           VMIS_ECMI_LINE  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
386           LABORD_1D       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
387           ENDO_FRAGILE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
388           ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
389           ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
390           BETON_REGLE_PR  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
391           MAZARS          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
392           JOINT_BA        =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
393           RUPT_FRAG       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
394           CZM_EXP_REG     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
395           CZM_LIN_REG     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
396           CZM_EXP         =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
397           META_P_IL       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
398           META_P_IL_PT    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
399           META_P_IL_RE    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
400           META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
401           META_V_IL       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
402           META_V_IL_PT    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
403           META_V_IL_RE    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
404           META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
405           META_P_INL      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
406           META_P_INL_PT   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
407           META_P_INL_RE   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
408           META_P_INL_PT_RE=SIMP(statut='c',typ='I',defaut=1,into=(1,)),
409           META_V_INL      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
410           META_V_INL_PT   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
411           META_V_INL_RE   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
412           META_V_INL_PT_RE=SIMP(statut='c',typ='I',defaut=1,into=(1,)),
413           META_P_CL       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
414           META_P_CL_PT    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
415           META_P_CL_RE    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
416           META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
417           META_V_CL       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
418           META_V_CL_PT    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
419           META_V_CL_RE    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
420           META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
421           META_LEMA_ANI   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
422           VMIS_CINE_LINE  =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
423           VISCOCHAB       =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
424           VMIS_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
425           VMIS_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
426           VISC_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
427           VISC_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
428           VMIS_CIN2_MEMO  =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
429           VISC_CIN2_MEMO  =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
430           LMARC           =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
431           LMARC_IRRA      =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
432           VISC_TAHERI     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
433           ROUSSELIER      =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
434           ROUSS_PR        =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
435           ROUSS_VISC      =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
436           VMIS_POU_LINE   =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
437           VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
438           ASSE_CORN       =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
439           ARME            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
440           NORTON_HOFF     =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
441           LEMAITRE        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
442           LEMA_SEUIL      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
443           IRRAD3M         =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
444           LEMAITRE_IRRA   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
445           VISC_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
446           GRAN_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
447           NADAI_B         =SIMP(statut='c',typ='I',defaut=34,into=(34,)),
448           VENDOCHAB       =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
449           GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
450           GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
451           GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)),
452           DIS_CHOC        =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
453           DIS_GRICRA      =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
454           DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
455           DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
456           PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
457           CJS             =SIMP(statut='c',typ='I',defaut=16,into=(16,)),
458           HUJEUX          =SIMP(statut='c',typ='I',defaut=35,into=(35,)),
459           CAM_CLAY        =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
460           BARCELONE       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
461           LAIGLE          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
462           LETK            =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
463           DRUCK_PRAGER    =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
464           DRUCK_PRAG_N_A  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
465           HOEK_BROWN      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
466           HOEK_BROWN_EFF  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
467           HOEK_BROWN_TOT  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
468           GRANGER_FP      =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
469           GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
470           GRANGER_FP_V    =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
471           BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
472           KIT_HH          =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
473           KIT_HM          =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
474           KIT_HHM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
475           KIT_THH         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
476           KIT_THV         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
477           KIT_THM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
478           KIT_THHM        =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
479           VMIS_ASYM_LINE  =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
480           BETON_UMLV_FP   =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
481           GLRC_DAMAGE     =SIMP(statut='c',typ='I',defaut=19,into=(19,)),
482           GLRC_DM         =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
483           GATT_MONERIE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
484
485            b_monox     = BLOC(condition = "RELATION == 'MONOCRISTAL' ",
486                                  fr="SD issue de DEFI_COMPOR",
487                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
488 #
489            b_polyx     = BLOC(condition = "RELATION == 'POLYCRISTAL' ",
490                                  fr="SD issue de DEFI_COMPOR",
491                    COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
492 #
493            b_zmat      = BLOC(condition = "RELATION == 'ZMAT' ",
494                                  fr="Comportement de la bibliotheque Zmat",
495                    NB_VARI =SIMP(statut='o',typ='I',max=1),
496                    UNITE =SIMP(statut='o',typ='I',max=1),),
497
498
499
500            RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
501                                  into=(
502 # MECA
503                                        "ELAS",
504                                        "CJS",
505                                        "HUJEUX",
506                                        "CAM_CLAY",
507                                        "BARCELONE",
508                                        "LAIGLE",
509                                        "LETK",
510                                        "DRUCK_PRAGER",
511                                        "DRUCK_PRAG_N_A",
512                                        "HOEK_BROWN_EFF",
513                                        "HOEK_BROWN_TOT",
514                                        "MAZARS",
515                                        "ENDO_ISOT_BETON",
516 # THMC
517                                        "GAZ",
518                                        "LIQU_SATU",
519                                        "LIQU_GAZ_ATM",
520                                        "LIQU_VAPE_GAZ",
521                                        "LIQU_AD_GAZ_VAPE",
522                                        "LIQU_VAPE",
523                                        "LIQU_GAZ",
524 # HYDR
525                                        "HYDR_UTIL",
526                                        "HYDR_VGM",
527                                        "HYDR",
528                                        "HYDR_ENDO",
529 # MECA_META
530                                        "ACIER",
531                                        "ZIRC",
532 # MECA KIT_DDI
533                                        "VMIS_CINE_LINE",
534                                        "VMIS_ISOT_TRAC",
535                                        "VMIS_ISOT_LINE",
536                                        "VMIS_ISOT_CINE",
537                                        "VMIS_ISOT_PUIS",
538                                        "GLRC_DM",
539                                        "GRANGER_FP",
540                                        "GRANGER_FP_INDT",
541                                        "GRANGER_FP_V",
542                                        "BETON_UMLV_FP",
543                                        "ROUSS_PR",
544                                        "NADAI_B",
545                                        "BETON_DOUBLE_DP",
546                                        ),),
547
548
549            GAZ             =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
550            LIQU_SATU       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
551            LIQU_GAZ_ATM    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
552            LIQU_VAPE_GAZ   =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
553            LIQU_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)),
554            LIQU_VAPE       =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
555            LIQU_GAZ        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
556            HYDR_UTIL       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
557            HYDR_VGM        =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
558            HYDR            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
559            HYDR_ENDO       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
560            ACIER           =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
561            ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
562
563            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",
564                              into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL",
565                                    "REAC_GEOM","EULER_ALMANSI")),
566            ALGO_C_PLAN     =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
567 #           b_deborst      = BLOC(condition = " ALGO_C_PLAN == 'DEBORST' ",
568 #                        fr="Tolérance relative sur la verification des contraintes planes",
569            RESI_DEBORST  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
570 #                                ),
571            ALGO_1D         =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
572 #           b_dbiter      = BLOC(condition = " (ALGO_C_PLAN == 'DEBORST') or (ALGO_1D == 'DEBORST')",
573 #                        fr="Nombre d'iterations maximal pour la boucle pour les contraintes planes",
574            ITER_MAXI_DEBORST  =SIMP(statut='f',typ='I',defaut= 1),
575 #                                ),
576       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
577            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
578            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
579            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
580            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
581            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
582            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
583            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
584                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
585            TYPE_MATR_TANG  =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")),
586            b_perturb      = BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ",
587                         fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation",
588                  VALE_PERT_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-5),
589                                 ),
590            b_tangsec      = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ",
591                         fr="Modification evolutive de la matrice tangente/secante",
592                  SEUIL        =SIMP(statut='f',typ='R',defaut= 3. ),
593                  AMPLITUDE    =SIMP(statut='f',typ='R',defaut= 1.5 ),
594                  TAUX_RETOUR  =SIMP(statut='f',typ='R',defaut= 0.05 ),
595                                 ),
596            PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
597          ) ;
598 #& MODIF COMMUN  DATE 06/05/2008   AUTEUR CNGUYEN C.NGUYEN 
599 #            CONFIGURATION MANAGEMENT OF EDF VERSION
600 # ======================================================================
601 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
602 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
603 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
604 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
605 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
606 #                                                                       
607 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
608 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
609 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
610 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
611 #                                                                       
612 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
613 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
614 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
615 # ======================================================================
616
617 def C_CONTACT() : return FACT(statut='f',max='**',
618            fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
619
620
621            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
622                                  into  =("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP","XFEM") ),
623 #
624 # OPTIONS D'APPARIEMENT
625 #
626
627            APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
628                                  into  =("NODAL","MAIT_ESCL")),
629
630            LISSAGE         =SIMP(statut='f',typ='TXM',defaut="NON",
631                                  into  =("OUI","NON")),          
632                              
633            NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
634                                  into  =("MAIT","MAIT_ESCL","ESCL"),),
635                                  
636            VECT_MAIT       =SIMP(statut='f',typ='TXM',defaut="AUTO",
637                                  into  =("AUTO","FIXE","VECT_Y")),                      
638
639            b_nmait_fixe     =BLOC(condition = "VECT_MAIT == 'FIXE'",
640              MAIT_FIXE     =SIMP(statut='f',typ='R',min=3,max=3),
641            ),
642
643            b_nmait_vecty    =BLOC(condition = "VECT_MAIT == 'VECT_Y'",
644              MAIT_VECT_Y   =SIMP(statut='f',typ='R',min=3,max=3),
645            ),
646
647            VECT_ESCL       =SIMP(statut='f',typ='TXM',defaut="AUTO",
648                                  into  =("AUTO","FIXE","VECT_Y")),                      
649
650            b_nescl_fixe     =BLOC(condition = "VECT_ESCL == 'FIXE'",
651              ESCL_FIXE     =SIMP(statut='f',typ='R',min=3,max=3),
652            ),
653
654            b_nescl_vecty    =BLOC(condition = "VECT_ESCL == 'VECT_Y'",
655              ESCL_VECT_Y   =SIMP(statut='f',typ='R',min=3,max=3),
656            ),
657
658
659            TYPE_APPA       =SIMP(statut='f',typ='TXM',defaut="PROCHE",
660                                  into  =("PROCHE","FIXE")),  
661                                  
662            b_appa_fixe     =BLOC(condition = "TYPE_APPA == 'FIXE'",
663              DIRE_APPA     =SIMP(statut='f',typ='R',min=3,max=3),
664            ),
665            
666            b_dist_struct   =BLOC(condition = "METHODE != 'CONTINUE' and METHODE != 'XFEM' ",
667              DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
668              DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
669              b_cara         =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
670                CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
671              ),
672            ),
673            
674            DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
675            DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
676
677
678            TOLE_APPA       =SIMP(statut='f',typ='R'  ,defaut=-1.0), 
679            TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),  
680                 
681                       
682            b_xfem         =BLOC(condition = "METHODE == 'XFEM' ",
683              FISS_MAIT      = SIMP(statut='o',typ=fiss_xfem,max=1),
684              FISS_ESCL      = SIMP(statut='f',typ=fiss_xfem,max=1),
685              SIGN_MAIT      = SIMP(statut='f',typ='TXM',into=("+","-",) ),
686              SIGN_ESCL      = SIMP(statut='f',typ='TXM',into=("+","-",) ),
687              INTEGRATION    = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG2","FPG3","FPG4","FPG6","FPG7","NOEUD",) ),
688              COEF_REGU_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
689              ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut=30),
690              ITER_GEOM_MAXI  =SIMP(statut='f',typ='I',defaut=0),
691
692              CONTACT_INIT   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
693              ALGO_LAGR      = SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
694              COEF_ECHELLE   = SIMP(statut='f',typ='R',defaut=1.E+6),
695              FROTTEMENT     = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
696              GLISSIERE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
697              b_frotxfem    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
698                COULOMB        = SIMP(statut='o',typ='R',),
699                ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=2),
700                COEF_REGU_FROT = SIMP(statut='f',typ='R',defaut=100.E+0),
701                SEUIL_INIT     = SIMP(statut='f',typ='R',defaut=0.E+0),
702                ),
703            ),
704
705            b_notxfem         =BLOC(condition = "METHODE != 'XFEM' ",
706                                    regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
707              GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
708              MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
709              GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
710              MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
711            ),
712
713
714
715            b_verif         =BLOC(condition = "METHODE == 'VERIF' ",
716                                  fr="Paramètres de la méthode sans calcul de contact",
717                 STOP_INTERP     =SIMP(statut='f',typ='TXM',defaut="NON",
718                                       into=("OUI","NON")),
719                 TOLE_INTERP     =SIMP(statut='f',typ='R',defaut = 0.),
720
721                 GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
722            ),
723
724            b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
725                                  fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
726                 GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
727                                       into=("OUI","NON")),
728                 b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",
729                       ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
730                                  ),
731
732                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
733                                       into=("OUI","NON")),
734                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
735                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
736                         into=("AUTOMATIQUE","CONTROLE","SANS")),
737
738                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
739                                  fr="Paramètre de la réactualisation géométrique",
740                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
741                                  ),
742
743                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
744                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
745                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
746
747            ),
748            b_lagrangien    =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
749                                  fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
750                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
751                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
752                                       into=("OUI","NON")),
753                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
754                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I'  ,defaut=4),
755
756                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
757                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
758
759                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
760                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
761
762                                  ),
763
764
765                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
766                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
767                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
768
769                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
770                      COULOMB         =SIMP(statut='o',typ='R',),
771                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
772                      ),),
773
774            b_penalisation       =BLOC(condition = "METHODE == 'PENALISATION' ",
775                                       fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
776                 E_N             =SIMP(statut='f',typ='R'),
777                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
778                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
779                                       into=("OUI","NON")),
780                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
781                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I',defaut=4),
782
783                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
784                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
785
786                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
787                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
788                                  ),
789
790                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
791                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
792                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
793                 
794
795
796                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
797                      COULOMB         =SIMP(statut='o',typ='R',),
798                      E_T             =SIMP(statut='f',typ='R',
799                                            fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
800                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
801                      ),),
802
803            b_continue      =BLOC(condition = "METHODE == 'CONTINUE' ",
804                                  fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
805 #                regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
806
807 # -------------------------------- CHOIX DE LA FORMULATION DE LA METHODE CONTINUE
808                 ALGO_CONT   =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",into=("LAGRANGIEN","AUGMENTE","STABILISE"),),
809                 b_CONT_LAGR =BLOC(condition = "ALGO_CONT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne",
810                                   COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
811                 b_CONT_STAB =BLOC(condition = "ALGO_CONT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé",
812                                   COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
813                                   COEF_STAB_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
814                 b_CONT_AUGM =BLOC(condition = "ALGO_CONT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté",
815                                   COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
816                                   COEF_STAB_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
817                                   COEF_PENA_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
818 # --------------------------------
819                 GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
820                 b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ",
821                                   ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),),
822 # --------------------------------
823                 COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
824                 b_compliance    =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance",
825                                       ASPERITE =SIMP(statut='o',typ='R',),
826                                       E_N      =SIMP(statut='o',typ='R',),
827                                       E_V      =SIMP(statut='f',typ='R',defaut=0.E+0),),
828 # --------------------------------
829                 FOND_FISSURE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
830                 b_FOND_FISSURE  =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE",
831                                       regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),),
832                                       NOEUD_FOND    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
833                                       GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
834                                       MAILLE_FOND   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
835                                       GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),),
836 # --------------------------------
837                 RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
838                 b_RACCORD_SURF   =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE",
839                                        regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),),
840                                        NOEUD_RACC    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
841                                        GROUP_NO_RACC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
842 # -------------------------------- MOTS-CLEF CONTACT
843                 INTEGRATION      =SIMP(statut='f',typ='TXM',defaut="NOEUD",
844                                        into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
845                                              "NCOTES","NCOTES1","NCOTES2"),),
846                 FORMULATION      =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE"),),
847
848                 ITER_GEOM_MAXI   =SIMP(statut='f',typ='I',defaut=2),
849                 ITER_CONT_MAXI   =SIMP(statut='f',typ='I',defaut=30),
850                 CONTACT_INIT     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
851 # -------------------------------- détection automatique et exclusion des noeuds impliqués dans le pivot nul
852                 EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
853 # -------------------------------- exclusion manuelle des noeuds impliqués dans le pivot nul;
854 #                                  prévaut sur la fonctionnalité précédente sans pour autant interférer avec elle
855                 SANS_NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
856                 SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
857                 regles        =(EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
858 # -------------------------------- MOTS-CLEF FROTTEMENT
859                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
860                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
861                      ALGO_FROT       =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",
862                                       into=("LAGRANGIEN","AUGMENTE","STABILISE") ),
863                      b_FROT_LAGR =BLOC(condition = "ALGO_FROT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne",
864                                        COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
865                      b_FROT_STAB =BLOC(condition = "ALGO_FROT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé",
866                                        COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
867                                        COEF_STAB_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
868                      b_FROT_AUGM =BLOC(condition = "ALGO_FROT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté",
869                                        COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
870                                        COEF_STAB_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
871                                        COEF_PENA_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
872                      COULOMB            =SIMP(statut='o',typ='R',),
873                      SANS_NOEUD_FR    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
874                      SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
875                      regles             =(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),),
876                      b_sans_group_no_frot =BLOC(condition = "SANS_GROUP_NO_FR != None or SANS_NO_FR != None",
877                                                 fr="Direction(s) de frottement à exclure",
878                                                 EXCL_FROT_1 =SIMP(statut='f',typ='R',min=3,max=3),
879                                                 EXCL_FROT_2 =SIMP(statut='f',typ='R',min=3,max=3),),
880                      ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
881                      SEUIL_INIT     =SIMP(statut='f',typ='R',defaut=0.E+0),
882                      USURE          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),),
883                      b_usure        =BLOC(condition = "USURE == 'ARCHARD' ",fr="Parametres de la loi d'usure d'Archard",
884                                           K =SIMP(statut='o',typ='R',),
885                                           H =SIMP(statut='o',typ='R',),),),),
886
887            b_gcp        =BLOC(condition = "METHODE == 'GCP' ",
888                                  fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
889                 RESI_ABSO       =SIMP(statut='o',typ='R',
890                                       fr="Critère de convergence (niveau d'interpénétration autorisé)"),
891                 REAC_ITER       =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
892                 ITER_GCP_MAXI   =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le GCP"),
893                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
894                                       into=("OUI","NON")),
895                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
896                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
897
898                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
899                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
900
901                                  ),
902                 PRE_COND         =SIMP(statut='f',typ='TXM',defaut="SANS",
903                       into=("DIRICHLET","SANS"),fr="Choix d'un préconditionneur (accélère la convergence)"),
904                 ITER_PRE_MAXI   =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le préconditionneur"),
905                 COEF_RESI       =SIMP(statut='f',typ='R',defaut = 1.,
906                                         fr="Critère_Convergence_Préconditionneur = COEF_RESI*Critère_Convergence_GCP",),
907                 RECH_LINEAIRE=SIMP(statut='f',typ='TXM',defaut="ADMISSIBLE",into=("ADMISSIBLE","NON_ADMISSIBLE"),
908                                         fr="Autorise-t-on de sortir du domaine admissible lors de la recherche linéaire",),
909                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
910                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
911                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
912            ),
913          );
914
915
916
917 #& MODIF COMMUN  DATE 22/04/2008   AUTEUR ABBAS M.ABBAS 
918 #            CONFIGURATION MANAGEMENT OF EDF VERSION
919 # ======================================================================
920 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
921 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
922 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
923 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
924 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
925 #                                                                       
926 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
927 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
928 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
929 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
930 #                                                                       
931 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
932 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
933 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
934 # ======================================================================
935
936 def C_CONTACT_F() : return FACT(statut='f',max='**',
937            fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
938
939
940            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
941                                  into  =("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP","XFEM") ),
942 #
943 # OPTIONS D'APPARIEMENT
944 #
945
946            APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
947                                  into  =("NODAL","MAIT_ESCL")),
948
949            LISSAGE         =SIMP(statut='f',typ='TXM',defaut="NON",
950                                  into  =("OUI","NON")),          
951                              
952            NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
953                                  into  =("MAIT","MAIT_ESCL","ESCL"),),
954                                  
955            VECT_MAIT       =SIMP(statut='f',typ='TXM',defaut="AUTO",
956                                  into  =("AUTO","FIXE","VECT_Y")),                      
957
958            b_nmait_fixe     =BLOC(condition = "VECT_MAIT == 'FIXE'",
959              MAIT_FIXE     =SIMP(statut='f',typ='R',min=3,max=3),
960            ),
961
962            b_nmait_vecty    =BLOC(condition = "VECT_MAIT == 'VECT_Y'",
963              MAIT_VECT_Y   =SIMP(statut='f',typ='R',min=3,max=3),
964            ),
965
966            VECT_ESCL       =SIMP(statut='f',typ='TXM',defaut="AUTO",
967                                  into  =("AUTO","FIXE","VECT_Y")),                      
968
969            b_nescl_fixe     =BLOC(condition = "VECT_ESCL == 'FIXE'",
970              ESCL_FIXE     =SIMP(statut='f',typ='R',min=3,max=3),
971            ),
972
973            b_nescl_vecty    =BLOC(condition = "VECT_ESCL == 'VECT_Y'",
974              ESCL_VECT_Y   =SIMP(statut='f',typ='R',min=3,max=3),
975            ),
976
977
978            TYPE_APPA       =SIMP(statut='f',typ='TXM',defaut="PROCHE",
979                                  into  =("PROCHE","FIXE")),  
980                                  
981            b_appa_fixe     =BLOC(condition = "TYPE_APPA == 'FIXE'",
982              DIRE_APPA     =SIMP(statut='f',typ='R',min=3,max=3),
983            ),
984                                                                                          
985            DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
986            DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
987            DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
988            DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),                     
989
990            b_cara         =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
991              CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
992            ),
993
994            TOLE_APPA       =SIMP(statut='f',typ='R'  ,defaut=-1.0),
995            TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),  
996                 
997                       
998            b_xfem         =BLOC(condition = "METHODE == 'XFEM' ",
999              FISS_MAIT      = SIMP(statut='o',typ=fiss_xfem,max=1),
1000              FISS_ESCL      = SIMP(statut='f',typ=fiss_xfem,max=1),
1001              SIGN_MAIT      = SIMP(statut='f',typ='TXM',into=("+","-",) ),
1002              SIGN_ESCL      = SIMP(statut='f',typ='TXM',into=("+","-",) ),
1003              INTEGRATION    = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
1004              COEF_REGU_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
1005              ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut=30),
1006              ITER_GEOM_MAXI  =SIMP(statut='f',typ='I',defaut=0),
1007
1008              CONTACT_INIT   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
1009              ALGO_LAGR      = SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
1010              COEF_ECHELLE   = SIMP(statut='f',typ='R',defaut=1.E+6),
1011              FROTTEMENT     = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
1012              GLISSIERE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1013              b_frotxfem    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
1014                COULOMB        = SIMP(statut='o',typ='R',),
1015                ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=2),
1016                COEF_REGU_FROT = SIMP(statut='f',typ='R',defaut=100.E+0),
1017                SEUIL_INIT     = SIMP(statut='f',typ='R',defaut=0.E+0),
1018                ),
1019            ),
1020
1021            b_notxfem         =BLOC(condition = "METHODE != 'XFEM' ",
1022                                    regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
1023              GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
1024              MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
1025              GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
1026              MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
1027            ),
1028
1029
1030
1031            b_verif         =BLOC(condition = "METHODE == 'VERIF' ",
1032                                  fr="Paramètres de la méthode sans calcul de contact",
1033                 STOP_INTERP     =SIMP(statut='f',typ='TXM',defaut="NON",
1034                                       into=("OUI","NON")),
1035                 TOLE_INTERP     =SIMP(statut='f',typ='R',defaut = 0.),
1036
1037                 GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1038            ),
1039
1040            b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
1041                                  fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
1042                 GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
1043                                       into=("OUI","NON")),
1044                 b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",
1045                       ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
1046                                  ),
1047
1048                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
1049                                       into=("OUI","NON")),
1050                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
1051                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
1052                         into=("AUTOMATIQUE","CONTROLE","SANS")),
1053
1054                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
1055                                  fr="Paramètre de la réactualisation géométrique",
1056                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
1057                                  ),
1058
1059                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1060                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1061                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
1062
1063            ),
1064            b_lagrangien    =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
1065                                  fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
1066                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
1067                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
1068                                       into=("OUI","NON")),
1069                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
1070                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I'  ,defaut=4),
1071
1072                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
1073                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
1074
1075                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
1076                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
1077
1078                                  ),
1079
1080
1081                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1082                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1083                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1084
1085                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
1086                      COULOMB         =SIMP(statut='o',typ='R',),
1087                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
1088                      ),),
1089
1090            b_penalisation       =BLOC(condition = "METHODE == 'PENALISATION' ",
1091                                       fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
1092                 E_N             =SIMP(statut='f',typ='R'),
1093                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
1094                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
1095                                       into=("OUI","NON")),
1096                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
1097                 ITER_MULT_MAXI  =SIMP(statut='f',typ='I',defaut=4),
1098
1099                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
1100                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
1101
1102                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
1103                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
1104                                  ),
1105
1106                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1107                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1108                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1109                 
1110
1111
1112                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
1113                      COULOMB         =SIMP(statut='o',typ='R',),
1114                      E_T             =SIMP(statut='f',typ='R',
1115                                            fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
1116                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
1117                      ),),
1118
1119            b_continue      =BLOC(condition = "METHODE == 'CONTINUE' ",
1120                                  fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
1121 #                regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
1122
1123 # -------------------------------- CHOIX DE LA FORMULATION DE LA METHODE CONTINUE
1124                 ALGO_CONT   =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",into=("LAGRANGIEN","AUGMENTE","STABILISE"),),
1125                 b_CONT_LAGR =BLOC(condition = "ALGO_CONT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne",
1126                                   COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
1127                 b_CONT_STAB =BLOC(condition = "ALGO_CONT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé",
1128                                   COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
1129                                   COEF_STAB_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
1130                 b_CONT_AUGM =BLOC(condition = "ALGO_CONT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté",
1131                                   COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
1132                                   COEF_STAB_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
1133                                   COEF_PENA_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
1134 # --------------------------------
1135                 GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
1136                 b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ",
1137                                   ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),),
1138 # --------------------------------
1139                 COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
1140                 b_compliance    =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance",
1141                                       ASPERITE =SIMP(statut='o',typ='R',),
1142                                       E_N      =SIMP(statut='o',typ='R',),
1143                                       E_V      =SIMP(statut='f',typ='R',defaut=0.E+0),),
1144 # --------------------------------
1145                 FOND_FISSURE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
1146                 b_FOND_FISSURE  =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE",
1147                                       regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),),
1148                                       NOEUD_FOND    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1149                                       GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1150                                       MAILLE_FOND   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1151                                       GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),),
1152 # --------------------------------
1153                 RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
1154                 b_RACCORD_SURF   =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE",
1155                                        regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),),
1156                                        NOEUD_RACC    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1157                                        GROUP_NO_RACC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
1158 # -------------------------------- MOTS-CLEF CONTACT
1159                 INTEGRATION      =SIMP(statut='f',typ='TXM',defaut="NOEUD",
1160                                        into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
1161                                              "NCOTES","NCOTES1","NCOTES2"),),
1162                 FORMULATION      =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE"),),
1163
1164                 ITER_GEOM_MAXI   =SIMP(statut='f',typ='I',defaut=2),
1165                 ITER_CONT_MAXI   =SIMP(statut='f',typ='I',defaut=30),
1166                 CONTACT_INIT     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
1167 # -------------------------------- détection automatique et exclusion des noeuds impliqués dans le pivot nul
1168                 EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
1169 # -------------------------------- exclusion manuelle des noeuds impliqués dans le pivot nul;
1170 #                                  prévaut sur la fonctionnalité précédente sans pour autant interférer avec elle
1171                 SANS_NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1172                 SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1173                 regles        =(EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
1174 # -------------------------------- MOTS-CLEF FROTTEMENT
1175                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
1176                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
1177                      ALGO_FROT       =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",
1178                                       into=("LAGRANGIEN","AUGMENTE","STABILISE") ),
1179                      b_FROT_LAGR =BLOC(condition = "ALGO_FROT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne",
1180                                        COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
1181                      b_FROT_STAB =BLOC(condition = "ALGO_FROT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé",
1182                                        COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
1183                                        COEF_STAB_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
1184                      b_FROT_AUGM =BLOC(condition = "ALGO_FROT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté",
1185                                        COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
1186                                        COEF_STAB_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
1187                                        COEF_PENA_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),),
1188                      COULOMB            =SIMP(statut='o',typ='R',),
1189                      SANS_NOEUD_FR    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1190                      SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1191                      regles             =(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),),
1192                      b_sans_group_no_frot =BLOC(condition = "SANS_GROUP_NO_FR != None or SANS_NO_FR != None",
1193                                                 fr="Direction(s) de frottement à exclure",
1194                                                 EXCL_FROT_1 =SIMP(statut='f',typ='R',min=3,max=3),
1195                                                 EXCL_FROT_2 =SIMP(statut='f',typ='R',min=3,max=3),),
1196                      ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
1197                      SEUIL_INIT     =SIMP(statut='f',typ='R',defaut=0.E+0),
1198                      USURE          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),),
1199                      b_usure        =BLOC(condition = "USURE == 'ARCHARD' ",fr="Parametres de la loi d'usure d'Archard",
1200                                           K =SIMP(statut='o',typ='R',),
1201                                           H =SIMP(statut='o',typ='R',),),),),
1202
1203            b_gcp        =BLOC(condition = "METHODE == 'GCP' ",
1204                                  fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
1205                 RESI_ABSO       =SIMP(statut='o',typ='R',
1206                                       fr="Critère de convergence (niveau d'interpénétration autorisé)"),
1207                 REAC_ITER       =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
1208                 ITER_GCP_MAXI   =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le GCP"),
1209                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
1210                                       into=("OUI","NON")),
1211                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
1212                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
1213
1214                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
1215                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
1216
1217                                  ),
1218                 PRE_COND         =SIMP(statut='f',typ='TXM',defaut="SANS",
1219                       into=("DIRICHLET","SANS"),fr="Choix d'un préconditionneur (accélère la convergence)"),
1220                 ITER_PRE_MAXI   =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le préconditionneur"),
1221                 COEF_RESI       =SIMP(statut='f',typ='R',defaut = 1.,
1222                                         fr="Critère_Convergence_Préconditionneur = COEF_RESI*Critère_Convergence_GCP",),
1223                 RECH_LINEAIRE=SIMP(statut='f',typ='TXM',defaut="ADMISSIBLE",into=("ADMISSIBLE","NON_ADMISSIBLE"),
1224                                         fr="Autorise-t-on de sortir du domaine admissible lors de la recherche linéaire",),
1225                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1226                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1227                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
1228            ),
1229          );
1230
1231
1232
1233 #& MODIF COMMUN  DATE 26/06/2007   AUTEUR REZETTE C.REZETTE 
1234 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1235 # ======================================================================
1236 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
1237 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1238 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1239 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1240 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1241 #                                                                       
1242 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1243 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1244 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1245 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1246 #                                                                       
1247 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1248 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1249 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1250 # ======================================================================
1251 # RESPONSABLE VABHHTS J.PELLET
1252 # ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM
1253 # c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD)
1254 def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
1255                         "ACCE_ABSOLU",
1256                         "ALPH0_ELGA_EPSP",
1257                         "ALPHP_ELGA_ALPH0",
1258                         "ARCO_ELNO_SIGM",
1259                         "ARCO_NOEU_SIGM",
1260                         "COMPORTEMENT",
1261                         "COMPORTHER",
1262                         "CRIT_ELNO_RUPT",
1263                         "DCHA_ELGA_SIGM",
1264                         "DCHA_ELNO_SIGM",
1265                         "DCHA_NOEU_SIGM",
1266                         "DEDE_ELNO_DLDE",
1267                         "DEDE_NOEU_DLDE",
1268                         "DEGE_ELNO_DEPL",
1269                         "DEGE_NOEU_DEPL",
1270                         "DEPL",
1271                         "DEPL_ABSOLU",
1272                         "DESI_ELNO_DLSI",
1273                         "DESI_NOEU_DLSI",
1274                         "DETE_ELNO_DLTE",
1275                         "DETE_NOEU_DLTE",
1276                         "DURT_ELGA_META",
1277                         "DURT_ELNO_META",
1278                         "DURT_NOEU_META",
1279                         "ECIN_ELEM_DEPL",
1280                         "EFGE_ELNO_CART",
1281                         "EFGE_ELNO_DEPL",
1282                         "EFGE_NOEU_CART",
1283                         "EFGE_NOEU_DEPL",
1284                         "ENDO_ELGA",
1285                         "ENDO_ELNO_ELGA",
1286                         "ENDO_ELNO_SIGA",
1287                         "ENDO_ELNO_SINO",
1288                         "ENDO_NOEU_SINO",
1289                         "ENEL_ELGA",
1290                         "ENEL_ELNO_ELGA",
1291                         "ENEL_NOEU_ELGA",
1292                         "EPEQ_ELNO_TUYO",
1293                         "EPVC_ELGA",
1294                         "EPVC_ELNO",
1295                         "EPFD_ELGA",
1296                         "EPFD_ELNO",
1297                         "EPFP_ELGA",
1298                         "EPFP_ELNO",
1299                         "EPME_ELGA_DEPL",
1300                         "EPME_ELNO_DEPL",
1301                         "EPMG_ELGA_DEPL",
1302                         "EPMG_ELNO_DEPL",
1303                         "EPMG_NOEU_DEPL",
1304                         "EPOT_ELEM_DEPL",
1305                         "EPSA_ELNO",
1306                         "EPSA_NOEU",
1307                         "EPSG_ELGA_DEPL",
1308                         "EPSG_ELNO_DEPL",
1309                         "EPSG_NOEU_DEPL",
1310                         "EPSI_ELGA_DEPL",
1311                         "EPSI_ELNO_DEPL",
1312                         "EPSI_ELNO_TUYO",
1313                         "EPSI_NOEU_DEPL",
1314                         "EPSP_ELGA",
1315                         "EPSP_ELNO",
1316                         "EPSP_ELNO_ZAC",
1317                         "EPSP_NOEU",
1318                         "EPSP_NOEU_ZAC",
1319                         "EQUI_ELGA_EPME",
1320                         "EQUI_ELGA_EPSI",
1321                         "EQUI_ELGA_SIGM",
1322                         "EQUI_ELNO_EPME",
1323                         "EQUI_ELNO_EPSI",
1324                         "EQUI_ELNO_SIGM",
1325                         "EQUI_NOEU_EPME",
1326                         "EQUI_NOEU_EPSI",
1327                         "EQUI_NOEU_SIGM",
1328                         "ERRE_ELEM_SIGM",
1329                         "ERRE_ELEM_TEMP",
1330                         "ERRE_ELNO_ELEM",
1331                         "ERRE_NOEU_ELEM",
1332                         "ERZ1_ELEM_SIGM",
1333                         "ERZ2_ELEM_SIGM",
1334                         "QIRE_ELEM_SIGM",
1335                         "QIRE_ELNO_ELEM",
1336                         "QIZ1_ELEM_SIGM",
1337                         "QIZ2_ELEM_SIGM",
1338                         "SING_ELEM",
1339                         "SING_ELNO_ELEM",
1340                         "ETOT_ELEM",
1341                         "ETOT_ELGA",
1342                         "ETOT_ELNO_ELGA",
1343                         "EXTR_ELGA_VARI",
1344                         "EXTR_ELNO_VARI",
1345                         "EXTR_NOEU_VARI",
1346                         "FLUX_ELGA_TEMP",
1347                         "FLUX_ELNO_TEMP",
1348                         "FLUX_NOEU_TEMP",
1349                         "FORC_NODA",
1350                         "FSUR_2D",
1351                         "FSUR_3D",
1352                         "FVOL_2D",
1353                         "FVOL_3D",
1354                         "GRAD_NOEU_THETA",
1355                         "HYDR_ELNO_ELGA",
1356                         "HYDR_NOEU_ELGA",
1357                         "INDI_LOCA_ELGA",
1358                         "INTE_ELNO_ACTI",
1359                         "INTE_ELNO_REAC",
1360                         "INTE_NOEU_ACTI",
1361                         "INTE_NOEU_REAC",
1362                         "IRRA",
1363                         "LANL_ELGA",
1364                         "META_ELGA_TEMP",
1365                         "META_ELNO_TEMP",
1366                         "META_NOEU_TEMP",
1367                         "MODE_FLAMB",
1368                         "PMPB_ELGA_SIEF",
1369                         "PMPB_ELNO_SIEF",
1370                         "PMPB_NOEU_SIEF",
1371                         "PRES",
1372                         "PRES_DBEL_DEPL",
1373                         "PRES_ELNO_DBEL",
1374                         "PRES_ELNO_IMAG",
1375                         "PRES_ELNO_REEL",
1376                         "PRES_NOEU_DBEL",
1377                         "PRES_NOEU_IMAG",
1378                         "PRES_NOEU_REEL",
1379                         "RADI_ELGA_SIGM",
1380                         "RADI_ELNO_SIGM",
1381                         "RADI_NOEU_SIGM",
1382                         "REAC_NODA",
1383                         "SIEF_ELGA",
1384                         "SIEF_ELGA_DEPL",
1385                         "SIEF_ELNO",
1386                         "SIEF_ELNO_ELGA",
1387                         "SIEF_NOEU",
1388                         "SIEF_NOEU_ELGA",
1389                         "SIEQ_ELNO_TUYO",
1390                         "SIGM_ELNO_CART",
1391                         "SIGM_ELNO_COQU",
1392                         "SIGM_ELNO_DEPL",
1393                         "SIGM_ELNO_SIEF",
1394                         "SIGM_ELNO_TUYO",
1395                         "SIGM_ELNO_ZAC",
1396                         "SIGM_NOEU_CART",
1397                         "SIGM_NOEU_COQU",
1398                         "SIGM_NOEU_DEPL",
1399                         "SIGM_NOEU_SIEF",
1400                         "SIGM_NOEU_ZAC",
1401                         "SIGM_NOZ1_ELGA",
1402                         "SIGM_NOZ2_ELGA",
1403                         "SIPO_ELNO_DEPL",
1404                         "SIPO_ELNO_SIEF",
1405                         "SIPO_NOEU_DEPL",
1406                         "SIPO_NOEU_SIEF",
1407                         "SIRE_ELNO_DEPL",
1408                         "SIRE_NOEU_DEPL",
1409                         "SOUR_ELGA_ELEC",
1410                         "TEMP",
1411                         "THETA",
1412                         "VALE_CONT",
1413                         "VALE_NCOU_MAXI",
1414                         "VARI_ELGA",
1415                         "VARI_ELGA_ZAC",
1416                         "VARI_ELNO",
1417                         "VARI_ELNO_COQU",
1418                         "VARI_ELNO_ELGA",
1419                         "VARI_ELNO_TUYO",
1420                         "VARI_NOEU",
1421                         "VARI_NOEU_ELGA",
1422                         "VITE",
1423                         "VITE_ABSOLU",
1424                         "VITE_VENT",
1425                         )
1426 #& MODIF COMMUN  DATE 19/05/2008   AUTEUR DELMAS J.DELMAS 
1427 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1428 # ======================================================================
1429 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
1430 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1431 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1432 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1433 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1434 #                                                                       
1435 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1436 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1437 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1438 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1439 #                                                                       
1440 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1441 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1442 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1443 # ======================================================================
1444 # ce fichier contient la liste des  noms des grandeurs de CODE_ASTER
1445 def C_NOM_GRANDEUR() : return  ( #COMMUN# 
1446 "ABSC_R",
1447 "ADRSJEVE",
1448 "ADRSJEVN",
1449 "CAARPO",
1450 "CACABL",
1451 "CACOQU",
1452 "CADISA",
1453 "CADISK",
1454 "CADISM",
1455 "CAFI_R",
1456 "CAGEBA",
1457 "CAGEPO",
1458 "CAGNBA",
1459 "CAGNPO",
1460 "CAMASS",
1461 "CAORIE",
1462 "CAPOUF",
1463 "CARCRI",
1464 "CASECT",
1465 "CHLI_R",
1466 "CODE_I",
1467 "COEH_F",
1468 "COEH_R",
1469 "COMPOR",
1470 "CORR_R",
1471 "CRRU_R",
1472 "DBEL_R",
1473 "DCEL_I",
1474 "DDLI_C",
1475 "DDLI_F",
1476 "DDLI_R",
1477 "DDLM_C",
1478 "DDLM_R",
1479 "DEPL_C",
1480 "DEPL_F",
1481 "DEPL_R",
1482 "DOMMAG",
1483 "DURT_R",
1484 "ENER_R",
1485 "EPSI_F",
1486 "EPSI_R",
1487 "ERRE_R",
1488 "FACY_R",
1489 "FELECR",
1490 "FISS_R",
1491 "FLAPLA",
1492 "FLUN_F",
1493 "FLUN_R",
1494 "FLUX_F",
1495 "FLUX_R",
1496 "FORC_C",
1497 "FORC_F",
1498 "FORC_R",
1499 "FREQ_R",
1500 "FTHM_F",
1501 "FTHM_R",
1502 "G",
1503 "GEOM_R",
1504 "G_DEPL_R",
1505 "HARMON",
1506 "HYDR_R",
1507 "IMPE_C",
1508 "IMPE_F",
1509 "IMPE_R",
1510 "IND_LOCA",
1511 "INFC_R",
1512 "INST_R",
1513 "INTE_R",
1514 "INTLOC",
1515 "IRRA_R",
1516 "ITECREL",
1517 "ITEDEC",
1518 "J",
1519 "LISTMA",
1520 "MACOMP",
1521 "MASS_R",
1522 "MATE_F",
1523 "NBSP_I",
1524 "NEUT_F",
1525 "NEUT_I",
1526 "NEUT_K16",
1527 "NEUT_K24",
1528 "NEUT_K8",
1529 "NEUT_R",
1530 "NUMC_I",
1531 "NUMMOD",
1532 "ONDE_F",
1533 "ONDE_R",
1534 "PESA_R",
1535 "PILO_K",
1536 "PILO_R",
1537 "POSI",
1538 "PREC",
1539 "PRES_C",
1540 "PRES_F",
1541 "PRES_R",
1542 "RAYO_F",
1543 "RAYO_R",
1544 "RCCM_K",
1545 "RCCM_R",
1546 "RESCREL",
1547 "RICE_TRA",
1548 "ROTA_R",
1549 "SECTION",
1550 "SIEF_C",
1551 "SIEF_R",
1552 "SIZZ_R",
1553 "SOUR_F",
1554 "SOUR_R",
1555 "SPMA_R",
1556 "STAOUDYN",
1557 "TEMP_C",
1558 "TEMP_F",
1559 "TEMP_R",
1560 "THETA",
1561 "VALO_R",
1562 "VANL_R",
1563 "VAR2_R",
1564 "VARI_R",
1565 "VENTCX_F",
1566 "VNOR_C",
1567 "VNOR_F",
1568 "VOISIN",
1569 "WEIBULL",
1570 "XCONTAC",
1571                                  )
1572 #& MODIF COMMUN  DATE 29/03/2007   AUTEUR GRANET S.GRANET 
1573 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1574 # ======================================================================
1575 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
1576 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1577 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1578 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1579 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1580 #                                                                       
1581 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1582 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1583 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1584 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1585 #                                                                       
1586 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1587 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1588 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1589 # ======================================================================
1590 # ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
1591 def C_PARA_FONCTION() : return  ( #COMMUN#
1592                    "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
1593                    "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
1594                    "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
1595                    "PGAZ","PCAP","PLIQ","PVAP","PAD","VITE","ENDO",
1596                    "NORM","EPAIS","NEUT1","NEUT2",)
1597 #& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
1598 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1599 # ======================================================================
1600 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
1601 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
1602 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
1603 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
1604 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
1605 #                                                                       
1606 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
1607 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
1608 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
1609 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
1610 #                                                                       
1611 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
1612 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
1613 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
1614 # ======================================================================
1615 #
1616 # ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
1617 def C_TYPE_CHAM_INTO() : #COMMUN#
1618    l=[]
1619    for gd in C_NOM_GRANDEUR() :
1620         for typ in ("ELEM","ELNO","ELGA","CART","NOEU") :
1621              l.append(typ+"_"+gd)
1622    return tuple(l)
1623
1624 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
1625 #            CONFIGURATION MANAGEMENT OF EDF VERSION
1626 # ======================================================================
1627 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
1628 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
1629 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
1630 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
1631 # (AT YOUR OPTION) ANY LATER VERSION.
1632 #
1633 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
1634 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
1635 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
1636 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
1637 #
1638 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
1639 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
1640 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
1641 # ======================================================================
1642 # RESPONSABLE FLEJOU J-L.FLEJOU
1643 AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
1644                     fr="Affectation de caractéristiques à des éléments de structure",
1645                     reentrant='n',
1646             UIinfo={"groupes":("Modélisation",)},
1647          regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF',
1648                              'GRILLE','MULTIFIBRE','RIGI_PARASOL'),
1649                              PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE'),),
1650          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
1651          INFO            =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
1652          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ),
1653
1654 #============================================================================
1655          POUTRE          =FACT(statut='f',max='**',
1656            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
1657            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1658            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1659            SECTION         =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
1660            PREC_AIRE       =SIMP(statut='f',typ='R',defaut=0.01),
1661            PREC_INERTIE    =SIMP(statut='f',typ='R',defaut=0.1),
1662            b_generale      =BLOC( condition = "SECTION=='GENERALE'",
1663              VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"),
1664              b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
1665                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15,
1666                                  fr="A,IY,IZ,JX sont des paramètres obligatoires",
1667                                  into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
1668                                        "JG","IYR2","IZR2","AI") ),
1669                VALE            =SIMP(statut='o',typ='R',min=4 ,max=15),
1670              ),
1671              b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
1672                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30,
1673                                  fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires",
1674                                  into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
1675                                        "RZ1","RT1","JG1","IYR21","IZR21","AI1",
1676                                        "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
1677                                        "RZ2","RT2","JG2","IYR22","IZR22","AI2") ),
1678                VALE            =SIMP(statut='o',typ='R',min=8 ,max=30),
1679              ),
1680            ),
1681            b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
1682              VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"),
1683              b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
1684                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4,
1685                                  into=("H","EP", "HY","HZ","EPY","EPZ") ),
1686                VALE            =SIMP(statut='o',typ='R',min=1 ,max=4),
1687              ),
1688              b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
1689                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8,
1690                                      into=("H1","HZ1","HY1","EP1","EPY1","EPZ1",
1691                                            "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
1692                VALE            =SIMP(statut='o',typ='R',min=2 ,max=8),
1693              ),
1694              b_affine =BLOC( condition = "VARI_SECT=='AFFINE'",
1695                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6,
1696                                      into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ),
1697                VALE            =SIMP(statut='o',typ='R',min=3 ,max=6),
1698              ),
1699            ),
1700            b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
1701              VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"),
1702              b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
1703                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2,
1704                                  fr="R est un paramètre obligatoire",
1705                                      into=("R","EP") ),
1706                VALE            =SIMP(statut='o',typ='R',min=1 ,max=2),
1707              ),
1708              b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
1709                CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4,
1710                                  fr="R1, R2 sont des paramètres obligatoires",
1711                                      into=("R1","R2","EP1","EP2") ),
1712                VALE            =SIMP(statut='o',typ='R',min=2 ,max=4),
1713              ),
1714              MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
1715              FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1716              TUYAU_NSEC      =SIMP(statut='f',typ='I',val_max=32,defaut=16),
1717              TUYAU_NCOU      =SIMP(statut='f',typ='I',val_max=10,defaut=3),
1718            ),
1719          ),
1720
1721 #============================================================================
1722          BARRE           =FACT(statut='f',max='**',
1723            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
1724            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1725            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1726            SECTION         =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
1727            b_generale      =BLOC( condition = "SECTION=='GENERALE'",
1728              CARA            =SIMP(statut='o',typ='TXM',into=("A",) ),
1729              VALE            =SIMP(statut='o',typ='R',min=1,max=1 ),
1730            ),
1731            b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
1732              CARA            =SIMP(statut='o',typ='TXM',into=("H","EP",
1733                                                               "HZ","HY","EPY","EPZ"),
1734                                                         validators=NoRepeat(),min=1,max=4 ),
1735              VALE            =SIMP(statut='o',typ='R',min=1,max=4 ),
1736            ),
1737            b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
1738              CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ),
1739              VALE            =SIMP(statut='o',typ='R',min=1,max=2 ),
1740            ),
1741            FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1742          ),
1743
1744 #============================================================================
1745          COQUE           =FACT(statut='f',max='**',
1746            regles=(UN_PARMI('MAILLE','GROUP_MA' ),
1747                    PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),
1748                    AU_MOINS_UN('EPAIS','EPAIS_F',),PRESENT_ABSENT('EPAIS','EPAIS_F',),
1749                    EXCLUS('ANGL_REP','VECTEUR'),),
1750            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1751            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1752            EPAIS           =SIMP(statut='f',typ='R' ),
1753            EPAIS_F         =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),
1754            ANGL_REP        =SIMP(statut='f',typ='R',min=2,max=2),
1755            VECTEUR         =SIMP(statut='f',typ='R',min=3,max=3),
1756            A_CIS           =SIMP(statut='c',typ='R',defaut= 0.8333333E0),
1757            COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
1758            COQUE_NCOU      =SIMP(statut='f',typ='I',defaut= 1 ),
1759            EXCENTREMENT    =SIMP(statut='f',typ='R' ),
1760            INER_ROTA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
1761            MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
1762          ),
1763
1764 #============================================================================
1765          CABLE           =FACT(statut='f',max='**',
1766            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
1767            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1768            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1769            N_INIT          =SIMP(statut='f',typ='R',defaut= 5000. ),
1770            SECTION         =SIMP(statut='f',typ='R' ),
1771            FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
1772          ),
1773
1774 #============================================================================
1775          DISCRET         =FACT(statut='f',max='**',
1776            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
1777            AMOR_HYST       =SIMP(statut='f',typ='R' ),
1778            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
1779           fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
1780                                  into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
1781                                        "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
1782                                        "M_T_D_N","M_TR_D_N","M_T_N",
1783                                        "M_T_L",  "M_TR_N",  "M_TR_L",
1784                                        "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
1785                                        "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
1786
1787 # affection des caractéristiques de RIGIDITE/AMORTISSEMENT
1788               b_K_T_D_N  =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
1789                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1790                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1791                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1792                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1793                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1794                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1795                                VALE     =SIMP(statut='f',typ='R',min=3 ,max=3 ),
1796                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1797               b_K_T_D_L  =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')",
1798                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1799                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1800                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1801                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1802                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
1803                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1804               b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')",
1805                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1806                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1807                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1808                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1809                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1810                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1811                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
1812                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1813               b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')",
1814                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1815                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1816                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1817                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1818                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
1819                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1820               b_K_T_N    =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')",
1821                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1822                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1823                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1824                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1825                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1826                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1827                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
1828                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1829               b_K_T_L    =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')",
1830                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1831                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1832                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1833                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1834                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
1835                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1836               b_K_TR_N   =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')",
1837                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1838                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1839                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1840                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1841                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1842                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1843                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
1844                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1845               b_K_TR_L   =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')",
1846                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1847                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1848                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1849                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1850                                VALE =SIMP(statut='f',typ='R',min=78,max=78),
1851                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
1852
1853 # affection des caractéristiques de MASSE
1854               b_M_T_D_N  =BLOC(condition = "CARA=='M_T_D_N'",
1855           fr="NOEUD: 1 valeur de masse",
1856                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1857                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1858                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1859                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1860                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1861                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1862                                VALE =SIMP(statut='f',typ='R',min=1 ,max=1 ),
1863                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),),
1864               b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'",
1865           fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité",
1866                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1867                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1868                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1869                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1870                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1871                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1872                                VALE =SIMP(statut='f',typ='R',min=10,max=10),
1873                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
1874               b_M_T_N    =BLOC(condition = "CARA=='M_T_N'",
1875           fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)",
1876                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1877                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1878                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1879                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1880                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1881                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1882                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
1883                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1884               b_M_T_L    =BLOC(condition = "CARA=='M_T_L'",
1885           fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)",
1886                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1887                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1888                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1889                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1890                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
1891                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1892               b_M_TR_N   =BLOC(condition = "CARA=='M_TR_N'",
1893           fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)",
1894                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1895                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1896                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1897                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1898                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1899                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1900                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
1901                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1902               b_M_TR_L   =BLOC(condition = "CARA=='M_TR_L'",
1903           fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)",
1904                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1905                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1906                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1907                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1908                                VALE =SIMP(statut='f',typ='R',min=78,max=78),
1909                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
1910          ),
1911
1912 #============================================================================
1913          DISCRET_2D      =FACT(statut='f',max='**',
1914            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
1915            AMOR_HYST       =SIMP(statut='f',typ='R' ),
1916            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
1917           fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
1918                                  into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
1919                                        "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
1920                                        "M_T_D_N","M_T_N",  "M_TR_D_N",
1921                                        "M_T_L",  "M_TR_N",  "M_TR_L",
1922                                        "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
1923                                        "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
1924
1925 # affection des caractéristiques de RIGIDITE/AMORTISSEMENT
1926               b_K_T_D_N  =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
1927                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1928                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1929                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1930                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1931                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1932                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1933                                VALE =SIMP(statut='f',typ='R',min=2 ,max=2 ),
1934                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),),
1935               b_K_T_D_L  =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')",
1936                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1937                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1938                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1939                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1940                                VALE =SIMP(statut='f',typ='R',min=2 ,max=2 ),
1941                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),),
1942               b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')",
1943                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1944                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1945                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1946                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1947                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1948                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1949                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
1950                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1951               b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')",
1952                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1953                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1954                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1955                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1956                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
1957                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1958               b_K_T_N    =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')",
1959                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1960                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1961                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1962                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1963                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1964                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1965                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
1966                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
1967               b_K_T_L    =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')",
1968                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1969                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1970                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1971                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1972                                VALE =SIMP(statut='f',typ='R',min=10,max=10),
1973                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
1974               b_K_TR_N   =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')",
1975                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1976                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1977                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1978                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1979                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1980                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
1981                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6),
1982                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
1983               b_K_TR_L   =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')",
1984                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
1985                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1986                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1987                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1988                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
1989                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
1990
1991 # affection des caractéristiques de MASSE
1992               b_M_T_D_N  =BLOC(condition = "CARA=='M_T_D_N'",
1993           fr="NOEUD: 1 valeur de masse",
1994                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
1995                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
1996                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
1997                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
1998                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
1999                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2000                                VALE =SIMP(statut='f',typ='R',min=1 ,max=1 ),
2001                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),),
2002               b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'",
2003           fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ",
2004                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2005                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2006                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2007                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2008                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2009                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2010                                VALE =SIMP(statut='f',typ='R',min=4 ,max=4 ),
2011                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),),
2012               b_M_T_N    =BLOC(condition = "CARA=='M_T_N'",
2013           fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)",
2014                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2015                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2016                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2017                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2018                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2019                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2020                                VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ),
2021                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),),
2022               b_M_T_L    =BLOC(condition = "CARA=='M_T_L'",
2023           fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)",
2024                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2025                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2026                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2027                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2028                                VALE =SIMP(statut='f',typ='R',min=10,max=10),
2029                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),),
2030               b_M_TR_N   =BLOC(condition = "CARA=='M_TR_N'",
2031           fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)",
2032                                regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
2033                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2034                                NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2035                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2036                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2037                                GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2038                                VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ),
2039                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),),
2040               b_M_TR_L   =BLOC(condition = "CARA=='M_TR_L'",
2041           fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)",
2042                                regles=(UN_PARMI('MAILLE','GROUP_MA'),
2043                                        AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
2044                                MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2045                                GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2046                                VALE =SIMP(statut='f',typ='R',min=21,max=21),
2047                                VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
2048          ),
2049
2050 #============================================================================
2051          ORIENTATION     =FACT(statut='f',max='**',
2052            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
2053            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2054            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2055            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2056            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2057            CARA            =SIMP(statut='o',typ='TXM',
2058                                  into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
2059            VALE            =SIMP(statut='o',typ='R',max='**'),
2060            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
2061            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2062          ),
2063
2064 #============================================================================
2065          DEFI_ARC        =FACT(statut='f',max='**',
2066            regles=(UN_PARMI('MAILLE','GROUP_MA'),
2067                    UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
2068                             'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
2069                    PRESENT_PRESENT('ORIE_ARC','RAYON'),
2070                    EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
2071                    EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
2072                    EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
2073                    EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
2074                    PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
2075                    PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
2076            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2077            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2078            ORIE_ARC        =SIMP(statut='f',typ='R'),
2079            CENTRE          =SIMP(statut='f',typ='R',max='**'),
2080            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
2081            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
2082            POIN_TANG       =SIMP(statut='f',typ='R',max='**'),
2083            NOEUD_POIN_TANG =SIMP(statut='f',typ=no),
2084            GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno),
2085            RAYON           =SIMP(statut='f',typ='R'),
2086            COEF_FLEX       =SIMP(statut='f',typ='R'),
2087            INDI_SIGM       =SIMP(statut='f',typ='R'),
2088            COEF_FLEX_XY    =SIMP(statut='f',typ='R'),
2089            INDI_SIGM_XY    =SIMP(statut='f',typ='R'),
2090            COEF_FLEX_XZ    =SIMP(statut='f',typ='R'),
2091            INDI_SIGM_XZ    =SIMP(statut='f',typ='R'),
2092            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
2093            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
2094          ),
2095
2096 #============================================================================
2097          MASSIF          =FACT(statut='f',max='**',
2098            regles=(UN_PARMI('MAILLE','GROUP_MA'),
2099                    UN_PARMI('ANGL_REP','ANGL_AXE','ANGL_EULER'),
2100                    EXCLUS('ANGL_REP','ANGL_EULER'),
2101                    EXCLUS('ANGL_REP','ANGL_AXE'),
2102                    EXCLUS('ANGL_REP','ORIG_AXE'),
2103                    PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
2104            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2105            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2106            ANGL_REP        =SIMP(statut='f',typ='R',max=3),
2107            ANGL_EULER      =SIMP(statut='f',typ='R',min=3,max=3),
2108            ANGL_AXE        =SIMP(statut='f',typ='R',max=2),
2109            ORIG_AXE        =SIMP(statut='f',typ='R',max=3),
2110          ),
2111
2112
2113 #============================================================================
2114          POUTRE_FLUI     =FACT(statut='f',max='**',
2115            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
2116            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2117            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2118            B_T             =SIMP(statut='o',typ='R'),
2119            B_N             =SIMP(statut='o',typ='R'),
2120            B_TN            =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
2121            A_FLUI          =SIMP(statut='o',typ='R'),
2122            A_CELL          =SIMP(statut='o',typ='R'),
2123            COEF_ECHELLE    =SIMP(statut='o',typ='R'),
2124          ),
2125
2126 #============================================================================
2127          GRILLE          =FACT(statut='f',max='**',
2128            regles=(UN_PARMI('MAILLE','GROUP_MA'),
2129                    EXCLUS('ANGL_REP','ORIG_AXE'),
2130                    ENSEMBLE('ORIG_AXE','AXE')),
2131            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2132            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2133            SECTION         =SIMP(statut='o',typ='R'),
2134            ANGL_REP        =SIMP(statut='f',typ='R',max=2),
2135            EXCENTREMENT    =SIMP(statut='f',typ='R'),
2136            ORIG_AXE        =SIMP(statut='f',typ='R',max='**'),
2137            AXE             =SIMP(statut='f',typ='R',max='**'),
2138            COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
2139            GRILLE_NCOU     =SIMP(statut='f',typ='I',defaut= 1,),
2140          ),
2141
2142 #============================================================================
2143          RIGI_PARASOL    =FACT(statut='f',max='**',
2144             regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
2145                     UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
2146                     EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),),
2147             GROUP_MA        =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**',
2148                fr="Surface servant à répartir les caractéristiques des discrets"),
2149             GROUP_MA_POI1   =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1,
2150                fr="Mailles de type point correspondant aux discrets"),
2151             GROUP_MA_SEG2   =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1,
2152                fr="Mailles de type seg2 correspondant aux discrets"),
2153             FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2154             COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
2155             REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
2156             CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,
2157                             into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
2158                                   "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L") ),
2159             VALE            =SIMP(statut='o',typ='R',max='**'),
2160             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
2161             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
2162             COOR_CENTRE     =SIMP(statut='f',typ='R',min=2,max=3),
2163          ),
2164
2165 #============================================================================
2166          RIGI_MISS_3D    =FACT(statut='f',max='**',
2167            GROUP_MA_POI1   =SIMP(statut='o',typ=ma,max=1),
2168            GROUP_MA_SEG2   =SIMP(statut='f',typ=ma,max=1),
2169            FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
2170            UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
2171          ),
2172
2173 #============================================================================
2174          GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster,
2175                    fr="Donner le nom de la SD regroupant tous les groupes de fibres (issue de DEFI_GEOM_FIBRE)"),
2176          MULTIFIBRE     =FACT(statut='f',max='**',
2177               regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
2178
2179               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2180               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2181
2182               GROUP_FIBRE     =SIMP(statut='o',typ='TXM',max='**'),
2183
2184          ),
2185
2186
2187
2188 ) ;
2189 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
2190 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2191 # ======================================================================
2192 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2193 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2194 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2195 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
2196 # (AT YOUR OPTION) ANY LATER VERSION.                                 
2197 #
2198 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
2199 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
2200 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
2201 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
2202 #
2203 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
2204 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
2205 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
2206 # ======================================================================
2207 # RESPONSABLE None
2208 AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
2209                     fr="Affectation de charges et conditions aux limites acoustiques constantes",
2210                     reentrant='n',
2211             UIinfo={"groupes":("Modélisation",)},
2212          regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
2213          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2214          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2215          PRES_IMPO       =FACT(statut='f',max='**',
2216            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2217            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2218            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2219            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2220            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2221            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2222            PRES            =SIMP(statut='o',typ='C' ),
2223          ),
2224          VITE_FACE       =FACT(statut='f',max='**',
2225              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2226                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2227            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2228            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2229            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2230            VNOR            =SIMP(statut='o',typ='C' ),
2231          ),
2232          IMPE_FACE       =FACT(statut='f',max='**',
2233              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2234                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
2235            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2236            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2237            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2238            IMPE            =SIMP(statut='o',typ='C' ),
2239          ),
2240          LIAISON_UNIF    =FACT(statut='f',max='**',
2241            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),),
2242            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2243            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2244            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2245            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2246            DDL             =SIMP(statut='o',typ='TXM',max='**'),
2247          ),
2248 )  ;
2249 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
2250 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2251 # ======================================================================
2252 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2253 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2254 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2255 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2256 # (AT YOUR OPTION) ANY LATER VERSION.
2257 #
2258 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2259 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2260 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2261 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2262 #
2263 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2264 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2265 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2266 # ======================================================================
2267 # RESPONSABLE PELLET J.PELLET
2268 def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,EVOL_IMPO,**args):
2269   if MECA_IMPO != None  : return char_cine_meca
2270   if THER_IMPO != None  : return char_cine_ther
2271   if ACOU_IMPO != None  : return char_cine_acou
2272   if EVOL_IMPO != None  :
2273       if AsType(EVOL_IMPO) in (evol_elas,evol_noli) :
2274           return char_cine_meca
2275       elif AsType(EVOL_IMPO) in (evol_ther,) :
2276           return char_cine_ther
2277       else :
2278           raise AsException("Extension à faire ...")
2279
2280   raise AsException("type de concept resultat non prevu")
2281
2282
2283 AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
2284                     ,fr="Affectation de conditions aux limites cinématiques constantes pour un traitement sans dualisation",
2285                      reentrant='n',
2286             UIinfo={"groupes":("Modélisation",)},
2287          regles=(UN_PARMI('MECA_IMPO','THER_IMPO','ACOU_IMPO','EVOL_IMPO'),
2288                  ),
2289          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2290          EVOL_IMPO  =SIMP(statut='f',typ=(evol_noli,evol_elas,evol_ther),fr="Pour imposer tous les ddls d'un evol_xxx"),
2291          MECA_IMPO       =FACT(statut='f',max='**',
2292            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2293                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2294                                'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
2295                                'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
2296                                'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
2297                                'VO6','WI6','WO6','WO','WI1','WO1','GONF','DCX','DCY','DCZ',
2298                                'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
2299                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','V11','V12','V13','V21','V22',
2300                                'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21',
2301                                'PRES22','PRES23','PRES31','PRES32','PRES33'),),
2302              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2303              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2304              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2305              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2306              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2307              DX              =SIMP(statut='f',typ='R' ),
2308              DY              =SIMP(statut='f',typ='R' ),
2309              DZ              =SIMP(statut='f',typ='R' ),
2310              DRX             =SIMP(statut='f',typ='R' ),
2311              DRY             =SIMP(statut='f',typ='R' ),
2312              DRZ             =SIMP(statut='f',typ='R' ),
2313              GRX             =SIMP(statut='f',typ='R' ),
2314              PRES            =SIMP(statut='f',typ='R' ),
2315              PHI             =SIMP(statut='f',typ='R' ),
2316              TEMP            =SIMP(statut='f',typ='R' ),
2317              PRE1            =SIMP(statut='f',typ='R' ),
2318              PRE2            =SIMP(statut='f',typ='R' ),
2319              UI2             =SIMP(statut='f',typ='R' ),
2320              UI3             =SIMP(statut='f',typ='R' ),
2321              UI4             =SIMP(statut='f',typ='R' ),
2322              UI5             =SIMP(statut='f',typ='R' ),
2323              UI6             =SIMP(statut='f',typ='R' ),
2324              UO2             =SIMP(statut='f',typ='R' ),
2325              UO3             =SIMP(statut='f',typ='R' ),
2326              UO4             =SIMP(statut='f',typ='R' ),
2327              UO5             =SIMP(statut='f',typ='R' ),
2328              UO6             =SIMP(statut='f',typ='R' ),
2329              VI2             =SIMP(statut='f',typ='R' ),
2330              VI3             =SIMP(statut='f',typ='R' ),
2331              VI4             =SIMP(statut='f',typ='R' ),
2332              VI5             =SIMP(statut='f',typ='R' ),
2333              VI6             =SIMP(statut='f',typ='R' ),
2334              VO2             =SIMP(statut='f',typ='R' ),
2335              VO3             =SIMP(statut='f',typ='R' ),
2336              VO4             =SIMP(statut='f',typ='R' ),
2337              VO5             =SIMP(statut='f',typ='R' ),
2338              VO6             =SIMP(statut='f',typ='R' ),
2339              WI2             =SIMP(statut='f',typ='R' ),
2340              WI3             =SIMP(statut='f',typ='R' ),
2341              WI4             =SIMP(statut='f',typ='R' ),
2342              WI5             =SIMP(statut='f',typ='R' ),
2343              WI6             =SIMP(statut='f',typ='R' ),
2344              WO2             =SIMP(statut='f',typ='R' ),
2345              WO3             =SIMP(statut='f',typ='R' ),
2346              WO4             =SIMP(statut='f',typ='R' ),
2347              WO5             =SIMP(statut='f',typ='R' ),
2348              WO6             =SIMP(statut='f',typ='R' ),
2349              WO              =SIMP(statut='f',typ='R' ),
2350              WI1             =SIMP(statut='f',typ='R' ),
2351              WO1             =SIMP(statut='f',typ='R' ),
2352              GONF            =SIMP(statut='f',typ='R' ),
2353              DCX             =SIMP(statut='f',typ='R' ),
2354              DCY             =SIMP(statut='f',typ='R' ),
2355              DCZ             =SIMP(statut='f',typ='R' ),
2356              H1X             =SIMP(statut='f',typ='R' ),
2357              H1Y             =SIMP(statut='f',typ='R' ),
2358              H1Z             =SIMP(statut='f',typ='R' ),
2359              E1X             =SIMP(statut='f',typ='R' ),
2360              E1Y             =SIMP(statut='f',typ='R' ),
2361              E1Z             =SIMP(statut='f',typ='R' ),
2362              E2X             =SIMP(statut='f',typ='R' ),
2363              E2Y             =SIMP(statut='f',typ='R' ),
2364              E2Z             =SIMP(statut='f',typ='R' ),
2365              E3X             =SIMP(statut='f',typ='R' ),
2366              E3Y             =SIMP(statut='f',typ='R' ),
2367              E3Z             =SIMP(statut='f',typ='R' ),
2368              E4X             =SIMP(statut='f',typ='R' ),
2369              E4Y             =SIMP(statut='f',typ='R' ),
2370              E4Z             =SIMP(statut='f',typ='R' ),
2371              V11             =SIMP(statut='f',typ='R' ),
2372              V12             =SIMP(statut='f',typ='R' ),
2373              V13             =SIMP(statut='f',typ='R' ),
2374              V21             =SIMP(statut='f',typ='R' ),
2375              V22             =SIMP(statut='f',typ='R' ),
2376              V23             =SIMP(statut='f',typ='R' ),
2377              V31             =SIMP(statut='f',typ='R' ),
2378              V32             =SIMP(statut='f',typ='R' ),
2379              V33             =SIMP(statut='f',typ='R' ),
2380              PRES11          =SIMP(statut='f',typ='R' ),
2381              PRES12          =SIMP(statut='f',typ='R' ),
2382              PRES13          =SIMP(statut='f',typ='R' ),
2383              PRES21          =SIMP(statut='f',typ='R' ),
2384              PRES22          =SIMP(statut='f',typ='R' ),
2385              PRES23          =SIMP(statut='f',typ='R' ),
2386              PRES31          =SIMP(statut='f',typ='R' ),
2387              PRES32          =SIMP(statut='f',typ='R' ),
2388              PRES33          =SIMP(statut='f',typ='R' ),
2389          ),
2390          THER_IMPO       =FACT(statut='f',max='**',
2391            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2392                    AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
2393            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2394            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2395            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2396            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2397            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2398            TEMP_SUP        =SIMP(statut='f',typ='R' ),
2399            TEMP            =SIMP(statut='f',typ='R' ),
2400            TEMP_INF        =SIMP(statut='f',typ='R' ),
2401          ),
2402          ACOU_IMPO       =FACT(statut='f',max='**',
2403            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2404            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2405            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2406            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2407            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2408            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2409            PRES            =SIMP(statut='o',typ='C' ),
2410          ),
2411          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2412 )  ;
2413 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
2414 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2415 # ======================================================================
2416 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2417 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2418 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2419 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2420 # (AT YOUR OPTION) ANY LATER VERSION.
2421 #
2422 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2423 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2424 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2425 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2426 #
2427 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2428 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2429 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2430 # ======================================================================
2431 # RESPONSABLE PELLET J.PELLET
2432 def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
2433   if MECA_IMPO != None  : return char_cine_meca
2434   if THER_IMPO != None  : return char_cine_ther
2435   raise AsException("type de concept resultat non prevu")
2436
2437 AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 101,sd_prod=affe_char_cine_f_prod,
2438                       fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres"
2439                         +" pour un traitement sans dualisation",
2440                      reentrant='n',
2441             UIinfo={"groupes":("Modélisation",)},
2442          regles=(UN_PARMI('MECA_IMPO','THER_IMPO')),
2443          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
2444          MECA_IMPO       =FACT(statut='f',max='**',
2445            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2446                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
2447            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2448            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2449            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2450            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2451            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2452            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2453            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2454            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2455            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2456            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2457            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2458            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2459            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2460            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2461            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2462          ),
2463          THER_IMPO       =FACT(statut='f',max='**',
2464            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2465                    AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
2466            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2467            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2468            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2469            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2470            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2471            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2472            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2473            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
2474          ),
2475          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
2476 )  ;
2477 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
2478 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2479 # ======================================================================
2480 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
2481 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
2482 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
2483 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
2484 # (AT YOUR OPTION) ANY LATER VERSION.
2485 #
2486 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
2487 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
2488 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
2489 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
2490 #
2491 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
2492 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
2493 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
2494 # ======================================================================
2495 # RESPONSABLE DESROCHES X.DESROCHES
2496 AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
2497                     fr="Affectation de charges et conditions aux limites mécaniques constantes",
2498                      reentrant='n',
2499             UIinfo={"groupes":("Modélisation",)},
2500          regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE',
2501                              'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
2502                              'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE',
2503                              'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',
2504                              'VITE_FACE','RELA_CINE_BP','EPSI_INIT','CONTACT',
2505                              'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP','LIAISON_SOLIDE',
2506                              'LIAISON_ELEM','ONDE_FLUI','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
2507                              'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU',
2508                              'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE',
2509                              'LIAISON_UNILATER'),
2510                          ),
2511          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
2512          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
2513          EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
2514                                typ=evol_char ),
2515
2516          PESANTEUR       =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4),
2517          ROTATION        =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4),
2518          b_rotation      =BLOC ( condition = "ROTATION != None",
2519            CENTRE          =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),),
2520
2521          DDL_IMPO        =FACT(statut='f',max='**',
2522              fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
2523              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
2524                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2525                                  'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
2526                                  'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
2527                                  'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
2528                                  'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
2529                                  'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
2530                                  'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C','V11','V12','V13','V21','V22',
2531                                  'V23','V31','V32','V33','PRES11','PRES12','PRES13','PRES21','PRES22','PRES23',
2532                                  'PRES31','PRES32','PRES33',),),
2533              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2534              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2535              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2536              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2537              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2538              LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
2539              DX              =SIMP(statut='f',typ='R' ),
2540              DY              =SIMP(statut='f',typ='R' ),
2541              DZ              =SIMP(statut='f',typ='R' ),
2542              DRX             =SIMP(statut='f',typ='R' ),
2543              DRY             =SIMP(statut='f',typ='R' ),
2544              DRZ             =SIMP(statut='f',typ='R' ),
2545              GRX             =SIMP(statut='f',typ='R' ),
2546              PRES            =SIMP(statut='f',typ='R' ),
2547              PHI             =SIMP(statut='f',typ='R' ),
2548              TEMP            =SIMP(statut='f',typ='R' ),
2549              PRE1            =SIMP(statut='f',typ='R' ),
2550              PRE2            =SIMP(statut='f',typ='R' ),
2551              UI2             =SIMP(statut='f',typ='R' ),
2552              UI3             =SIMP(statut='f',typ='R' ),
2553              UI4             =SIMP(statut='f',typ='R' ),
2554              UI5             =SIMP(statut='f',typ='R' ),
2555              UI6             =SIMP(statut='f',typ='R' ),
2556              UO2             =SIMP(statut='f',typ='R' ),
2557              UO3             =SIMP(statut='f',typ='R' ),
2558              UO4             =SIMP(statut='f',typ='R' ),
2559              UO5             =SIMP(statut='f',typ='R' ),
2560              UO6             =SIMP(statut='f',typ='R' ),
2561              VI2             =SIMP(statut='f',typ='R' ),
2562              VI3             =SIMP(statut='f',typ='R' ),
2563              VI4             =SIMP(statut='f',typ='R' ),
2564              VI5             =SIMP(statut='f',typ='R' ),
2565              VI6             =SIMP(statut='f',typ='R' ),
2566              VO2             =SIMP(statut='f',typ='R' ),
2567              VO3             =SIMP(statut='f',typ='R' ),
2568              VO4             =SIMP(statut='f',typ='R' ),
2569              VO5             =SIMP(statut='f',typ='R' ),
2570              VO6             =SIMP(statut='f',typ='R' ),
2571              WI2             =SIMP(statut='f',typ='R' ),
2572              WI3             =SIMP(statut='f',typ='R' ),
2573              WI4             =SIMP(statut='f',typ='R' ),
2574              WI5             =SIMP(statut='f',typ='R' ),
2575              WI6             =SIMP(statut='f',typ='R' ),
2576              WO2             =SIMP(statut='f',typ='R' ),
2577              WO3             =SIMP(statut='f',typ='R' ),
2578              WO4             =SIMP(statut='f',typ='R' ),
2579              WO5             =SIMP(statut='f',typ='R' ),
2580              WO6             =SIMP(statut='f',typ='R' ),
2581              WO              =SIMP(statut='f',typ='R' ),
2582              WI1             =SIMP(statut='f',typ='R' ),
2583              WO1             =SIMP(statut='f',typ='R' ),
2584              GONF            =SIMP(statut='f',typ='R' ),
2585              DCX             =SIMP(statut='f',typ='R' ),
2586              DCY             =SIMP(statut='f',typ='R' ),
2587              DCZ             =SIMP(statut='f',typ='R' ),
2588              H1X             =SIMP(statut='f',typ='R' ),
2589              H1Y             =SIMP(statut='f',typ='R' ),
2590              H1Z             =SIMP(statut='f',typ='R' ),
2591              E1X             =SIMP(statut='f',typ='R' ),
2592              E1Y             =SIMP(statut='f',typ='R' ),
2593              E1Z             =SIMP(statut='f',typ='R' ),
2594              E2X             =SIMP(statut='f',typ='R' ),
2595              E2Y             =SIMP(statut='f',typ='R' ),
2596              E2Z             =SIMP(statut='f',typ='R' ),
2597              E3X             =SIMP(statut='f',typ='R' ),
2598              E3Y             =SIMP(statut='f',typ='R' ),
2599              E3Z             =SIMP(statut='f',typ='R' ),
2600              E4X             =SIMP(statut='f',typ='R' ),
2601              E4Y             =SIMP(statut='f',typ='R' ),
2602              E4Z             =SIMP(statut='f',typ='R' ),
2603              LAGS_C          =SIMP(statut='f',typ='R' ),
2604              V11             =SIMP(statut='f',typ='R' ),
2605              V12             =SIMP(statut='f',typ='R' ),
2606              V13             =SIMP(statut='f',typ='R' ),
2607              V21             =SIMP(statut='f',typ='R' ),
2608              V22             =SIMP(statut='f',typ='R' ),
2609              V23             =SIMP(statut='f',typ='R' ),
2610              V31             =SIMP(statut='f',typ='R' ),
2611              V32             =SIMP(statut='f',typ='R' ),
2612              V33             =SIMP(statut='f',typ='R' ),
2613              PRES11          =SIMP(statut='f',typ='R' ),
2614              PRES12          =SIMP(statut='f',typ='R' ),
2615              PRES13          =SIMP(statut='f',typ='R' ),
2616              PRES21          =SIMP(statut='f',typ='R' ),
2617              PRES22          =SIMP(statut='f',typ='R' ),
2618              PRES23          =SIMP(statut='f',typ='R' ),
2619              PRES31          =SIMP(statut='f',typ='R' ),
2620              PRES32          =SIMP(statut='f',typ='R' ),
2621              PRES33          =SIMP(statut='f',typ='R' ),
2622            ),
2623
2624
2625
2626          DDL_POUTRE    =FACT(statut='f',max='**',
2627              fr="Bloque des DDLs dans un repère local d'une poutre",
2628              regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
2629                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),
2630                      UN_PARMI('VECT_Y','ANGL_VRIL'),),
2631              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2632              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2633              DX              =SIMP(statut='f',typ='R' ),
2634              DY              =SIMP(statut='f',typ='R' ),
2635              DZ              =SIMP(statut='f',typ='R' ),
2636              DRX             =SIMP(statut='f',typ='R' ),
2637              DRY             =SIMP(statut='f',typ='R' ),
2638              DRZ             =SIMP(statut='f',typ='R' ),
2639 #  définition du repère local
2640              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
2641              ANGL_VRIL       =SIMP(statut='f',typ='R',),
2642 #  restriction sur les mailles servant à définir le repère local
2643              GROUP_MA        =SIMP(statut='f',typ=grma,),
2644              MAILLE          =SIMP(statut='f',typ=ma,),
2645                             ),
2646
2647
2648
2649            FACE_IMPO       =FACT(statut='f',max='**',
2650              fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)",
2651              regles=(UN_PARMI('GROUP_MA','MAILLE',),
2652                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
2653                                  'TEMP','PRE1','PRE2','DNOR','DTAN'),
2654                      EXCLUS('DNOR','DX'),
2655                      EXCLUS('DNOR','DY'),
2656                      EXCLUS('DNOR','DZ'),
2657                      EXCLUS('DNOR','DRX'),
2658                      EXCLUS('DNOR','DRY'),
2659                      EXCLUS('DNOR','DRZ'),
2660                      EXCLUS('DTAN','DX'),
2661                      EXCLUS('DTAN','DY'),
2662                      EXCLUS('DTAN','DZ'),
2663                      EXCLUS('DTAN','DRX'),
2664                      EXCLUS('DTAN','DRY'),
2665                      EXCLUS('DTAN','DRZ'),),
2666 #  rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
2667              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2668              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2669              SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2670              SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2671              SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2672              SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2673              DX              =SIMP(statut='f',typ='R' ),
2674              DY              =SIMP(statut='f',typ='R' ),
2675              DZ              =SIMP(statut='f',typ='R' ),
2676              DRX             =SIMP(statut='f',typ='R' ),
2677              DRY             =SIMP(statut='f',typ='R' ),
2678              DRZ             =SIMP(statut='f',typ='R' ),
2679              DNOR            =SIMP(statut='f',typ='R' ),
2680              DTAN            =SIMP(statut='f',typ='R' ),
2681              GRX             =SIMP(statut='f',typ='R' ),
2682              PRES            =SIMP(statut='f',typ='R' ),
2683              PHI             =SIMP(statut='f',typ='R' ),
2684              TEMP            =SIMP(statut='f',typ='R' ),
2685              PRE1            =SIMP(statut='f',typ='R' ),
2686              PRE2            =SIMP(statut='f',typ='R' ),
2687            ),
2688
2689          CHAMNO_IMPO  =FACT(statut='f',max='**',
2690              fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster",
2691 #  type de cham_no_sdaster CO()
2692              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
2693              COEF_MULT       =SIMP(statut='o',typ='R' ),
2694              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2695            ),
2696
2697
2698            LIAISON_DDL     =FACT(statut='f',max='**',
2699              fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds",
2700              regles=(UN_PARMI('GROUP_NO','NOEUD'),),
2701              GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
2702              NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
2703              DDL             =SIMP(statut='o',typ='TXM',max='**'),
2704              COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
2705              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2706            ),
2707
2708            LIAISON_OBLIQUE =FACT(statut='f',max='**',
2709              fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante"
2710               +" dans un repère oblique quelconque",
2711              regles=(UN_PARMI('GROUP_NO','NOEUD'),
2712                      UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
2713              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2714              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2715              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
2716              DX              =SIMP(statut='f',typ='R' ),
2717              DY              =SIMP(statut='f',typ='R' ),
2718              DZ              =SIMP(statut='f',typ='R' ),
2719              DRX             =SIMP(statut='f',typ='R' ),
2720              DRY             =SIMP(statut='f',typ='R' ),
2721              DRZ             =SIMP(statut='f',typ='R' ),
2722            ),
2723
2724            LIAISON_GROUP   =FACT(statut='f',max='**',
2725              fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds",
2726              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
2727                      UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
2728                      EXCLUS('GROUP_MA_1','GROUP_NO_2'),
2729                      EXCLUS('GROUP_MA_1','NOEUD_2'),
2730                      EXCLUS('GROUP_NO_1','GROUP_MA_2'),
2731                      EXCLUS('GROUP_NO_1','MAILLE_2'),
2732                      EXCLUS('MAILLE_1','GROUP_NO_2'),
2733                      EXCLUS('MAILLE_1','NOEUD_2'),
2734                      EXCLUS('NOEUD_1','GROUP_MA_2'),
2735                      EXCLUS('NOEUD_1','MAILLE_2'),
2736                      EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
2737
2738                GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2739                MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2740                GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2741                MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2742                GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2743                NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2744                GROUP_NO_2      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2745                NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2746
2747              SANS_NOEUD      =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
2748              SANS_GROUP_NO   =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
2749              DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
2750              COEF_MULT_1     =SIMP(statut='o',typ='R'  ,max='**'),
2751              DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
2752              COEF_MULT_2     =SIMP(statut='o',typ='R'  ,max='**'),
2753              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2754              SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2755              TRAN            =SIMP(statut='f',typ='R',max=3),
2756              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
2757              CENTRE          =SIMP(statut='f',typ='R',max=3),
2758            ),
2759
2760            LIAISON_MAIL    =FACT(statut='f',max='**',
2761              fr="Définit des relations linéaires permettant de recoller deux bords d'une structure",
2762              regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
2763                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
2764                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
2765               GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2766               MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2767               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2768               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2769               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2770               NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2771               TRAN            =SIMP(statut='f',typ='R',max=3 ),
2772               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2773               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2774               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2775               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2776               ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
2777          ),
2778
2779            LIAISON_CYCL    =FACT(statut='f',max='**',
2780              fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques",
2781              regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'),
2782                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
2783                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),
2784                      ),
2785               GROUP_MA_MAIT1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2786               MAILLE_MAIT1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2787               GROUP_MA_MAIT2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2788               MAILLE_MAIT2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2789               GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2790               MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2791               GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2792               NOEUD_ESCL     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2793               TRAN            =SIMP(statut='f',typ='R',max=3 ),
2794               ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2795               CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2796               COEF_MAIT1            =SIMP(statut='f',typ='R',max=1 ),
2797               COEF_MAIT2            =SIMP(statut='f',typ='R',max=1 ),
2798               COEF_ESCL            =SIMP(statut='f',typ='R',max=1 ),
2799               DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2800               DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
2801          ),
2802
2803
2804            LIAISON_SOLIDE  =FACT(statut='f',max='**',
2805              fr="Modélise une partie indéformable d'une structure."
2806               +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.",
2807              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
2808                      ENSEMBLE('CENTRE','ANGL_NAUT'),),
2809              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2810              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2811              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2812              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2813              TRAN            =SIMP(statut='f',typ='R',max=3 ),
2814              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
2815              CENTRE          =SIMP(statut='f',typ='R',max=3 ),
2816              DIST_MIN        =SIMP(statut='f',typ='R'),
2817              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2818            ),
2819
2820            LIAISON_ELEM    =FACT(statut='f',max='**',
2821              fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque"
2822               +" avec une poutre ou avec un tuyau",
2823              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
2824                      UN_PARMI('GROUP_NO_2','NOEUD_2'),),
2825              OPTION          =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ),
2826              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2827              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2828              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2829              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2830              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2831              CARA_ELEM       =SIMP(statut='f',typ=(cara_elem) ),
2832              AXE_POUTRE      =SIMP(statut='f',typ='R',max=3),
2833              ANGL_MAX        =SIMP(statut='f',typ='R',defaut= 1. ),
2834            ),
2835
2836            LIAISON_UNIF    =FACT(statut='f',max='**',
2837              fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
2838              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
2839              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2840              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2841              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2842              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2843              DDL             =SIMP(statut='o',typ='TXM',max='**'),
2844            ),
2845
2846          LIAISON_CHAMNO  =FACT(statut='f',max='**',
2847              fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO",
2848 #  type de cham_no_sdaster CO()
2849              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
2850              COEF_IMPO       =SIMP(statut='o',typ='R' ),
2851              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
2852            ),
2853
2854          LIAISON_XFEM      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
2855
2856          CONTACT_XFEM      =SIMP(statut='f',typ=char_meca,min=1,max=1,),
2857
2858
2859 #         SIMP(statut='f',typ='TXM',defaut="NON" ),
2860
2861          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster ),
2862 #
2863 # LIAISON UNILATERALE
2864 #
2865          LIAISON_UNILATER=FACT(statut='f',max='**',
2866            fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
2867            regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
2868
2869            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
2870            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
2871            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
2872            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
2873
2874            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2875            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2876
2877            NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
2878
2879            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
2880
2881            COEF_IMPO       =SIMP(statut='f',typ='R'),
2882            COEF_MULT       =SIMP(statut='f',typ='R',max='**'),
2883
2884            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
2885                                  into=("CONTRAINTE","GCPC",) ),
2886
2887
2888         ),
2889 #
2890 # CONTACT
2891 #
2892          CONTACT         = C_CONTACT(),
2893 #
2894 # FORCES
2895 #         
2896          FORCE_NODALE    =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
2897            regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
2898                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
2899            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
2900            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
2901            FX              =SIMP(statut='f',typ='R' ),
2902            FY              =SIMP(statut='f',typ='R' ),
2903            FZ              =SIMP(statut='f',typ='R' ),
2904            MX              =SIMP(statut='f',typ='R' ),
2905            MY              =SIMP(statut='f',typ='R' ),
2906            MZ              =SIMP(statut='f',typ='R' ),
2907            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
2908          ),
2909
2910          FORCE_FACE      =FACT(statut='f',max='**',
2911              fr="Applique des forces surfaciques sur une face d'élément volumique",
2912              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
2913                      AU_MOINS_UN('FX','FY','FZ'),),
2914              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2915              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2916              FX              =SIMP(statut='f',typ='R' ),
2917              FY              =SIMP(statut='f',typ='R' ),
2918              FZ              =SIMP(statut='f',typ='R' ),
2919            ),
2920
2921          FORCE_ARETE     =FACT(statut='f',max='**',
2922          fr="Applique des forces linéiques à une arete d'élément volumique ou de coque",
2923              regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
2924                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
2925              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2926              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2927              FX              =SIMP(statut='f',typ='R' ),
2928              FY              =SIMP(statut='f',typ='R' ),
2929              FZ              =SIMP(statut='f',typ='R' ),
2930              MX              =SIMP(statut='f',typ='R' ),
2931              MY              =SIMP(statut='f',typ='R' ),
2932              MZ              =SIMP(statut='f',typ='R' ),
2933            ),
2934
2935          FORCE_CONTOUR   =FACT(statut='f',max='**',
2936              fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER",
2937              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
2938                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
2939              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2940              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2941              FX              =SIMP(statut='f',typ='R' ),
2942              FY              =SIMP(statut='f',typ='R' ),
2943              FZ              =SIMP(statut='f',typ='R' ),
2944              MX              =SIMP(statut='f',typ='R' ),
2945              MY              =SIMP(statut='f',typ='R' ),
2946              MZ              =SIMP(statut='f',typ='R' ),
2947            ),
2948
2949          FORCE_INTERNE   =FACT(statut='f',max='**',
2950              fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique",
2951              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2952                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
2953                      AU_MOINS_UN('FX','FY','FZ' ),),
2954              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2955              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2956              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2957              FX              =SIMP(statut='f',typ='R' ),
2958              FY              =SIMP(statut='f',typ='R' ),
2959              FZ              =SIMP(statut='f',typ='R' ),
2960            ),
2961
2962          SIGM_INTERNE   =FACT(statut='f',max='**',
2963              fr="Applique des contraintes volumiques (2D ou 3D) à un domaine volumique",
2964              #INST            =SIMP(statut='f',typ='R' ),
2965              SIGM            =SIMP(statut='o',typ=(cham_elem,carte_sdaster)),
2966            ),
2967
2968          PRES_REP        =FACT(statut='f',max='**',
2969              fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux",
2970              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','FISSURE'),
2971                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'),
2972                      AU_MOINS_UN('PRES','CISA_2D' ),),
2973              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2974              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2975              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2976              FISSURE         =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,),
2977              PRES            =SIMP(statut='f',typ='R' ),
2978              CISA_2D         =SIMP(statut='f',typ='R' ),
2979            ),
2980
2981          EFFE_FOND       =FACT(statut='f',max='**',
2982            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression",
2983            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
2984            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
2985            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2986            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2987            PRES            =SIMP(statut='o',typ='R' ),
2988          ),
2989
2990          EPSI_INIT       =FACT(statut='f',max='**',
2991              fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure",
2992              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
2993                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
2994                      AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
2995                                  'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
2996              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
2997              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
2998              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
2999              EPXX            =SIMP(statut='f',typ='R' ),
3000              EPYY            =SIMP(statut='f',typ='R' ),
3001              EPZZ            =SIMP(statut='f',typ='R' ),
3002              EPXY            =SIMP(statut='f',typ='R' ),
3003              EPXZ            =SIMP(statut='f',typ='R' ),
3004              EPYZ            =SIMP(statut='f',typ='R' ),
3005              EPX             =SIMP(statut='f',typ='R' ),
3006              KY              =SIMP(statut='f',typ='R' ),
3007              KZ              =SIMP(statut='f',typ='R' ),
3008              EXX             =SIMP(statut='f',typ='R' ),
3009              EYY             =SIMP(statut='f',typ='R' ),
3010              EXY             =SIMP(statut='f',typ='R' ),
3011              KXX             =SIMP(statut='f',typ='R' ),
3012              KYY             =SIMP(statut='f',typ='R' ),
3013              KXY             =SIMP(statut='f',typ='R' ),
3014            ),
3015
3016          ARLEQUIN        =FACT(statut='f',min=1,max='**',
3017            fr="Définit les paramètres de la méthode Arlequin",
3018            GROUP_MA_1     =SIMP(statut='o',typ=grma,max='**'),
3019            GROUP_MA_2     =SIMP(statut='o',typ=grma,max='**'),
3020            GROUP_MA_COLL  =SIMP(statut='f',typ=grma,max='**'),
3021            CARA_ELEM      =SIMP(statut='f',typ=cara_elem ),
3022            COND_LIM       =SIMP(statut='f',typ=char_meca ),
3023            COLLAGE        =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),),
3024            regles         =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),),
3025            POIDS_1        =SIMP(statut='f',typ='R'),
3026            POIDS_2        =SIMP(statut='f',typ='R'),
3027            POIDS_GROSSIER =SIMP(statut='f',typ='R'),
3028            UNITE_GMSH     =SIMP(statut='f',typ='I',defaut=0,max=1),
3029            POIDS_FIN      =SIMP(statut='f',typ='R'),),
3030
3031         FORCE_POUTRE    =FACT(statut='f',max='**',
3032              fr="Applique des forces linéiques sur des éléments de type poutre",
3033              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3034                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3035                      AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
3036                      PRESENT_ABSENT('FX','N','VY','VZ'),
3037                      PRESENT_ABSENT('FY','N','VY','VZ'),
3038                      PRESENT_ABSENT('FZ','N','VY','VZ'),
3039                      PRESENT_ABSENT('N','FX','FY','FZ'),
3040                      PRESENT_ABSENT('VY','FX','FY','FZ'),
3041                      PRESENT_ABSENT('VZ','FX','FY','FZ'),),
3042              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3043              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3044              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3045              TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
3046 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
3047                FX              =SIMP(statut='f',typ='R' ),
3048                FY              =SIMP(statut='f',typ='R' ),
3049                FZ              =SIMP(statut='f',typ='R' ),
3050
3051                N               =SIMP(statut='f',typ='R' ),
3052                VY              =SIMP(statut='f',typ='R' ),
3053                VZ              =SIMP(statut='f',typ='R' ),
3054
3055            ),
3056
3057          FORCE_TUYAU     =FACT(statut='f',max='**',
3058              fr="Applique une pression sur des éléments TUYAU",
3059              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3060                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3061              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3062              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3063              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3064              PRES            =SIMP(statut='f',typ='R' ),
3065            ),
3066
3067          FORCE_COQUE     =FACT(statut='f',max='**',
3068              fr="Applique des forces surfaciques sur des éléments de types coques",
3069              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3070                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3071                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
3072                      PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
3073                      PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
3074                      PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
3075                      PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
3076                      PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
3077                      PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
3078                      PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
3079                      PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
3080                      PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
3081                      PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
3082                      PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
3083                      PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
3084 #  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
3085              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3086              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3087              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3088
3089                FX              =SIMP(statut='f',typ='R' ),
3090                FY              =SIMP(statut='f',typ='R' ),
3091                FZ              =SIMP(statut='f',typ='R' ),
3092                MX              =SIMP(statut='f',typ='R' ),
3093                MY              =SIMP(statut='f',typ='R' ),
3094                MZ              =SIMP(statut='f',typ='R' ),
3095
3096                F1              =SIMP(statut='f',typ='R' ),
3097                F2              =SIMP(statut='f',typ='R' ),
3098                F3              =SIMP(statut='f',typ='R' ),
3099                MF1             =SIMP(statut='f',typ='R' ),
3100                MF2             =SIMP(statut='f',typ='R' ),
3101
3102              PRES            =SIMP(statut='f',typ='R' ),
3103              PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
3104            ),
3105
3106
3107            GRAPPE_FLUIDE   =FACT(statut='f',max='**',
3108              fr="Définit les données de calcul des forces fluides lors des études de chute de grappe",
3109              regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'),
3110                      EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'),
3111                      PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'),
3112                      PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'),
3113                      PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'),
3114                      PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'),
3115                      PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'),
3116                      PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'),
3117                      PRESENT_PRESENT('CARA_PDC','VALE_PDC'),),
3118              GROUP_MA        =SIMP(statut='f',typ=grma,max=1),
3119              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
3120              NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
3121              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
3122              NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
3123              Z0              =SIMP(statut='f',typ='R' ),
3124              CARA_HYDR       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3125                                  fr="définition des données hydrauliques",
3126                                  into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM",
3127                                        "NUML","NUG","P2","P3","P4","CGG","G") ),
3128              VALE_HYDR       =SIMP(statut='f',typ='R',max='**',
3129                                  fr="valeurs des données hydrauliques",),
3130              CARA_GRAPPE     =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3131                                  fr="définition des données géométriques de la grappe",
3132                                  into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT",
3133                                        "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT",
3134                                        "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ),
3135              VALE_GRAPPE     =SIMP(statut='f',typ='R',max='**',
3136                                  fr="valeurs des données géométriques de la grappe",),
3137              CARA_COMMANDE   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3138                                  fr="définition des données géométriques du mécanisme de commande",
3139                                  into=("LI","LML","LG","LIG","DIML","DEML","DCSP",
3140                                        "DG","HRUGML","HRUGCSP","HRUGG") ),
3141              VALE_COMMANDE   =SIMP(statut='f',typ='R',max='**',
3142                                  fr="valeurs des données géométriques du mécanisme de commande",),
3143              CARA_MANCHETTE  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3144                                  fr="définition des données géométriques de la manchette et son adaptateur",
3145                                  into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT",
3146                                        "ROMT","DA","HRUGM","HRUGA") ),
3147              VALE_MANCHETTE  =SIMP(statut='f',typ='R',max='**',
3148                                  fr="valeurs des données géométriques de la manchette et son adaptateur",),
3149              CARA_GUIDE      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3150                                  fr="définition des données géométriques des tubes guides",
3151                                  into=("NRET","L0","L1","L2","L3","L4","DTG","DR",
3152                                        "DOR","D0","D00","HRUGTG") ),
3153              VALE_GUIDE      =SIMP(statut='f',typ='R',max='**',
3154                                  fr="valeurs des données géométriques des tubes guides",),
3155              CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3156                                  fr="définition des données géométriques des assemblages",
3157                                  into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI",
3158                                        "KES","KEI","KF") ),
3159              VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**',
3160                                  fr="valeurs des données géométriques des assemblages",),
3161              CARA_PDC        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
3162                                  fr="définition des coefficients de perte de charge singulière",
3163                                  into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML",
3164                                        "CDI","CDG") ),
3165              VALE_PDC        =SIMP(statut='f',typ='R',max='**',
3166                                  fr="valeurs des coefficients de perte de charge singulière",),
3167              DIRE_FORC_FPLAQ  =SIMP(statut='f',typ='R',min=3,max=3,
3168                                  fr="direction d'application de la force de plaquage",),
3169              UNITE_IMPR_FORCE =SIMP(statut='f',typ='I',
3170                                  fr="unité d'impression des forces",),
3171              UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I',
3172                                  fr="unité d'impression des noeuds par zone",),
3173            ),
3174
3175            LIAISON_COQUE   =FACT(statut='f',max='**',
3176              fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
3177              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3178              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3179              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3180              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3181              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3182              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3183              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3184              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3185              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
3186            ),
3187
3188          RELA_CINE_BP    =FACT(statut='f',max='**',
3189            fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier"
3190               +" la prise en compte des contraintes initiales dans les cables",
3191            CABLE_BP        =SIMP(statut='o',typ=cabl_precont ),
3192            SIGM_BPEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
3193            RELA_CINE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3194            DIST_MIN        =SIMP(statut='f',typ='R'),
3195          ),
3196
3197          FORCE_ELEC      =FACT(statut='f',max='**',
3198              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
3199                  +" secondaire droit",
3200              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3201                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3202
3203              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3204              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3205              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3206
3207              POSITION        =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
3208              b_fxyz  =BLOC ( condition = "POSITION == None",
3209                   FX   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3210                   FY   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3211                   FZ   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
3212                        ),
3213
3214              b_para     =BLOC ( condition = "POSITION == 'PARA'",
3215                regles=(UN_PARMI('TRANS','DIST'),),
3216                TRANS           =SIMP(statut='f',typ='R',max=3),
3217                DIST            =SIMP(statut='f',typ='R' ),
3218                b_point2        =BLOC ( condition = "DIST != None",
3219                  POINT2           =SIMP(statut='o',typ='R',max=3),
3220                ),
3221              ),
3222              b_fini_infi     =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
3223                POINT1          =SIMP(statut='o',typ='R',max=3),
3224                POINT2          =SIMP(statut='o',typ='R',max=3),
3225              ),
3226            ),
3227
3228
3229
3230
3231         INTE_ELEC       =FACT(statut='f',max='**',
3232              fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
3233                +" secondaire non nécessairement droit",
3234              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3235                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3236                      AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
3237                      EXCLUS('TRANS','SYME'),),
3238              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3239              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3240              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3241              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3242              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3243              TRANS           =SIMP(statut='f',typ='R' ,max='**'),
3244              SYME            =SIMP(statut='f',typ='R' ,max='**'),
3245            ),
3246
3247
3248          IMPE_FACE       =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**',
3249              regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
3250              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3251              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3252              IMPE            =SIMP(statut='o',typ='R' ),
3253            ),
3254
3255          VITE_FACE       =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**',
3256              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3257              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3258              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3259              VNOR            =SIMP(statut='o',typ='R' ),
3260            ),
3261
3262
3263
3264          ONDE_FLUI       =FACT(statut='f',max='**',
3265              fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face",
3266              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3267              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3268              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3269              PRES            =SIMP(statut='o',typ='R' ),
3270            ),
3271
3272          FLUX_THM_REP    =FACT(statut='f',max='**',
3273              fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide"
3274                  +" (flux hydraulique)",
3275              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3276                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3277                      AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
3278              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3279              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3280              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3281              FLUN            =SIMP(statut='f',typ='R' ),
3282              FLUN_HYDR1      =SIMP(statut='f',typ='R' ),
3283              FLUN_HYDR2      =SIMP(statut='f',typ='R' ),
3284            ),
3285
3286          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3287 )  ;
3288
3289
3290 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
3291 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3292 # ======================================================================
3293 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3294 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3295 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3296 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
3297 # (AT YOUR OPTION) ANY LATER VERSION.                                 
3298 #
3299 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
3300 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
3301 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
3302 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
3303 #
3304 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
3305 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
3306 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
3307 # ======================================================================
3308 # RESPONSABLE DESROCHES X.DESROCHES
3309 AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
3310                      fr="Affectation de charges et conditions aux limites mécaniques complexes",
3311                      reentrant='n',
3312             UIinfo={"groupes":("Modélisation",)},
3313          regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
3314          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
3315          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3316          DDL_IMPO        =FACT(statut='f',max='**',
3317            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
3318            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
3319                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),),
3320            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3321            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3322            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3323            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3324            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3325            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), 
3326            DX              =SIMP(statut='f',typ='C' ),
3327            DY              =SIMP(statut='f',typ='C' ),
3328            DZ              =SIMP(statut='f',typ='C' ),
3329            DRX             =SIMP(statut='f',typ='C' ),
3330            DRY             =SIMP(statut='f',typ='C' ),
3331            DRZ             =SIMP(statut='f',typ='C' ),
3332            GRX             =SIMP(statut='f',typ='C' ),
3333            PRES            =SIMP(statut='f',typ='C' ),
3334            PHI             =SIMP(statut='f',typ='C' ),
3335          ),
3336          FORCE_POUTRE    =FACT(statut='f',max='**',
3337            fr="Applique des forces linéiques sur des éléments de type poutre",
3338            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3339                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3340                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
3341                    PRESENT_ABSENT('FX','N','VY','VZ',),
3342                    PRESENT_ABSENT('FY','N','VY','VZ',),
3343                    PRESENT_ABSENT('FZ','N','VY','VZ',),
3344                    PRESENT_ABSENT('N','FX','FY','FZ',),
3345                    PRESENT_ABSENT('VY', 'FX','FY','FZ',),
3346                    PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
3347            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3348            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3349            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3350            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
3351            FX              =SIMP(statut='f',typ='C' ),
3352            FY              =SIMP(statut='f',typ='C' ),
3353            FZ              =SIMP(statut='f',typ='C' ),
3354            N               =SIMP(statut='f',typ='C' ),
3355            VY              =SIMP(statut='f',typ='C' ),
3356            VZ              =SIMP(statut='f',typ='C' ),
3357          ),
3358          LIAISON_DDL     =FACT(statut='f',max='**',
3359            fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds",
3360            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
3361            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3362            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3363            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3364            COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
3365            COEF_IMPO       =SIMP(statut='o',typ='C' ),
3366          ),
3367          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3368 )  ;
3369 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR CNGUYEN C.NGUYEN 
3370 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3371 # ======================================================================
3372 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3373 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3374 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3375 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3376 # (AT YOUR OPTION) ANY LATER VERSION.
3377 #
3378 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3379 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3380 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3381 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3382 #
3383 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3384 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3385 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3386 # ======================================================================
3387 # RESPONSABLE DESROCHES X.DESROCHES
3388 AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
3389                       fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres",
3390                       reentrant='n',
3391             UIinfo={"groupes":("Modélisation",)},
3392         regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
3393                             'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
3394                             'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE',
3395                             'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF',
3396                             'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU',
3397                             'EFFE_FOND','FLUX_THM_REP','LIAISON_UNILATER'),),
3398          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3399          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
3400          MODELE          =SIMP(statut='o',typ=modele_sdaster),
3401
3402          DDL_IMPO        =FACT(statut='f',max='**',
3403            fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies"
3404                +" par l'intermédiaire d'un concept fonction ",
3405            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
3406                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
3407                                'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X',
3408                                'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
3409                                'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),),
3410            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3411            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3412            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3413            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3414            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3415            LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
3416            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3417            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3418            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3419            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3420            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3421            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3422            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3423            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3424            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3425            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3426            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3427            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3428            DCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3429            DCY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3430            DCZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3431            H1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3432            H1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3433            H1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3434            E1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3435            E1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3436            E1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3437            E2X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3438            E2Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3439            E2Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3440            E3X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3441            E3Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3442            E3Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3443            E4X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3444            E4Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3445            E4Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3446            LAGS_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3447          ),
3448
3449          FACE_IMPO       =FACT(statut='f',max='**',
3450            fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)"
3451               +" fournies par l'intérmédiaire d'un concept fonction",
3452            regles=(UN_PARMI('GROUP_MA','MAILLE'),
3453                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'),
3454                    EXCLUS('DNOR','DX'),
3455                    EXCLUS('DNOR','DY'),
3456                    EXCLUS('DNOR','DZ'),
3457                    EXCLUS('DNOR','DRX'),
3458                    EXCLUS('DNOR','DRY'),
3459                    EXCLUS('DNOR','DRZ'),
3460                    EXCLUS('DTAN','DX'),
3461                    EXCLUS('DTAN','DY'),
3462                    EXCLUS('DTAN','DZ'),
3463                    EXCLUS('DTAN','DRX'),
3464                    EXCLUS('DTAN','DRY'),
3465                    EXCLUS('DTAN','DRZ'),),
3466 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3467            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3468            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3469            SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3470            SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3471            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3472            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3473            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3474            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3475            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3476            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3477            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3478            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3479            GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3480            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3481            PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3482            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3483            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3484            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3485            DNOR            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3486            DTAN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3487          ),
3488
3489          LIAISON_DDL     =FACT(statut='f',max='**',
3490            fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par"
3491                +" l'intermediaire d'un concept de type fonction",
3492            regles=(UN_PARMI('GROUP_NO','NOEUD'),UN_PARMI('COEF_MULT','COEF_MULT_FONC'),),
3493            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3494            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3495            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3496            COEF_MULT       =SIMP(statut='f',typ='R',max='**'),
3497            COEF_MULT_FONC  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
3498            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3499          ),
3500
3501          LIAISON_OBLIQUE =FACT(statut='f',max='**',
3502            fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique"
3503               +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction",
3504            regles=(UN_PARMI('GROUP_NO','NOEUD'),
3505                    UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
3506            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3507            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3508            ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
3509            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3510            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3511            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3512            DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3513            DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3514            DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3515          ),
3516
3517          LIAISON_GROUP   =FACT(statut='f',max='**',
3518            fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par"
3519                +" l'intermédiaire de concept fonction",
3520            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
3521                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
3522                    EXCLUS('GROUP_MA_1','GROUP_NO_2'),
3523                    EXCLUS('GROUP_MA_1','NOEUD_2'),
3524                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
3525                    EXCLUS('GROUP_NO_1','MAILLE_2'),
3526                    EXCLUS('MAILLE_1','GROUP_NO_2'),
3527                    EXCLUS('MAILLE_1','NOEUD_2'),
3528                    EXCLUS('NOEUD_1','GROUP_MA_2'),
3529                    EXCLUS('NOEUD_1','MAILLE_2'),
3530                    EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
3531            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3532            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3533            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3534            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3535            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3536            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3537            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3538            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3539            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3540            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3541            DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
3542            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
3543            DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
3544            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
3545            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3546            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3547            TRAN            =SIMP(statut='f',typ='R',max=3),
3548            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
3549            CENTRE          =SIMP(statut='f',typ='R',max=3),
3550          ),
3551 #
3552 # LIAISON UNILATERALE
3553 #
3554          LIAISON_UNILATER=FACT(statut='f',max='**',
3555            fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
3556            regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
3557
3558            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
3559            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
3560            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
3561            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
3562
3563            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3564            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3565
3566            NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
3567
3568            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
3569
3570            COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
3571            COEF_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
3572
3573            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
3574                                  into=("CONTRAINTE","GCPC",) ),
3575
3576
3577         ),
3578
3579           LIAISON_UNIF    =FACT(statut='f',max='**',
3580            fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
3581            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
3582            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3583            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3584            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3585            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3586            DDL             =SIMP(statut='o',typ='TXM',max='**'),
3587          ),
3588
3589
3590          LIAISON_SOLIDE  =FACT(statut='f',max='**',
3591            fr="Modélise une partie indéformable d'une structure."
3592             +" Les mots clés TRAN et ANGL_NAUT permettent d'imposer le déplacement de la partie indéformable.",
3593            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
3594                    ENSEMBLE('CENTRE','ANGL_NAUT'),),
3595            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3596            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3597            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3598            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3599            TRAN            =SIMP(statut='f',typ='R',max=3 ),
3600            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
3601            CENTRE          =SIMP(statut='f',typ='R',max=3 ),
3602            DIST_MIN        =SIMP(statut='f',typ='R'),
3603            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
3604          ),
3605
3606
3607
3608          FORCE_NODALE    =FACT(statut='f',max='**',
3609            fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire"
3610                +" d'un concept fonction",
3611            regles=(UN_PARMI('GROUP_NO','NOEUD'),
3612                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3613            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3614            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3615            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3616            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3617            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3618            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3619            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3620            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3621            ANGL_NAUT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ),
3622          ),
3623
3624          FORCE_FACE      =FACT(statut='f',max='**',
3625            fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies"
3626                +" par l'intermédiaire d'un concept fonction",
3627            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3628                    AU_MOINS_UN('FX','FY','FZ'),),
3629            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3630            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3631            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3632            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3633            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3634          ),
3635          FORCE_ARETE     =FACT(statut='f',max='**',
3636            fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont"
3637                +" fournies par l'intermédiaire d'un concept fonction",
3638            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3639                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3640            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3641            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3642            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3643            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3644            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3645            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3646            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3647            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3648          ),
3649          FORCE_CONTOUR   =FACT(statut='f',max='**',
3650            fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes"
3651                +" sont fournies par l'intermédiaire d'un concept fonction",
3652            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3653                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
3654            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3655            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3656            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3657            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3658            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3659            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3660            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3661            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3662          ),
3663
3664          FORCE_INTERNE   =FACT(statut='f',max='**',
3665            fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies"
3666                +" par l'intermédiaire d'un concept fonction",
3667            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3668                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3669                    AU_MOINS_UN('FX','FY','FZ'),),
3670            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3671            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3672            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3673            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3674            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3675            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3676          ),
3677
3678          PRES_REP        =FACT(statut='f',max='**',
3679            fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les"
3680                +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction",
3681            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','FISSURE'),
3682                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','FISSURE'),
3683                    AU_MOINS_UN('PRES','CISA_2D'),),
3684            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3685            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3686            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3687            FISSURE         =SIMP(statut='f',typ=fiss_xfem,min=1,max=100,),
3688            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3689            CISA_2D         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3690          ),
3691
3692          EFFE_FOND       =FACT(statut='f',max='**',
3693            fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise"
3694                +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction",
3695            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
3696            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
3697            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3698            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3699            PRES            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3700          ),
3701
3702          EPSI_INIT       =FACT(statut='f',max='**',
3703            fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes"
3704                +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction",
3705            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3706                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3707                    AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
3708            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3709            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3710            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3711            EPXX            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3712            EPYY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3713            EPZZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3714            EPXY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3715            EPXZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3716            EPYZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3717          ),
3718
3719          FORCE_POUTRE    =FACT(statut='f',max='**',
3720            fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par"
3721                +" l'intermédiaire d'un concept fonction",
3722            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3723                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3724                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
3725                    PRESENT_ABSENT('FX','N','VY','VZ'),
3726                    PRESENT_ABSENT('FY','N','VY','VZ'),
3727                    PRESENT_ABSENT('FZ','N','VY','VZ'),
3728                    PRESENT_ABSENT('N','FX','FY','FZ'),
3729                    PRESENT_ABSENT('VY','FX','FY','FZ'),
3730                    PRESENT_ABSENT('VZ','FX','FY','FZ'),),
3731 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3732            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3733            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3734            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3735            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
3736            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3737            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3738            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3739            N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3740            VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3741            VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3742          ),
3743
3744          FORCE_TUYAU     =FACT(statut='f',max='**',
3745            fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction",
3746            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3747                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3748            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3749            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3750            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3751            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3752          ),
3753
3754          FORCE_COQUE     =FACT(statut='f',max='**',
3755            fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par"
3756                +" l'intermédiaires d'un concept fonction",
3757            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3758                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3759                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
3760                    PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
3761                    PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
3762                    PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
3763                    PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
3764                    PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
3765                    PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
3766                    PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'),
3767                    PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'),
3768                    PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'),
3769                    PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'),
3770                    PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'),
3771                    PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
3772 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
3773            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3774            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3775            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3776            FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3777            FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3778            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3779            MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3780            MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3781            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3782            F1              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3783            F2              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3784            F3              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3785            MF1             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3786            MF2             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3787            PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3788            PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
3789                                  into=("SUP","INF","MOY","MAIL") ),
3790          ),
3791
3792          LIAISON_COQUE   =FACT(statut='f',max='**',
3793            fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
3794            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3795            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3796            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3797            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3798            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3799            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3800            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3801            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3802            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
3803          ),
3804
3805
3806          VITE_FACE       =FACT(statut='f',max='**',
3807            fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par"
3808                +" l'intermédiaire d'un concept fonction",
3809            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3810                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
3811            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3812            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3813            VNOR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3814          ),
3815          IMPE_FACE       =FACT(statut='f',max='**',
3816            fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire"
3817                +" d'un concept fonction",
3818            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
3819                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
3820            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3821            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3822            IMPE            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3823          ),
3824          ONDE_PLANE      =FACT(statut='f',max='**',
3825            fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire"
3826                +" d'un concept fonction",
3827            DIRECTION       =SIMP(statut='o',typ='R',max='**'),
3828            TYPE_ONDE       =SIMP(statut='o',typ='TXM' ),
3829            FONC_SIGNAL     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3830            DIST_ORIG       =SIMP(statut='o',typ='R' ),
3831          ),
3832
3833
3834
3835          FLUX_THM_REP    =FACT(statut='f',max='**',
3836            fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)"
3837                +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction",
3838            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3839                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3840                    AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
3841            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3842            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3843            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3844            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3845            FLUN_HYDR1      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3846            FLUN_HYDR2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
3847          ),
3848
3849          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
3850 )  ;
3851
3852
3853 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
3854 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3855 # ======================================================================
3856 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3857 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3858 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3859 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
3860 # (AT YOUR OPTION) ANY LATER VERSION.                                 
3861 #
3862 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
3863 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
3864 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
3865 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
3866 #
3867 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
3868 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
3869 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
3870 # ======================================================================
3871 # RESPONSABLE None
3872 AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
3873                       fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION",
3874                       reentrant='n',
3875             UIinfo={"groupes":("Outils métier",)},
3876          regles=(AU_MOINS_UN('CARA_TORSION', ),),
3877          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
3878          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",
3879                                into=("OUI","NON") ),
3880          CARA_TORSION    =FACT(statut='f',max='**',
3881            regles=(UN_PARMI('TOUT','GROUP_MA'),),
3882            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3883            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3884          ),
3885          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
3886 )  ;
3887 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
3888 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3889 # ======================================================================
3890 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
3891 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
3892 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
3893 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
3894 # (AT YOUR OPTION) ANY LATER VERSION.
3895 #
3896 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
3897 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
3898 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
3899 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
3900 #
3901 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
3902 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
3903 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
3904 # ======================================================================
3905 # RESPONSABLE DESROCHES X.DESROCHES
3906 AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
3907                     ,fr="Affectation de charges et conditions aux limites thermiques constantes",
3908                     reentrant='n',
3909             UIinfo={"groupes":("Modélisation",)},
3910       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE',
3911                           'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP',
3912                           'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
3913          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
3914
3915          TEMP_IMPO       =FACT(statut='f',max='**',
3916            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
3917                    AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
3918            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3919            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3920            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3921            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
3922            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
3923            TEMP            =SIMP(statut='f',typ='R'),
3924            TEMP_INF        =SIMP(statut='f',typ='R'),
3925            TEMP_SUP        =SIMP(statut='f',typ='R'), ),
3926
3927          FLUX_REP        =FACT(statut='f',max='**',
3928            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3929                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3930                    PRESENT_PRESENT('CARA_TORSION','GROUP_MA'),
3931                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ),
3932            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3933            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3934            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3935            FLUN            =SIMP(statut='f',typ='R'),
3936            FLUN_INF        =SIMP(statut='f',typ='R'),
3937            FLUN_SUP        =SIMP(statut='f',typ='R'),
3938            CARA_TORSION    =SIMP(statut='f',typ=table_sdaster),
3939          ),
3940
3941
3942          RAYONNEMENT     =FACT(statut='f',max='**',
3943            fr="Attention, exprimer les températures en Celsius si rayonnement",
3944            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3945                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
3946            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3947            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3948            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3949            SIGMA           =SIMP(statut='o',typ='R'),
3950            EPSILON         =SIMP(statut='o',typ='R'),
3951            TEMP_EXT        =SIMP(statut='o',typ='R'),
3952          ),
3953
3954          ECHANGE         =FACT(statut='f',max='**',
3955            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3956                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3957                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
3958                    ENSEMBLE('COEF_H','TEMP_EXT',),
3959                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
3960                              ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
3961            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3962            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3963            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3964            COEF_H          =SIMP(statut='f',typ='R'),
3965            TEMP_EXT        =SIMP(statut='f',typ='R'),
3966            COEF_H_INF      =SIMP(statut='f',typ='R'),
3967            TEMP_EXT_INF    =SIMP(statut='f',typ='R'),
3968            COEF_H_SUP      =SIMP(statut='f',typ='R'),
3969            TEMP_EXT_SUP    =SIMP(statut='f',typ='R'),
3970          ),
3971
3972          SOURCE          =FACT(statut='f',max='**',
3973            regles=(UN_PARMI('SOUR','SOUR_CALCULEE',),
3974                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3975                    PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),),
3976            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3977            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3978            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3979            SOUR            =SIMP(statut='f',typ='R'),
3980            SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem) ),
3981          ),
3982
3983          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
3984            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
3985                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
3986                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
3987            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
3988            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
3989            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
3990            FLUX_X          =SIMP(statut='f',typ='R' ),
3991            FLUX_Y          =SIMP(statut='f',typ='R' ),
3992            FLUX_Z          =SIMP(statut='f',typ='R' ),
3993                          ),
3994
3995          LIAISON_DDL     =FACT(statut='f',max='**',
3996            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
3997            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
3998            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
3999            DDL             =SIMP(statut='f',typ='TXM',max='**',
4000                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4001            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
4002            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4003          ),
4004
4005          LIAISON_GROUP   =FACT(statut='f',max='**',
4006            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
4007                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
4008                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
4009                              EXCLUS('GROUP_MA_1','NOEUD_2'),
4010                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
4011                              EXCLUS('GROUP_NO_1','MAILLE_2'),
4012                              EXCLUS('MAILLE_1','GROUP_NO_2'),
4013                              EXCLUS('MAILLE_1','NOEUD_2'),
4014                              EXCLUS('NOEUD_1','GROUP_MA_2'),
4015                              EXCLUS('NOEUD_1','MAILLE_2'),
4016                              EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
4017            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4018            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4019            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4020            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4021            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4022            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4023            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4024            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4025            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4026            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4027            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4028                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4029            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
4030            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4031                                  into=("TEMP","TEMP_INF","TEMP_SUP",) ),
4032            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
4033            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4034            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4035            TRAN            =SIMP(statut='f',typ='R',max='**'),
4036            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
4037            CENTRE          =SIMP(statut='f',typ='R',max='**'),
4038          ),
4039
4040          LIAISON_MAIL    =FACT(statut='f',max='**',
4041            regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
4042                    AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
4043                                'NOEUD_ESCL'),),
4044            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4045            MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4046            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4047            MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4048            GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4049            NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4050            TRAN            =SIMP(statut='f',typ='R',max='**' ),
4051            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**' ),
4052            CENTRE          =SIMP(statut='f',typ='R',max='**' ),
4053            ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
4054          ),
4055
4056          ECHANGE_PAROI   =FACT(statut='f',max='**',
4057            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
4058                    UN_PARMI('GROUP_MA_2','MAILLE_2'),),
4059            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4060            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4061            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4062            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4063            COEF_H          =SIMP(statut='f',typ='R'),
4064            TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
4065            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4066            CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
4067                          ),
4068
4069          LIAISON_UNIF    =FACT(statut='f',max='**',
4070            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4071            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4072            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4073            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4074            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4075            DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4076                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4077          ),
4078
4079          LIAISON_CHAMNO  =FACT(statut='f',max='**',
4080            CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno"
4081            COEF_IMPO       =SIMP(statut='o',typ='R' ),
4082            NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
4083          ),
4084
4085          CONVECTION      =FACT(statut='f',max='**',
4086            VITESSE         =SIMP(statut='o',typ=(cham_no_sdaster) ),
4087          ),
4088
4089
4090          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4091 )  ;
4092 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4093 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4094 # ======================================================================
4095 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4096 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4097 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4098 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4099 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4100 #
4101 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4102 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4103 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4104 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4105 #
4106 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4107 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4108 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4109 # ======================================================================
4110 # RESPONSABLE DESROCHES X.DESROCHES
4111 AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther,
4112                      fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)"
4113                          +" paramètres (temps, ...)",
4114                      reentrant='n',
4115             UIinfo={"groupes":("Modélisation",)},
4116       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE',
4117                           'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF',
4118                           'GRAD_TEMP_INIT','RAYONNEMENT'),),
4119          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
4120
4121          TEMP_IMPO       =FACT(statut='f',max='**',
4122            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
4123                    AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'),
4124                    PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),),
4125            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4126            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4127            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4128            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4129            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4130            EVOL_THER       =SIMP(statut='f',typ=(evol_ther) ),
4131            DDL             =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
4132            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4133            TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4134            TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4135          ),
4136          
4137          FLUX_REP        =FACT(statut='f',max='**',
4138            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4139                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4140                    AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),),
4141            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4142            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4143            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4144            FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4145            FLUN_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4146            FLUN_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4147            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4148            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4149            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4150          ),
4151
4152          FLUX_NL         =FACT(statut='f',max='**',
4153            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4154                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4155            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4156            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4157            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4158            FLUN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4159          ), 
4160          
4161
4162          RAYONNEMENT     =FACT(statut='f',max='**',
4163            fr="Attention, exprimer les températures en Celsius si rayonnement",
4164            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4165                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
4166            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4167            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4168            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4169            SIGMA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4170            EPSILON         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4171            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4172          ),
4173          
4174
4175
4176          ECHANGE         =FACT(statut='f',max='**',
4177            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4178                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4179                    AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
4180                    ENSEMBLE('COEF_H','TEMP_EXT'),
4181                    ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
4182                    ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
4183            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4184            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4185            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4186            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4187            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4188            COEF_H_INF      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4189            TEMP_EXT_INF    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4190            COEF_H_SUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4191            TEMP_EXT_SUP    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4192          ),
4193          
4194
4195          SOURCE          =FACT(statut='f',max='**',
4196            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4197            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4198            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4199            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4200            SOUR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4201          ),
4202          
4203          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
4204            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
4205                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4206                    AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
4207            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4208            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4209            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4210            FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4211            FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4212            FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4213          ),
4214          
4215          ECHANGE_PAROI   =FACT(statut='f',max='**',
4216            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
4217                         UN_PARMI('GROUP_MA_2','MAILLE_2'),),
4218            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4219            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4220            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4221            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4222            COEF_H          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4223            TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
4224            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
4225            CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
4226          ),
4227
4228         LIAISON_DDL     =FACT(statut='f',max='**',
4229            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
4230            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
4231            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
4232            DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ),
4233            COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
4234            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4235          ),
4236
4237          LIAISON_GROUP   =FACT(statut='f',max='**',
4238            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
4239                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
4240                              EXCLUS('GROUP_MA_1','GROUP_NO_2'),
4241                         EXCLUS('GROUP_MA_1','NOEUD_2'),
4242                    EXCLUS('GROUP_NO_1','GROUP_MA_2'),
4243                         EXCLUS('GROUP_NO_1','MAILLE_2'),
4244                         EXCLUS('MAILLE_1','GROUP_NO_2'),
4245                         EXCLUS('MAILLE_1','NOEUD_2'),
4246                         EXCLUS('NOEUD_1','GROUP_MA_2'),
4247                         EXCLUS('NOEUD_1','MAILLE_2'),
4248                         EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
4249            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4250            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4251            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4252            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4253            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4254            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4255            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4256            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4257            SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4258            SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4259            DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4260                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4261            COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
4262            DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
4263                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4264            COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
4265            COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4266            SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4267            TRAN            =SIMP(statut='f',typ='R',max='**'),
4268            ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
4269            CENTRE          =SIMP(statut='f',typ='R',max='**'),
4270          ),
4271
4272          LIAISON_UNIF    =FACT(statut='f',max='**',
4273            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
4274            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4275            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4276            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4277            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4278            DDL             =SIMP(statut='f',typ='TXM',defaut="TEMP",
4279                                  into=("TEMP","TEMP_INF","TEMP_SUP") ),
4280          ),
4281
4282          CONVECTION      =FACT(statut='f',max='**',
4283            VITESSE         =SIMP(statut='o',typ=cham_no_sdaster ),
4284          ),
4285
4286          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
4287 )  ;
4288 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4289 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4290 # ======================================================================
4291 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4292 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4293 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4294 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4295 # (AT YOUR OPTION) ANY LATER VERSION.
4296 #
4297 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4298 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4299 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4300 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4301 #
4302 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4303 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4304 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4305 # ======================================================================
4306 # RESPONSABLE PELLET J.PELLET
4307 AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
4308                    fr="Affecter des matériaux à des zones géométriques d'un maillage",
4309                          reentrant='n',
4310             UIinfo={"groupes":("Modélisation",)},
4311          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
4312          MODELE          =SIMP(statut='f',typ=modele_sdaster),
4313
4314          #  affectation du nom du matériau (par mailles):
4315          #  ----------------------------------------------
4316          AFFE            =FACT(statut='o',max='**',
4317            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4318            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4319            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4320            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4321            MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
4322          ),
4323
4324          #  affectation du nom du matériau (par noeuds):
4325          #  ----------------------------------------------
4326          AFFE_NOEUD        =FACT(statut='f',max='**',
4327            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4328            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4329            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4330            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4331            MATER           =SIMP(statut='o',typ=mater_sdaster,max=1),
4332          ),
4333
4334          #  affectation de comportement (multifibres pour l'instant):
4335          #  ----------------------------------------------
4336          AFFE_COMPOR        =FACT(statut='f',max='**',
4337            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
4338            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4339            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4340            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4341            COMPOR          =SIMP(statut='o',typ=compor_sdaster,max=1),
4342          ),
4343
4344          #  affectation des variables de commande :
4345          #  --------------------------------------------------
4346          # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
4347          LIST_NOM_VARC =SIMP(statut='c',typ='TXM', defaut=("TEMP","CORR","IRRA","HYDR","SECH","EPSA",
4348                                                            "M_ACIER","M_ZIRC","NEUT1","NEUT2")),
4349
4350          AFFE_VARC    =FACT(statut='f',max='**',
4351           regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
4352                   PRESENT_ABSENT('GROUP_MA','TOUT'),
4353                   PRESENT_ABSENT('MAILLE','TOUT'),
4354                   AU_MOINS_UN('EVOL','CHAMP_GD','VALE_REF'),
4355                   EXCLUS('EVOL','CHAMP_GD'),
4356                   ),
4357
4358           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut]
4359           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4360           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4361
4362           NOM_VARC        =SIMP(statut='o',typ='TXM', into=("TEMP","CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC",
4363                                                             "EPSA","NEUT1","NEUT2")),
4364           CHAMP_GD        =SIMP(statut='f',typ=cham_gd_sdaster,),
4365           EVOL            =SIMP(statut='f',typ=evol_sdaster,),
4366
4367           B_EVOL          =BLOC(condition="EVOL!=None",
4368               NOM_CHAM      =SIMP(statut='f',typ='TXM'),
4369               PROL_DROITE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
4370               PROL_GAUCHE   =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
4371               FONC_INST     =SIMP(statut='f',typ=(fonction_sdaster,formule)),
4372           ),
4373           VALE_REF          =SIMP(statut='f',typ='R'),
4374          ),
4375
4376          #  mots clés cachés pour les variables de commande NEUTi :
4377          #  -------------------------------------------------------
4378          VARC_NEUT1   =FACT(statut='d',
4379            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT1"),
4380            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
4381            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
4382            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")),
4383          ),
4384          VARC_NEUT2   =FACT(statut='d',
4385            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT2"),
4386            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
4387            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
4388            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")),
4389          ),
4390
4391          #  mots clés cachés pour variable de commande TEMP :
4392          #  --------------------------------------------------
4393          VARC_TEMP    =FACT(statut='d',
4394            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="TEMP"),
4395            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
4396            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4397            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4398            VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
4399          ),
4400
4401          #  mots clés cachés pour variable de commande SECH :
4402          #  --------------------------------------------------
4403          VARC_SECH    =FACT(statut='d',
4404            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="SECH"),
4405            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
4406            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
4407            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)),
4408          ),
4409
4410          #  mots clés cachés pour variable de commande HYDR :
4411          #  --------------------------------------------------
4412          VARC_HYDR    =FACT(statut='d',
4413            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="HYDR"),
4414            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="HYDR_R"),
4415            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
4416            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
4417          ),
4418
4419          #  mots clés cachés pour variable de commande CORR :
4420          #  --------------------------------------------------
4421          VARC_CORR    =FACT(statut='d',
4422            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="CORR"),
4423            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="CORR_R"),
4424            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
4425            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
4426          ),
4427
4428          #  mots clés cachés pour variable de commande IRRA :
4429          #  --------------------------------------------------
4430          VARC_IRRA    =FACT(statut='d',
4431            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="IRRA"),
4432            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="IRRA_R"),
4433            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
4434            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
4435          ),
4436
4437          #  mots clés cachés pour variable de commande EPSA :
4438          #  --------------------------------------------------
4439          VARC_EPSA    =FACT(statut='d',
4440            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="EPSA"),
4441            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="EPSI_R"),
4442            CMP_GD          =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)),
4443            CMP_VARC        =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPSAXX","EPSAYY","EPSAZZ","EPSAXY","EPSAXZ","EPSAYZ",)),
4444          ),
4445          #  mots clés cachés pour variable de commande metallurgique ACIER :
4446          #  -----------------------------------------------------------------
4447          VARC_M_ACIER  =FACT(statut='d',
4448            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ACIER"),
4449            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
4450            CMP_GD          =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("V1","V2","V3","V4","V5","V6","V7")),
4451            CMP_VARC        =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE",
4452                                                                           "PMARTENS","TAUSTE","TRANSF","TACIER",)),
4453          ),
4454          #  mots clés cachés pour variable de commande metallurgique ZIRCALOY :
4455          #  --------------------------------------------------------------------
4456          VARC_M_ZIRC  =FACT(statut='d',
4457            NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="M_ZIRC"),
4458            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
4459            CMP_GD          =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("V1","V2","V3")),
4460            CMP_VARC        =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("ALPHPUR","ALPHBETA","TZIRC",)),
4461          ),
4462
4463          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
4464 )  ;
4465
4466
4467 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR PELLET J.PELLET 
4468 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4469 # ======================================================================
4470 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4471 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4472 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4473 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
4474 # (AT YOUR OPTION) ANY LATER VERSION.
4475 #
4476 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
4477 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
4478 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
4479 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
4480 #
4481 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
4482 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
4483 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
4484 # ======================================================================
4485 # RESPONSABLE PELLET J.PELLET
4486 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
4487             UIinfo={"groupes":("Modélisation",)},
4488                  fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n',
4489          regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
4490          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
4491          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
4492          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ),
4493 #
4494 #====
4495 # Définition des grandeurs caractéristiques
4496 #====
4497 #
4498          GRANDEUR_CARA =FACT(statut='f',max=1,
4499          fr="Grandeurs caractéristiques pour l'adimensionnement des indicateurs d'erreur HM",
4500          ang="Characteristic data for HM error estimators adimensionalisation",
4501 #
4502             LONGUEUR      =SIMP(statut='f',typ='R',val_min=0,
4503                                 fr ="Longueur caractéristique",
4504                                 ang="Characteristic length",),
4505             PRESSION      =SIMP(statut='f',typ='R',val_min=0,
4506                                 fr ="Pression caractéristique",
4507                                 ang="Characteristic pressure",),
4508             TEMPERATURE   =SIMP(statut='f',typ='R',val_min=0,
4509                                 fr ="Température caractéristique",
4510                                 ang="Characteristic temperature",),),
4511 #
4512          AFFE_SOUS_STRUC =FACT(statut='f',
4513            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
4514            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4515            SUPER_MAILLE    =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
4516            PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
4517          ),
4518          AFFE            =FACT(statut='f',max='**',
4519            regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
4520            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4521            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4522            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4523            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
4524            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
4525            PHENOMENE       =SIMP(statut='o',typ='TXM',
4526                                  into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
4527                 b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
4528                                         fr="modélisations mécaniques",
4529                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
4530                                   "2D_DIS_T",        # RESP. : FLEJOU J.L.FLEJOU
4531                                   "2D_DIS_TR",       # RESP. : FLEJOU J.L.FLEJOU
4532                                   "2D_FLUI_ABSO",    # RESP. : DEVESA G.DEVESA
4533                                   "2D_FLUI_PESA",    # RESP. : GREFFET N.GREFFET
4534                                   "2D_FLUI_STRU",    # RESP. : GREFFET N.GREFFET
4535                                   "2D_FLUIDE",       # RESP. : GREFFET N.GREFFET
4536                                   "3D",              # RESP. : DESROCHES X.DESROCHES
4537                                   "3D_ABSO",         # RESP. : DEVESA G.DEVESA
4538                                   "3D_FAISCEAU",     # RESP. : VOLDOIRE F.VOLDOIRE
4539                                   "3D_FLUI_ABSO",    # RESP. : DEVESA G.DEVESA
4540                                   "3D_FLUIDE",       # RESP. : GREFFET N.GREFFET
4541                                   "3D_INCO",         # RESP. : MICHEL S.MICHEL
4542                                   "3D_INCO_GD",      # RESP. : MICHEL S.MICHEL
4543                                   "3D_SI",           # RESP. : DESROCHES X.DESROCHES
4544                                   "3D_GRAD_EPSI",    # RESP. : MICHEL S.MICHEL
4545                                   "3D_GRAD_VARI",    # RESP. : MICHEL S.MICHEL
4546                                   "3D_XFEM_CONT",    # RESP. : GENIAUT S.GENIAUT
4547                                   "3D_JOINT",        # RESP. : LAVERNE J.LAVERNE
4548                                   "AXIS",            # RESP. : LEFEBVRE J.P.LEFEBVRE
4549                                   "AXIS_FLUI_STRU",  # RESP. : GREFFET N.GREFFET
4550                                   "AXIS_FLUIDE",     # RESP. : GREFFET N.GREFFET
4551                                   "AXIS_FOURIER",    # RESP. : DESROCHES X.DESROCHES
4552                                   "AXIS_INCO",       # RESP. : MICHEL S.MICHEL
4553                                   "AXIS_INCO_GD",    # RESP. : MICHEL S.MICHEL
4554                                   "AXIS_NS",         # RESP. : BADEL P.BADEL
4555                                   "AXIS_SI",         # RESP. : DESROCHES X.DESROCHES
4556                                   "AXIS_GRAD_VARI",  # RESP. : MICHEL S.MICHEL
4557                                   "AXIS_JOINT",      # RESP. : LAVERNE J.LAVERNE
4558                                   "AXIS_ELDI",       # RESP. : LAVERNE J.LAVERNE
4559                                   "BARRE",           # RESP. : FLEJOU J.L.FLEJOU
4560                                   "2D_BARRE",        # RESP. : FLEJOU J.L.FLEJOU
4561                                   "C_PLAN",          # RESP. : LEFEBVRE J.P.LEFEBVRE
4562                                   "C_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT
4563                                   "C_PLAN_NS",       # RESP. : BADEL P.BADEL
4564                                   "C_PLAN_SI",       # RESP. : DESROCHES X.DESROCHES
4565                                   "C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
4566                                   "CABLE",           # RESP. : FLEJOU J.L.FLEJOU
4567                                   "CABLE_POULIE",    # RESP. : None
4568                                   "COQUE_3D",        # RESP. : DESROCHES X.DESROCHES
4569                                   "COQUE_AXIS",      # RESP. : DESROCHES X.DESROCHES
4570                                   "COQUE_C_PLAN",    # RESP. : DESROCHES X.DESROCHES
4571                                   "COQUE_D_PLAN",    # RESP. : DESROCHES X.DESROCHES
4572                                   "D_PLAN",          # RESP. : LEFEBVRE J.P.LEFEBVRE
4573                                   "D_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT
4574                                   "D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
4575                                   "D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL
4576                                   "D_PLAN_NS",       # RESP. : BADEL P.BADEL
4577                                   "PLAN_JOINT",      # RESP. : LAVERNE J.LAVERNE
4578                                   "PLAN_ELDI",       # RESP. : LAVERNE J.LAVERNE
4579                                   "D_PLAN_ABSO",     # RESP. : DEVESA G.DEVESA
4580                                   "D_PLAN_INCO",     # RESP. : MICHEL S.MICHEL
4581                                   "D_PLAN_INCO_GD",  # RESP. : MICHEL S.MICHEL
4582                                   "D_PLAN_SI",       # RESP. : DESROCHES X.DESROCHES
4583                                   "DIS_T",           # RESP. : FLEJOU J.L.FLEJOU
4584                                   "DIS_TR",          # RESP. : FLEJOU J.L.FLEJOU
4585                                   "DKT",             # RESP. : DESROCHES X.DESROCHES
4586                                   "DKTG",            # RESP. : MARKOVIC D.MARKOVIC
4587                                   "DST",             # RESP. : DESROCHES X.DESROCHES
4588                                   "FLUI_STRU",       # RESP. : GREFFET N.GREFFET
4589                                   "GRILLE_EXCENTRE", # RESP. : ROSPARS C.ROSPARS
4590                                   "GRILLE_MEMBRANE", # RESP. : ROSPARS C.ROSPARS
4591                                   "POU_C_T",         # RESP. : FLEJOU J.L.FLEJOU
4592                                   "POU_D_E",         # RESP. : FLEJOU J.L.FLEJOU
4593                                   "POU_D_EM",        # RESP. : FLEJOU J.L.FLEJOU
4594                                   "POU_D_T",         # RESP. : FLEJOU J.L.FLEJOU
4595                                   "POU_D_T_GD",      # RESP. : FLEJOU J.L.FLEJOU
4596                                   "POU_D_TG",        # RESP. : FLEJOU J.L.FLEJOU
4597                                   "POU_D_TGM",       # RESP. : FLEJOU J.L.FLEJOU
4598                                   "Q4G",             # RESP. : DESROCHES X.DESROCHES
4599                                   "TUYAU_3M",        # RESP. : PROIX J.M.PROIX
4600                                   "TUYAU_6M",        # RESP. : PROIX J.M.PROIX
4601                                   "SHB8",            # RESP. : DESROCHES X.DESROCHES
4602                                   "D_PLAN_HHM",      # RESP. : GRANET S.GRANET
4603                                   "D_PLAN_HM",       # RESP. : GRANET S.GRANET
4604                                   "D_PLAN_THH",      # RESP. : GRANET S.GRANET
4605                                   "D_PLAN_THHM",     # RESP. : GRANET S.GRANET
4606                                   "D_PLAN_THM",      # RESP. : GRANET S.GRANET
4607                                   "D_PLAN_HHMD",     # RESP. : GRANET S.GRANET
4608                                   "D_PLAN_HH2MD",    # RESP. : GRANET S.GRANET
4609                                   "D_PLAN_HMD",      # RESP. : GRANET S.GRANET
4610                                   "D_PLAN_THHD",     # RESP. : GRANET S.GRANET
4611                                   "D_PLAN_THH2D",    # RESP. : GRANET S.GRANET
4612                                   "D_PLAN_THVD",     # RESP. : GRANET S.GRANET
4613                                   "D_PLAN_THH2MD",   # RESP. : GRANET S.GRANET
4614                                   "D_PLAN_THHMD",    # RESP. : GRANET S.GRANET
4615                                   "D_PLAN_THMD",     # RESP. : GRANET S.GRANET
4616                                   "D_PLAN_HHMS",     # RESP. : GRANET S.GRANET
4617                                   "D_PLAN_HH2MS",    # RESP. : GRANET S.GRANET
4618                                   "D_PLAN_HMS",      # RESP. : GRANET S.GRANET
4619                                   "D_PLAN_THHS",     # RESP. : GRANET S.GRANET
4620                                   "D_PLAN_THH2S",    # RESP. : GRANET S.GRANET
4621                                   "D_PLAN_THVS",     # RESP. : GRANET S.GRANET
4622                                   "D_PLAN_THH2MS",   # RESP. : GRANET S.GRANET
4623                                   "D_PLAN_THHMS",    # RESP. : GRANET S.GRANET
4624                                   "D_PLAN_THMS",     # RESP. : GRANET S.GRANET
4625                                   "D_PLAN_HM_P",     # RESP. : GRANET S.GRANET
4626                                   "D_PLAN_HHD",      # RESP. : GRANET S.GRANET
4627                                   "D_PLAN_HHS",      # RESP. : GRANET S.GRANET
4628                                   "D_PLAN_HH2D",     # RESP. : GRANET S.GRANET
4629                                   "D_PLAN_HH2S",     # RESP. : GRANET S.GRANET
4630                                   "D_PLAN_2DG",      # RESP. : GRANET S.GRANET
4631                                   "D_PLAN_DIL",      # RESP. : GRANET S.GRANET
4632                                   "AXIS_THH",        # RESP. : GRANET S.GRANET
4633                                   "AXIS_THHM",       # RESP. : GRANET S.GRANET
4634                                   "AXIS_THM",        # RESP. : GRANET S.GRANET
4635                                   "AXIS_HHM",        # RESP. : GRANET S.GRANET
4636                                   "AXIS_HM",         # RESP. : GRANET S.GRANET
4637                                   "AXIS_HH2MD",      # RESP. : GRANET S.GRANET
4638                                   "AXIS_HHMD",       # RESP. : GRANET S.GRANET
4639                                   "AXIS_HMD",        # RESP. : GRANET S.GRANET
4640                                   "AXIS_THHD",       # RESP. : GRANET S.GRANET
4641                                   "AXIS_THH2D",      # RESP. : GRANET S.GRANET
4642                                   "AXIS_THVD",       # RESP. : GRANET S.GRANET
4643                                   "AXIS_THHMD",      # RESP. : GRANET S.GRANET
4644                                   "AXIS_THH2MD",     # RESP. : GRANET S.GRANET
4645                                   "AXIS_THMD",       # RESP. : GRANET S.GRANET
4646                                   "AXIS_HH2MS",      # RESP. : GRANET S.GRANET
4647                                   "AXIS_HHMS",       # RESP. : GRANET S.GRANET
4648                                   "AXIS_HMS",        # RESP. : GRANET S.GRANET
4649                                   "AXIS_THHS",       # RESP. : GRANET S.GRANET
4650                                   "AXIS_THH2S",      # RESP. : GRANET S.GRANET
4651                                   "AXIS_THVS",       # RESP. : GRANET S.GRANET
4652                                   "AXIS_THHMS",      # RESP. : GRANET S.GRANET
4653                                   "AXIS_THH2MS",     # RESP. : GRANET S.GRANET
4654                                   "AXIS_THMS",       # RESP. : GRANET S.GRANET
4655                                   "AXIS_HHD",        # RESP. : GRANET S.GRANET
4656                                   "AXIS_HHS",        # RESP. : GRANET S.GRANET
4657                                   "AXIS_HH2D",       # RESP. : GRANET S.GRANET
4658                                   "AXIS_HH2S",       # RESP. : GRANET S.GRANET
4659                                   "3D_HHM" ,         # RESP. : GRANET S.GRANET
4660                                   "3D_HM",           # RESP. : GRANET S.GRANET
4661                                   "3D_THH",          # RESP. : GRANET S.GRANET
4662                                   "3D_THV",          # RESP. : GRANET S.GRANET
4663                                   "3D_THHM",         # RESP. : GRANET S.GRANET
4664                                   "3D_THM",          # RESP. : GRANET S.GRANET
4665                                   "3D_HHMD",         # RESP. : GRANET S.GRANET
4666                                   "3D_HMD",          # RESP. : GRANET S.GRANET
4667                                   "3D_THHD",         # RESP. : GRANET S.GRANET
4668                                   "3D_THVD",         # RESP. : GRANET S.GRANET
4669                                   "3D_THHMD",        # RESP. : GRANET S.GRANET
4670                                   "3D_THMD",         # RESP. : GRANET S.GRANET
4671                                   "3D_HHMS",         # RESP. : GRANET S.GRANET
4672                                   "3D_HMS",          # RESP. : GRANET S.GRANET
4673                                   "3D_THHS",         # RESP. : GRANET S.GRANET
4674                                   "3D_THVS",         # RESP. : GRANET S.GRANET
4675                                   "3D_THHMS",        # RESP. : GRANET S.GRANET
4676                                   "3D_THMS",         # RESP. : GRANET S.GRANET
4677                                   "3D_THH2MD",       # RESP. : GRANET S.GRANET
4678                                   "3D_THH2MS",       # RESP. : GRANET S.GRANET
4679                                   "3D_HH2MD",        # RESP. : GRANET S.GRANET
4680                                   "3D_HH2MS",        # RESP. : GRANET S.GRANET
4681                                   "3D_THH2S",        # RESP. : GRANET S.GRANET
4682                                   "3D_THH2D",        # RESP. : GRANET S.GRANET
4683                                   "3D_HHD",          # RESP. : GRANET S.GRANET
4684                                   "3D_HHS",          # RESP. : GRANET S.GRANET
4685                                   "3D_HH2D",         # RESP. : GRANET S.GRANET
4686                                   "3D_HH2S",         # RESP. : GRANET S.GRANET
4687                                   "VF1",             # RESP. : GRANET S.GRANET
4688                                                                      )  )  ),
4689
4690                 b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
4691                                         fr="modélisations thermiques",
4692                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
4693                                   "3D",              # RESP. : DURAND C.DURAND
4694                                   "3D_DIAG",         # RESP. : DURAND C.DURAND
4695                                   "AXIS",            # RESP. : DURAND C.DURAND
4696                                   "AXIS_DIAG",       # RESP. : DURAND C.DURAND
4697                                   "AXIS_FOURIER",    # RESP. : DESROCHES X.DESROCHES
4698                                   "COQUE",           # RESP. : DESROCHES X.DESROCHES
4699                                   "COQUE_AXIS",      # RESP. : DESROCHES X.DESROCHES
4700                                   "COQUE_PLAN",      # RESP. : DESROCHES X.DESROCHES
4701                                   "PLAN",            # RESP. : DURAND C.DURAND
4702                                   "PLAN_DIAG",       # RESP. : DURAND C.DURAND
4703                                                                       ),),),
4704
4705                 b_acoustique    =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
4706                                         fr="modélisations acoustiques",
4707                      MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
4708                                   "3D",              # RESP. : None
4709                                   "PLAN"             # RESP. : None
4710                                                                        ), ),),
4711
4712          ),
4713 ) ;
4714 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4715 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4716 # ======================================================================
4717 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4718 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4719 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4720 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4721 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4722 #
4723 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4724 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4725 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4726 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4727 #
4728 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4729 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4730 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4731 # ======================================================================
4732 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
4733 AIDE=PROC(nom="AIDE",op=42,
4734        UIinfo={"groupes":("Modélisation",)},
4735        fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples"
4736            +" (type d'éléments, option) disponibles dans la version.",
4737        regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
4738        UNITE       =SIMP(statut='f',typ='I',defaut=8),  
4739        TYPE_ELEM   =FACT(fr="couple type_elem option",statut='f',
4740          INITEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
4741                         ),
4742        CONCEPT     =FACT(statut='f',max='**',
4743          NOM          =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"),
4744          OPTION       =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE",
4745                                  into=("TOUT_TYPE","CREER","A_CREER",) ),
4746          ),
4747 ) ;
4748 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4749 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4750 # ======================================================================
4751 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4752 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4753 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4754 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4755 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4756 #
4757 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4758 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4759 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4760 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4761 #
4762 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4763 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4764 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4765 # ======================================================================
4766 # RESPONSABLE PELLET J.PELLET
4767 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
4768                    fr="Assembler deux maillages pour en former un nouveau",
4769                    reentrant='n',
4770                    UIinfo={"groupes":("Maillage",)},
4771          MAILLAGE_1 =  SIMP(statut='o',typ=maillage_sdaster,),
4772          MAILLAGE_2 =  SIMP(statut='o',typ=maillage_sdaster,),
4773          OPERATION  =  SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),),
4774          b_collage  =  BLOC(condition = "OPERATION == 'COLLAGE'",
4775            COLLAGE  =  FACT(statut='o',
4776               GROUP_MA_1     =SIMP(statut='o',typ=grma),
4777               GROUP_MA_2     =SIMP(statut='o',typ=grma),
4778                              ),
4779                            ),
4780 )  ;
4781 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4782 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4783 # ======================================================================
4784 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4785 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4786 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4787 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4788 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4789 #
4790 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4791 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4792 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4793 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4794 #
4795 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4796 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4797 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4798 # ======================================================================
4799 # RESPONSABLE BODEL C.BODEL
4800 def asse_matr_gene_prod(METHODE,**args):
4801     if   (METHODE=="INITIAL") : return matr_asse_gene_r
4802     elif (args['OPTION']=="RIGI_GENE_C") : return matr_asse_gene_c
4803     else : return matr_asse_gene_r
4804
4805 ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=asse_matr_gene_prod,
4806                     fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée",
4807                     reentrant='n',
4808             UIinfo={"groupes":("Matrices/vecteurs",)},
4809          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
4810          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
4811          b_option     =BLOC(condition = "METHODE == 'CLASSIQUE'",
4812            OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ),
4813            ),
4814 )  ;
4815 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4816 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4817 # ======================================================================
4818 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4819 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4820 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4821 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4822 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4823 #
4824 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4825 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4826 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4827 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4828 #
4829 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4830 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4831 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4832 # ======================================================================
4833 # RESPONSABLE PELLET J.PELLET
4834 def asse_matrice_prod(MATR_ELEM,**args):
4835   if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
4836   if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
4837   if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
4838   if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
4839   raise AsException("type de concept resultat non prevu")
4840
4841 ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
4842                   fr="Construction d'une matrice assemblée",reentrant='n',
4843             UIinfo={"groupes":("Matrices/vecteurs",)},
4844          MATR_ELEM       =SIMP(statut='o',
4845                                typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
4846          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster),
4847          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
4848          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
4849 )  ;
4850 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4851 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4852 # ======================================================================
4853 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4854 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4855 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4856 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4857 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4858 #
4859 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4860 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4861 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4862 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4863 #
4864 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4865 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4866 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4867 # ======================================================================
4868 # RESPONSABLE PELLET J.PELLET
4869
4870 ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster,
4871                   fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n',
4872             UIinfo={"groupes":("Matrices/vecteurs",)},
4873          VECT_ELEM       =SIMP(statut='o',typ=vect_elem,max='**'),
4874          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
4875          INFO            =SIMP(statut='f',typ='I',into=(1,2,) ),
4876 )  ;
4877 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4878 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4879 # ======================================================================
4880 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4881 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4882 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4883 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4884 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4885 #
4886 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4887 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4888 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4889 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4890 #
4891 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4892 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4893 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4894 # ======================================================================
4895 # RESPONSABLE BODEL C.BODEL
4896 ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
4897                     fr="Projection des chargements sur la base modale d'une sous structure",
4898                     reentrant='n',
4899             UIinfo={"groupes":("Matrices/vecteurs",)},
4900          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
4901          METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
4902          b_nume     =BLOC(condition = "METHODE == 'CLASSIQUE'",
4903              CHAR_SOUS_STRUC =FACT(statut='o',max='**',
4904              SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
4905              VECT_ASSE       =SIMP(statut='o',typ=cham_no_sdaster ),
4906            ),
4907          ),
4908 )  ;
4909 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4910 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4911 # ======================================================================
4912 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4913 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4914 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4915 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4916 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4917 #
4918 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4919 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4920 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4921 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4922 #
4923 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4924 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4925 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4926 # ======================================================================
4927 # RESPONSABLE DEVESA G.DEVESA
4928 CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
4929                      fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
4930                      reentrant='n',
4931             UIinfo={"groupes":("Résolution",)},
4932          ENER_SOL        =FACT(statut='o',
4933            regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
4934                    PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
4935 #  Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
4936                    PRESENT_PRESENT('KRX','KRY'),
4937                    PRESENT_PRESENT('KRX','KRZ'),
4938                    PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
4939                    PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
4940                    PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
4941            METHODE         =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
4942            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
4943            GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
4944            GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
4945            FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
4946            COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
4947            KX              =SIMP(statut='o',typ='R' ),
4948            KY              =SIMP(statut='o',typ='R' ),
4949            KZ              =SIMP(statut='o',typ='R' ),
4950            KRX             =SIMP(statut='f',typ='R' ),
4951            KRY             =SIMP(statut='f',typ='R' ),
4952            KRZ             =SIMP(statut='f',typ='R' ),
4953            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
4954            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
4955            COOR_CENTRE     =SIMP(statut='f',typ='R',max=3),
4956          ),
4957          AMOR_INTERNE    =FACT(statut='o',
4958            ENER_POT        =SIMP(statut='o',typ=table_sdaster ),
4959            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
4960            AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
4961          ),
4962          AMOR_SOL        =FACT(statut='o',
4963            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
4964            FONC_AMOR_GEO   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
4965            HOMOGENE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
4966            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
4967          ),
4968 )  ;
4969 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
4970 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4971 # ======================================================================
4972 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
4973 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4974 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
4975 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
4976 # (AT YOUR OPTION) ANY LATER VERSION.                                 
4977 #
4978 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
4979 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
4980 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
4981 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
4982 #
4983 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
4984 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
4985 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
4986 # ======================================================================
4987 # RESPONSABLE ASSIRE A.ASSIRE
4988
4989 CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem,
4990                     fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés",
4991                     reentrant='n',
4992             UIinfo={"groupes":("Post traitements",)},
4993          MODELE          =SIMP(statut='o',typ=modele_sdaster),
4994          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
4995          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
4996
4997          regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),),
4998          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
4999          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
5000          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
5001
5002 #
5003 #
5004 #  introduire un mot cle de type modelisation : mécanique,thermique,...
5005 #
5006
5007          OPTION          =SIMP(statut='o',typ='TXM',
5008                                into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
5009                                      "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
5010                                      "COOR_ELGA"), ),
5011
5012          b_thermique  =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)",
5013            TEMP            =SIMP(statut='o',typ=(cham_no_sdaster,)),
5014          ),
5015
5016          b_acoustique  =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)",
5017            PRES            =SIMP(statut='o',typ=(cham_no_sdaster,)),
5018          ),
5019
5020
5021
5022          EXCIT           =FACT(statut='f',max='**',
5023                regles=(EXCLUS('FONC_MULT','COEF_MULT', ),),
5024                CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)),
5025                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5026                COEF_MULT       =SIMP(statut='f',typ='R'), ),
5027
5028          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
5029          ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
5030          NUME_COUCHE     =SIMP(statut='f',typ='I',defaut= 1),
5031          NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
5032          MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
5033          ANGLE           =SIMP(statut='f',typ='I',defaut= 0),
5034 )  ;
5035 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5036 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5037 # ======================================================================
5038 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5039 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5040 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5041 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5042 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5043 #
5044 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5045 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5046 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5047 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5048 #
5049 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5050 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5051 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5052 # ======================================================================
5053 # RESPONSABLE PELLET J.PELLET
5054
5055 CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster,
5056                     fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
5057                     reentrant='n',
5058             UIinfo={"groupes":("Matrices/vecteurs",)},
5059          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
5060          CHAR_CINE       =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ),
5061          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
5062          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
5063 )  ;
5064 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5065 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5066 # ======================================================================
5067 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5068 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5069 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5070 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5071 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5072 #
5073 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5074 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5075 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5076 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5077 #
5078 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5079 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5080 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5081 # ======================================================================
5082 # RESPONSABLE DEVESA G.DEVESA
5083 def calc_char_seisme_prod(MATR_MASS,**args ):
5084   if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster
5085   raise AsException("type de concept resultat non prevu")
5086
5087 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
5088                       reentrant='n',fr="Calcul du chargement sismique",
5089             UIinfo={"groupes":("Matrices/vecteurs",)},
5090          regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
5091          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
5092          DIRECTION       =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"),
5093          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),         
5094          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
5095          b_mode_stat     =BLOC ( condition = "MODE_STAT != None",
5096            regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
5097            NOEUD           =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
5098            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5099          ),
5100          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
5101 )  ;
5102 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5103 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5104 # ======================================================================
5105 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5106 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5107 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5108 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
5109 # (AT YOUR OPTION) ANY LATER VERSION.
5110 #
5111 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
5112 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
5113 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
5114 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
5115 #
5116 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
5117 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
5118 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
5119 # ======================================================================
5120 # RESPONSABLE ASSIRE A.ASSIRE
5121 def calc_elem_prod(RESULTAT,**args):
5122    if AsType(RESULTAT) != None : return AsType(RESULTAT)
5123    raise AsException("type de concept resultat non prevu")
5124
5125 CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
5126             UIinfo={"groupes":("Post traitements",)},
5127             fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )",
5128      MODELE          =SIMP(statut='f',typ=modele_sdaster),
5129      CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
5130      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
5131
5132      RESULTAT        =SIMP(statut='o',typ=resultat_sdaster,
5133                                       fr="Résultat d'une commande globale"),
5134
5135      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
5136                     'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
5137              CONCEPT_SENSIBLE("SEPARE"),
5138              DERIVABLE('RESULTAT'),),
5139      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5140      NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5141      NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5142      NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
5143      NOM_CAS         =SIMP(statut='f',typ='TXM' ),
5144
5145      INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5146      FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
5147      LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
5148      LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
5149      PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
5150      CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
5151      LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
5152
5153      TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5154      GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
5155                            fr="le calcul ne sera effectué que sur ces mailles là"),
5156      MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
5157                            fr="le calcul ne sera effectué que sur ces mailles là"),
5158
5159 #    definition d'un repere local
5160
5161      REPE_COQUE      =FACT(statut='f',max='**',
5162                            fr="définiton du lieu de post-traitement",
5163                            regles=EXCLUS('ANGL_REP','VECTEUR'),
5164           TOUT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
5165           GROUP_MA     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',),
5166           MAILLE       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',),
5167
5168           NUME_COUCHE  =SIMP(statut='f',typ='I',defaut= 1,
5169                              fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ),
5170           NIVE_COUCHE  =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
5171                              fr="position dans l'épaisseur de la coque, ou de la couche" ),
5172
5173           ANGLE        =SIMP(statut='f',typ='I',defaut= 0,
5174                              fr="angle de dépouillement pour les tuyaux, en degres à partir de la génératrice" ),
5175
5176           PLAN         =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"),
5177                                fr="Plan de calcul pour les plaques excentrées" ),
5178
5179           ANGL_REP     =SIMP(statut='f',typ='R',min=2,max=2,
5180                            fr="définition du repere de post-traitement, par défaut ANGL_REP=(0.,0.)"),
5181           VECTEUR      =SIMP(statut='f',typ='R',min=3,max=3,
5182                            fr="définition du repere de post-traitement, par défaut VECTEUR=(1.,0.,0.)"),
5183                             ),
5184
5185 #    options pour des resultats lineaires
5186
5187      b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\
5188                                                                mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\
5189                                                                mult_elas,fourier_elas,base_modale,mode_flamb)",
5190                                                                fr="options mecaniques lineaires",
5191           TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires",
5192                            into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES",
5193                                  "INDI_ERREUR","AUTRES","TOUTES"),
5194                            ),
5195           b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
5196                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA",
5197                               #  contraintes
5198                            into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
5199                                   "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART",
5200                                   "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO","ARCO_ELNO_SIGM",
5201                               # déformations
5202                                  "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL",
5203                                  "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",
5204                                  "EPVC_ELNO","EPVC_ELGA",
5205                               #  ENER
5206                                  "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
5207                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",
5208                               #  estimateurs erreur
5209                                  "SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM",
5210                                  "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM",
5211                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5212                                  "SING_ELEM","SING_ELNO_ELEM",
5213                               #  CRIT
5214                                  "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT",
5215                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5216                                  "ENDO_ELGA","ENDO_ELNO_ELGA",
5217                                  "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5218                               #  derivees
5219                                  "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI",
5220                               #  autres
5221                                  "VALE_NCOU_MAXI","PRES_DBEL_DEPL"),),
5222
5223                NOM_CHAM  =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ),
5224                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI",  ),
5225
5226                 b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5227                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5228                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5229                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5230                     RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
5231
5232                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5233                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5234                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1.,
5235                                   fr="precision demandee pour calculer la carte de taille des elements"),),
5236
5237                EXCIT           =FACT(statut='f',max='**',
5238                                      fr="Charges contenant les températures, les efforts répartis pour les poutres...",
5239                                      regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5240                     CHARGE          =SIMP(statut='o',typ=char_meca ),
5241                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5242                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5243                     COEF_MULT       =SIMP(statut='f',typ='R'),
5244                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5245                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5246                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5247                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5248
5249
5250                             ),
5251 #             fin bloc b_toutes
5252
5253           b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
5254                                      fr="options de contraintes elasticite 2D et 3D",
5255               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
5256                             fr="option de calcul des contraintes",
5257                            into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),),
5258
5259                     b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \
5260                                       (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION ) or \
5261                                       (type(OPTION)==type(()) and  'SIEF_ELGA_DEPL' in OPTION ) ",
5262                                       fr="charge contenant les temperatures ou autre charge",
5263                          EXCIT           =FACT(statut='f',max='**',
5264                          CHARGE          =SIMP(statut='o',typ=char_meca ),),
5265                                     ),
5266                                   ),
5267
5268           b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
5269                                       fr="options de contraintes elasticite poutres, coques, tuyaux",
5270                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
5271                             fr="option de calcul des contraintes ou efforts generalises",
5272                             into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO",
5273                                    "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART",
5274                                    "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),),
5275
5276                b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\
5277                                                        'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \
5278                                             (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION ) or \
5279                                             (type(OPTION)==type(()) and  'SIEF_ELGA_DEPL' in OPTION ) or \
5280                                             (type(OPTION)==type(()) and  'SIPO_ELNO_DEPL' in OPTION ) or \
5281                                             (type(OPTION)==type(()) and  'EFGE_ELNO_DEPL' in OPTION ) ",
5282                                             fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre",
5283                     EXCIT           =FACT(statut='f',max='**',
5284                                           regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5285                          CHARGE          =SIMP(statut='f',typ=char_meca ),
5286                          FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5287                          FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5288                          COEF_MULT       =SIMP(statut='f',typ='R'),
5289                          COEF_MULT_C     =SIMP(statut='f',typ='C'),
5290                          PHAS_DEG        =SIMP(statut='f',typ='R'),
5291                          PUIS_PULS       =SIMP(statut='f',typ='I'),
5292                          TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5293                              ),
5294
5295
5296                             ),
5297 #          fin bloc contraintes struct
5298
5299           b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
5300                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5301                            into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL",
5302                                  "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO","EPVC_ELNO","EPVC_ELGA",),
5303                                  ),
5304 b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \
5305                                       (type(OPTION)==type(()) and  'EPSI_ELNO_DEPL' in OPTION ) or \
5306                                       (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION ) or \
5307                                       (type(OPTION)==type(()) and  'EPSI_ELGA_DEPL' in OPTION ) or \
5308                                       (type(OPTION)==type(()) and  'EPME_ELNO_DEPL' in OPTION ) or \
5309                                       (type(OPTION)==type(()) and  'EPME_ELGA_DEPL' in OPTION ) ",
5310                                       fr="charge contenant les temperatures",
5311                     EXCIT           =FACT(statut='f',max='**',
5312                          CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5313                                  ),
5314                                        ),
5315           b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
5316                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5317                            into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
5318                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",),
5319                                  ),
5320                b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \
5321                                       (type(OPTION)==type(()) and  'EPOT_ELEM_DEPL' in OPTION ) or \
5322                                       (type(OPTION)==type(()) and  'ENEL_ELGA' in OPTION ) or \
5323                                       (type(OPTION)==type(()) and  'ENEL_ELNO_ELGA' in OPTION ) or \
5324                                       (type(OPTION)==type(()) and  'ECIN_ELEM_DEPL' in OPTION ) ",
5325                                       fr="charge contenant les temperatures",
5326                     EXCIT           =FACT(statut='f',max='**',
5327                          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),),
5328                               ),
5329                                  ),
5330
5331           b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
5332                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5333                            into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
5334                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5335                                  "ENDO_ELGA","ENDO_ELNO_ELGA",
5336                                  "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5337                                  ) ),
5338                 EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5339                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5340                                  ),
5341
5342           b_derivees         =BLOC( condition = "TYPE_OPTION=='DERIVEES'",
5343                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5344                            into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI",
5345                                  ) ),),
5346
5347           b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
5348                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5349                            into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL",
5350                                  ) ),
5351                b_maxi    =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
5352                                 (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
5353                     NOM_CHAM  =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
5354                     NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
5355                                  ),
5356
5357           b_indi_erreur        =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
5358                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
5359                            into=("SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM",
5360                                  "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM",
5361                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5362                                  "SING_ELEM","SING_ELNO_ELEM",
5363                                  )),
5364
5365                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5366                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5367                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5368                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5369                     RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
5370
5371                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5372                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5373                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
5374                                   fr="precision demandee pour calculer la carte de taille des elements" ),),
5375
5376                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5377                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5378                                  ),
5379                                  ),
5380 #    fin bloc lineaire
5381
5382 #    statique ou dynamique non lineaire : evol_noli
5383      b_noli          =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options mecaniques non lineaires",
5384           TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques non lineaires",
5385                            into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT",
5386                                  "VARI","INDI_ERREUR","TOUTES","AUTRES"),
5387                           ),
5388           b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
5389                OPTION      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5390                            into=( "SIEF_ELNO_ELGA",
5391                                   "SIGM_ELNO_TUYO","SIGM_ELNO_COQU","ARCO_ELNO_SIGM",
5392                                   "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART",
5393                                   # EPSI
5394                                   "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
5395                                  "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
5396                                  "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",
5397                                  "EPSP_ELNO","EPSP_ELGA",
5398                                  "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA",
5399                                  "EPFP_ELNO","EPFP_ELGA",
5400                                  "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT",
5401                                  "EXTR_ELGA_VARI","EXTR_ELNO_VARI",
5402                                  # CRIT
5403                                  "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5404                                  "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
5405                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5406                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5407                                  "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
5408                                  "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM",
5409                                  "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO",
5410                                  "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA",
5411                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"),
5412                                ),
5413                NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
5414                                  into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"),
5415                                  fr="Type de norme pour les options RADI_ et DCHA_"),
5416
5417                NOM_CHAM  =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"),
5418                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),
5419
5420                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5421                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5422                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5423                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5424                     RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),),
5425
5426                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5427                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5428                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
5429                                   fr="precision demandee pour calculer la carte de taille des elements" ),),
5430
5431
5432                b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')",
5433                              NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
5434                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
5435                                "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
5436                                "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE",
5437                                "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4",),),
5438                             ),
5439                EXCIT           =FACT(statut='f',max='**',
5440                                       regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5441                     CHARGE          =SIMP(statut='o',typ=char_meca ),
5442                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5443                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5444                     COEF_MULT       =SIMP(statut='f',typ='R'),
5445                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5446                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5447                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5448                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5449                          ),
5450
5451           b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
5452                                       fr="options de contraintes non lin 2D et 3D",
5453                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5454                               #  contraintes
5455                            into=( "SIEF_ELNO_ELGA",),),
5456                             ),
5457
5458           b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
5459                                        fr="options de contraintes non lin poutres, coques",
5460                OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5461                               #  contraintes
5462                            into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU",
5463                            "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),),
5464                              ),
5465
5466           b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
5467                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5468                            into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
5469                                  "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
5470                                  "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO_DEPL","EPVC_ELNO","EPVC_ELGA",
5471                                  "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA"),
5472                                  ),
5473                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5474                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5475                                  ),
5476          b_epstuyo       =BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \
5477                                   (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION) ",
5478               EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5479                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5480                                ),
5481
5482           b_vari         =BLOC( condition = "TYPE_OPTION=='VARI'",
5483                                        fr="Calcul et extraction des variables internes",
5484                    OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5485                                    into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU",
5486                                          "EXTR_ELGA_VARI","EXTR_ELNO_VARI"),
5487                                  ),
5488           b_extr         =BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')",
5489                    NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
5490                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
5491                                "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
5492                                "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE",
5493                                "RDEV_1","RDEV_2","RDEV_3","RISO","EPSIVPLA","IND_1","IND_2","IND_3","IND_4"),),
5494                             ),
5495                            ),
5496
5497           b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
5498                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5499                            into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",),
5500                                  ),
5501                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
5502                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
5503                                  ),
5504
5505           b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
5506                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5507                            into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
5508                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
5509                                  "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT",
5510                                  "ENDO_ELGA","ENDO_ELNO_ELGA",
5511                                  "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
5512                                  ) ),
5513                                  ),
5514
5515           b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
5516                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5517                            into=("VALE_NCOU_MAXI",) ),
5518                b_maxi    =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
5519                                 (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
5520                     NOM_CHAM  =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
5521                     NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
5522                                  ),
5523
5524           b_indi_erreur         =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
5525                OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
5526                            into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
5527                                  "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
5528                                  "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
5529                                  "SING_ELEM","SING_ELNO_ELEM",) ),
5530
5531                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
5532                                         (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
5533                                         (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
5534                                         (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
5535                 RESU_DUAL    =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")),
5536
5537                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
5538                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
5539                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
5540                                   fr="precision demandee pour calculer la carte de taille des elements" ),),
5541
5542                b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\
5543                                             (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\
5544                                             (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\
5545                                             (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\
5546                                             (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ",
5547                     NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
5548                                  into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
5549                                  ),
5550                                  ),
5551                                  ),
5552 #          fin bloc evol_noli
5553
5554 #           thermique : evol_ther, fourier_ther
5555      b_ther          =BLOC( condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,fr="options thermiques",
5556           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5557                            into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
5558                                   "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META",
5559                                   "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),),
5560                EXCIT           =FACT(statut='f',max='**',
5561                     regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5562                     CHARGE          =SIMP(statut='o',typ=char_ther ),
5563                     FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5564                     FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5565                     COEF_MULT       =SIMP(statut='f',typ='R'),
5566                     COEF_MULT_C     =SIMP(statut='f',typ='C'),
5567                     PHAS_DEG        =SIMP(statut='f',typ='R'),
5568                     PUIS_PULS       =SIMP(statut='f',typ='I'),
5569                     TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),
5570                                      ),
5571                                  ),
5572
5573 #    acoustique
5574      b_acou          =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
5575           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
5576                            into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
5577                                  "INTE_ELNO_ACTI","INTE_ELNO_REAC",
5578                                  ),),
5579           EXCIT           =FACT(statut='f',max='**',
5580                 regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
5581                 CHARGE          =SIMP(statut='o',typ=char_acou ),
5582                 FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
5583                 FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
5584                 COEF_MULT       =SIMP(statut='f',typ='R'),
5585                 COEF_MULT_C     =SIMP(statut='f',typ='C'),
5586                 PHAS_DEG        =SIMP(statut='f',typ='R'),
5587                 PUIS_PULS       =SIMP(statut='f',typ='I'),
5588                 TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
5589                                  ),
5590
5591      SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
5592                            fr="Liste des paramètres de sensibilité.",
5593                            ang="List of sensitivity parameters"),
5594      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
5595      TITRE           =SIMP(statut='f',typ='TXM',max='**'),
5596 ) ;
5597 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
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 # RESPONSABLE ANGLES J.ANGLES
5616 def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
5617   if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem
5618   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem
5619   if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster
5620   raise AsException("type de calcul non prevu")
5621
5622 CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
5623                   fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique"
5624                       +" dans lequel le cisaillement est maximal.",
5625             UIinfo={"groupes":("Post traitements",)},
5626
5627          TYPE_CALCUL = SIMP(statut='o',typ='TXM',
5628                                into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ),
5629
5630          b_cumul_domma   =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'",
5631                                fr="Calcul d un champ de dommage subi par une structure.",
5632            regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
5633            OPTION          =SIMP(statut='o',typ='TXM',
5634                                  into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
5635                                        "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
5636                                        "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
5637            HISTOIRE        =FACT(statut='o',
5638              RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
5639                                                    evol_noli) ),
5640              EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
5641                                  into=("VMIS_SG","INVA_2_SG") ),
5642            ),
5643            DOMMAGE         =SIMP(statut='o',typ='TXM',
5644                                into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
5645                                      "TAHERI_MIXTE",) ),
5646            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
5647            TAHERI_NAPPE    =SIMP(statut='f',typ=(nappe_sdaster,formule) ),
5648            TAHERI_FONC     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
5649          ),
5650
5651          b_fatigue_multi   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
5652                                  fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.",
5653            TYPE_CHARGE   =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ),
5654            OPTION        =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ),
5655            RESULTAT      =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
5656            CHAM_MATER    =SIMP(statut='o',typ=(cham_mater) ),
5657            MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster ),
5658            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
5659            GROUP_MA      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
5660            MAILLE        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**' ),
5661            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ),
5662            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**' ),
5663            COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0),
5664            b_period       =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'",
5665                CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","VMIS_TRESCA") ),
5666                b_fati_p  =BLOC(condition = "(CRITERE == 'MATAKE_MODI_AC' or CRITERE == 'DANG_VAN_MODI_AC')",
5667                    METHODE       =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
5668                ),
5669            ),
5670            b_non_period   =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'",
5671                CRITERE       =SIMP(statut='o',typ='TXM',
5672                                    into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","VMIS_TRESCA") ),
5673                b_fati_np  =BLOC(condition = 
5674                                "(CRITERE == 'MATAKE_MODI_AV' or CRITERE == 'DANG_VAN_MODI_AV' or CRITERE == 'FATESOCI_MODI_AV')",
5675                    PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
5676                    DELTA_OSCI    =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
5677                ),
5678            ),
5679          ),
5680
5681          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
5682 )  ;
5683 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5684 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5685 # ======================================================================
5686 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5687 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5688 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5689 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5690 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5691 #
5692 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5693 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5694 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5695 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5696 #
5697 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5698 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5699 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5700 # ======================================================================
5701 # RESPONSABLE ADOBES A.ADOBES
5702 CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
5703                     reentrant='n',
5704                     fr="Calculer les paramètres modaux d'une structure soumise à un écoulement",
5705             UIinfo={"groupes":("Matrices/vecteurs",)},
5706          VITE_FLUI       =FACT(statut='f',
5707                                fr="Définir la plage de vitesse fluide étudiée",
5708            VITE_MIN        =SIMP(statut='f',typ='R' ),
5709            VITE_MAX        =SIMP(statut='f',typ='R' ),
5710            NB_POIN         =SIMP(statut='f',typ='I' ),
5711          ),
5712          BASE_MODALE     =FACT(statut='o',
5713                                
5714            regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),),
5715            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
5716            NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
5717            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
5718            AMOR_UNIF       =SIMP(statut='f',typ='R',val_min=0.E+00 ),
5719            AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
5720          ),
5721          TYPE_FLUI_STRU  =SIMP(statut='o',typ=type_flui_stru ),
5722          IMPRESSION      =FACT(statut='f',
5723                                fr="Choix des informations à imprimer dans le fichier RESULTAT",
5724            PARA_COUPLAGE   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5725            DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
5726          ),
5727 )  ;
5728 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5729 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5730 # ======================================================================
5731 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5732 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5733 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5734 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5735 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5736 #
5737 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5738 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5739 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5740 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5741 #
5742 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5743 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5744 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5745 # ======================================================================
5746 # RESPONSABLE COURTOIS M.COURTOIS
5747 def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args):
5748    if   AsType(FONCTION) == nappe_sdaster:
5749       return nappe_sdaster
5750    elif AsType(FONCTION) == fonction_sdaster:
5751       return fonction_sdaster
5752    elif AsType(FONCTION) == fonction_c:
5753       return fonction_c
5754    elif AsType(FONCTION) == formule_c:
5755       return fonction_c
5756    elif AsType(FONCTION) == formule:
5757       if NOM_PARA_FONC != None:
5758          return nappe_sdaster
5759       return fonction_sdaster
5760    elif AsType(FONCTION) == para_sensi:
5761       return para_sensi
5762    raise AsException("type de concept resultat non prevu")
5763
5764 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod,
5765                       docu="U4.32.01-e",reentrant='n',
5766            fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables",
5767            UIinfo={"groupes":("Fonction",)},
5768          regles=(UN_PARMI('VALE_PARA','LIST_PARA'),),
5769          FONCTION        =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ),
5770          VALE_PARA       =SIMP(statut='f',typ='R',max='**'),
5771          LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
5772          NOM_RESU        =SIMP(statut='f',typ='TXM'),
5773          NOM_PARA        =SIMP(statut='f',typ='TXM'),
5774          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
5775          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
5776          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
5777          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM'),
5778          b_eval_nappe    =BLOC(condition = "NOM_PARA_FONC != None",             
5779             regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),),
5780             VALE_PARA_FONC  =SIMP(statut='f',typ='R',max='**'),
5781             LIST_PARA_FONC  =SIMP(statut='f',typ=listr8_sdaster ),
5782             INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")),
5783             PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
5784             PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
5785          ),
5786          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
5787          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
5788 )  ;
5789 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5790 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5791 # ======================================================================
5792 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5793 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5794 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5795 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5796 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5797 #
5798 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5799 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5800 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5801 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5802 #
5803 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5804 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5805 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5806 # ======================================================================
5807 # RESPONSABLE COURTOIS M.COURTOIS
5808 from Macro.calc_fonction_ops import calc_fonction_ops
5809 def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C,
5810                        ENVELOPPE,FRACTILE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,
5811                        LISS_ENVELOP,ABS, **args):
5812
5813    if (INTEGRE     != None): return fonction_sdaster
5814    if (DERIVE      != None): return fonction_sdaster
5815    if (INVERSE     != None): return fonction_sdaster
5816    if (COMB        != None): 
5817       type_vale=AsType(COMB[0]['FONCTION'])
5818       for mcfact in COMB :
5819           if(AsType(mcfact['FONCTION'])!=type_vale):
5820              raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction")
5821       return type_vale
5822    if (COMB_C      != None):
5823       vale=COMB_C[0]['FONCTION']
5824       if(AsType(vale) == nappe_sdaster):
5825          for mcfact in COMB_C[1:] :
5826              if(AsType(mcfact['FONCTION'])!=nappe_sdaster):
5827                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
5828          return nappe_sdaster
5829       else:
5830          for mcfact in COMB_C :
5831              if(AsType(mcfact['FONCTION'])==nappe_sdaster):
5832                 raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
5833          return fonction_c
5834    if (ENVELOPPE   != None): return AsType(ENVELOPPE[0]['FONCTION'])
5835    if (FRACTILE    != None): return AsType(FRACTILE[0] ['FONCTION'])
5836    if (EXTRACTION  != None): return fonction_sdaster
5837    if (SPEC_OSCI   != None): return nappe_sdaster
5838    if (COMPOSE     != None): return fonction_sdaster
5839    if (ASSE        != None): return fonction_sdaster
5840    if (FFT         != None):
5841       vale=FFT[0]['FONCTION']
5842       if (AsType(vale) == fonction_sdaster )  : return fonction_c
5843       if (AsType(vale) == fonction_c) : return fonction_sdaster
5844    if (CORR_ACCE   != None): return fonction_sdaster
5845    if (LISS_ENVELOP!= None): return nappe_sdaster
5846    if (PUISSANCE   != None): return AsType(PUISSANCE[0]['FONCTION'])
5847    if (ABS         != None): return fonction_sdaster
5848    raise AsException("type de concept resultat non prevu")
5849
5850 CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod
5851                     ,fr="Effectue des opérations mathématiques sur des concepts de type fonction",
5852                      reentrant='n',
5853             UIinfo={"groupes":("Fonction",)},
5854          regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE',
5855                           'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
5856                           'LISS_ENVELOP','INVERSE','ABS','FRACTILE'),),
5857          FFT             =FACT(statut='f',fr="Transformée de Fourier ou de son inverse",
5858            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ),
5859            METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE","COMPLET") ),
5860            b_syme          =BLOC ( condition = " AsType(FONCTION)==fonction_c ",
5861              SYME           =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),  
5862            ),
5863          ),
5864          DERIVE          =FACT(statut='f',fr="Dérivée d une fonction",
5865            METHODE         =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
5866            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
5867          ),
5868          INTEGRE         =FACT(statut='f',fr="Intégrale d'une fonction",
5869            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
5870            FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
5871            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
5872          ),
5873          LISS_ENVELOP    = FACT(statut='f',fr="Lissage d une enveloppe",
5874            NAPPE           =SIMP(statut='o',typ=nappe_sdaster ),
5875            FREQ_MIN        =SIMP(statut='f',typ='R',defaut =0.2),
5876            FREQ_MAX        =SIMP(statut='f',typ='R',defaut =35.5),
5877            ELARG           =SIMP(statut='f',typ='R',defaut =0.1 ),
5878            TOLE_LISS       =SIMP(statut='f',typ='R',defaut =0.25 ),
5879          ),
5880          SPEC_OSCI       =FACT(statut='f',fr="Spectre d'oscillateur",
5881            METHODE         =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
5882            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
5883            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
5884            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
5885            FREQ            =SIMP(statut='f',typ='R',max='**'),
5886            NORME           =SIMP(statut='o',typ='R',fr="Valeur de la norme du spectre d oscillateur" ),
5887            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
5888            NATURE_FONC     =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
5889          ),
5890          ABS             =FACT(statut='f',fr="Valeur absolue d'une fonction",
5891            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,),
5892          ),
5893          COMB            =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions",
5894            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
5895            COEF            =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
5896          ),
5897          COMB_C          =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions",
5898            regles=(UN_PARMI('COEF_R','COEF_C'),),
5899            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ),
5900            COEF_R          =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
5901            COEF_C          =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
5902          ),
5903          b_comb          =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
5904              LIST_PARA      =SIMP(statut='f',typ=listr8_sdaster ),  
5905          ),
5906          COMPOSE         =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)",
5907            FONC_RESU       =SIMP(statut='o',typ=fonction_sdaster),
5908            FONC_PARA       =SIMP(statut='o',typ=fonction_sdaster),
5909          ),
5910          EXTRACTION      =FACT(statut='f',fr="Extraction sur une fonction complexe",
5911            FONCTION        =SIMP(statut='o',typ=fonction_c),
5912            PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"),
5913          ),
5914          ENVELOPPE       =FACT(statut='f',fr="Enveloppe d une famille de fonctions",
5915            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
5916            CRITERE         =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
5917          ),
5918          FRACTILE        =FACT(statut='f',fr="Fractile d une famille de fonctions ou de nappes",
5919            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
5920            FRACT           =SIMP(statut='o',typ='R',defaut=1.,val_min=0.,val_max=1.,fr="Valeur du fractile" ),
5921          ),
5922          ASSE            =FACT(statut='f',fr="Concatenation de fonctions",
5923            FONCTION        =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ),
5924            SURCHARGE       =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
5925          ),
5926          CORR_ACCE       =FACT(statut='f',fr="Correction d un accelerogramme reel",
5927             CORR_DEPL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
5928             FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
5929          ),
5930          PUISSANCE       =FACT(statut='f',fr="Fonction élevée à une puissance",
5931             FONCTION      =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ),
5932             EXPOSANT      =SIMP(statut='f', typ='I', defaut=1 ),
5933          ),
5934          INVERSE         =FACT(statut='f',fr="Inverse d'une fonction",
5935             FONCTION      =SIMP(statut='o', typ=fonction_sdaster),
5936          ),     
5937          NOM_PARA        =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
5938          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
5939          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
5940          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
5941          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
5942          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
5943          INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
5944          PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
5945          PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
5946          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
5947 )
5948 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
5949 #            CONFIGURATION MANAGEMENT OF EDF VERSION
5950 # ======================================================================
5951 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5952 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5953 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
5954 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
5955 # (AT YOUR OPTION) ANY LATER VERSION.                                 
5956 #
5957 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
5958 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
5959 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
5960 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
5961 #
5962 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
5963 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
5964 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
5965 # ======================================================================
5966 # RESPONSABLE GREFFET N.GREFFET
5967 CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
5968                    fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure"
5969                        +" en analyse sismique",
5970                    reentrant ='n',
5971             UIinfo={"groupes":("Matrices/vecteurs",)},
5972
5973         regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
5974                 PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
5975                 UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
5976                 UN_PARMI('MONO_APPUI','MODE_STAT')),
5977
5978          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
5979          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
5980          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
5981          CHARGE          =SIMP(statut='o',typ=char_ther ),
5982          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
5983          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
5984          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
5985          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
5986          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
5987          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
5988          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
5989          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
5990
5991          DIRECTION       =SIMP(statut='o',typ='R',max=3),
5992          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
5993          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
5994          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
5995          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
5996
5997          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
5998
5999          SOLVEUR         =FACT(statut='d',
6000            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
6001            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
6002              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
6003            ),
6004            b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
6005              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
6006            ),
6007            b_ldlt_mult     =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
6008                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
6009              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
6010              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6011            ),
6012            b_gcpc          =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
6013              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
6014              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
6015              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6016              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6017              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
6018            ),
6019                            ),
6020
6021            ) ;
6022 #& MODIF COMMANDE  DATE 13/05/2008   AUTEUR GALENNE E.GALENNE 
6023 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6024 # ======================================================================
6025 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
6026 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6027 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6028 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6029 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6030 #                                                                       
6031 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
6032 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
6033 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
6034 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
6035 #                                                                       
6036 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
6037 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
6038 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
6039 # ======================================================================
6040 # RESPONSABLE GALENNE E.GALENNE
6041 CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster,
6042             fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité"
6043                         +" et les facteurs d'intensité de contraintes.",
6044                     reentrant='f',
6045             UIinfo={"groupes":("Post traitements",)},
6046          regles=(EXCLUS('COMP_ELAS','COMP_INCR'),
6047                  CONCEPT_SENSIBLE("ENSEMBLE"),
6048                  REUSE_SENSIBLE(),
6049                  DERIVABLE('RESULTAT'),),
6050
6051          THETA          =FACT(statut='o',
6052            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),),
6053            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,max=1),
6054            FISSURE         =SIMP(statut='f',typ=fiss_xfem,max=1),
6055            DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
6056            DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
6057            regles=(EXCLUS('FOND_FISS','FISSURE'),
6058                  EXCLUS('FOND_FISS','DTAN_ORIG'),
6059                  EXCLUS('FOND_FISS','DTAN_EXTR'),),
6060           b_theta        =BLOC(condition="THETA == None",fr="calcul de theta",
6061             regles=(UN_PARMI('R_INF','R_INF_FO'),
6062                  PRESENT_PRESENT('R_INF','R_SUP'),
6063                 PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
6064              NUME_FOND        =SIMP(statut='f',typ='I',defaut=1),
6065              R_INF           =SIMP(statut='f',typ='R'),
6066              R_SUP           =SIMP(statut='f',typ='R'),
6067              MODULE          =SIMP(statut='f',typ='R',defaut=1.),
6068              DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
6069              DIRECTION       =SIMP(statut='f',typ='R',max='**'),
6070              R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6071              R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),             
6072              MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6073              ),
6074             ),
6075
6076          RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca,mult_elas),),
6077
6078          b_no_mult          =BLOC(condition="(AsType(RESULTAT) != mult_elas)",
6079          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
6080                   'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ'),),
6081             
6082             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6083             NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6084             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
6085             INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6086             LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
6087             TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6088             NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6089             LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
6090             LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
6091             FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6092        
6093            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
6094               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
6095               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
6096             ),
6097          ),
6098
6099          b_mult_elas     =BLOC(condition="(AsType(RESULTAT) == mult_elas)",
6100             NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat() ),
6101          ),
6102
6103         
6104          EXCIT           =FACT(statut='f',max='**',
6105                CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
6106                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6107                TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
6108          ),
6109          SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
6110  
6111          COMP_ELAS       =FACT(statut='f',
6112                RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
6113                                      into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS") ),
6114                ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
6115                ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
6116                ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
6117                ELAS_VMIS_PUIS  =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
6118                DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
6119       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6120                TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6121                GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6122                MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6123          ),  
6124          COMP_INCR       =FACT(statut='f',
6125                RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
6126                                      into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE","ELAS_VMIS_PUIS") ),
6127                ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
6128                VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
6129                VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
6130                DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
6131       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6132                TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6133                GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6134                MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6135          ),
6136          ETAT_INIT       =FACT(statut='f',
6137            SIGM            =SIMP(statut='f',typ=cham_elem),
6138            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
6139          ),
6140           
6141          LISSAGE         =FACT(statut='d',
6142            DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
6143            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
6144            LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE",
6145                                  "LAGRANGE_NO_NO","LAGRANGE_REGU"),),
6146          ),
6147
6148          OPTION          =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G',
6149               into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI",
6150                     "G_BILI_GLOB","CALC_K_MAX"),),
6151
6152          b_g_max    =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')",
6153            BORNES          =FACT(statut='o',max='**',
6154                 NUME_ORDRE     =SIMP(statut='o',typ='I'),
6155                 VALE_MIN       =SIMP(statut='o',typ='R'),
6156                 VALE_MAX       =SIMP(statut='o',typ='R'),
6157                                 ),
6158          ),
6159          b_k_max    =BLOC(condition="(OPTION=='CALC_K_MAX')",
6160            SIGNES          =FACT(statut='o',max=1,
6161                 CHARGE_S       =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
6162                 CHARGE_NS      =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
6163                                 ),
6164          ),
6165
6166          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
6167                            fr="Liste des paramètres de sensibilité.",
6168                            ang="List of sensitivity parameters"),
6169
6170          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
6171          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
6172 );
6173 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6174 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6175 # ======================================================================
6176 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6177 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6178 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6179 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6180 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6181 #
6182 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6183 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6184 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6185 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6186 #
6187 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6188 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6189 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6190 # ======================================================================
6191 # RESPONSABLE ZENTNER I.ZENTNER
6192 CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction,
6193                     fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps",
6194                     reentrant='n',
6195             UIinfo={"groupes":("Fonction",)},
6196          INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6197          INST_FIN        =SIMP(statut='o',typ='R' ),
6198          DUREE_ANALYSE   =SIMP(statut='f',typ='R' ),
6199          DUREE_DECALAGE  =SIMP(statut='f',typ='R' ),
6200          NB_POIN         =SIMP(statut='o',typ='I' ),
6201          FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
6202          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
6203          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ),
6204 )  ;
6205 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6206 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6207 # ======================================================================
6208 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6209 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6210 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6211 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6212 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6213 #
6214 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6215 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6216 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6217 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6218 #
6219 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6220 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6221 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6222 # ======================================================================
6223 # RESPONSABLE GREFFET N.GREFFET
6224 CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
6225                     fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés",
6226                     reentrant='n',
6227             UIinfo={"groupes":("Matrices/vecteurs",)},
6228          regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
6229                  PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
6230                  PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
6231          MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
6232          MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
6233          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6234          CHARGE          =SIMP(statut='o',typ=char_ther ),
6235          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
6236          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster ),
6237          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
6238          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
6239          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
6240          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6241          NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6242          OPTION          =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ),
6243          POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
6244          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6245          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
6246
6247          SOLVEUR         =FACT(statut='d',
6248            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
6249            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
6250              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
6251            ),
6252            b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
6253              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
6254            ),
6255            b_ldlt_mult     =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
6256                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
6257              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
6258              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
6259            ),
6260            b_gcpc          =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
6261              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
6262              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
6263              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6264              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6265              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
6266            ),
6267          ),
6268 )  ;
6269 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6270 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6271 # ======================================================================
6272 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6273 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6274 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6275 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
6276 # (AT YOUR OPTION) ANY LATER VERSION.
6277 #
6278 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
6279 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
6280 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
6281 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
6282 #
6283 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
6284 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
6285 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
6286 # ======================================================================
6287 # RESPONSABLE PELLET J.PELLET
6288 def calc_matr_elem_prod(OPTION,**args):
6289   if OPTION == "RIGI_MECA"        : return matr_elem_depl_r
6290   if OPTION == "RIGI_FLUI_STRU"   : return matr_elem_depl_r
6291   if OPTION == "MASS_ID_MDEP_R"   : return matr_elem_depl_r
6292   if OPTION == "MASS_ID_MDNS_R"   : return matr_elem_depl_r
6293   if OPTION == "MASS_ID_MTEM_R"   : return matr_elem_temp_r
6294   if OPTION == "MASS_ID_MTNS_R"   : return matr_elem_temp_r
6295   if OPTION == "MASS_MECA"        : return matr_elem_depl_r
6296   if OPTION == "MASS_FLUI_STRU"   : return matr_elem_depl_r
6297   if OPTION == "RIGI_GEOM"        : return matr_elem_depl_r
6298   if OPTION == "RIGI_ROTA"        : return matr_elem_depl_r
6299   if OPTION == "MECA_GYRO"        : return matr_elem_depl_r
6300   if OPTION == "AMOR_MECA"        : return matr_elem_depl_r
6301   if OPTION == "IMPE_MECA"        : return matr_elem_depl_r
6302   if OPTION == "ONDE_FLUI"        : return matr_elem_depl_r
6303   if OPTION == "AMOR_MECA_ABSO"   : return matr_elem_depl_r
6304   if OPTION == "RIGI_MECA_HYST"   : return matr_elem_depl_c
6305   if OPTION == "RIGI_THER"        : return matr_elem_temp_r
6306   if OPTION == "MASS_THER"        : return matr_elem_temp_r
6307   if OPTION == "MASS_MECA_DIAG"   : return matr_elem_depl_r
6308   if OPTION == "RIGI_ACOU"        : return matr_elem_pres_c
6309   if OPTION == "MASS_ACOU"        : return matr_elem_pres_c
6310   if OPTION == "AMOR_ACOU"        : return matr_elem_pres_c
6311   raise AsException("type de concept resultat non prevu")
6312
6313 CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
6314                     ,fr="Calcul des matrices élémentaires",reentrant='n',
6315             UIinfo={"groupes":("Matrices/vecteurs",)},
6316
6317          OPTION          =SIMP(statut='o',typ='TXM',
6318                                into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
6319                                      "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
6320                                      "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU",
6321                                      "RIGI_ROTA","MECA_GYRO","MASS_MECA_DIAG","RIGI_ACOU",
6322                                      "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R",
6323                                      "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ),
6324
6325          # mots clés facultatifs que l'on a du mal à mettre dans les blocs
6326          # sans gener MACRO_MATR_ASSE :
6327          #------------------------------------------------------------------
6328          INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ),
6329
6330
6331          b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
6332            regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
6333            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
6334            b_modele        =BLOC(condition = "MODELE != None",
6335              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
6336              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
6337              MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
6338            ),
6339            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
6340          ),
6341
6342          b_mass_meca       =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
6343            regles=(AU_MOINS_UN('MODELE','CHARGE'),),
6344            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
6345            b_modele          =BLOC(condition = "MODELE != None",
6346              CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6347              CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6348            ),
6349            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
6350          ),
6351
6352          b_mass_identite   =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ",
6353            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6354            # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME
6355            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6356            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6357          ),
6358
6359          b_rigi_geom       =BLOC(condition = "OPTION=='RIGI_GEOM'",
6360            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6361            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6362            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem ),
6363            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
6364          ),
6365
6366          b_rigi_rota       =BLOC(condition = "OPTION=='RIGI_ROTA'",
6367            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6368            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6369            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
6370          ),
6371
6372          b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'",
6373            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
6374            CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6375            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
6376            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
6377          ),
6378
6379          b_amor_meca       =BLOC(condition = "OPTION=='AMOR_MECA'",
6380            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
6381                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
6382            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6383            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6384            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6385            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6386            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6387            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
6388          ),
6389          
6390          b_amor_meca_abso  =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'",
6391            regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
6392                    ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
6393            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6394            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6395            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6396            RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6397            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
6398            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
6399          ),
6400          
6401          b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
6402            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6403            CHARGE            =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
6404            CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
6405            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6406            RIGI_MECA         =SIMP(statut='o',typ=matr_elem_depl_r ),
6407          ),
6408
6409          b_rigi_ther       =BLOC(condition = "OPTION=='RIGI_THER'",
6410            regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
6411            MODELE            =SIMP(statut='f',typ=modele_sdaster ),
6412            b_modele          =BLOC(condition = "MODELE != None",
6413              CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6414              CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6415              MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
6416            ),
6417            CHARGE            =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ),
6418          ),
6419
6420          b_mass_ther       =BLOC(condition = "OPTION=='MASS_THER'",
6421            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6422            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6423            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
6424            CHARGE            =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ),
6425          ),
6426
6427          b_rigi_acou       =BLOC(condition = "OPTION=='RIGI_ACOU'",
6428            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6429            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6430            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
6431          ),
6432
6433          b_mass_acou       =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
6434            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6435            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6436            CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
6437          ),
6438
6439          b_rigi_flui       =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'",
6440            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6441            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
6442            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6443            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ),
6444          ),
6445
6446          b_mass_flui       =BLOC(condition = "OPTION=='MASS_FLUI_STRU'",
6447            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6448            CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
6449            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6450            CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'),
6451          ),
6452
6453          b_impe_meca       =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
6454            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
6455            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
6456            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
6457          ),
6458 )  ;
6459 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6460 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6461 # ======================================================================
6462 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6463 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6464 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6465 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6466 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6467 #
6468 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6469 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6470 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6471 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6472 #
6473 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6474 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6475 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6476 # ======================================================================
6477 # RESPONSABLE CANO V.CANO
6478 CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
6479             UIinfo={"groupes":("Post traitements",)},
6480                fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique",
6481          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
6482          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
6483          RESULTAT        =SIMP(statut='o',typ=evol_ther ),
6484          ETAT_INIT       =FACT(statut='o',
6485             regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),),
6486             EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
6487             META_INIT_ELNO  =SIMP(statut='f',typ=carte_sdaster ),
6488             b_etat     =BLOC(condition="EVOL_THER != None",
6489                regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),),
6490                NUME_INIT       =SIMP(statut='f',typ='I'),
6491                INST_INIT       =SIMP(statut='f',typ='R'),
6492                b_inst     =BLOC(condition="INST_INIT != None",
6493                   PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
6494                   CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") )
6495                ),
6496             ),
6497          ),
6498          COMP_INCR       =FACT(statut='o',max='**',
6499            RELATION        =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
6500            ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
6501            ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
6502       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
6503            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6504            GROUP_MA        =SIMP(statut='f',typ=grma),
6505            MAILLE          =SIMP(statut='f',typ=ma),
6506          ),
6507          OPTION          =SIMP(statut='f',typ='TXM'     
6508                              ,into=("META_ELNO_TEMP",) ),
6509 )  ;
6510 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6511 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6512 # ======================================================================
6513 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6514 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6515 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6516 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6517 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6518 #
6519 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6520 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6521 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6522 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6523 #
6524 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6525 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6526 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6527 # ======================================================================
6528 # RESPONSABLE DESROCHES X.DESROCHES
6529 def calc_no_prod(RESULTAT,**args):
6530    if AsType(RESULTAT) != None : return AsType(RESULTAT)
6531    raise AsException("type de concept resultat non prevu")
6532
6533 CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
6534             fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds",
6535             UIinfo={"groupes":("Post traitements",)},
6536          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
6537          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
6538                                fr="Liste des paramètres de sensibilité.",
6539                                ang="List of sensitivity parameters"),
6540
6541          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
6542                         'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
6543                  CONCEPT_SENSIBLE("SEPARE"),
6544                  DERIVABLE('RESULTAT'),),
6545          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6546          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6547          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
6548          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
6549          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
6550          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6551          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
6552          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
6553          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
6554          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
6555          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
6556          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
6557
6558          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6559                                into=("FORC_NODA","REAC_NODA",
6560                                      "DCHA_NOEU_SIGM",
6561                                      "DEGE_NOEU_DEPL",
6562                                      "DETE_NOEU_DLTE",
6563                                      "DEDE_NOEU_DLDE",
6564                                      "DESI_NOEU_DLSI",
6565                                      "DURT_NOEU_META",
6566                                      "EFGE_NOEU_CART","EFGE_NOEU_DEPL",
6567                                      "ENDO_NOEU_SINO",
6568                                      "ENEL_NOEU_ELGA",
6569                                      "EPMG_NOEU_DEPL",
6570                                      "EPSA_NOEU",
6571                                      "EPSG_NOEU_DEPL",
6572                                      "EPSI_NOEU_DEPL",
6573                                      "EPSP_NOEU"     ,"EPSP_NOEU_ZAC",
6574                                      "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU",
6575                                      "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM",
6576                                      "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM",
6577                                      "FLUX_NOEU_TEMP",
6578                                      "HYDR_NOEU_ELGA",
6579                                      "INTE_NOEU_ACTI","INTE_NOEU_REAC",
6580                                      "META_NOEU_TEMP",
6581                                      "PMPB_NOEU_SIEF",
6582                                      "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL",
6583                                      "RADI_NOEU_SIGM",
6584                                      "SIEF_NOEU"     ,"SIEF_NOEU_ELGA",
6585                                      "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL",
6586                                      "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC",
6587                                      "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF",
6588                                      "SIRE_NOEU_DEPL",
6589                                      "VARI_NOEU","EXTR_NOEU_VARI","VARI_NOEU_ELGA",
6590                                      "ARCO_NOEU_SIGM",) ),
6591
6592          b_forc_reac     =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\
6593  (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""",
6594              MODELE          =SIMP(statut='f',typ=modele_sdaster),
6595          ),
6596
6597          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
6598          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
6599          EXCIT           =FACT(statut='f',max='**',
6600            CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),
6601            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6602            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
6603                                  into=("FIXE_CSTE","FIXE_PILO","SUIV") ),
6604          ),
6605          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6606          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6607          MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6608          GROUP_MA_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6609          MAILLE_RESU     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6610          GROUP_NO_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
6611          NOEUD_RESU      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
6612 )  ;
6613 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6614 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6615 # ======================================================================
6616 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
6617 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6618 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6619 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6620 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6621 #                                                                       
6622 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
6623 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
6624 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
6625 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
6626 #                                                                       
6627 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
6628 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
6629 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
6630 # ======================================================================
6631 # RESPONSABLE MICHEL S.MICHEL
6632
6633 from Macro.calc_precont_ops import calc_precont_ops
6634
6635
6636 # ===========================================================================
6637 #           CATALOGUE DE LA MACRO "CALC_PRECONT"
6638 #           -----------------------------------------
6639 # USAGE :
6640
6641 #  
6642 # ===========================================================================
6643
6644 CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli,
6645                    fr="Imposer la tension définie par le BPEL dans les cables",
6646                    reentrant='f',UIinfo={"groupe":("Modélisation",)},
6647          reuse =SIMP(statut='f',typ='evol_noli'),
6648          MODELE           =SIMP(statut='o',typ=modele_sdaster),
6649          CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
6650          CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
6651          CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
6652          CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
6653          INCREMENT        =FACT(statut='o',
6654            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
6655            INST_INIT       =SIMP(statut='f',typ='R'),
6656            INST_FIN        =SIMP(statut='f',typ='R'),
6657            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
6658            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
6659            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
6660               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
6661               defaut="AUCUNE",
6662               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
6663            ),
6664            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
6665              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
6666              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
6667                 fr="Coefficient multiplicateur de la 1ère subdivision"),
6668              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
6669                 fr="Nombre de subdivision d'un pas de temps"),
6670              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
6671                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
6672              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
6673                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
6674            ),
6675            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
6676              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
6677              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
6678                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
6679                 defaut="IGNORE_PREMIERES",
6680                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
6681              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
6682                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
6683              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
6684                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
6685              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
6686                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
6687              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
6688                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
6689              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
6690                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
6691              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
6692                 fr="% itération autorisée en plus"),
6693            ),
6694            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
6695          ),
6696
6697          NEWTON          =FACT(statut='d',
6698             REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
6699             PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
6700             MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
6701             PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
6702             REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
6703             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
6704           ),
6705          RECH_LINEAIRE   =FACT(statut='f',
6706            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
6707            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
6708          ),
6709           CONVERGENCE     =FACT(statut='d',
6710             RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
6711             RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
6712             ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
6713             ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
6714             ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
6715           ),
6716           ETAT_INIT       =FACT(statut='f',
6717             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
6718                     EXCLUS('EVOL_NOLI','DEPL',),
6719                     EXCLUS('EVOL_NOLI','SIGM',),
6720                     EXCLUS('EVOL_NOLI','VARI',),
6721                     EXCLUS('NUME_ORDRE','INST'), ),
6722             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
6723             SIGM            =SIMP(statut='f',typ=(carte_sdaster,cham_elem)),
6724             VARI            =SIMP(statut='f',typ=cham_elem),
6725             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
6726             NUME_ORDRE      =SIMP(statut='f',typ='I'),
6727             INST            =SIMP(statut='f',typ='R'),
6728             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
6729             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
6730             NUME_DIDI       =SIMP(statut='f',typ='I'),
6731             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
6732           ),
6733           SOLVEUR         =FACT(statut='d',
6734             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
6735             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
6736               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
6737             ),
6738             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
6739               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
6740             ),
6741             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
6742                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
6743               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
6744               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
6745             ),
6746             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
6747               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
6748               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
6749               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
6750               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
6751               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
6752             ),
6753             SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6754           ),
6755           INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
6756           TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
6757
6758           EXCIT           =FACT(statut='o',max='**',
6759             CHARGE          =SIMP(statut='o',typ=char_meca),
6760           ),
6761
6762          COMP_INCR       =C_COMP_INCR(),
6763   )  ;
6764 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6765 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6766 # ======================================================================
6767 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
6768 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6769 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6770 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6771 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6772 #                                                                       
6773 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
6774 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
6775 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
6776 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
6777 #                                                                       
6778 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
6779 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
6780 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
6781 # ======================================================================
6782 # -*- coding: iso-8859-1 -*-
6783 # RESPONSABLE COURTOIS M.COURTOIS
6784
6785 def calc_table_prod(self, TABLE, ACTION, **kargs):
6786    """Typage du concept produit.
6787    """
6788    l_typ = [AsType(TABLE),]
6789    for mcf in ACTION:
6790       dmc = mcf.cree_dict_valeurs(mcf.mc_liste)
6791       if dmc.get('TABLE') != None:
6792          l_typ.append(AsType(dmc['TABLE']))
6793    # une table_fonction étant une table
6794    if table_fonction in l_typ:
6795       return table_fonction
6796    else:
6797       return table_sdaster
6798
6799
6800 from Macro.calc_table_ops import calc_table_ops
6801
6802 CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod,
6803                  fr="Opérations sur une table",
6804                  reentrant='f',
6805    regles=(DERIVABLE('TABLE'),),
6806    TABLE  = SIMP(statut='o',typ=table_sdaster),
6807    ACTION = FACT(statut='o', max='**',
6808                     fr = "Suite des opérations à effectuer sur la table",
6809       OPERATION = SIMP(statut='o', typ='TXM',
6810                   into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'AJOUT', 'OPER',)),
6811       
6812       b_filtre = BLOC(condition="OPERATION == 'FILTRE'",
6813                       fr="Sélectionne les lignes de la table vérifiant un critère",
6814          NOM_PARA  = SIMP(statut='o',typ='TXM'),
6815          CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ",
6816                           into=('EQ','NE','GT','LT','GE','LE','REGEXP',
6817                                 'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),),
6818          b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
6819             regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
6820             VALE   = SIMP(statut='f',typ='R',max='**'),
6821             VALE_I = SIMP(statut='f',typ='I',max='**'),
6822             VALE_C = SIMP(statut='f',typ='C',max='**'),
6823             VALE_K = SIMP(statut='f',typ='TXM',max='**'),
6824          ),
6825          b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'",
6826             VALE_K = SIMP(statut='f',typ='TXM',max='**'),
6827          ),
6828          b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')",
6829             CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
6830             PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
6831          ),
6832       ),
6833       
6834       b_extr = BLOC(condition="OPERATION ==  'EXTR'",
6835                     fr="Extrait une ou plusieurs colonnes de la table",
6836          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
6837                          fr="Noms des colonnes à extraire"),
6838       ),
6839    
6840       b_renomme = BLOC(condition="OPERATION == 'RENOMME'",
6841                        fr="Renomme un ou plusieurs paramètres de la table",
6842          NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2,
6843                          fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
6844       ),
6845    
6846       b_tri = BLOC(condition="OPERATION == 'TRI'",
6847                    fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
6848          NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
6849          ORDRE    = SIMP(statut='f',typ='TXM',defaut="CROISSANT",
6850                          into=("CROISSANT","DECROISSANT") ),
6851       ),
6852       
6853       b_comb = BLOC(condition="OPERATION == 'COMB'",
6854                     fr="Combine deux tables ayant éventuellement des paramètres communs",
6855          TABLE    = SIMP(statut='o',typ=table_sdaster,
6856                          fr="Table dont les colonnes vont venir surcharger la table initiale"),
6857          NOM_PARA = SIMP(statut='f',typ='TXM',max='**',
6858                          fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
6859                             "pour que les colonnes soient combinées"),
6860       ),
6861       
6862       b_append = BLOC(condition="OPERATION == 'AJOUT'",
6863                     fr="Ajoute une ligne à la table initiale",
6864          NOM_PARA = SIMP(statut='o',typ='TXM',max='**',
6865                          fr="Noms des paramètres dont les valeurs sont fournies sous VALE"),
6866          VALE     = SIMP(statut='o',typ=assd,max='**', fr='Valeurs des paramètres'),
6867       ),
6868       
6869       b_oper = BLOC(condition="OPERATION == 'OPER'",
6870                     fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
6871          FORMULE  = SIMP(statut='o',typ=formule,
6872                          fr="Formule à appliquer aux colonnes de la table"),
6873          NOM_PARA = SIMP(statut='o',typ='TXM',
6874                          fr="Nom de la nouvelle colonne"),
6875       ),
6876    ),
6877    
6878    SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1,
6879                       fr="Paramètre de sensibilité",
6880                       ang="Sensitivity parameter"),
6881    TITRE = SIMP(statut='f',typ='TXM',max='**',
6882                 fr="Titre de la table produite"),
6883    INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
6884 )
6885 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6886 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6887 # ======================================================================
6888 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
6889 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6890 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6891 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
6892 # (AT YOUR OPTION) ANY LATER VERSION.                                 
6893 #
6894 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
6895 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
6896 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
6897 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
6898 #
6899 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
6900 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
6901 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
6902 # ======================================================================
6903 # RESPONSABLE GALENNE E.GALENNE
6904 CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
6905             UIinfo={"groupes":("Post traitements",)},
6906                 fr="Définir un champ theta pour le calcul du taux de restitution d'énergie"
6907                     +" ou des facteurs d'intensité de contraintes",
6908          regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
6909                  PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
6910                  EXCLUS('DIRECTION','DIRE_THETA'),),
6911          OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
6912          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
6913          THETA_3D        =FACT(statut='f',max='**',
6914            regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
6915                    UN_PARMI('MODULE','MODULE_FO'),
6916                    ENSEMBLE('MODULE','R_INF','R_SUP'),
6917                    ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
6918            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
6919            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6920            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6921            MODULE          =SIMP(statut='f',typ='R'),
6922            R_INF           =SIMP(statut='f',typ='R'),
6923            R_SUP           =SIMP(statut='f',typ='R'),
6924            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6925            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6926            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6927                          ),
6928          b_theta_3d     =BLOC(condition="THETA_3D != None",
6929            FOND_FISS       =SIMP(statut='o',typ=fond_fiss),),
6930          DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
6931          DIRECTION       =SIMP(statut='f',typ='R',max='**'),
6932          THETA_2D        =FACT(statut='f',max='**',
6933            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
6934            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
6935            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
6936            MODULE          =SIMP(statut='o',typ='R'),
6937            R_INF           =SIMP(statut='o',typ='R'),
6938            R_SUP           =SIMP(statut='o',typ='R'),
6939          ),
6940          THETA_BANDE     =FACT(statut='f',max='**',
6941            MODULE          =SIMP(statut='o',typ='R'),
6942            R_INF           =SIMP(statut='o',typ='R'),
6943            R_SUP           =SIMP(statut='o',typ='R'),
6944          ),
6945          GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
6946          IMPRESSION      =FACT(statut='f',
6947            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
6948            FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
6949          ),
6950 )  ;
6951 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
6952 #            CONFIGURATION MANAGEMENT OF EDF VERSION
6953 # ======================================================================
6954 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
6955 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
6956 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
6957 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
6958 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
6959 #                                                                       
6960 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
6961 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
6962 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
6963 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
6964 #                                                                       
6965 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
6966 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
6967 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
6968 # ======================================================================
6969 # RESPONSABLE ABBAS M.ABBAS
6970
6971 CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='n',
6972             UIinfo={"groupes":("Résolution",)},
6973             fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...",
6974      OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT",
6975                            into=( "COMPORTEMENT","MATR_TANG_ELEM","FORC_INT_ELEM"),),
6976      MODELE          =SIMP(statut='o',typ=modele_sdaster),
6977      CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
6978      CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
6979      EXCIT           =FACT(statut='o',max='**',
6980        CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
6981        FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
6982        TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
6983                              into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
6984      ),
6985      DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
6986      INCR_DEPL       =SIMP(statut='o',typ=cham_no_sdaster ),
6987      SIGM            =SIMP(statut='o',typ=cham_elem),
6988      VARI            =SIMP(statut='o',typ=cham_elem),
6989      INCREMENT       =FACT(statut='o',
6990           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
6991           NUME_ORDRE      =SIMP(statut='o',typ='I'),),
6992      COMP_INCR       =C_COMP_INCR(),
6993      COMP_ELAS       =FACT(statut='f',max='**',
6994           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
6995           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
6996           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
6997           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
6998                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
6999           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
7000                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
7001                                      "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
7002           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
7003           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
7004           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
7005           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
7006           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
7007           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
7008           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),),
7009      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
7010 ) ;
7011
7012 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7013 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7014 # ======================================================================
7015 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7016 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7017 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7018 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7019 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7020 #
7021 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7022 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7023 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7024 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7025 #
7026 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7027 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7028 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7029 # ======================================================================
7030 # RESPONSABLE PELLET J.PELLET
7031 def calc_vect_elem_prod(OPTION,**args):
7032   if OPTION == "CHAR_MECA" :      return vect_elem_depl_r
7033   if OPTION == "CHAR_THER" :      return vect_elem_temp_r
7034   if OPTION == "CHAR_ACOU" :      return vect_elem_pres_c
7035   if OPTION == "FORC_NODA" :      return vect_elem_depl_r
7036   raise AsException("type de concept resultat non prevu")
7037
7038 CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n',
7039             UIinfo={"groupes":("Matrices/vecteurs",)},
7040                     fr="Calcul des seconds membres élémentaires",
7041          OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
7042                                                            "FORC_NODA") ),
7043          b_char_meca     =BLOC(condition = "OPTION=='CHAR_MECA'",
7044            regles=(AU_MOINS_UN('CHARGE','MODELE'),),
7045            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
7046            MODELE          =SIMP(statut='f',typ=modele_sdaster),
7047            b_charge     =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
7048               CHAM_MATER   =SIMP(statut='f',typ=cham_mater),
7049               CARA_ELEM    =SIMP(statut='f',typ=cara_elem),
7050               INST         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7051               MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
7052            ),  
7053            b_modele     =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
7054               SOUS_STRUC      =FACT(statut='o',min=01,
7055                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
7056                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
7057                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7058                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
7059               ),
7060            ),
7061          ),
7062          b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'",
7063            CARA_ELEM        =SIMP(statut='f',typ=cara_elem),
7064            CHARGE           =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'),
7065            INST             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
7066          ),
7067               
7068          b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'",
7069            CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
7070            CHARGE            =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'),
7071          ),
7072          
7073          b_forc_noda     =BLOC(condition = "OPTION=='FORC_NODA'",
7074            SIEF_ELGA         =SIMP(statut='o',typ=cham_elem),
7075            CARA_ELEM         =SIMP(statut='f',typ=cara_elem),
7076            MODELE            =SIMP(statut='f',typ=modele_sdaster),
7077          ),       
7078 ) ;
7079 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7080 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7081 # ======================================================================
7082 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7083 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7084 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7085 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7086 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7087 #
7088 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7089 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7090 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7091 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7092 #
7093 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7094 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7095 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7096 # ======================================================================
7097 # RESPONSABLE DESROCHES X.DESROCHES
7098 COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
7099                   reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières",
7100             UIinfo={"groupes":("Post traitements",)},
7101          RESULTAT        =SIMP(statut='o',typ=(fourier_elas,fourier_ther),),
7102          ANGL            =SIMP(statut='o',typ='R',max='**'),
7103          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6,
7104              into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL","TEMP","FLUX_ELNO_TEMP"),),
7105 ) ;
7106 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7107 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7108 # ======================================================================
7109 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7110 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7111 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7112 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7113 # (AT YOUR OPTION) ANY LATER VERSION.
7114 #
7115 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7116 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7117 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7118 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7119 #
7120 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7121 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7122 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7123 # ======================================================================
7124 # RESPONSABLE PELLET J.PELLET
7125 def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
7126   if COMB_C != None:
7127     type_mat = AsType(COMB_C[0]['MATR_ASSE'])
7128     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
7129     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
7130     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
7131     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
7132   elif COMB_R != None:
7133     type_mat = AsType(COMB_R[0]['MATR_ASSE'])
7134     if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
7135     if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
7136     if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
7137     if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
7138   elif CALC_AMOR_GENE != None: return matr_asse_gene_r
7139   raise AsException("type de concept resultat non prevu")
7140
7141 COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
7142                     fr="Effectuer la combinaison linéaire de matrices assemblées",
7143                     reentrant='f',
7144             UIinfo={"groupes":("Résultats et champs",)},
7145          regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
7146          COMB_R          =FACT(statut='f',max='**',
7147            PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
7148            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
7149                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
7150            COEF_R          =SIMP(statut='o',typ='R' ),
7151          ),
7152          COMB_C          =FACT(statut='f',max='**',
7153            regles=(UN_PARMI('COEF_R','COEF_C' ),),
7154            MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c
7155                                                 ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ),
7156            COEF_R          =SIMP(statut='f',typ='R' ),
7157            COEF_C          =SIMP(statut='f',typ='C' ),
7158          ),
7159          CALC_AMOR_GENE   =FACT(statut='f',
7160            RIGI_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
7161            MASS_GENE    = SIMP(statut='o', typ=matr_asse_gene_r),
7162            regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),),
7163            AMOR_REDUIT  = SIMP(statut='f',typ='R',max='**'),
7164            LIST_AMOR    = SIMP(statut='f',typ=listr8_sdaster ),
7165          ),
7166          SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
7167 )  ;
7168 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7169 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7170 # ======================================================================
7171 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7172 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7173 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7174 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
7175 # (AT YOUR OPTION) ANY LATER VERSION.                                 
7176 #
7177 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
7178 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
7179 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
7180 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
7181 #
7182 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
7183 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
7184 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
7185 # ======================================================================
7186 # RESPONSABLE AUDEBERT S.AUDEBERT
7187 COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
7188                      fr="Réponse sismique par recombinaison modale par une méthode spectrale",
7189                      reentrant='n',
7190             UIinfo={"groupes":("Post traitements",)},
7191          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
7192                  UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),),
7193          MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
7194          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7195          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7196          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
7197          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7198          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7199          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
7200          b_freq          =BLOC(condition = "FREQ != None or LIST_FREQ != None",
7201            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
7202            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7203          ),
7204          MODE_CORR       =SIMP(statut='f',typ=mode_stat_acce ),
7205          
7206          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
7207          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
7208          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
7209          
7210          MASS_INER       =SIMP(statut='f',typ=table_sdaster ),
7211          CORR_FREQ       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
7212          
7213          EXCIT           =FACT(statut='o',max='**',
7214            regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'),
7215                    UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),
7216                    UN_PARMI('MONO_APPUI','MULTI_APPUI' ),),
7217            
7218            MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),
7219                                  fr="excitation imposée unique" ),
7220            MULTI_APPUI =SIMP(statut='f',typ='TXM',into=("CORRELE","DECORRELE",),
7221                                  fr="excitations décorrélés en multi-appuis: cumul sur les modes puis sur les appuis" ),
7222            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7223            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7224            AXE             =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",),
7225            TRI_AXE         =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",),
7226            TRI_SPEC        =SIMP(statut='f',typ='TXM',into=("OUI",),
7227                                  fr="Excitation suivant les trois axes  avec trois spectres"),
7228            b_axe           =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
7229              SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
7230              ECHELLE         =SIMP(statut='f',typ='R',),
7231            ),
7232            b_tri_axe       =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre",
7233              SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
7234              ECHELLE         =SIMP(statut='f',typ='R',),
7235            ),
7236            b_tri_spec      =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes  avec trois spectres",
7237              SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ),
7238              ECHELLE         =SIMP(statut='f',typ='R',min=3,max=3),
7239            ),       
7240            NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
7241          ),
7242          COMB_MODE       =FACT(statut='o',
7243            TYPE            =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
7244            DUREE           =SIMP(statut='f',typ='R' ),
7245          ),
7246          COMB_DIRECTION  =FACT(statut='f',
7247            TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
7248          ),
7249          COMB_MULT_APPUI =FACT(statut='f',max='**',
7250            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
7251            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7252            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7253            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7254            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),
7255          ),
7256          COMB_DEPL_APPUI=FACT(statut='f',max='**',
7257            regles=(UN_PARMI('TOUT','LIST_CAS'),),
7258            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
7259            LIST_CAS       =SIMP(statut='f',typ='I',max='**'),
7260            TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
7261          ),
7262          DEPL_MULT_APPUI =FACT(statut='f',max='**',
7263            regles=(UN_PARMI('NOEUD','GROUP_NO'),
7264                    AU_MOINS_UN('DX','DY','DZ' ),),
7265            NOM_CAS         =SIMP(statut='o',typ='TXM',max='**'),
7266            NUME_CAS        =SIMP(statut='o',typ='I',max='**'),
7267            MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,), ),
7268            NOEUD_REFE      =SIMP(statut='f',typ=no),
7269            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7270            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7271            DX              =SIMP(statut='f',typ='R' ),
7272            DY              =SIMP(statut='f',typ='R' ),
7273            DZ              =SIMP(statut='f',typ='R' ),
7274          ),
7275          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9,
7276                                into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
7277                                      "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART",
7278                                      "SIPO_ELNO_DEPL") ),
7279          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
7280          IMPRESSION      =FACT(statut='f',max='**',
7281            regles=(EXCLUS('TOUT','NIVEAU'),),
7282            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7283            NIVEAU          =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ),
7284          ),
7285          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7286 )  ;
7287 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7288 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7289 # ======================================================================
7290 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7291 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7292 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7293 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7294 # (AT YOUR OPTION) ANY LATER VERSION.
7295 #
7296 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7297 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7298 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7299 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7300 #
7301 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7302 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7303 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7304 # ======================================================================
7305 # RESPONSABLE PELLET J.PELLET
7306 def crea_champ_prod(TYPE_CHAM,**args):
7307   if TYPE_CHAM[0:5] == "CART_" :
7308      return carte_sdaster
7309   elif TYPE_CHAM[0:5] == "NOEU_" :
7310      return cham_no_sdaster
7311   elif TYPE_CHAM[0:2] == "EL"    :
7312      return cham_elem
7313   else :
7314      raise AsException("type de concept resultat_sdaster non prevu")
7315
7316
7317 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
7318                 fr="Création d'un champ ",reentrant='f',
7319             UIinfo={"groupes":("Résultats et champs",)},
7320          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
7321       # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx
7322       # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs 
7323 #        SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
7324 #        ------------------------------------------------------------------
7325          regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
7326          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
7327          CHAM_NO         =SIMP(statut='f',typ=(cham_no_sdaster) ),
7328
7329 #        SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ :
7330 #        (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM)
7331 #        ------------------------------------------------------------------
7332          OPTION         =SIMP(statut='f',typ='TXM'),
7333
7334          OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R") ),
7335
7336 #        ------------------------------------------------------------------
7337          b_norm          =BLOC(condition = "OPERATION == 'NORMALE'",
7338                                regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
7339              MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
7340              GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
7341              MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
7342                              ),
7343 #        ------------------------------------------------------------------
7344          b_affe          =BLOC(condition = "OPERATION == 'AFFE'",
7345              regles=(UN_PARMI('MAILLAGE','MODELE'),),
7346              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
7347              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
7348              b_affe_modele   =BLOC(condition = "MODELE != None",
7349                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
7350              AFFE            =FACT(statut='o',max='**',
7351                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
7352                         UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),),
7353                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7354                 GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
7355                 MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
7356                 GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
7357                 NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
7358                 NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
7359                 VALE            =SIMP(statut='f',typ='R',max='**' ),
7360                 VALE_I          =SIMP(statut='f',typ='I',max='**' ),
7361                 VALE_C          =SIMP(statut='f',typ='C',max='**' ),
7362                 VALE_F          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
7363                                    ),
7364                              ),
7365 #        ------------------------------------------------------------------
7366          b_asse          =BLOC(condition = "OPERATION == 'ASSE'",
7367              regles=(UN_PARMI('MAILLAGE','MODELE'),),
7368              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
7369              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
7370              b_asse_modele   =BLOC(condition = "MODELE != None",
7371                  PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
7372              ASSE            =FACT(statut='o',max='**',
7373                 regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
7374                 PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
7375                 TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7376                 GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7377                 GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7378                 MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7379                 NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7380                 CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
7381                 NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
7382                 NOM_CMP_RESU    =SIMP(statut='f',typ='TXM',max='**' ),
7383                 CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
7384                 COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
7385                 COEF_C          =SIMP(statut='f',typ='C',max=1),
7386                                     ),
7387                              ),
7388 #        ------------------------------------------------------------------
7389          b_eval          =BLOC(condition = "OPERATION == 'EVAL'",
7390              CHAM_F          =SIMP(statut='o',typ=cham_gd_sdaster),
7391              CHAM_PARA       =SIMP(statut='o',typ=cham_gd_sdaster,max='**'),
7392                              ),
7393 #        ------------------------------------------------------------------
7394          b_r2c           =BLOC(condition = "OPERATION == 'R2C'",
7395              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
7396                              ),
7397 #        ------------------------------------------------------------------
7398          b_c2r           =BLOC(condition = "OPERATION == 'C2R'",
7399              CHAM_GD          =SIMP(statut='o',typ=cham_gd_sdaster),
7400              PARTIE           =SIMP(statut='o',typ='TXM',into=('REEL','IMAG'),),
7401                              ),
7402 #        ------------------------------------------------------------------
7403          b_disc          =BLOC(condition = "OPERATION == 'DISC'",
7404              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
7405              PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
7406              CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
7407                              ),
7408 #        ------------------------------------------------------------------
7409          b_extr          =BLOC(condition = "OPERATION == 'EXTR'",
7410              regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),),
7411              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
7412              FISSURE         =SIMP(statut='f',typ=(fiss_xfem) ),
7413              RESULTAT        =SIMP(statut='f',typ=(resultat_sdaster) ),
7414              TABLE           =SIMP(statut='f',typ=(table_sdaster),min=1,max=1),
7415              b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None",
7416                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)),
7417              ),
7418              b_extr_fissure  =BLOC(condition = "FISSURE != None",
7419                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC")),
7420              ),
7421              b_extr_table    =BLOC(condition = "TABLE != None",
7422                       regles=( EXCLUS('MODELE','MAILLAGE'),
7423                                EXCLUS('PROL_ZERO','MAILLAGE'),),
7424                       MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster),),
7425                       MODELE          =SIMP(statut='f',typ=(modele_sdaster),),
7426                       OPTION          =SIMP(statut='f',typ='TXM'),
7427                       PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
7428                  ),
7429              b_extr_resultat =BLOC(condition = "RESULTAT != None",
7430                  regles=(DERIVABLE('RESULTAT'),),
7431                  SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
7432                                    fr="Paramètre de sensibilité.",
7433                                    ang="Sensitivity parameter"),
7434                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
7435                  TYPE_MAXI       =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
7436
7437                  # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre :
7438                  b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
7439                       TYPE_RESU       =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
7440
7441                       regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST',
7442                                       'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
7443                       TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7444                       LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
7445                       LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
7446                       NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
7447                       INST            =SIMP(statut='f',typ='R',max='**'),
7448                       FREQ            =SIMP(statut='f',typ='R',max='**'),
7449                       NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
7450                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
7451                       NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
7452                       ANGL            =SIMP(statut='f',typ='R',max='**'),
7453                  ),
7454
7455                  # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre :
7456                  b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None",
7457                       regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
7458                       NUME_ORDRE      =SIMP(statut='f',typ='I'),
7459                       INST            =SIMP(statut='f',typ='R'),
7460                       FREQ            =SIMP(statut='f',typ='R'),
7461                       NUME_MODE       =SIMP(statut='f',typ='I'),
7462                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max=2),
7463                       NOM_CAS         =SIMP(statut='f',typ='TXM'),
7464                       ANGL            =SIMP(statut='f',typ='R'),
7465
7466                       INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
7467                  ),
7468
7469                  PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
7470                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
7471
7472          ),  # fin bloc b_extr
7473
7474
7475                ),
7476 # FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT :
7477 #-----------------------------------------------------
7478          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
7479          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
7480 )  ;
7481 #& MODIF COMMANDE  DATE 19/05/2008   AUTEUR PELLET J.PELLET 
7482 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7483 # ======================================================================
7484 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7485 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7486 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7487 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7488 # (AT YOUR OPTION) ANY LATER VERSION.
7489 #
7490 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7491 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7492 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7493 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7494 #
7495 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7496 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7497 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7498 # ======================================================================
7499 # RESPONSABLE PELLET J.PELLET
7500 CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
7501             reentrant='n',fr="Crée un maillage à partir d'un maillage existant",
7502             UIinfo={"groupes":("Maillage",)},
7503          regles=(EXCLUS('COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1',
7504                         'DETR_GROUP_MA', 'ECLA_PG', 'HEXA20_27', 'LINE_QUAD', 'MODI_MAILLE',
7505                         'QUAD_LINE', 'REPERE','RESTREINT'),),
7506
7507
7508
7509          # le MAILLAGE est inutile si ECLA_PG
7510          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
7511
7512          CREA_POI1       =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds",
7513            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),),
7514            NOM_GROUP_MA    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7515            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7516            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7517            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7518            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7519            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
7520          ),
7521          CREA_MAILLE     =FACT(statut='f',max='**',fr="Duplication de mailles",
7522            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),),
7523            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7524            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7525            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7526            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
7527            PREF_NUME       =SIMP(statut='f',typ='I' ),
7528          ),
7529          CREA_GROUP_MA   =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles",
7530            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
7531            NOM             =SIMP(statut='o',typ='TXM'),
7532            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7533            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7534            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7535            PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
7536            PREF_NUME       =SIMP(statut='f',typ='I' ),
7537          ),
7538          DETR_GROUP_MA   =FACT(statut='f',fr="Destruction de groupes de mailles",
7539            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7540            NB_MAILLE       =SIMP(statut='f',typ='I',defaut= 0,
7541                                  fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit",  ),
7542          ),
7543          RESTREINT   =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1,
7544            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
7545            TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
7546            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
7547            TOUT_GROUP_NO   =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
7548          ),
7549          COQU_VOLU   =FACT(statut='f',
7550                            fr="Creation de mailles volumiques à partir de mailles surfaciques",
7551            NOM             =SIMP(statut='o',typ='TXM'),
7552            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'),
7553            EPAIS           =SIMP(statut='o',typ='R' ),
7554            PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
7555            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS" ),
7556            PREF_NUME       =SIMP(statut='f',typ='I'  ,defaut=1 ),
7557            PLAN            =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")),
7558            b_MOY =BLOC(condition = "PLAN == 'MOY'",
7559              TRANSLATION   =SIMP(statut='o',typ='TXM',into=("SUP","INF") ),
7560            ),
7561          ),
7562          MODI_MAILLE     =FACT(statut='f',max='**',fr="Modification du type de mailles",
7563            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
7564            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7565            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7566            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7567            OPTION          =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),
7568                                  fr="Choix de la transformation" ),
7569            b_NOS =BLOC(condition = "OPTION == 'TRIA6_7'  or  OPTION == 'QUAD8_9'  or  OPTION == 'SEG3_4'",
7570              PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
7571              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
7572            ),
7573            b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'",
7574              PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
7575              PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
7576            ),
7577          ),
7578          CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc",
7579            NOM             =SIMP(statut='o',typ='TXM'),
7580            GROUP_NO_1      =SIMP(statut='o',typ=grno),
7581            GROUP_NO_2      =SIMP(statut='o',typ=grno),
7582            PREF_MAILLE     =SIMP(statut='o',typ='TXM'),
7583            PREF_NUME       =SIMP(statut='f',typ='I',defaut=1 ),
7584          ),
7585          LINE_QUAD     =FACT(statut='f',fr="Passage linéaire -> quadratique",
7586            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
7587            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7588            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7589            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7590            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
7591            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
7592          ),
7593          HEXA20_27     =FACT(statut='f',fr="Passage HEXA20 -> HEXA27",
7594            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
7595            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7596            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7597            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7598            PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
7599            PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
7600          ),
7601          QUAD_LINE     =FACT(statut='f',fr="Passage quadratique -> linéaire",
7602            regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
7603            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7604            MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7605            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7606          ),
7607          REPERE          =FACT(statut='f',max='**',
7608                                fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
7609            TABLE           =SIMP(statut='o',typ=table_sdaster,
7610                                  fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
7611            NOM_ORIG        =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
7612            NOM_ROTA        =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére"  ),
7613            b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
7614              GROUP_MA        =SIMP(statut='f',typ=grma,
7615                                    fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
7616            ),
7617          ),
7618          ECLA_PG         =FACT(statut='f',
7619                                fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
7620            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
7621            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7622            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7623            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7624            SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
7625            TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
7626            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
7627          ),
7628          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
7629 #
7630          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
7631 )  ;
7632 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7633 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7634 # ======================================================================
7635 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7636 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7637 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7638 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7639 # (AT YOUR OPTION) ANY LATER VERSION.
7640 #
7641 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7642 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7643 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7644 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7645 #
7646 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7647 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7648 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7649 # ======================================================================
7650 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
7651 def crea_resu_prod(TYPE_RESU,**args):
7652   if TYPE_RESU == "EVOL_ELAS"    : return evol_elas
7653   if TYPE_RESU == "EVOL_NOLI"    : return evol_noli
7654   if TYPE_RESU == "EVOL_THER"    : return evol_ther
7655   if TYPE_RESU == "MULT_ELAS"    : return mult_elas
7656   if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
7657   if TYPE_RESU == "FOURIER_THER" : return fourier_ther
7658   if TYPE_RESU == "EVOL_VARC"    : return evol_varc
7659   if TYPE_RESU == "EVOL_CHAR"    : return evol_char
7660   raise AsException("type de concept resultat non prevu")
7661
7662 CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
7663             UIinfo={"groupes":("Modélisation",)},
7664                fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds",
7665
7666          OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","ECLA_PG","PERM_CHAM","PROL_RTZ","PREP_VRC1","PREP_VRC2",),
7667                          fr="choix de la fonction a activer",),
7668
7669
7670          # Création par affectation de champs :
7671          #-------------------------------------
7672          b_affe       =BLOC(condition = "OPERATION == 'AFFE'",
7673
7674            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
7675                                                                            "EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ),
7676            NOM_CHAM     =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
7677
7678            AFFE         =FACT(statut='o',max='**',
7679              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)),
7680              MODELE        =SIMP(statut='f',typ=modele_sdaster),
7681              CHAM_MATER    =SIMP(statut='f',typ=cham_mater),
7682              CARA_ELEM     =SIMP(statut='f',typ=cara_elem),
7683
7684              b_mult_elas     =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ",
7685                 NOM_CAS         =SIMP(statut='f',typ='TXM' ),
7686              ),
7687              b_evol          =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\
7688                                                                           or (TYPE_RESU=='EVOL_VARC') or (TYPE_RESU=='EVOL_CHAR'))",
7689                 regles=(UN_PARMI('INST','LIST_INST'),),
7690                 INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7691                 LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
7692                 NUME_INIT       =SIMP(statut='f',typ='I', val_min=1),
7693                 NUME_FIN        =SIMP(statut='f',typ='I', val_min=1),
7694                 PRECISION       =SIMP(statut='f',typ='R',defaut= 0. ),
7695                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7696              ),
7697              b_fourier       =BLOC(condition = "((TYPE_RESU == 'FOURIER_ELAS') or (TYPE_RESU == 'FOURIER_THER')) ",
7698                 NUME_MODE       =SIMP(statut='f',typ='I'),
7699                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
7700              ),
7701            ),
7702          ),
7703
7704
7705          # Création par assemblage d'evol_ther :
7706          #-----------------------------------------
7707          b_asse       =BLOC(condition = "OPERATION == 'ASSE'",
7708            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=("EVOL_THER",) ),
7709            ASSE         =FACT(statut='o',max='**',
7710              RESULTAT       =SIMP(statut='o',typ=evol_ther),
7711              TRANSLATION    =SIMP(statut='f',typ='R',defaut= 0. ),
7712            ),
7713          ),
7714
7715
7716          b_ecla_pg    =BLOC(condition = "OPERATION == 'ECLA_PG'",
7717
7718            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
7719
7720            ECLA_PG         =FACT(statut='o',
7721              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
7722              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
7723              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster),
7724              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7725              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
7726              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
7727              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster),
7728              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
7729              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
7730              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
7731              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
7732              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7733              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
7734              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
7735              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
7736            ),
7737          ),
7738
7739
7740          b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'",
7741
7742            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ),
7743            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ),
7744            RESU_INIT       =SIMP(statut='o',typ=evol_noli),
7745            INST_INIT       =SIMP(statut='f',typ='R'),
7746            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
7747            CRITERE         =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
7748            MAILLAGE_INIT   =SIMP(statut='o',typ=maillage_sdaster,),
7749            RESU_FINAL      =SIMP(statut='o',typ=evol_noli,),
7750            MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
7751            PERM_CHAM       =FACT(statut='o',max='**',
7752               GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
7753               GROUP_MA_INIT  =SIMP(statut='o',typ=grma),
7754               TRAN           =SIMP(statut='o',typ='R',min=3,max=3),
7755               PRECISION      =SIMP(statut='f',typ='R',defaut=1.0E-3),
7756            ),
7757          ),
7758
7759          b_prol_rtz   =BLOC(condition = "OPERATION == 'PROL_RTZ'",
7760
7761            TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
7762
7763            PROL_RTZ        =FACT(statut='o',
7764               regles=(EXCLUS('INST','LIST_INST'),),
7765               MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
7766               TABLE           =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"),
7767               INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
7768               LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
7769               b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
7770                  PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
7771                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
7772               ),
7773               PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
7774               PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
7775               REPERE          =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),),
7776               ORIGINE         =SIMP(statut='o',typ='R',min=3,max=3),
7777               AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3),
7778            ),
7779          ),
7780
7781          b_prep_vrc1      =BLOC(condition = "OPERATION == 'PREP_VRC1'",
7782            # calculer la température dans les couches des coques multicouche à partir d'un champ de fonctions
7783            # de fonctions du temps et de l'espace (épaisseur)
7784
7785            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ),
7786
7787            PREP_VRC1        =FACT(statut='o',max=1,
7788              CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)), # carte de fonctions du temps et de l'épaisseur
7789              MODELE        =SIMP(statut='o',typ=modele_sdaster),    # modèle mécanique contenant les coques multicouche
7790              CARA_ELEM     =SIMP(statut='o',typ=cara_elem),         # CARA_ELEM pour connaitre EPAIS et COQU_NCOU
7791              INST          =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**'),
7792            ),
7793          ),
7794
7795          b_prep_vrc2      =BLOC(condition = "OPERATION == 'PREP_VRC2'",
7796            # calculer la température dans les couches des coques multicouche à partir d'un evol_ther "coque"
7797            # contenant TEMP/TEMP_INF/TEMP_SUP
7798
7799            TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=( "EVOL_THER",) ),
7800
7801            PREP_VRC2        =FACT(statut='o',max=1,
7802              EVOL_THER     =SIMP(statut='o',typ=(evol_ther)),       # evol_ther de type "coque" (TEMP/TEMP_INF/TEMP_SUP)
7803              MODELE        =SIMP(statut='o',typ=modele_sdaster),    # modèle mécanique contenant les coques multicouche
7804              CARA_ELEM     =SIMP(statut='o',typ=cara_elem),         # CARA_ELEM pour connaitre EPAIS et COQU_NCOU
7805            ),
7806          ),
7807 )  ;
7808 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7809 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7810 # ======================================================================
7811 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
7812 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7813 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
7814 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
7815 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
7816 #                                                                       
7817 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7818 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7819 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7820 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7821 #                                                                       
7822 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7823 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7824 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7825 # ======================================================================
7826 # RESPONSABLE COURTOIS M.COURTOIS
7827
7828 def crea_table_prod(TYPE_TABLE, **args):
7829    """Typage du concept résultat
7830    """
7831    if TYPE_TABLE == 'TABLE_FONCTION':
7832       return table_fonction
7833    else:
7834       return table_sdaster
7835
7836 CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod,
7837                 fr="Création d'une table à partir d'une fonction ou de deux listes",
7838                 reentrant='f',UIinfo={"groupes":("Table",)},
7839
7840            regles=(EXCLUS('FONCTION','LISTE'),),
7841
7842            LISTE=FACT(statut='f',max='**',
7843                  fr="Creation d'une table a partir de listes",
7844                  regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), 
7845                         PARA     =SIMP(statut='o',typ='TXM'),
7846                         TYPE_K   =SIMP(statut='f',typ='TXM',defaut='K8',
7847                                     into=('K8','K16','K24')),
7848                         NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
7849                         LISTE_I  =SIMP(statut='f',typ='I',max='**'),
7850                         LISTE_R  =SIMP(statut='f',typ='R',max='**'),
7851                         LISTE_K  =SIMP(statut='f',typ='TXM', max='**'),
7852            ),
7853            FONCTION=FACT(statut='f',
7854                     fr="Creation d'une table a partir d'une fonction",
7855                         FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)),
7856                         PARA=SIMP(statut='f',typ='TXM',min=2,max=2),
7857            ),
7858            b_fonction = BLOC(condition='FONCTION != None',
7859                regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
7860                        DERIVABLE('FONCTION'),),
7861                SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
7862                                     fr="Liste des paramètres de sensibilité.",
7863                                     ang="List of sensitivity parameters"),
7864            ),
7865            TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE",
7866                              into=('TABLE', 'TABLE_FONCTION'),),
7867            
7868            TITRE=SIMP(statut='f',typ='TXM',max='**'),
7869 )  ;
7870
7871
7872
7873 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7874 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7875 # ======================================================================
7876 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
7877 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7878 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
7879 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
7880 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
7881 #                                                                       
7882 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
7883 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
7884 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
7885 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
7886 #                                                                       
7887 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
7888 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
7889 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
7890 # ======================================================================
7891 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
7892
7893 DEBUG=PROC(nom="DEBUG",op=137,
7894             UIinfo={"groupes":("Utilitaires",)},
7895                fr="Permettre de changer entre 2 commandes quelques variables globales de debug",
7896
7897      SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
7898                            statut='f',typ='TXM',into=('OUI','NON')),
7899      JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
7900                            statut='f',typ='TXM',into=('OUI','NON')),
7901      JEVEUX          =SIMP(fr="force les déchargement sur disque",
7902                            statut='f',typ='TXM',into=('OUI','NON')),
7903      IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
7904                            statut='f',typ='TXM',into=("OUI","NON")),
7905  );
7906 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
7907 #            CONFIGURATION MANAGEMENT OF EDF VERSION
7908 # ======================================================================
7909 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
7910 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7911 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7912 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7913 # (AT YOUR OPTION) ANY LATER VERSION.
7914 #
7915 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
7916 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
7917 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
7918 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
7919 #
7920 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
7921 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
7922 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
7923 # ======================================================================
7924 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
7925 DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n',
7926             UIinfo={"groupes":("Gestion du travail",)},
7927            fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
7928           sd_prod=ops.DEBUT,
7929
7930          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
7931                            into=("OUI","NON"),defaut="OUI"),
7932          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
7933                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
7934 #         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
7935 #                               typ='TXM',defaut="NON",into=("OUI","NON",) ),
7936          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
7937                                statut='f',min=1,max=2,
7938            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
7939                                  into=('GLOBALE','VOLATILE'),),
7940            TITRE           =SIMP(statut='f',typ='TXM'),
7941            CAS             =SIMP(statut='f',typ='TXM'),
7942            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
7943            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
7944            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
7945          ),
7946
7947          IMPRESSION      =FACT(statut='f',min=1,max=3,
7948            FICHIER         =SIMP(statut='o',typ='TXM'),
7949            UNITE           =SIMP(statut='o',typ='I'),
7950          ),
7951
7952          CATALOGUE       =FACT(statut='f',min=1,max=10,
7953            FICHIER         =SIMP(statut='o',typ='TXM'),
7954            TITRE           =SIMP(statut='f',typ='TXM'),
7955            UNITE           =SIMP(statut='f',typ='I'),
7956          ),
7957
7958          CODE            =FACT(fr="définition d'un nom pour l'ensemble d'une étude",
7959                                statut='f',min=1,max=1,
7960            NOM             =SIMP(statut='o',typ='TXM'),
7961            NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
7962            VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
7963          ),
7964
7965          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
7966            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
7967          ),
7968
7969          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
7970                                statut='f',min=1,max=1,
7971            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
7972                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
7973            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
7974                                  statut='f',typ='TXM',into=('OUI','NON')),
7975            JEVEUX          =SIMP(fr="force les déchargement sur disque",
7976                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
7977            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
7978                                  statut='f',typ='TXM',into=('TEST',)),
7979          ),
7980
7981          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
7982            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
7983            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
7984            TAILLE          =SIMP(statut='f',typ='I'),
7985            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
7986            PARTITION       =SIMP(statut='f',typ='R'),
7987            DYNAMIQUE       =SIMP(statut='f',typ='I'),
7988          ),
7989  
7990          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
7991            regles=(EXCLUS('VALE','POURCENTAGE'),),
7992 #          par défaut VALE fixée à 10. dans le FORTRAN si CODE présent
7993            VALE            =SIMP(statut='f',typ='I',val_min=0,),
7994 #          par défaut 10% dans le FORTRAN
7995            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
7996 #          valeur en secondes de la réserve maximum bornée à 900 secondes
7997            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=900),),
7998
7999          IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
8000
8001 );
8002 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8003 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8004 # ======================================================================
8005 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8006 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8007 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8008 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8009 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8010 #
8011 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8012 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8013 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8014 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8015 #
8016 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8017 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8018 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8019 # ======================================================================
8020 # RESPONSABLE NISTOR I.NISTOR
8021 DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=base_modale,
8022                      reentrant='f',
8023                      fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale",
8024             UIinfo={"groupes":("Matrices/vecteurs",)},
8025          regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),),
8026          CLASSIQUE       =FACT(statut='f',
8027            INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
8028            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
8029            NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 10 ),
8030          ),
8031          RITZ            =FACT(statut='f',max='**',
8032            regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
8033            MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
8034            NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 999 ),
8035            MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
8036            MULT_ELAS       =SIMP(statut='f',typ=mult_elas ),
8037            BASE_MODALE     =SIMP(statut='f',typ=base_modale ),
8038          ),
8039          b_ritz          =BLOC(condition = "RITZ != None",
8040            INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
8041            NUME_REF        =SIMP(statut='o',typ=nume_ddl_sdaster ),
8042            ORTHO           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
8043                                fr="Reorthonormalisation de la base de Ritz" ),
8044            b_ortho          =BLOC(condition = "ORTHO == 'OUI' ",
8045              MATRICE          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
8046                ),
8047          ),
8048         DIAG_MASS        =FACT(statut='f',max='**',
8049            MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**'  ),
8050            MODE_STAT       =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
8051          ),
8052         ORTHO_BASE        =FACT(statut='f',max='**',
8053            BASE       =SIMP(statut='o',typ=(mode_meca,mode_stat_depl,mode_stat_acce,mode_stat_forc,mult_elas,base_modale)),
8054            MATRICE    =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
8055          ),
8056          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8057          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8058 )  ;
8059 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8060 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8061 # ======================================================================
8062 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8063 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8064 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8065 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8066 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8067 #                                                                       
8068 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8069 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8070 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8071 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8072 #                                                                       
8073 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8074 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8075 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8076 # ======================================================================
8077 # RESPONSABLE MICHEL S.MICHEL
8078
8079 from Macro.defi_cable_bp_ops import defi_cable_bp_ops
8080
8081 # ===========================================================================
8082 #           CATALOGUE DE LA MACRO "DEFI_CABLE_BP"
8083 #           -----------------------------------------
8084 #
8085 # USAGE :
8086 # Entrée :
8087 #  - MODELE
8088 #  - CABLE
8089 #  - CHAM_MATER
8090 #  - CARA_ELEM
8091 #  - GROUP_MA_BETON
8092 #  - DEFI_CABLE
8093 #  - TENSION_INIT
8094 #  - RECUL_ANCRAGE
8095 #  - RELAXATION
8096 #  - CONE
8097 #      RAYON
8098 #      LONGUEUR
8099 #      PRESENT          OUI ou NON deux fois
8100 #  - TITRE
8101 #  - INFO               1 / 2
8102 #
8103 # ===========================================================================
8104
8105 DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont,
8106                    fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton",
8107                    reentrant='n',UIinfo={"groupe":("Modélisation",)},
8108          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
8109          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
8110          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
8111          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
8112          DEFI_CABLE      =FACT(statut='o',max='**',
8113            regles=(UN_PARMI('MAILLE','GROUP_MA'),
8114                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
8115            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
8116            GROUP_MA        =SIMP(statut='f',typ=grma),
8117            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
8118            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8119          ),
8120          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
8121          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8122          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8123          RELAXATION      =FACT(statut='f',min=0,
8124            R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8125          ),
8126          CONE            =FACT(statut='f',
8127            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8128            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8129            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
8130          ),
8131          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
8132          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8133 )  ;
8134 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8135 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8136 # ======================================================================
8137 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8138 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8139 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8140 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8141 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8142 #                                                                       
8143 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8144 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8145 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8146 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8147 #                                                                       
8148 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8149 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8150 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8151 # ======================================================================
8152 # RESPONSABLE MICHEL S.MICHEL
8153
8154 DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n',
8155             fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte"
8156                +" (utilisée par la macro DEFI_CABLE_BP)",
8157             UIinfo={"groupes":("Modélisation",)},
8158          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
8159          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
8160          CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
8161          GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
8162          DEFI_CABLE      =FACT(statut='o',max='**',
8163            regles=(UN_PARMI('MAILLE','GROUP_MA'),
8164                    UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
8165            MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
8166            GROUP_MA        =SIMP(statut='f',typ=grma),
8167            NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
8168            GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8169            GROUP_NO_FUT    =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8170          ),
8171          TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
8172          TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8173          RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8174          RELAXATION      =FACT(statut='f',min=0,
8175            R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8176          ),
8177          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
8178          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8179          CONE            =FACT(statut='f',min=0,
8180            RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
8181            LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ),  
8182            PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
8183          ),
8184 )  ;
8185 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8186 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8187 # ======================================================================
8188 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
8189 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8190 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8191 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8192 # (AT YOUR OPTION) ANY LATER VERSION.
8193 #
8194 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8195 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8196 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8197 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8198 #
8199 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8200 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8201 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8202 # ======================================================================
8203 # RESPONSABLE PROIX J.M.PROIX
8204 DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
8205                    fr="Définir le comportement d'un monocristal, d'un polycristal ou de groupes de fibres",
8206                    reentrant='n',
8207             UIinfo={"groupes":("Modélisation",)},
8208 # on exclut MULTIFBRE de MONOCRISTAL ou POLYCRISTAL car la structure de données n'est pas organisée pareil pour ces cas
8209                   regles=(UN_PARMI('MONOCRISTAL','POLYCRISTAL','MULTIFIBRE'),
8210                  PRESENT_PRESENT('MULTIFIBRE','GEOM_FIBRE','MATER_SECT'),
8211                          ),
8212           MONOCRISTAL    =FACT(statut='f', max='**',
8213              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
8214              ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
8215                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
8216              ECRO_ISOT       =SIMP(statut='o', typ='TXM', max=1,
8217                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
8218              ECRO_CINE       =SIMP(statut='o', typ='TXM', max=1,
8219                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
8220              ELAS            =SIMP(statut='f', typ='TXM', max=1,
8221                    fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
8222              FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1,
8223                                 into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1',
8224                                 'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL','BCC24'),),
8225                                 ),
8226
8227
8228           POLYCRISTAL    =FACT(statut='f', max='**',
8229            regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),),
8230              MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
8231              FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
8232              ANGL_REP  =SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles nautiques en degrés"),
8233              ANGL_EULER=SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler   en degrés"),
8234                                 ),
8235
8236
8237           b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
8238           LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
8239                 fr="Donner le nom de la règle de localisation"),
8240
8241            b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
8242              DL            =SIMP(statut='o',typ='R',max=1),
8243              DA            =SIMP(statut='o',typ='R',max=1),
8244              ),
8245              ),
8246
8247 #####################################################################################
8248           GEOM_FIBRE = SIMP(statut='f',max=1,typ=gfibre_sdaster,
8249                    fr="Donner le nom du concept regroupant tous les groupes de fibres (issu de DEFI_GEOM_FIBRE)"),
8250           MATER_SECT = SIMP(statut='f',max=1,typ=mater_sdaster,
8251                    fr="Donner le nom du materiau pour les caracteristiques homogeneisees sur la section"),
8252           MULTIFIBRE    = FACT(statut='f',max='**',
8253           GROUP_FIBRE        =SIMP(statut='o', typ='TXM', max='**'),
8254              MATER           =SIMP(statut='o', typ=mater_sdaster, max=1,
8255                                    fr="Donner le nom du materiau pour le groupe de fibres"),
8256              ALGO_1D         =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
8257              DEFORMATION      =SIMP(statut='f',typ='TXM',defaut="PETIT",
8258                                      into=("PETIT","PETIT_REAC","REAC_GEOM")),
8259              RELATION        =SIMP(statut='f', typ='TXM', max=1,defaut="ELAS",
8260 #                                   into=c_relation_into,
8261                                   fr="Donner le nom de la relation incrementale pour le groupe de fibres",
8262                                  into=(
8263                                         "ELAS",
8264                                         "ELAS_HYPER",
8265                                         "VMIS_ISOT_TRAC",
8266                                         "VISC_ISOT_TRAC",
8267                                         "VMIS_ISOT_LINE",
8268                                         "VISC_ISOT_LINE",
8269                                         "VMIS_ISOT_PUIS",
8270                                         "VMIS_ECMI_TRAC",
8271                                         "VMIS_ECMI_LINE",
8272                                         "LABORD_1D",
8273                                         "ENDO_FRAGILE",
8274                                         "ENDO_ISOT_BETON",
8275                                         "ENDO_ORTH_BETON",
8276                                         "BETON_REGLE_PR",
8277                                         "MAZARS",
8278                                         "RUPT_FRAG",
8279                                         "VMIS_CINE_LINE",
8280                                         "VISC_TAHERI",
8281                                         "VISCOCHAB",
8282                                         "VMIS_CIN1_CHAB",
8283                                         "VMIS_CIN2_CHAB",
8284                                         "VISC_CIN1_CHAB",
8285                                         "VISC_CIN2_CHAB",
8286                                         "ROUSSELIER",
8287                                         "ROUSS_PR",
8288                                         "ROUSS_VISC",
8289                                         "NORTON_HOFF",
8290                                         "LEMAITRE",
8291                                         "VENDOCHAB",
8292                                         "DRUCK_PRAGER",
8293                                         "DRUCK_PRAG_N_A",
8294                                         "GRANGER_FP",
8295                                         "GRANGER_FP_INDT",
8296                                         "GRANGER_FP_V",
8297                                         "BETON_UMLV_FP",
8298                                         "BETON_DOUBLE_DP",
8299                                         "KIT_DDI",
8300                                         "SANS",
8301                                         "CORR_ACIER",
8302                                         "ZMAT",
8303                                         "GRAN_IRRA_LOG",
8304                                      ) ),
8305           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8306           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8307           SANS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8308           CORR_ACIER      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8309           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
8310           VISC_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8311           VMIS_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
8312           VISC_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8313           VMIS_ISOT_PUIS  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
8314           VMIS_ECMI_TRAC  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
8315           VMIS_ECMI_LINE  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
8316           LABORD_1D       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
8317           ENDO_FRAGILE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
8318           ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
8319           ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
8320           BETON_REGLE_PR  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8321           MAZARS          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
8322           RUPT_FRAG       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8323           VMIS_CINE_LINE  =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
8324           VISCOCHAB       =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
8325           VMIS_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
8326           VMIS_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
8327           VISC_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
8328           VISC_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
8329           VISC_TAHERI     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
8330           ROUSSELIER      =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
8331           ROUSS_PR        =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8332           ROUSS_VISC      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8333           VMIS_POU_LINE   =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
8334           VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
8335           ASSE_CORN       =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
8336           ARME            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8337           NORTON_HOFF     =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
8338           LEMAITRE        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
8339           VENDOCHAB       =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
8340           GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
8341           DRUCK_PRAGER  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8342           DRUCK_PRAG_N_A  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8343           HOEK_BROWN      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8344           HOEK_BROWN_EFF  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8345           HOEK_BROWN_TOT  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
8346           GRANGER_FP      =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
8347           GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
8348           GRANGER_FP_V    =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
8349           BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
8350           BETON_UMLV_FP   =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
8351           GRAN_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
8352
8353            RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
8354                                  into=(
8355 # MECA KIT_DDI
8356                                        "VMIS_ISOT_TRAC",
8357                                        "VMIS_ISOT_LINE",
8358                                        "VMIS_ISOT_CINE",
8359                                        "VMIS_ISOT_PUIS",
8360                                        "GRANGER_FP",
8361                                        "GRANGER_FP_INDT",
8362                                        "GRANGER_FP_V",
8363                                        "BETON_UMLV_FP",
8364                                        "ROUSS_PR",
8365                                        "NADAI_B",
8366                                        "BETON_DOUBLE_DP",
8367                                        ),),
8368
8369 # on pourrait ajouter TOUT_GROUP_FIBRE
8370
8371                                 ) );
8372
8373 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8374 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8375 # ======================================================================
8376 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8377 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8378 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8379 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8380 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8381 #
8382 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8383 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8384 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8385 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8386 #
8387 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8388 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8389 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8390 # ======================================================================
8391 # RESPONSABLE COURTOIS M.COURTOIS
8392 DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
8393                     fr="Définir la valeur d'une grandeur invariante",
8394                     reentrant='n',
8395             UIinfo={"groupes":("Fonction",)},
8396          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
8397          VALE            =SIMP(statut='o',typ='R',),
8398          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8399 )  ;
8400 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8401 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8402 # ======================================================================
8403 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8404 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8405 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8406 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8407 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8408 #
8409 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8410 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8411 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8412 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8413 #
8414 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8415 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8416 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8417 # ======================================================================
8418 # RESPONSABLE DESROCHES X.DESROCHES
8419 DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n',
8420             UIinfo={"groupes":("Modélisation",)},
8421                     fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir"
8422                         +" des caractéristiques de chaque couche",
8423          COUCHE          =FACT(statut='o',max='**',
8424            EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
8425            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
8426            ORIENTATION     =SIMP(statut='f',typ='R',defaut= 0.E+0,
8427                                  val_min=-90.E+0,val_max=90.E+0   ),
8428          ),
8429          IMPRESSION      =FACT(statut='f',
8430            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
8431          ),
8432 )  ;
8433 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8434 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8435 # ======================================================================
8436 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
8437 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8438 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8439 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8440 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8441 #                                                                       
8442 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8443 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8444 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8445 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8446 #                                                                       
8447 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8448 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8449 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8450 # ======================================================================
8451 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
8452 def DEFIC_prod(self,ACTION,UNITE,**args):
8453   if ACTION == "ASSOCIER" or ACTION == "RESERVER":
8454     if UNITE != None :
8455       return
8456     else :
8457       return entier
8458   elif ACTION == "LIBERER"  :
8459     return
8460   else :
8461     raise AsException("ACTION non prevue : %s" % ACTION)
8462
8463 DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n',
8464                   UIinfo={"groupes":("Gestion du travail",)},
8465                   fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique",
8466
8467             ACTION        =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"),
8468
8469             b_associer    =BLOC(condition = "ACTION == 'ASSOCIER'",
8470                                 fr="Paramètres pour l'ouverture du fichier",
8471                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
8472                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
8473                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
8474                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
8475
8476                b_type_ascii  =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII",
8477                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
8478                ),
8479                b_type_autre  =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE",
8480                   ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"),
8481                ),
8482             ),
8483
8484             b_reserver    =BLOC(condition = "ACTION == 'RESERVER'",
8485                                 fr="Paramètres pour la réservation de l'unité du fichier",
8486                                 regles=(AU_MOINS_UN('FICHIER','UNITE'),),
8487                UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
8488                FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
8489                TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"),
8490                ACCES      =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"),
8491             ),
8492
8493             b_liberer    =BLOC(condition = "ACTION == 'LIBERER'",
8494                                fr="Paramètres pour la fermeture du fichier",
8495                                regles=(UN_PARMI('FICHIER','UNITE'),),
8496                   UNITE         =SIMP(statut='f',typ='I' ,val_min=1),
8497                   FICHIER   =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
8498            ),
8499
8500            INFO          =SIMP(statut='f',typ='I',into=(1,2) ),           
8501            )
8502 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8503 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8504 # ======================================================================
8505 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
8506 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8507 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8508 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8509 # (AT YOUR OPTION) ANY LATER VERSION.
8510 #
8511 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
8512 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
8513 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
8514 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
8515 #
8516 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
8517 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
8518 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
8519 # ======================================================================
8520 # RESPONSABLE GENIAUT S.GENIAUT
8521
8522 DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='n',
8523             UIinfo={"groupes":("Modélisation",)},
8524                fr="Définition des caratéristiques d'une fissure avec X-FEM",
8525
8526     MODELE                =SIMP(statut='o',typ=modele_sdaster),
8527     DEFI_FISS             =FACT(statut='o',max=01,
8528       regles              =(UN_PARMI('GROUP_MA_FISS','FONC_LT','FORM_FISS'),
8529                             ENSEMBLE('FONC_LT','FONC_LN'),
8530                             ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
8531       FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
8532       FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
8533       GROUP_MA_FISS       =SIMP(statut='f',typ=grma,max=01),
8534       GROUP_MA_FOND       =SIMP(statut='f',typ=grma),
8535       FORM_FISS           =SIMP(statut='f',typ='TXM',into=("ELLIPSE",) ),
8536       b_ellipse           =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramères de la fissure elliptique",           
8537            DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
8538            DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
8539            CENTRE         =SIMP(statut='o',typ='R',min=3,max=3),
8540            VECT_X         =SIMP(statut='o',typ='R',min=3,max=3),
8541            VECT_Y         =SIMP(statut='o',typ='R',min=3,max=3),
8542            COTE_FISS      =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ),    ),
8543     ),
8544     GROUP_MA_ENRI         =SIMP(statut='o',typ=grma,max=01),
8545     RAYON_ENRI            =SIMP(statut='f',typ='R',defaut=0.E+0),
8546     ORIE_FOND             =FACT(statut='f',max=01,
8547       PFON_INI            =SIMP(statut='o',typ='R',max=03),
8548       VECT_ORIE           =SIMP(statut='o',typ='R',max=03),
8549       PT_ORIGIN           =SIMP(statut='o',typ='R',max=03),
8550     ),
8551     INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
8552 )  ;
8553 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8554 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8555 # ======================================================================
8556 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8557 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8558 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8559 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8560 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8561 #
8562 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8563 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8564 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8565 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8566 #
8567 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8568 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8569 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8570 # ======================================================================
8571 # RESPONSABLE ADOBES A.ADOBES
8572 DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
8573                     reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
8574             UIinfo={"groupes":("Maillage",)},
8575          regles=(  UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
8576          FAISCEAU_TRANS  =FACT(statut='f',max='**',
8577            regles=(  ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),),
8578            COUPLAGE        =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
8579            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
8580            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8581            PROF_RHO_F_INT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8582            PROF_RHO_F_EXT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8583            NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
8584            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
8585            TYPE_PAS        =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
8586            TYPE_RESEAU     =SIMP(statut='f',typ='I' ),
8587            UNITE_CD        =SIMP(statut='f',typ='I',defaut=70),
8588            UNITE_CK        =SIMP(statut='f',typ='I',defaut=71),            
8589            PAS             =SIMP(statut='f',typ='R' ),
8590            CSTE_CONNORS    =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00),
8591            NB_CONNORS      =SIMP(statut='f',typ='I',val_min=2,),
8592            RHO_TUBE        =SIMP(statut='f',typ='R' ),
8593          ),
8594          GRAPPE          =FACT(statut='f',
8595            regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
8596                    PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
8597 #  peut on créer un bloc a partir de la valeur de couplage  
8598            COUPLAGE        =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
8599            GRAPPE_2        =SIMP(statut='f',typ='TXM',
8600                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
8601            NOEUD           =SIMP(statut='f',typ=no),
8602            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
8603            MODELE          =SIMP(statut='f',typ=modele_sdaster ),
8604            COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
8605            RHO_FLUI        =SIMP(statut='f',typ='R' ),
8606            UNITE_CA        =SIMP(statut='f',typ='I',defaut=70),
8607            UNITE_KA        =SIMP(statut='f',typ='I',defaut=71),            
8608          ),
8609          FAISCEAU_AXIAL  =FACT(statut='f',max='**',
8610            regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
8611                    UN_PARMI('CARA_ELEM','RAYON_TUBE'),
8612                    ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
8613                    PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
8614                    ENSEMBLE('CARA_PAROI','VALE_PAROI'),
8615                    ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
8616                             'COOR_GRILLE','TYPE_GRILLE', ),),
8617 #  on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire                            
8618            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8619            TRI_GROUP_MA    =SIMP(statut='f',typ='TXM' ),
8620            VECT_X          =SIMP(statut='f',typ='R',max=3),
8621            PROF_RHO_FLUI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8622            PROF_VISC_CINE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
8623            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
8624            RAYON_TUBE      =SIMP(statut='f',typ='R' ),
8625            COOR_TUBE       =SIMP(statut='f',typ='R',max='**'),
8626            PESANTEUR       =SIMP(statut='f',typ='R',min=4,max=4),
8627            RUGO_TUBE       =SIMP(statut='f',typ='R' ),
8628            CARA_PAROI      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5,
8629                                  into=("YC","ZC","R","HY","HZ") ),
8630            VALE_PAROI      =SIMP(statut='f',typ='R',max=5),
8631            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
8632            LONG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8633            LARG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8634            EPAI_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8635            RUGO_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8636            COEF_TRAI_TYPG  =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
8637            COEF_DPOR_TYPG  =SIMP(statut='f',typ='R',max='**'),
8638            COOR_GRILLE     =SIMP(statut='f',typ='R',max='**'),
8639            TYPE_GRILLE     =SIMP(statut='f',typ='I',max='**'),
8640          ),
8641          COQUE_COAX      =FACT(statut='f',
8642            MASS_AJOU       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
8643            GROUP_MA_INT    =SIMP(statut='o',typ=grma),
8644            GROUP_MA_EXT    =SIMP(statut='o',typ=grma),
8645            VECT_X          =SIMP(statut='o',typ='R',max='**'),
8646            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
8647            MATER_INT       =SIMP(statut='o',typ=mater_sdaster ),
8648            MATER_EXT       =SIMP(statut='o',typ=mater_sdaster ),
8649            RHO_FLUI        =SIMP(statut='o',typ='R' ),
8650            VISC_CINE       =SIMP(statut='o',typ='R' ),
8651            RUGOSITE        =SIMP(statut='o',typ='R' ),
8652            PDC_MOY_1       =SIMP(statut='o',typ='R' ),
8653            PDC_DYN_1       =SIMP(statut='o',typ='R' ),
8654            PDC_MOY_2       =SIMP(statut='o',typ='R' ),
8655            PDC_DYN_2       =SIMP(statut='o',typ='R' ),
8656          ),
8657          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8658 )  ;
8659 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8660 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8661 # ======================================================================
8662 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8663 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8664 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8665 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8666 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8667 #
8668 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8669 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8670 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8671 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8672 #
8673 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8674 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8675 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8676 # ======================================================================
8677 # RESPONSABLE COURTOIS M.COURTOIS
8678 DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n',
8679             UIinfo={"groupes":("Outils métier",)},
8680                     fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE",
8681       regles=(UN_PARMI('COUR_PRIN','COUR'),
8682               EXCLUS('COUR','COUR_SECO'), ),
8683          FREQ            =SIMP(statut='f',typ='R',defaut= 50.),
8684          SIGNAL          =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
8685          COUR            =FACT(statut='f',max='**',
8686          fr="Définition du courant de court-circuit",
8687            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
8688                    UN_PARMI('PHI_CC_2','INTC_CC_2'),),
8689            INTE_CC_1       =SIMP(statut='o',typ='R'),
8690            TAU_CC_1        =SIMP(statut='o',typ='R'),
8691            PHI_CC_1        =SIMP(statut='f',typ='R'),
8692            INTC_CC_1       =SIMP(statut='f',typ='R'),
8693            INTE_CC_2       =SIMP(statut='o',typ='R'),
8694            TAU_CC_2        =SIMP(statut='o',typ='R'),
8695            PHI_CC_2        =SIMP(statut='f',typ='R'),
8696            INTC_CC_2       =SIMP(statut='f',typ='R'),
8697            INST_CC_INIT    =SIMP(statut='o',typ='R'),
8698            INST_CC_FIN     =SIMP(statut='o',typ='R'),
8699          ),
8700          COUR_PRIN       =FACT(statut='f',
8701          fr="Définition du courant de court-circuit avec réenclenchement",
8702            regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
8703            INTE_CC_1       =SIMP(statut='o',typ='R'),
8704            TAU_CC_1        =SIMP(statut='o',typ='R'),
8705            PHI_CC_1        =SIMP(statut='f',typ='R'),
8706            INTC_CC_1       =SIMP(statut='f',typ='R'),
8707            INTE_RENC_1     =SIMP(statut='f',typ='R'),
8708            TAU_RENC_1      =SIMP(statut='f',typ='R'),
8709            PHI_RENC_1      =SIMP(statut='f',typ='R'),
8710            INST_CC_INIT    =SIMP(statut='o',typ='R'),
8711            INST_CC_FIN     =SIMP(statut='o',typ='R'),
8712            INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
8713            INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 0.0E+0),
8714          ),
8715          COUR_SECO       =FACT(statut='f',max='**',
8716          fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
8717            regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
8718            INTE_CC_2       =SIMP(statut='o',typ='R'),
8719            TAU_CC_2        =SIMP(statut='o',typ='R'),
8720            PHI_CC_2        =SIMP(statut='f',typ='R'),
8721            INTC_CC_2       =SIMP(statut='f',typ='R'),
8722            INTE_RENC_2     =SIMP(statut='f',typ='R'),
8723            TAU_RENC_2      =SIMP(statut='f',typ='R'),
8724            PHI_RENC_2      =SIMP(statut='f',typ='R'),
8725            DIST            =SIMP(statut='f',typ='R',defaut=1.0E+0),
8726          ),
8727          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
8728 )  ;
8729 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8730 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8731 # ======================================================================
8732 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8733 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8734 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8735 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8736 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8737 #
8738 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8739 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8740 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8741 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8742 #
8743 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8744 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8745 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8746 # ======================================================================
8747 # RESPONSABLE ADOBES A.ADOBES
8748 DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster,
8749                     reentrant='n',
8750             fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre",
8751             UIinfo={"groupes":("Fonction",)},
8752          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
8753          NOEUD_INIT      =SIMP(statut='o',typ=no),
8754          NOEUD_FIN       =SIMP(statut='o',typ=no),
8755          VITE            =FACT(statut='o',
8756            VALE            =SIMP(statut='f',typ='R',defaut= 1. ),
8757            PROFIL          =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
8758            NB_BAV          =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
8759          ),
8760          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
8761                                into=("NON","LIN","LOG") ),
8762          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",
8763                                into=("CONSTANT","LINEAIRE","EXCLU") ),
8764          PROL_GAUCHE     =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
8765                                into=("CONSTANT","LINEAIRE","EXCLU") ),
8766          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
8767          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8768 )  ;
8769 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8770 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8771 # ======================================================================
8772 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8773 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8774 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8775 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8776 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8777 #
8778 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8779 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8780 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8781 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8782 #
8783 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8784 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8785 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8786 # ======================================================================
8787 # RESPONSABLE COURTOIS M.COURTOIS
8788 def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,ABSCISSE,**args):
8789   if VALE       != None  : return fonction_sdaster
8790   if VALE_C     != None  : return fonction_c
8791   if VALE_PARA  != None  : return fonction_sdaster
8792   if ABSCISSE   != None  : return fonction_sdaster
8793   if NOEUD_PARA != None  : return fonction_sdaster
8794   raise AsException("type de concept resultat non prevu")
8795
8796 DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
8797                     ,fr="Définit une fonction réelle ou complexe d'une variable réelle",
8798                      reentrant='n',
8799             UIinfo={"groupes":("Fonction",)},
8800          regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA','ABSCISSE'),),
8801          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
8802          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
8803          VALE            =SIMP(statut='f',typ='R',min=2,max='**',
8804                                fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"),
8805          ABSCISSE        =SIMP(statut='f',typ='R',min=2,max='**',
8806                                fr ="Liste d abscisses d une fonction réelle"),
8807          VALE_C          =SIMP(statut='f',typ='R',min=2,max='**',
8808                                fr ="Fonction complexe définie par une liste de couples"),
8809          VALE_PARA       =SIMP(statut='f',typ=listr8_sdaster,
8810                                fr ="Fonction réelle définie par deux concepts de type listr8" ),
8811          b_vale_para     =BLOC(condition = "VALE_PARA != None",
8812            VALE_FONC       =SIMP(statut='o',typ=listr8_sdaster ),
8813          ),
8814          b_abscisse      =BLOC(condition = "ABSCISSE != None",
8815            ORDONNEE        =SIMP(statut='o',typ='R',min=2,max='**',
8816                                fr ="Liste d ordonnées d une fonction réelle"),
8817          ),
8818          NOEUD_PARA      =SIMP(statut='f',typ=no,max='**',
8819                                fr ="Fonction réelle définie par une liste de noeuds et un maillage"),
8820          b_noeud_para    =BLOC(condition = "NOEUD_PARA != None",
8821            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
8822            VALE_Y          =SIMP(statut='o',typ='R',max='**'),
8823          ),
8824
8825          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
8826          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
8827          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
8828          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
8829          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
8830          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
8831 )  ;
8832 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8833 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8834 # ======================================================================
8835 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
8836 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
8837 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8838 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
8839 # (AT YOUR OPTION) ANY LATER VERSION.                                 
8840 #
8841 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
8842 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
8843 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
8844 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
8845 #
8846 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
8847 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
8848 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
8849 # ======================================================================
8850 # RESPONSABLE GALENNE E.GALENNE
8851 DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
8852             UIinfo={"groupes":("Post traitements",)},
8853                     fr="Définition de lèvres et d'un fond de fissure en 3D",
8854          regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'),
8855                  EXCLUS('FOND_FERME','DTAN_ORIG'),
8856                  EXCLUS('FOND_FERME','DTAN_EXTR'),
8857                       EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
8858                       EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
8859                  UN_PARMI('LEVRE_SUP','NORMALE'),
8860                       EXCLUS('LEVRE_INF','NORMALE'),
8861                  ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
8862                  ENSEMBLE('FOND_SUP','FOND_INF'),
8863                  EXCLUS('FOND_INF','FOND_FISS'),
8864                  EXCLUS('FOND_INF','FOND_FERME'),
8865                       ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
8866                       EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
8867                       EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
8868            MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
8869            FOND_FISS       =FACT(statut='f',
8870              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
8871                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
8872                           EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
8873              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8874              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8875              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8876              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8877 #  à mettre à jour le max vaut-il 1  
8878              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
8879              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
8880              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
8881              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
8882            ),
8883            FOND_FERME      =FACT(statut='f',
8884              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
8885                           EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
8886              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8887              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8888              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8889              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8890              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
8891              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
8892              MAILLE_ORIG     =SIMP(statut='f',typ=ma,),
8893              GROUP_MA_ORIG   =SIMP(statut='f',typ=ma,),
8894            ),
8895            FOND_INF       =FACT(statut='f',
8896              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
8897              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8898              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8899              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8900              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
8901              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
8902              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
8903              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
8904            ),
8905            FOND_SUP       =FACT(statut='f',
8906              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), 
8907              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
8908              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8909              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8910              NOEUD_ORIG      =SIMP(statut='f',typ=no,),
8911              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
8912              NOEUD_EXTR      =SIMP(statut='f',typ=no,),
8913              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
8914            ),
8915            LEVRE_SUP       =FACT(statut='f',
8916              regles=(UN_PARMI('GROUP_MA','MAILLE'),),
8917              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8918              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8919            ),
8920            LEVRE_INF       =FACT(statut='f',
8921              regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
8922              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8923              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8924            ),
8925            NORMALE         =SIMP(statut='f',typ='R',max='**'),
8926            PREC_NORM       =SIMP(statut='f',typ='R',defaut=0.1),
8927            DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
8928            DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
8929            VECT_GRNO_ORIG  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8930            VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
8931            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
8932 )  ;
8933 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
8934 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8935 # ======================================================================
8936 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
8937 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8938 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8939 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8940 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8941 #                                                                       
8942 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8943 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8944 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8945 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8946 #                                                                       
8947 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
8948 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
8949 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
8950 # ======================================================================
8951 # RESPONSABLE FLEJOU J.L.FLEJOU
8952
8953 DEFI_GEOM_FIBRE=OPER(nom="DEFI_GEOM_FIBRE",op=  119, sd_prod=gfibre_sdaster,
8954                     fr="Definition des groupes de fibres pour les elements multifibres",
8955                     reentrant='n',
8956             UIinfo={"groupes":("Modelisation",)},
8957          regles=(AU_MOINS_UN('SECTION','FIBRE'),),
8958
8959          INFO       =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
8960 #============================================================================
8961          SECTION     =FACT(statut='f',max='**',
8962               regles=(AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
8963                       PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
8964
8965               GROUP_FIBRE       =SIMP(statut='o',typ='TXM',min=1,max=1),
8966               TOUT_SECT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
8967               GROUP_MA_SECT     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
8968               MAILLE_SECT       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
8969
8970               MAILLAGE_SECT     =SIMP(statut='o',typ=maillage_sdaster),
8971               COOR_AXE_POUTRE   =SIMP(statut='o',typ='R',min=2,max=2),
8972          ),
8973
8974
8975 #============================================================================
8976          FIBRE     =FACT(statut='f',max='**',
8977               GROUP_FIBRE       =SIMP(statut='o',typ='TXM',min=1,max=1),
8978               CARA              =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
8979               VALE              =SIMP(statut='o',typ='R',max='**'),
8980               COOR_AXE_POUTRE   =SIMP(statut='o',typ='R',min=2,max=2),
8981           ),
8982
8983
8984 ) ;
8985 #& MODIF COMMANDE  DATE 19/05/2008   AUTEUR MARKOVIC D.MARKOVIC 
8986 #            CONFIGURATION MANAGEMENT OF EDF VERSION
8987 # ======================================================================
8988 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
8989 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
8990 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8991 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
8992 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
8993 #                                                                       
8994 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
8995 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
8996 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
8997 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
8998 #                                                                       
8999 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
9000 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
9001 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
9002 # ======================================================================
9003 # RESPONSABLE MARKOVIC D.MARKOVIC
9004 DEFI_GLRC=OPER(nom="DEFI_GLRC",op=57,sd_prod=mater_sdaster,reentrant='f',
9005             UIinfo={"groupes":("Modélisation",)},
9006                     fr="Déterminer les caractéristiques du béton armé homogénéisées à partir des propriétés du béton et de  "
9007                         +" plusieurs types d'armature",
9008          reuse = SIMP(statut='f',typ=mater_sdaster), 
9009          BETON          =FACT(statut='o',max=1,
9010            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
9011            EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
9012            OMT             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), 
9013            EAT             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), 
9014            BT1             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), 
9015            BT2             =SIMP(statut='f',typ='R',val_min=0.E+0,defaut=0.0E+0), 
9016            GAMMA           =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), 
9017            QP1             =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), 
9018            QP2             =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), 
9019
9020            C1N1            =SIMP(statut='o',typ='R',val_min=0.E+0),
9021            C1N2            =SIMP(statut='o',typ='R',val_min=0.E+0),
9022            C1N3            =SIMP(statut='o',typ='R',val_min=0.E+0),
9023            C2N1            =SIMP(statut='o',typ='R',val_min=0.E+0),
9024            C2N2            =SIMP(statut='o',typ='R',val_min=0.E+0),
9025            C2N3            =SIMP(statut='o',typ='R',val_min=0.E+0),
9026            C1M1            =SIMP(statut='o',typ='R',val_min=0.E+0),
9027            C1M2            =SIMP(statut='o',typ='R',val_min=0.E+0),
9028            C1M3            =SIMP(statut='o',typ='R',val_min=0.E+0),
9029            C2M1            =SIMP(statut='o',typ='R',val_min=0.E+0),
9030            C2M2            =SIMP(statut='o',typ='R',val_min=0.E+0),
9031            C2M3            =SIMP(statut='o',typ='R',val_min=0.E+0),
9032          ),
9033          NAPPE     =FACT(statut='o',max=10,
9034            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
9035            OMX             =SIMP(statut='o',typ='R',val_min=0.E+0), 
9036            OMY             =SIMP(statut='o',typ='R',val_min=0.E+0), 
9037            RX              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), 
9038            RY              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), 
9039          ),
9040          CABLE_PREC   =FACT(statut='f',max=1,
9041            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
9042            OMX             =SIMP(statut='o',typ='R',val_min=0.E+0), 
9043            OMY             =SIMP(statut='o',typ='R',val_min=0.E+0), 
9044            RX              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), 
9045            RY              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), 
9046            PREX            =SIMP(statut='o',typ='R'), 
9047            PREY            =SIMP(statut='o',typ='R'), 
9048          ),
9049          LINER           =FACT(statut='f',max=10,
9050            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
9051            OML             =SIMP(statut='o',typ='R',val_min=0.E+0), 
9052            RLR             =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0), 
9053          ),
9054          IMPRESSION      =FACT(statut='f',
9055            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
9056          ),
9057 )  ;
9058 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
9059 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9060 # ======================================================================
9061 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9062 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9063 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9064 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9065 # (AT YOUR OPTION) ANY LATER VERSION.
9066 #
9067 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9068 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9069 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9070 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9071 #
9072 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9073 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9074 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9075 # ======================================================================
9076 # RESPONSABLE PELLET J.PELLET
9077 def defi_group_prod(MAILLAGE,**args):
9078   if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster
9079   if AsType(MAILLAGE) == squelette : return squelette
9080   raise AsException("type de concept resultat non prevu")
9081
9082 DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
9083                 fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
9084                 reentrant='o',
9085             UIinfo={"groupes":("Maillage",)},
9086          regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),),
9087          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
9088          DETR_GROUP_MA   =FACT(statut='f',max='**',
9089            NOM             =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),),
9090          DETR_GROUP_NO   =FACT(statut='f',max='**',
9091            NOM             =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
9092          CREA_GROUP_MA   =FACT(statut='f',max='**',
9093
9094 regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
9095 #  quel est le concept attendu deriere NOM
9096            NOM             =SIMP(statut='o',typ=grma),
9097            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9098            GROUP_MA        =SIMP(statut='f',typ=grma),
9099            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9100            INTERSEC        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9101            UNION           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9102            DIFFE           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9103            OPTION          =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ),
9104            b_group_ma      =BLOC(condition = "GROUP_MA != None",
9105              regles=(EXCLUS('POSITION','NUME_INIT'),),
9106              NUME_INIT       =SIMP(statut='f',typ='I'),
9107              POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
9108              b_nume_init   =BLOC(condition = "NUME_INIT != None",
9109                NUME_FIN        =SIMP(statut='f',typ='I' ),
9110              ),
9111            ),
9112            b_face_normale  =BLOC(condition = "OPTION == 'FACE_NORMALE'",
9113              regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9114              ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
9115              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9116              ANGL_PREC       =SIMP(statut='f',typ='R',defaut= 0.5 ),
9117              VERI_SIGNE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
9118            ),
9119            b_sphere        =BLOC(condition = "OPTION == 'SPHERE'",
9120              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
9121              POINT           =SIMP(statut='f',typ='R',max=3),
9122              NOEUD_CENTRE    =SIMP(statut='f',typ=no),
9123              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
9124              RAYON           =SIMP(statut='o',typ='R' ),
9125            ),
9126            b_cylindre      =BLOC(condition = "OPTION == 'CYLINDRE'",
9127              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9128                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9129              POINT           =SIMP(statut='f',typ='R',max=3),
9130              NOEUD_CENTRE    =SIMP(statut='f',typ=no),
9131              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
9132              RAYON           =SIMP(statut='o',typ='R' ),
9133              ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
9134              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9135            ),
9136            b_bande         =BLOC(condition = "OPTION == 'BANDE'",
9137              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9138                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9139              POINT           =SIMP(statut='f',typ='R' ,max=3),
9140              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9141              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9142              DIST            =SIMP(statut='o',typ='R' ),
9143              ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
9144              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9145            ),
9146            b_app_lache         =BLOC(condition = "OPTION == 'APPUI_LACHE'",
9147              regles=(UN_PARMI('NOEUD','GROUP_NO'),),
9148              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9149              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9150            ),
9151          ),
9152          CREA_GROUP_NO   =FACT(statut='f',max='**',
9153            OPTION          =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
9154                                                "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ),
9155
9156            b_option =BLOC(condition = "OPTION == None" ,
9157                           regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD',
9158                                                            'INTERSEC','UNION','DIFFE'),),
9159               TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9160               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9161               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9162               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9163               INTERSEC        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9164               UNION           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9165               DIFFE           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9166
9167               b_nom_group_ma  =BLOC(condition = "GROUP_MA != None",
9168                 NOM           = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9169                 CRIT_NOEUD    = SIMP(statut='f',typ='TXM',defaut="TOUS",
9170                                   into=("TOUS","SOMMET","MILIEU","CENTRE"),),
9171               ),
9172               b_group_no      =BLOC(condition = "GROUP_NO != None",
9173                                     regles=(EXCLUS('POSITION','NUME_INIT'),),
9174                 NUME_INIT       =SIMP(statut='f',typ='I'),
9175                 POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
9176                 b_nume_init     =BLOC(condition = "NUME_INIT != None",
9177                   NUME_FIN        =SIMP(statut='f',typ='I' ),
9178                 ),
9179               ),
9180               b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
9181                 NOM             =SIMP(statut='o',typ=geom),
9182               ),
9183            ),
9184
9185            b_env_sphere    =BLOC(condition = "OPTION == 'ENV_SPHERE'",
9186              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
9187              NOM             =SIMP(statut='o',typ=geom),
9188              POINT           =SIMP(statut='f',typ='R' ,max=3),
9189              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9190              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9191              RAYON           =SIMP(statut='o',typ='R' ),
9192              PRECISION       =SIMP(statut='o',typ='R' ),
9193            ),
9194            b_env_cylindre  =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
9195              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9196                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9197              NOM             =SIMP(statut='o',typ=geom),
9198              POINT           =SIMP(statut='f',typ='R' ,max=3),
9199              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9200              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9201              RAYON           =SIMP(statut='o',typ='R' ),
9202              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
9203              VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
9204              PRECISION       =SIMP(statut='o',typ='R' ),
9205            ),
9206            b_env_plan      =BLOC(condition = "OPTION == 'PLAN'",
9207              regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
9208                      UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
9209              NOM             =SIMP(statut='o',typ=geom),
9210              POINT           =SIMP(statut='f',typ='R' ,max=3),
9211              NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
9212              GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
9213              ANGL_NAUT       =SIMP(statut='f',typ='R' ,max=3),
9214              VECT_NORMALE    =SIMP(statut='f',typ='R' ,max=3),
9215              PRECISION       =SIMP(statut='o',typ='R' ),
9216            ),
9217            b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
9218              regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),
9219                      UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
9220                      UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
9221              NOM             =SIMP(statut='o',typ=geom),
9222              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
9223              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
9224              NOEUD_ORIG      =SIMP(statut='f',typ=no),
9225              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
9226              NOEUD_EXTR      =SIMP(statut='f',typ=no),
9227              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
9228              PRECISION       =SIMP(statut='o',typ='R' ),
9229              CRITERE         =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ),
9230            ),
9231            b_noeud_ordo    =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
9232              regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
9233                      EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
9234              NOM             =SIMP(statut='o',typ=geom),
9235              GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
9236              NOEUD_ORIG      =SIMP(statut='f',typ=no),
9237              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
9238              NOEUD_EXTR      =SIMP(statut='f',typ=no),
9239              GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
9240            ),
9241            b_tunnel    =BLOC(condition = "OPTION == 'TUNNEL'",
9242              regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'),
9243                      EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
9244                      AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),),
9245              NOM             =SIMP(statut='o',typ=geom),
9246              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9247              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9248              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9249              GROUP_MA_AXE    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
9250              MAILLE_AXE      =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
9251              NOEUD_ORIG      =SIMP(statut='f',typ=no),
9252              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
9253              RAYON           =SIMP(statut='o',typ='R'),
9254              LONGUEUR        =SIMP(statut='f',typ='R'),
9255            ),
9256          ),
9257          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
9258          INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
9259 )  ;
9260 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR CORUS M.CORUS 
9261 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9262 # ======================================================================
9263 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9264 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9265 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9266 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9267 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9268 #
9269 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9270 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9271 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9272 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9273 #
9274 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9275 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9276 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9277 # ======================================================================
9278 # RESPONSABLE CORUS M.CORUS
9279
9280 DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
9281                       reentrant='n',
9282             UIinfo={"groupes":("Matrices/vecteurs",)},
9283             fr="Définir les interfaces d'une structure et leur affecter un type",
9284          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
9285          INTERFACE       =FACT(statut='o',max='**',
9286            regles=(ENSEMBLE('NOM','TYPE'),
9287 #  erreur doc U sur la condition qui suit
9288                    UN_PARMI('NOEUD','GROUP_NO'),),
9289            NOM             =SIMP(statut='f',typ='TXM' ),
9290            TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
9291            NOEUD           =SIMP(statut='f',typ=no,max='**'),
9292            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
9293 #           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),
9294            MASQUE          =SIMP(statut='f',typ='TXM',max='**'),
9295          ),
9296          FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
9297          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
9298 )  ;
9299 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
9300 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9301 # ======================================================================
9302 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9303 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9304 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9305 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9306 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9307 #
9308 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9309 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9310 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9311 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9312 #
9313 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9314 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9315 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9316 # ======================================================================
9317 # RESPONSABLE ZENTNER I.ZENTNER
9318 from Macro.defi_inte_spec_ops import defi_inte_spec_ops
9319
9320 DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC",op= defi_inte_spec_ops,sd_prod=table_fonction,
9321                      reentrant='n',
9322                      fr="Définit une matrice interspectrale",
9323                      UIinfo={"groupes":("Fonction",)},
9324
9325          DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),
9326
9327          PAR_FONCTION    =FACT(statut='f',max='**',
9328            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
9329            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
9330            FONCTION        =SIMP(statut='o',typ=fonction_c ),
9331          ),
9332          KANAI_TAJIMI    =FACT(statut='f',max='**',
9333            regles=(EXCLUS('VALE_R','VALE_C'),),
9334            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
9335            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
9336            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9337            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
9338            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
9339            AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.6 ),
9340            FREQ_MOY        =SIMP(statut='f',typ='R',defaut= 5. ),
9341            VALE_R          =SIMP(statut='f',typ='R' ),
9342            VALE_C          =SIMP(statut='f',typ='C' ),
9343            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
9344            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9345            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9346          ),
9347          CONSTANT        =FACT(statut='f',max='**',
9348            regles=(EXCLUS('VALE_R','VALE_C'),),
9349            NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
9350            NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
9351            FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9352            FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
9353            PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
9354            VALE_R          =SIMP(statut='f',typ='R' ),
9355            VALE_C          =SIMP(statut='f',typ='C' ),
9356            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
9357            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9358            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
9359          ),
9360          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9361          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),               
9362 )  ;
9363 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
9364 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9365 # ======================================================================
9366 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9367 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9368 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9369 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9370 # (AT YOUR OPTION) ANY LATER VERSION.
9371 #
9372 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9373 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9374 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9375 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9376 #
9377 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9378 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9379 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9380 # ======================================================================
9381 # RESPONSABLE COURTOIS M.COURTOIS
9382 DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
9383                     fr="Définir une liste d'entiers strictement croissante",
9384                     reentrant='n',
9385             UIinfo={"groupes":("Fonction",)},
9386
9387          OPERATION    =SIMP(statut='o',typ='TXM',defaut='DEFI',into=('DEFI','NUME_ORDRE',)),
9388
9389
9390          # définition d'une liste d'entiers
9391          #----------------------------------
9392          b_defi       =BLOC(condition = "OPERATION == 'DEFI'",
9393              regles=(UN_PARMI('VALE','DEBUT'),
9394                      EXCLUS('VALE','INTERVALLE'),),
9395              VALE            =SIMP(statut='f',typ='I',max='**'),
9396              DEBUT           =SIMP(statut='f',typ='I'),
9397              INTERVALLE      =FACT(statut='f',max='**',
9398                  regles=(UN_PARMI('NOMBRE','PAS'),),
9399                  JUSQU_A         =SIMP(statut='o',typ='I'),
9400                  NOMBRE          =SIMP(statut='f',typ='I',val_min=1,),
9401                  PAS             =SIMP(statut='f',typ='I',val_min=1,),
9402              ),
9403          ),
9404
9405
9406          # extraction d'une liste de nume_ordre dans une sd_resultat :
9407          #------------------------------------------------------------
9408          b_extr       =BLOC(condition = "OPERATION == 'NUME_ORDRE'",
9409              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
9410              PARAMETRE       =SIMP(statut='o',typ='TXM',),
9411              INTERV_R        =SIMP(statut='o',typ='R',min=2,max=2),
9412          ),
9413
9414
9415          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
9416          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9417 )  ;
9418 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
9419 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9420 # ======================================================================
9421 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9422 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9423 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9424 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9425 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9426 #
9427 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9428 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9429 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9430 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9431 #
9432 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9433 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9434 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9435 # ======================================================================
9436 # RESPONSABLE COURTOIS M.COURTOIS
9437 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
9438                     fr="Définir une liste de réels strictement croissante",
9439                     reentrant='n',
9440             UIinfo={"groupes":("Fonction",)},
9441          regles=(UN_PARMI('VALE','DEBUT',),
9442                  EXCLUS('VALE','INTERVALLE'),
9443                  ENSEMBLE('DEBUT','INTERVALLE')),
9444          VALE            =SIMP(statut='f',typ='R',max='**'),
9445          DEBUT           =SIMP(statut='f',typ='R'),
9446          INTERVALLE      =FACT(statut='f',max='**',
9447            regles=(UN_PARMI('NOMBRE','PAS'),),
9448            JUSQU_A         =SIMP(statut='o',typ='R'),
9449            NOMBRE          =SIMP(statut='f',typ='I'),
9450            PAS             =SIMP(statut='f',typ='R'),
9451          ),
9452          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
9453          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
9454 )  ;
9455 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
9456 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9457 # ======================================================================
9458 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9459 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9460 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9461 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
9462 # (AT YOUR OPTION) ANY LATER VERSION.                                 
9463 #
9464 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
9465 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
9466 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
9467 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
9468 #
9469 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
9470 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
9471 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
9472 # ======================================================================
9473 # RESPONSABLE PELLET J.PELLET
9474 DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
9475                    fr="Définition d'un nouveau maillage à partir de macro-éléments",
9476                    reentrant='n',
9477             UIinfo={"groupes":("Maillage",)},
9478          DEFI_SUPER_MAILLE =FACT(statut='o',max='**',
9479            MACR_ELEM       =SIMP(statut='o',typ=(macr_elem_stat,macr_elem_dyna),max='**' ),
9480            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
9481            TRAN            =SIMP(statut='f',typ='R',max=3),
9482            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
9483            b_angl_naut     =BLOC(condition = "ANGL_NAUT != None",
9484              CENTRE          =SIMP(statut='f',typ='R',max=3),
9485            ),
9486          ),
9487          RECO_GLOBAL     =FACT(statut='f',max='**',
9488            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
9489            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
9490            SUPER_MAILLE    =SIMP(statut='f',typ=ma,max='**'),
9491            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9492            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
9493          ),
9494          RECO_SUPER_MAILLE =FACT(statut='f',max='**',
9495            SUPER_MAILLE    =SIMP(statut='o',typ=ma,max='**'),
9496            GROUP_NO        =SIMP(statut='o',typ=grno,max='**'),
9497            OPTION          =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
9498            geometrique     =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
9499              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
9500              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
9501            ),
9502          ),
9503          DEFI_NOEUD      =FACT(statut='f',max='**',
9504            regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
9505            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
9506                                  fr="Renommage de tous les noeuds" ),
9507            NOEUD_INIT      =SIMP(statut='f',typ=no,
9508                                  fr="Renommage d un seul noeud"),                     
9509            b_tout          =BLOC(condition = "TOUT != None",
9510              PREFIXE         =SIMP(statut='f',typ='TXM' ),
9511              INDEX           =SIMP(statut='o',typ='I',max='**'),
9512            ),
9513            b_noeud_init    =BLOC(condition = "NOEUD_INIT != None",
9514              SUPER_MAILLE    =SIMP(statut='o',typ=ma),
9515              NOEUD_FIN       =SIMP(statut='o',typ=no),
9516            ),        
9517          ),
9518          DEFI_GROUP_NO   =FACT(statut='f',max='**',
9519            regles=(UN_PARMI('TOUT','SUPER_MAILLE'),
9520                 AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
9521                    ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
9522 #  la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U           
9523            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
9524                                  fr="Création de plusieurs groupes de noeuds" ),
9525            SUPER_MAILLE    =SIMP(statut='f',typ=ma,
9526                                  fr="Création de plusieurs groupes de noeuds"),
9527            GROUP_NO_INIT   =SIMP(statut='f',typ=grno,
9528                                  fr="Création d un seul groupe de noeuds"),
9529            PREFIXE         =SIMP(statut='f',typ='TXM' ),
9530            INDEX           =SIMP(statut='f',typ='I',max='**'),
9531            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
9532          ),
9533 )  ;
9534 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR MARKOVIC D.MARKOVIC 
9535 #            CONFIGURATION MANAGEMENT OF EDF VERSION
9536 # ======================================================================
9537 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
9538 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
9539 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
9540 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9541 # (AT YOUR OPTION) ANY LATER VERSION.
9542 #
9543 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9544 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
9545 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
9546 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
9547 #
9548 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
9549 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
9550 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
9551 # ======================================================================
9552 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
9553 DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
9554                    fr="Définition des paramètres décrivant le comportement d un matériau",
9555                    reentrant='f',
9556             UIinfo={"groupes":("Modélisation",)},
9557        regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH',
9558                       'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO',
9559                       'ELAS_HYPER','ELAS_2NDG',),
9560                EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
9561                EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'),
9562                EXCLUS('TAHERI','TAHERI_FO'),
9563                EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
9564                EXCLUS('VISC_SINH','VISC_SINH_FO'),
9565                PRESENT_PRESENT('ROUSSELIER','TRACTION'),
9566                PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
9567                EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
9568                EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
9569                EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
9570                EXCLUS('LEMAITRE','LEMAITRE_FO','VISC_IRRA_LOG',
9571                'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',),
9572                EXCLUS('LMARC','LMARC_FO'),
9573                EXCLUS('META_LEMA_ANI','META_LEMA_ANI_FO'),
9574                EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
9575                EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
9576                PRESENT_PRESENT('BPEL_ACIER','ELAS'),
9577                EXCLUS('RCCM','RCCM_FO'),
9578                EXCLUS('WEIBULL','WEIBULL_FO'),
9579                PRESENT_PRESENT('BARCELONE','CAM_CLAY'),
9580                PRESENT_PRESENT('LAIGLE','ELAS'),
9581                PRESENT_PRESENT('LETK','ELAS'),
9582                PRESENT_PRESENT('DRUCK_PRAGER','ELAS'),
9583                PRESENT_PRESENT('HOEK_BROWN','ELAS'),
9584                EXCLUS('MAZARS','MAZARS_FO'),
9585                PRESENT_PRESENT('JOINT_BA','ELAS'),
9586                PRESENT_PRESENT('CABLE','ELAS'),
9587                ),
9588            MATER      =SIMP(statut='f',typ=mater_sdaster),
9589 #
9590 # comportement élastique
9591 #
9592            ELAS            =FACT(statut='f',
9593              E               =SIMP(statut='o',typ='R',val_min=0.E+0),
9594              NU              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0),
9595              RHO             =SIMP(statut='f',typ='R'),
9596              ALPHA           =SIMP(statut='f',typ='R'),
9597              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
9598              AMOR_BETA       =SIMP(statut='f',typ='R'),
9599              AMOR_HYST       =SIMP(statut='f',typ='R'),
9600            ),
9601            ELAS_FO         =FACT(statut='f',
9602              regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
9603              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9604              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9605              RHO             =SIMP(statut='f',typ='R'),
9606              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
9607              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
9608              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9609              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9610              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9611              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9612              K_DESSIC        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9613              B_ENDOGE        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9614              FONC_DESORP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9615              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ),
9616            ),
9617            ELAS_FLUI       =FACT(statut='f',
9618              E               =SIMP(statut='o',typ='R'),
9619              NU              =SIMP(statut='o',typ='R'),
9620              RHO             =SIMP(statut='o',typ='R'),
9621              PROF_RHO_F_INT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9622              PROF_RHO_F_EXT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9623              COEF_MASS_AJOU  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9624              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ),
9625            ),
9626            ELAS_ISTR       =FACT(statut='f',
9627              E_L             =SIMP(statut='o',typ='R'),
9628              E_N             =SIMP(statut='o',typ='R'),
9629              NU_LT           =SIMP(statut='o',typ='R'),
9630              NU_LN           =SIMP(statut='o',typ='R'),
9631              G_LN            =SIMP(statut='o',typ='R'),
9632              RHO             =SIMP(statut='f',typ='R'),
9633              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9634              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9635            ),
9636            ELAS_ISTR_FO    =FACT(statut='f',
9637              regles=(
9638                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
9639                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
9640                     ),
9641              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9642              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9643              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9644              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9645              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9646              RHO             =SIMP(statut='f',typ='R'),
9647              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
9648              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
9649              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9650              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9651              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")),
9652            ),
9653            ELAS_ORTH       =FACT(statut='f',
9654              E_L             =SIMP(statut='o',typ='R'),
9655              E_T             =SIMP(statut='o',typ='R'),
9656              E_N             =SIMP(statut='f',typ='R'),
9657              NU_LT           =SIMP(statut='o',typ='R'),
9658              NU_LN           =SIMP(statut='f',typ='R'),
9659              NU_TN           =SIMP(statut='f',typ='R'),
9660              G_LT            =SIMP(statut='o',typ='R'),
9661              G_LN            =SIMP(statut='f',typ='R'),
9662              G_TN            =SIMP(statut='f',typ='R'),
9663              RHO             =SIMP(statut='f',typ='R'),
9664              ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9665              ALPHA_T         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9666              ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9667              XT              =SIMP(statut='f',typ='R',defaut= 1. ),
9668              XC              =SIMP(statut='f',typ='R',defaut= 1. ),
9669              YT              =SIMP(statut='f',typ='R',defaut= 1. ),
9670              YC              =SIMP(statut='f',typ='R',defaut= 1. ),
9671              S_LT            =SIMP(statut='f',typ='R',defaut= 1. ),
9672              AMOR_ALPHA      =SIMP(statut='f',typ='R'),
9673              AMOR_BETA       =SIMP(statut='f',typ='R'),
9674              AMOR_HYST       =SIMP(statut='f',typ='R'),
9675            ),
9676            ELAS_ORTH_FO    =FACT(statut='f',
9677              regles=(
9678                       PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
9679                       PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
9680                       PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'),
9681                     ),
9682              E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9683              E_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9684              E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9685              NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9686              NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9687              NU_TN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9688              G_LT            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9689              G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9690              G_TN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9691              RHO             =SIMP(statut='f',typ='R'),
9692              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
9693              PRECISION       =SIMP(statut='f',typ='R',defaut= 1. ),
9694              ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9695              ALPHA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9696              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9697              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ),
9698              AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9699              AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9700              AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9701            ),
9702            ELAS_HYPER      =FACT(statut='f',
9703                                  regles=(UN_PARMI('K','NU'),),
9704              C10             =SIMP(statut='f',typ='R',defaut=0.0),
9705              C01             =SIMP(statut='o',typ='R'),
9706              C20             =SIMP(statut='f',typ='R',defaut=0.0),
9707              K               =SIMP(statut='f',typ='R'),
9708              RHO             =SIMP(statut='f',typ='R',defaut=0.0),
9709              NU              =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0),
9710            ),
9711            ELAS_COQUE      =FACT(statut='f',
9712              regles=(EXCLUS('MEMB_L','M_LLLL',),
9713                      PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
9714                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
9715                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
9716                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
9717                                      'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
9718                                      'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
9719                                      'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
9720                                      'C_LZTZ','C_TZTZ'),),
9721              MEMB_L          =SIMP(statut='f',typ='R'),
9722              MEMB_LT         =SIMP(statut='f',typ='R'),
9723              MEMB_T          =SIMP(statut='f',typ='R'),
9724              MEMB_G_LT       =SIMP(statut='f',typ='R'),
9725              FLEX_L          =SIMP(statut='f',typ='R'),
9726              FLEX_LT         =SIMP(statut='f',typ='R'),
9727              FLEX_T          =SIMP(statut='f',typ='R'),
9728              FLEX_G_LT       =SIMP(statut='f',typ='R'),
9729              CISA_L          =SIMP(statut='f',typ='R'),
9730              CISA_T          =SIMP(statut='f',typ='R'),
9731              M_LLLL          =SIMP(statut='f',typ='R'),
9732              M_LLTT          =SIMP(statut='f',typ='R'),
9733              M_LLLT          =SIMP(statut='f',typ='R'),
9734              M_TTTT          =SIMP(statut='f',typ='R'),
9735              M_TTLT          =SIMP(statut='f',typ='R'),
9736              M_LTLT          =SIMP(statut='f',typ='R'),
9737              F_LLLL          =SIMP(statut='f',typ='R'),
9738              F_LLTT          =SIMP(statut='f',typ='R'),
9739              F_LLLT          =SIMP(statut='f',typ='R'),
9740              F_TTTT          =SIMP(statut='f',typ='R'),
9741              F_TTLT          =SIMP(statut='f',typ='R'),
9742              F_LTLT          =SIMP(statut='f',typ='R'),
9743              MF_LLLL         =SIMP(statut='f',typ='R'),
9744              MF_LLTT         =SIMP(statut='f',typ='R'),
9745              MF_LLLT         =SIMP(statut='f',typ='R'),
9746              MF_TTTT         =SIMP(statut='f',typ='R'),
9747              MF_TTLT         =SIMP(statut='f',typ='R'),
9748              MF_LTLT         =SIMP(statut='f',typ='R'),
9749              MC_LLLZ         =SIMP(statut='f',typ='R'),
9750              MC_LLTZ         =SIMP(statut='f',typ='R'),
9751              MC_TTLZ         =SIMP(statut='f',typ='R'),
9752              MC_TTTZ         =SIMP(statut='f',typ='R'),
9753              MC_LTLZ         =SIMP(statut='f',typ='R'),
9754              MC_LTTZ         =SIMP(statut='f',typ='R'),
9755              FC_LLLZ         =SIMP(statut='f',typ='R'),
9756              FC_LLTZ         =SIMP(statut='f',typ='R'),
9757              FC_TTLZ         =SIMP(statut='f',typ='R'),
9758              FC_TTTZ         =SIMP(statut='f',typ='R'),
9759              FC_LTLZ         =SIMP(statut='f',typ='R'),
9760              FC_LTTZ         =SIMP(statut='f',typ='R'),
9761              C_LZLZ          =SIMP(statut='f',typ='R'),
9762              C_LZTZ          =SIMP(statut='f',typ='R'),
9763              C_TZTZ          =SIMP(statut='f',typ='R'),
9764              RHO             =SIMP(statut='f',typ='R'),
9765              ALPHA           =SIMP(statut='f',typ='R'),
9766            ),
9767            ELAS_COQUE_FO   =FACT(statut='f',
9768              regles=(EXCLUS('MEMB_L','M_LLLL',),
9769                      PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
9770                                      'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
9771                      PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
9772                                      'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
9773                                      'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
9774                                      'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
9775                                      'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
9776              MEMB_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9777              MEMB_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9778              MEMB_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9779              MEMB_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9780              FLEX_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9781              FLEX_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9782              FLEX_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9783              FLEX_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9784              CISA_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9785              CISA_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9786              M_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9787              M_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9788              M_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9789              M_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9790              M_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9791              M_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9792              F_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9793              F_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9794              F_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9795              F_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9796              F_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9797              F_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9798              MF_LLLL         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9799              MF_LLTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9800              MF_LLLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9801              MF_TTTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9802              MF_TTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9803              MF_LTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9804              MC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9805              MC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9806              MC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9807              MC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9808              MC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9809              MC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9810              FC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9811              FC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9812              FC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9813              FC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9814              FC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9815              FC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9816              C_LZLZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9817              C_LZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9818              C_TZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9819              RHO             =SIMP(statut='f',typ='R'),
9820              ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
9821              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ),
9822            ),
9823            ELAS_2NDG        =FACT(statut='f',
9824              A1              =SIMP(statut='o',typ='R'),
9825              A2              =SIMP(statut='f',typ='R'),
9826              A3              =SIMP(statut='f',typ='R'),
9827              A4              =SIMP(statut='f',typ='R'),
9828              A5              =SIMP(statut='f',typ='R'),
9829            ),
9830            CABLE           =FACT(statut='f',
9831              EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
9832            ),
9833 #
9834 # comportement mécanique non linéaire
9835 #
9836            TRACTION        =FACT(statut='f',
9837              SIGM            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9838              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ),
9839            ),
9840            ECRO_LINE       =FACT(statut='f',
9841              D_SIGM_EPSI     =SIMP(statut='o',typ='R',),
9842              SY              =SIMP(statut='o',typ='R',),
9843            ),
9844            ECRO_LINE_FO    =FACT(statut='f',
9845              D_SIGM_EPSI     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9846              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9847              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9848            ),
9849            ECRO_PUIS       =FACT(statut='f',
9850              SY              =SIMP(statut='o',typ='R',),
9851              A_PUIS          =SIMP(statut='o',typ='R',val_min=0.0),
9852              N_PUIS          =SIMP(statut='o',typ='R',val_min=1.E-6),
9853            ),
9854            ECRO_PUIS_FO    =FACT(statut='f',
9855              SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9856              A_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9857              N_PUIS          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9858              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9859            ),
9860            BETON_ECRO_LINE =FACT(statut='f',
9861              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
9862              SYT             =SIMP(statut='o',typ='R'),
9863              SYC             =SIMP(statut='f',typ='R'),
9864            ),
9865            BETON_REGLE_PR =FACT(statut='f',
9866              D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
9867              SYT             =SIMP(statut='o',typ='R'),
9868              SYC             =SIMP(statut='f',typ='R'),
9869              EPSC            =SIMP(statut='f',typ='R'),
9870              N               =SIMP(statut='f',typ='R'),
9871            ),
9872            ENDO_ORTH_BETON  =FACT(statut='f',
9873              ALPHA            =SIMP(statut='f',typ='R',defaut=0.9),
9874              K0               =SIMP(statut='o',typ='R'),
9875              K1               =SIMP(statut='o',typ='R'),
9876              K2               =SIMP(statut='f',typ='R',defaut=7.E-4),
9877              ECROB            =SIMP(statut='o',typ='R'),
9878              ECROD            =SIMP(statut='o',typ='R'),
9879            ),
9880            PRAGER          =FACT(statut='f',
9881              C               =SIMP(statut='o',typ='R'),
9882            ),
9883            PRAGER_FO       =FACT(statut='f',
9884              C               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9885              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9886            ),
9887            ECRO_FLEJOU     =FACT(statut='f',
9888              EP              =SIMP(statut='o',typ='R'),
9889              SY              =SIMP(statut='o',typ='R'),
9890              SU              =SIMP(statut='o',typ='R'),
9891              PUISS           =SIMP(statut='o',typ='R'),
9892            ),
9893            TAHERI          =FACT(statut='f',
9894              R_0             =SIMP(statut='o',typ='R'),
9895              ALPHA           =SIMP(statut='o',typ='R'),
9896              M               =SIMP(statut='o',typ='R'),
9897              A               =SIMP(statut='o',typ='R'),
9898              B               =SIMP(statut='o',typ='R'),
9899              C1              =SIMP(statut='o',typ='R'),
9900              C_INF           =SIMP(statut='o',typ='R'),
9901              S               =SIMP(statut='o',typ='R'),
9902            ),
9903            TAHERI_FO       =FACT(statut='f',
9904              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9905              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9906              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9907              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9908              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9909              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9910              C_INF           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9911              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9912              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9913            ),
9914            ROUSSELIER      =FACT(statut='f',
9915              D               =SIMP(statut='o',typ='R'),
9916              SIGM_1          =SIMP(statut='o',typ='R'),
9917              PORO_INIT       =SIMP(statut='o',typ='R'),
9918              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
9919              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
9920              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
9921              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
9922              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
9923              DP_MAXI         =SIMP(statut='f',typ='R',defaut= 0.1),
9924              BETA            =SIMP(statut='f',typ='R',defaut=0.85),
9925            ),
9926            ROUSSELIER_FO   =FACT(statut='f',
9927              D               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9928              SIGM_1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9929              PORO_INIT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9930              PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
9931              PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
9932              PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
9933              D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
9934              AN              =SIMP(statut='f',typ='R',defaut= 0. ),
9935              DP_MAXI         =SIMP(statut='f',typ='R',defaut= 0.1),
9936              BETA            =SIMP(statut='f',typ='R',defaut=0.85),
9937              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9938            ),
9939            VISC_SINH      =FACT(statut='f',
9940              SIGM_0          =SIMP(statut='o',typ='R'),
9941              EPSI_0          =SIMP(statut='o',typ='R'),
9942              M               =SIMP(statut='o',typ='R'),
9943            ),
9944            VISC_SINH_FO      =FACT(statut='f',
9945              SIGM_0          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9946              EPSI_0          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9947              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9948              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9949            ),
9950            CIN1_CHAB  =FACT(statut='f',
9951              R_0             =SIMP(statut='o',typ='R'),
9952              R_I             =SIMP(statut='f',typ='R'),
9953              B               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
9954              C_I             =SIMP(statut='o',typ='R'),
9955              K               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
9956              W               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
9957              G_0             =SIMP(statut='o',typ='R'),
9958              A_I             =SIMP(statut='f',typ='R',defaut= 1.0E+0),
9959            ),
9960            CIN1_CHAB_FO  =FACT(statut='f',
9961              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9962              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9963              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9964              C_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9965              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9966              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9967              G_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9968              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9969              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
9970            ),
9971            CIN2_CHAB  =FACT(statut='f',
9972              R_0             =SIMP(statut='o',typ='R'),
9973              R_I             =SIMP(statut='f',typ='R'),
9974              B               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9975              C1_I            =SIMP(statut='o',typ='R'),
9976              C2_I            =SIMP(statut='o',typ='R'),
9977              K               =SIMP(statut='f',typ='R',defaut= 1.),
9978              W               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
9979              G1_0            =SIMP(statut='o',typ='R'),
9980              G2_0            =SIMP(statut='o',typ='R'),
9981              A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
9982            ),
9983            CIN2_CHAB_FO  =FACT(statut='f',
9984              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9985              R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9986              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9987              C1_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9988              C2_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9989              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9990              W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9991              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9992              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9993              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
9994              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
9995            ),
9996            MEMO_ECRO       =FACT(statut='f',
9997              MU              =SIMP(statut='o',typ='R'),
9998              Q_M             =SIMP(statut='o',typ='R'),
9999              Q_0             =SIMP(statut='o',typ='R'),
10000              ETA             =SIMP(statut='f',typ='R',defaut= 0.5E+0 ),
10001            ),
10002            MEMO_ECRO_FO        =FACT(statut='f',
10003              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10004              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10005              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10006              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10007              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10008            ),
10009            VISCOCHAB       =FACT(statut='f',
10010              K_0             =SIMP(statut='o',typ='R'),
10011              A_K             =SIMP(statut='o',typ='R'),
10012              A_R             =SIMP(statut='o',typ='R'),
10013              K               =SIMP(statut='o',typ='R'),
10014              N               =SIMP(statut='o',typ='R'),
10015              ALP             =SIMP(statut='o',typ='R'),
10016              B               =SIMP(statut='o',typ='R'),
10017              M_R             =SIMP(statut='o',typ='R'),
10018              G_R             =SIMP(statut='o',typ='R'),
10019              MU              =SIMP(statut='o',typ='R'),
10020              Q_M             =SIMP(statut='o',typ='R'),
10021              Q_0             =SIMP(statut='o',typ='R'),
10022              QR_0            =SIMP(statut='o',typ='R'),
10023              ETA             =SIMP(statut='o',typ='R'),
10024              C1              =SIMP(statut='o',typ='R'),
10025              M_1             =SIMP(statut='o',typ='R'),
10026              D1              =SIMP(statut='o',typ='R'),
10027              G_X1            =SIMP(statut='o',typ='R'),
10028              G1_0            =SIMP(statut='o',typ='R'),
10029              C2              =SIMP(statut='o',typ='R'),
10030              M_2             =SIMP(statut='o',typ='R'),
10031              D2              =SIMP(statut='o',typ='R'),
10032              G_X2            =SIMP(statut='o',typ='R'),
10033              G2_0            =SIMP(statut='o',typ='R'),
10034              A_I             =SIMP(statut='o',typ='R'),
10035            ),
10036            VISCOCHAB_FO    =FACT(statut='f',
10037              K_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10038              A_K             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10039              A_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10040              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10041              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10042              ALP             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10043              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10044              M_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10045              G_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10046              MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10047              Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10048              Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10049              QR_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10050              ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10051              C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10052              M_1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10053              D1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10054              G_X1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10055              G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10056              C2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10057              M_2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10058              D2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10059              G_X2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10060              G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10061              A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10062              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10063            ),
10064            LEMAITRE        =FACT(statut='f',
10065              N               =SIMP(statut='o',typ='R'),
10066              UN_SUR_K        =SIMP(statut='o',typ='R'),
10067              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10068            ),
10069            LEMAITRE_IRRA    =FACT(statut='f',
10070              N               =SIMP(statut='o',typ='R'),
10071              UN_SUR_K        =SIMP(statut='o',typ='R'),
10072              UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10073              QSR_K           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10074              BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10075              PHI_ZERO        =SIMP(statut='f',typ='R',defaut= 1.E+20),
10076              L               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10077              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10078              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10079              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10080            ),
10081            LMARC_IRRA       =FACT(statut='f',
10082              DE_0            =SIMP(statut='o',typ='R'),
10083              R_0             =SIMP(statut='o',typ='R'),
10084              N               =SIMP(statut='o',typ='R'),
10085              K               =SIMP(statut='o',typ='R'),
10086              Y_I             =SIMP(statut='o',typ='R'),
10087              Y_0             =SIMP(statut='o',typ='R'),
10088              B               =SIMP(statut='o',typ='R'),
10089              A_0             =SIMP(statut='o',typ='R'),
10090              RM              =SIMP(statut='o',typ='R'),
10091              M               =SIMP(statut='o',typ='R'),
10092              P               =SIMP(statut='o',typ='R'),
10093              P1              =SIMP(statut='o',typ='R'),
10094              P2              =SIMP(statut='o',typ='R'),
10095              M11             =SIMP(statut='o',typ='R'),
10096              M22             =SIMP(statut='o',typ='R'),
10097              M33             =SIMP(statut='o',typ='R'),
10098              M66             =SIMP(statut='o',typ='R'),
10099              N11             =SIMP(statut='o',typ='R'),
10100              N22             =SIMP(statut='o',typ='R'),
10101              N33             =SIMP(statut='o',typ='R'),
10102              N66             =SIMP(statut='o',typ='R'),
10103              Q11             =SIMP(statut='o',typ='R'),
10104              Q22             =SIMP(statut='o',typ='R'),
10105              Q33             =SIMP(statut='o',typ='R'),
10106              Q66             =SIMP(statut='o',typ='R'),
10107              R11             =SIMP(statut='o',typ='R'),
10108              R22             =SIMP(statut='o',typ='R'),
10109              R33             =SIMP(statut='o',typ='R'),
10110              R66             =SIMP(statut='o',typ='R'),
10111              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10112              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10113              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10114            ),
10115           VISC_IRRA_LOG    =FACT(statut='f',
10116              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
10117              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
10118              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
10119              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
10120              FLUX_PHI        =SIMP(statut='o',typ='R',),
10121            ),
10122           GRAN_IRRA_LOG    =FACT(statut='f',
10123              A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
10124              B               =SIMP(statut='f',typ='R',defaut= 0.01159),
10125              CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
10126              ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
10127              FLUX_PHI        =SIMP(statut='o',typ='R',),
10128              GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0),
10129              GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0),
10130              GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0),
10131            ),
10132           LEMA_SEUIL   =FACT(statut='f',
10133              A               =SIMP(statut='o',typ='R',),
10134              S               =SIMP(statut='o',typ='R',),
10135            ),
10136           LEMA_SEUIL_FO=FACT(statut='f',
10137              A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10138              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10139              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10140            ),
10141          IRRAD3M=FACT(statut='f',
10142                R02      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10143                EPSI_U   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10144                RM       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10145                AI0      =SIMP(statut='o',typ='R',val_min=0.0),
10146                ZETA_F   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10147                ETAI_S   =SIMP(statut='o',typ='R',val_min=0.0),
10148                RG0      =SIMP(statut='o',typ='R',val_min=0.0),
10149                ALPHA    =SIMP(statut='o',typ='R',val_min=0.0),
10150                PHI0     =SIMP(statut='o',typ='R',val_min=0.0),
10151                KAPPA    =SIMP(statut='f',typ='R',val_min=0.0,defaut=0.8,val_max=1.0),
10152                ZETA_G   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10153                TOLER_ET =SIMP(statut='c',typ='R',val_min=0.0,defaut=0.15 ),
10154                VERI_P   =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","IRRA") ),
10155          ),
10156            LEMAITRE_FO     =FACT(statut='f',
10157              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10158              UN_SUR_K        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10159              UN_SUR_M        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10160              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10161            ),
10162            LMARC           =FACT(statut='f',
10163              DE_0            =SIMP(statut='o',typ='R'),
10164              R_0             =SIMP(statut='o',typ='R'),
10165              N               =SIMP(statut='o',typ='R'),
10166              K               =SIMP(statut='o',typ='R'),
10167              Y_I             =SIMP(statut='o',typ='R'),
10168              Y_0             =SIMP(statut='o',typ='R'),
10169              B               =SIMP(statut='o',typ='R'),
10170              A_0             =SIMP(statut='o',typ='R'),
10171              RM              =SIMP(statut='o',typ='R'),
10172              M               =SIMP(statut='o',typ='R'),
10173              P               =SIMP(statut='o',typ='R'),
10174              P1              =SIMP(statut='o',typ='R'),
10175              P2              =SIMP(statut='o',typ='R'),
10176              M11             =SIMP(statut='o',typ='R'),
10177              M22             =SIMP(statut='o',typ='R'),
10178              M33             =SIMP(statut='o',typ='R'),
10179              M66             =SIMP(statut='o',typ='R'),
10180              N11             =SIMP(statut='o',typ='R'),
10181              N22             =SIMP(statut='o',typ='R'),
10182              N33             =SIMP(statut='o',typ='R'),
10183              N66             =SIMP(statut='o',typ='R'),
10184              Q11             =SIMP(statut='o',typ='R'),
10185              Q22             =SIMP(statut='o',typ='R'),
10186              Q33             =SIMP(statut='o',typ='R'),
10187              Q66             =SIMP(statut='o',typ='R'),
10188              R11             =SIMP(statut='o',typ='R'),
10189              R22             =SIMP(statut='o',typ='R'),
10190              R33             =SIMP(statut='o',typ='R'),
10191              R66             =SIMP(statut='o',typ='R'),
10192            ),
10193            LMARC_FO        =FACT(statut='f',
10194              DE_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10195              R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10196              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10197              K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10198              Y_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10199              Y_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10200              B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10201              A_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10202              RM              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10203              M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10204              P               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10205              P1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10206              P2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10207              M11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10208              M22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10209              M33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10210              M66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10211              N11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10212              N22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10213              N33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10214              N66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10215              Q11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10216              Q22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10217              Q33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10218              Q66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10219              R11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10220              R22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10221              R33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10222              R66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10223              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10224            ),
10225              META_LEMA_ANI     =FACT(statut='f',
10226              F1_A            =SIMP(statut='o',typ='R'),
10227              F2_A            =SIMP(statut='o',typ='R'),
10228              C_A             =SIMP(statut='o',typ='R'),
10229              F1_M            =SIMP(statut='o',typ='R'),
10230              F2_M            =SIMP(statut='o',typ='R'),
10231              C_M             =SIMP(statut='o',typ='R'),
10232              F1_N            =SIMP(statut='o',typ='R'),
10233              F2_N            =SIMP(statut='o',typ='R'),
10234              C_N             =SIMP(statut='o',typ='R'),
10235              F1_Q            =SIMP(statut='o',typ='R'),
10236              F2_Q            =SIMP(statut='o',typ='R'),
10237              C_Q             =SIMP(statut='o',typ='R'),
10238              F_MRR_RR        =SIMP(statut='o',typ='R'),
10239              C_MRR_RR        =SIMP(statut='o',typ='R'),
10240              F_MTT_TT        =SIMP(statut='o',typ='R'),
10241              C_MTT_TT        =SIMP(statut='o',typ='R'),
10242              F_MZZ_ZZ        =SIMP(statut='o',typ='R'),
10243              C_MZZ_ZZ        =SIMP(statut='o',typ='R'),
10244              F_MRT_RT        =SIMP(statut='o',typ='R'),
10245              C_MRT_RT        =SIMP(statut='o',typ='R'),
10246              F_MRZ_RZ        =SIMP(statut='o',typ='R'),
10247              C_MRZ_RZ        =SIMP(statut='o',typ='R'),
10248              F_MTZ_TZ        =SIMP(statut='o',typ='R'),
10249              C_MTZ_TZ        =SIMP(statut='o',typ='R'),
10250            ),
10251              META_LEMA_ANI_FO  =FACT(statut='f',
10252              F1_A            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10253              F2_A            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10254              C_A             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10255              F1_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10256              F2_M            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10257              C_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10258              F1_N            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10259              F2_N            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10260              C_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10261              F1_Q            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10262              F2_Q            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10263              C_Q             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10264              F_MRR_RR        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10265              C_MRR_RR        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10266              F_MTT_TT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10267              C_MTT_TT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10268              F_MZZ_ZZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10269              C_MZZ_ZZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10270              F_MRT_RT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10271              C_MRT_RT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10272              F_MRZ_RZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10273              C_MRZ_RZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10274              F_MTZ_TZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10275              C_MTZ_TZ        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10276            ), 
10277            VMIS_POUTRE     =FACT(statut='f',
10278              NP              =SIMP(statut='o',typ='R'),
10279              MEY             =SIMP(statut='o',typ='R'),
10280              MPY             =SIMP(statut='o',typ='R'),
10281              CAY             =SIMP(statut='o',typ='R'),
10282              CBY             =SIMP(statut='o',typ='R'),
10283              MEZ             =SIMP(statut='o',typ='R'),
10284              MPZ             =SIMP(statut='o',typ='R'),
10285              CAZ             =SIMP(statut='o',typ='R'),
10286              CBZ             =SIMP(statut='o',typ='R'),
10287              MPX             =SIMP(statut='o',typ='R'),
10288            ),
10289            VMIS_POUTRE_FO  =FACT(statut='f',
10290              NP              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10291              MEY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10292              MPY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10293              CAY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10294              CBY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10295              MEZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10296              MPZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10297              CAZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10298              CBZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10299              MPX             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10300              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10301            ),
10302            ARME            =FACT(statut='f',
10303              KYE             =SIMP(statut='o',typ='R'),
10304              DLE             =SIMP(statut='o',typ='R'),
10305              KYP             =SIMP(statut='o',typ='R'),
10306              DLP             =SIMP(statut='o',typ='R'),
10307              KYG             =SIMP(statut='o',typ='R'),
10308            ),
10309            ASSE_CORN       =FACT(statut='f',
10310              NU_1            =SIMP(statut='o',typ='R'),
10311              MU_1            =SIMP(statut='o',typ='R'),
10312              DXU_1           =SIMP(statut='o',typ='R'),
10313              DRYU_1          =SIMP(statut='o',typ='R'),
10314              C_1             =SIMP(statut='o',typ='R'),
10315              NU_2            =SIMP(statut='o',typ='R'),
10316              MU_2            =SIMP(statut='o',typ='R'),
10317              DXU_2           =SIMP(statut='o',typ='R'),
10318              DRYU_2          =SIMP(statut='o',typ='R'),
10319              C_2             =SIMP(statut='o',typ='R'),
10320              KY              =SIMP(statut='o',typ='R'),
10321              KZ              =SIMP(statut='o',typ='R'),
10322              KRX             =SIMP(statut='o',typ='R'),
10323              KRZ             =SIMP(statut='o',typ='R'),
10324              R_P0            =SIMP(statut='f',typ='R',defaut= 1.E+4 ),
10325            ),
10326            DIS_CONTACT     =FACT(statut='f',
10327              RIGI_NOR        =SIMP(statut='f',typ='R' ),
10328              RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10329              AMOR_NOR        =SIMP(statut='f',typ='R' ),
10330              AMOR_TAN        =SIMP(statut='f',typ='R' ),
10331              COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10332              DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10333              DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10334              JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10335            ),
10336            DIS_GRICRA    =FACT(statut='f',
10337              KN_AX       =SIMP(statut='o',typ='R' ),
10338              KT_AX       =SIMP(statut='o',typ='R' ),
10339              COUL_AX     =SIMP(statut='o',typ='R' ),
10340              F_SER       =SIMP(statut='f',typ='R' ),
10341              F_SER_FO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10342              ET_AX       =SIMP(statut='f',typ='R',defaut=1.e-7 ),
10343              ET_ROT      =SIMP(statut='f',typ='R',defaut=1.e-7 ),
10344              ANG1        =SIMP(statut='f',typ='R' ),
10345              ANG2        =SIMP(statut='f',typ='R' ),
10346              PEN1        =SIMP(statut='f',typ='R' ),
10347              PEN2        =SIMP(statut='f',typ='R' ),
10348              PEN3        =SIMP(statut='f',typ='R' ),
10349              ANG1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10350              ANG2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10351              PEN1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10352              PEN2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10353              PEN3_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10354              regles=(EXCLUS('ANG1','ANG1_FO',),
10355                      UN_PARMI('ANG1','ANG1_FO',),
10356                      EXCLUS('F_SER','F_SER_FO',),
10357                      UN_PARMI('F_SER','F_SER_FO',),
10358                      PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',),
10359                      PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',),
10360                                      ),
10361              VERI_P      =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ),
10362            ),
10363            NADAI_B         =FACT(statut='f',
10364              F_C             =SIMP(statut='o',typ='R',val_min=0.E+0),
10365              F_T             =SIMP(statut='o',typ='R',val_min=0.E+0),
10366              CRIT_E_C        =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
10367              EPSP_P_C        =SIMP(statut='o',typ='R',val_min=0.E+0),
10368              EPSP_R_C        =SIMP(statut='o',typ='R',val_min=0.E+0),
10369              EPSI_R_T        =SIMP(statut='o',typ='R',val_min=0.E+0),
10370              FAC_T_C         =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
10371            ),
10372            BETON_DOUBLE_DP =FACT(statut='f',
10373              F_C             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10374              F_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10375              COEF_BIAX       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10376              ENER_COMP_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10377              ENER_TRAC_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10378              COEF_ELAS_COMP  =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=100.E+0),
10379              LONG_CARA       =SIMP(statut='f',typ='R',val_min=0.E+0),
10380              ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
10381              ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
10382              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ),
10383            ),
10384            LABORD_1D=FACT(statut='f',min=0 ,
10385              Y01             =SIMP(statut='o',typ='R'),
10386              Y02             =SIMP(statut='o',typ='R'),
10387              A1              =SIMP(statut='o',typ='R'),
10388              A2              =SIMP(statut='o',typ='R'),
10389              B1              =SIMP(statut='o',typ='R'),
10390              B2              =SIMP(statut='o',typ='R'),
10391              BETA1           =SIMP(statut='o',typ='R'),
10392              BETA2           =SIMP(statut='o',typ='R'),
10393              SIGF            =SIMP(statut='o',typ='R'),
10394            ),
10395          MAZARS=FACT(statut='f',min=0 ,
10396              EPSD0           =SIMP(statut='o',typ='R'),
10397              BETA            =SIMP(statut='o',typ='R'),
10398              AC              =SIMP(statut='o',typ='R'),
10399              BC              =SIMP(statut='o',typ='R'),
10400              AT              =SIMP(statut='o',typ='R'),
10401              BT              =SIMP(statut='o',typ='R'),
10402            ),
10403          MAZARS_FO=FACT(statut='f',min=0 ,
10404              EPSD0           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10405              BETA            =SIMP(statut='o',typ='R'),
10406              AC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10407              BC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10408              AT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10409              BT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10410              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ),
10411            ),
10412          JOINT_BA=FACT(statut='f',min=0 ,max=1,
10413              HPEN            =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0),
10414              GTT             =SIMP(statut='o',typ='R',val_min=0.E+0),
10415              GAMD0           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1),
10416              AD1             =SIMP(statut='o',typ='R',val_min=0.E+0),
10417              BD1             =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1),
10418              GAMD2           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
10419              AD2             =SIMP(statut='o',typ='R',val_min=0.E+0),
10420              BD2             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
10421              VIFROT          =SIMP(statut='o',typ='R',val_min=0.E+0),
10422              FA              =SIMP(statut='o',typ='R',val_min=0.E+0),
10423              FC              =SIMP(statut='o',typ='R',val_min=0.E+0),
10424              EPSTR0          =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
10425              ADN             =SIMP(statut='o',typ='R',val_min=0.E+0),
10426              BDN             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
10427            ),
10428           VENDOCHAB       =FACT(statut='f',
10429              S_VP            =SIMP(statut='o',typ='R'),
10430              SEDVP1          =SIMP(statut='o',typ='R'),
10431              SEDVP2          =SIMP(statut='o',typ='R'),
10432              N_VP            =SIMP(statut='o',typ='R'),
10433              M_VP            =SIMP(statut='o',typ='R'),
10434              K_VP            =SIMP(statut='o',typ='R'),
10435              R_D             =SIMP(statut='o',typ='R'),
10436              A_D             =SIMP(statut='o',typ='R'),
10437              K_D             =SIMP(statut='o',typ='R'),
10438            ),
10439            VENDOCHAB_FO    =FACT(statut='f',
10440              S_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10441              SEDVP1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10442              SEDVP2          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10443              N_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10444              M_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10445              K_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10446              R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10447              A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10448              K_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10449              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ),
10450            ),
10451            PINTO_MENEGOTTO =FACT(statut='f',
10452              SY              =SIMP(statut='o',typ='R'),
10453              EPSI_ULTM       =SIMP(statut='o',typ='R'),
10454              SIGM_ULTM       =SIMP(statut='o',typ='R'),
10455              ELAN            =SIMP(statut='f',typ='R',defaut= 4. ),
10456              EPSP_HARD       =SIMP(statut='o',typ='R'),
10457              R_PM            =SIMP(statut='f',typ='R',defaut= 20. ),
10458              EP_SUR_E        =SIMP(statut='f',typ='R'),
10459              A1_PM           =SIMP(statut='f',typ='R',defaut= 18.5 ),
10460              A2_PM           =SIMP(statut='f',typ='R',defaut= 0.15 ),
10461              A6_PM           =SIMP(statut='f',typ='R',defaut= 620. ),
10462              C_PM            =SIMP(statut='f',typ='R',defaut= 0.5 ),
10463              A_PM            =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
10464            ),
10465            BPEL_BETON      =FACT(statut='f',
10466              PERT_FLUA       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10467              PERT_RETR       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10468            ),
10469            BPEL_ACIER      =FACT(statut='f',
10470             regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),
10471                      PRESENT_PRESENT('MU0_RELAX','F_PRG',),),
10472              RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10473              MU0_RELAX       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10474              F_PRG           =SIMP(statut='f',typ='R'),
10475              FROT_COURB      =SIMP(statut='f',typ='R',defaut=0.E+0),
10476              FROT_LINE       =SIMP(statut='f',typ='R',defaut=0.E+0),
10477            ),
10478            CAM_CLAY      =FACT(statut='f',
10479              MU              =SIMP(statut='o',typ='R'),
10480              PORO            =SIMP(statut='o',typ='R'),
10481              LAMBDA          =SIMP(statut='o',typ='R'),
10482              KAPA            =SIMP(statut='o',typ='R'),
10483              M               =SIMP(statut='o',typ='R'),
10484              PRES_CRIT       =SIMP(statut='o',typ='R'),
10485              PA              =SIMP(statut='o',typ='R'),
10486            ),
10487            BARCELONE      =FACT(statut='f',
10488              R             =SIMP(statut='o',typ='R'),
10489              BETA          =SIMP(statut='o',typ='R'),
10490              KC            =SIMP(statut='o',typ='R'),
10491              PC0_INIT      =SIMP(statut='o',typ='R'),
10492              KAPAS         =SIMP(statut='o',typ='R'),
10493              LAMBDAS       =SIMP(statut='o',typ='R'),
10494              ALPHAB        =SIMP(statut='f',typ='R'),
10495            ),
10496            CJS             =FACT(statut='f',
10497              BETA_CJS        =SIMP(statut='o',typ='R'),
10498              RM              =SIMP(statut='o',typ='R'),
10499              N_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10500              KP              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10501              RC              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10502              A_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10503              B_CJS           =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
10504              C_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10505              GAMMA_CJS       =SIMP(statut='o',typ='R'),
10506              MU_CJS          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10507              PCO             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10508              PA              =SIMP(statut='o',typ='R'),
10509              Q_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10510              R_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10511            ),
10512            HUJEUX   =FACT(statut='f',
10513              N      =SIMP(statut='o',typ='R' ),
10514              BETA   =SIMP(statut='o',typ='R' ),
10515              B      =SIMP(statut='o',typ='R' ),
10516              D      =SIMP(statut='o',typ='R' ),
10517              PHI    =SIMP(statut='o',typ='R' ),
10518              ANGDIL =SIMP(statut='o',typ='R' ),
10519              PCO    =SIMP(statut='o',typ='R' ),
10520              PREF   =SIMP(statut='o',typ='R' ),
10521              ACYC   =SIMP(statut='o',typ='R' ),
10522              AMON   =SIMP(statut='o',typ='R' ),
10523              CCYC   =SIMP(statut='o',typ='R' ),
10524              CMON   =SIMP(statut='o',typ='R' ),
10525              RD_ELA =SIMP(statut='o',typ='R' ),
10526              RI_ELA =SIMP(statut='o',typ='R' ),
10527              RHYS   =SIMP(statut='o',typ='R' ),
10528              RMOB   =SIMP(statut='o',typ='R' ),
10529              XM     =SIMP(statut='o',typ='R' ),
10530              RD_CYC =SIMP(statut='o',typ='R' ),
10531              RI_CYC =SIMP(statut='o',typ='R' ),
10532              DILA   =SIMP(statut='o',typ='R' ),
10533              PTRAC  =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
10534            ),
10535            ECRO_ASYM_LINE  =FACT(statut='f',
10536              DC_SIGM_EPSI    =SIMP(statut='o',typ='R'),
10537              SY_C            =SIMP(statut='o',typ='R'),
10538              DT_SIGM_EPSI    =SIMP(statut='o',typ='R'),
10539              SY_T            =SIMP(statut='o',typ='R'),
10540            ),
10541            GRANGER_FP      =FACT(statut='f',
10542              J1              =SIMP(statut='f',typ='R'),
10543              J2              =SIMP(statut='f',typ='R'),
10544              J3              =SIMP(statut='f',typ='R'),
10545              J4              =SIMP(statut='f',typ='R'),
10546              J5              =SIMP(statut='f',typ='R'),
10547              J6              =SIMP(statut='f',typ='R'),
10548              J7              =SIMP(statut='f',typ='R'),
10549              J8              =SIMP(statut='f',typ='R'),
10550              TAUX_1          =SIMP(statut='f',typ='R'),
10551              TAUX_2          =SIMP(statut='f',typ='R'),
10552              TAUX_3          =SIMP(statut='f',typ='R'),
10553              TAUX_4          =SIMP(statut='f',typ='R'),
10554              TAUX_5          =SIMP(statut='f',typ='R'),
10555              TAUX_6          =SIMP(statut='f',typ='R'),
10556              TAUX_7          =SIMP(statut='f',typ='R'),
10557              TAUX_8          =SIMP(statut='f',typ='R'),
10558              QSR_K           =SIMP(statut='f',typ='R'),
10559            ),
10560            GRANGER_FP_INDT =FACT(statut='f',
10561              J1              =SIMP(statut='f',typ='R'),
10562              J2              =SIMP(statut='f',typ='R'),
10563              J3              =SIMP(statut='f',typ='R'),
10564              J4              =SIMP(statut='f',typ='R'),
10565              J5              =SIMP(statut='f',typ='R'),
10566              J6              =SIMP(statut='f',typ='R'),
10567              J7              =SIMP(statut='f',typ='R'),
10568              J8              =SIMP(statut='f',typ='R'),
10569              TAUX_1          =SIMP(statut='f',typ='R'),
10570              TAUX_2          =SIMP(statut='f',typ='R'),
10571              TAUX_3          =SIMP(statut='f',typ='R'),
10572              TAUX_4          =SIMP(statut='f',typ='R'),
10573              TAUX_5          =SIMP(statut='f',typ='R'),
10574              TAUX_6          =SIMP(statut='f',typ='R'),
10575              TAUX_7          =SIMP(statut='f',typ='R'),
10576              TAUX_8          =SIMP(statut='f',typ='R'),
10577            ),
10578            V_GRANGER_FP    =FACT(statut='f',
10579              QSR_VEIL        =SIMP(statut='f',typ='R'),
10580              FONC_V          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10581              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
10582            ),
10583            BETON_UMLV_FP   =FACT(statut='f',min=0 ,
10584              K_RS            =SIMP(statut='o',typ='R'),
10585              ETA_RS          =SIMP(statut='o',typ='R'),
10586              K_IS            =SIMP(statut='o',typ='R'),
10587              ETA_IS          =SIMP(statut='o',typ='R'),
10588              K_RD            =SIMP(statut='o',typ='R'),
10589              ETA_RD          =SIMP(statut='o',typ='R'),
10590              ETA_ID          =SIMP(statut='o',typ='R'),
10591              ETA_FD          =SIMP(statut='f',typ='R'),
10592            ),
10593            GLRC_DM         =FACT(statut='f',min=0,max=1,
10594              GAMMA_T         =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
10595              GAMMA_F         =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0),
10596              SYT             =SIMP(statut='o',typ='R',val_min=0.E+0),
10597              SYF             =SIMP(statut='o',typ='R',val_min=0.E+0),
10598              EF              =SIMP(statut='f',typ='R',val_min=0.E+0),
10599              NUF             =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0),
10600            ),
10601            GATT_MONERIE    =FACT(statut='f',min=0,max=1,
10602              D_GRAIN         =SIMP(statut='o',typ='R',val_min=0.E+0),
10603              PORO_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0),
10604              EPSI_01         =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0),
10605              EPSI_02         =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0),
10606            ),
10607            CORR_ACIER   =FACT(statut='f',min=0 ,max=1,
10608              D_CORR           =SIMP(statut='o',typ='R'),
10609              ECRO_K           =SIMP(statut='o',typ='R'),
10610              ECRO_M           =SIMP(statut='o',typ='R'),
10611              SY              =SIMP(statut='o',typ='R'),
10612              ),
10613 # Discrets non-linéaires : début
10614          DIS_ECRO_CINE  =FACT(statut='f',
10615             fr="Loi pour les discrets avec érouissage cinematique.",
10616             regles=(PRESENT_PRESENT('LIMY_DX','KCIN_DX',),PRESENT_PRESENT('PUIS_DX','LIMU_DX',),
10617                     PRESENT_PRESENT('LIMY_DY','KCIN_DY',),PRESENT_PRESENT('PUIS_DY','LIMU_DY',),
10618                     PRESENT_PRESENT('LIMY_DZ','KCIN_DZ',),PRESENT_PRESENT('PUIS_DZ','LIMU_DZ',),
10619                     PRESENT_PRESENT('LIMY_RX','KCIN_RX',),PRESENT_PRESENT('PUIS_RX','LIMU_RX',),
10620                     PRESENT_PRESENT('LIMY_RY','KCIN_RY',),PRESENT_PRESENT('PUIS_RY','LIMU_RY',),
10621                     PRESENT_PRESENT('LIMY_RZ','KCIN_RZ',),PRESENT_PRESENT('PUIS_RZ','LIMU_RZ',),),
10622             LIMY_DX =SIMP(statut='f',typ='R',val_min = 0.0,
10623                fr="Effort limite élastique suivant l'axe local x de l'élément."),
10624             LIMY_DY =SIMP(statut='f',typ='R',val_min = 0.0,
10625                fr="Effort limite élastique suivant l'axe local y de l'élément."),
10626             LIMY_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
10627                fr="Effort limite élastique suivant l'axe local z de l'élément."),
10628             LIMY_RX =SIMP(statut='f',typ='R',val_min = 0.0,
10629                fr="Moment limite élastique suivant l'axe local x de l'élément."),
10630             LIMY_RY =SIMP(statut='f',typ='R',val_min = 0.0,
10631                fr="Moment limite élastique suivant l'axe local y de l'élément."),
10632             LIMY_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
10633                fr="Moment limite élastique suivant l'axe local z de l'élément."),
10634             KCIN_DX =SIMP(statut='f',typ='R',val_min = 0.0,
10635                fr="Raideur suivant l'axe local x de l'élément."),
10636             KCIN_DY =SIMP(statut='f',typ='R',val_min = 0.0,
10637                fr="Raideur suivant l'axe local y de l'élément."),
10638             KCIN_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
10639                fr="Raideur suivant l'axe local z de l'élément."),
10640             KCIN_RX =SIMP(statut='f',typ='R',val_min = 0.0,
10641                fr="Raideur suivant l'axe local Rx de l'élément."),
10642             KCIN_RY =SIMP(statut='f',typ='R',val_min = 0.0,
10643                fr="Raideur suivant l'axe local Ry de l'élément."),
10644             KCIN_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
10645                fr="Raideur suivant l'axe local Rz de l'élément."),
10646             LIMU_DX =SIMP(statut='f',typ='R',val_min = 0.0,
10647                fr="Effort limite suivant l'axe local x de l'élément."),
10648             LIMU_DY =SIMP(statut='f',typ='R',val_min = 0.0,
10649                fr="Effort limite suivant l'axe local y de l'élément."),
10650             LIMU_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
10651                fr="Effort limite suivant l'axe local z de l'élément."),
10652             LIMU_RX =SIMP(statut='f',typ='R',val_min = 0.0,
10653                fr="Moment limite suivant l'axe local x de l'élément."),
10654             LIMU_RY =SIMP(statut='f',typ='R',val_min = 0.0,
10655                fr="Moment limite suivant l'axe local y de l'élément."),
10656             LIMU_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
10657                fr="Moment limite suivant l'axe local z de l'élément."),
10658             PUIS_DX =SIMP(statut='f',typ='R',val_min = 1.0,
10659                fr="Coefficient de non-linéarité suivant l'axe local x de l'élément."),
10660             PUIS_DY =SIMP(statut='f',typ='R',val_min = 1.0,
10661                fr="Coefficient de non-linéarité suivant l'axe local y de l'élément."),
10662             PUIS_DZ =SIMP(statut='f',typ='R',val_min = 1.0,
10663                fr="Coefficient de non-linéarité suivant l'axe local z de l'élément."),
10664             PUIS_RX =SIMP(statut='f',typ='R',val_min = 1.0,
10665                fr="Coefficient de non-linéarité suivant l'axe local Rx de l'élément."),
10666             PUIS_RY =SIMP(statut='f',typ='R',val_min = 1.0,
10667                fr="Coefficient de non-linéarité suivant l'axe local Ry de l'élément."),
10668             PUIS_RZ =SIMP(statut='f',typ='R',val_min = 1.0,
10669                fr="Coefficient de non-linéarité suivant l'axe local Rz de l'élément."),
10670          ),
10671          DIS_VISC  =FACT(statut='f',
10672             fr="Loi pour un discret de type amortisseur visqueux.",
10673             regles=(PRESENT_PRESENT('PUIS_DX','COEF_DX',),
10674                     PRESENT_PRESENT('PUIS_DY','COEF_DY',),
10675                     PRESENT_PRESENT('PUIS_DZ','COEF_DZ',),
10676                     PRESENT_PRESENT('PUIS_RX','COEF_RX',),
10677                     PRESENT_PRESENT('PUIS_RY','COEF_RY',),
10678                     PRESENT_PRESENT('PUIS_RZ','COEF_RZ',),
10679                     ),
10680             PUIS_DX =SIMP(statut='f',typ='R',val_min = 0.0,
10681                fr="Puissance dans la direction locale Dx de l'élément."),
10682             PUIS_DY =SIMP(statut='f',typ='R',val_min = 0.0,
10683                fr="Puissance dans la direction locale Dy de l'élément."),
10684             PUIS_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
10685                fr="Puissance dans la direction locale Dz de l'élément."),
10686             PUIS_RX =SIMP(statut='f',typ='R',val_min = 0.0,
10687                fr="Puissance autour de la direction locale Rx de l'élément."),
10688             PUIS_RY =SIMP(statut='f',typ='R',val_min = 0.0,
10689                fr="Puissance autour de la direction locale Ry de l'élément."),
10690             PUIS_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
10691                fr="Puissance autour de la direction locale Rz de l'élément."),
10692             COEF_DX =SIMP(statut='f',typ='R',val_min = 0.0,
10693                fr="Coefficient C dans la direction locale Dx de l'élément."),
10694             COEF_DY =SIMP(statut='f',typ='R',val_min = 0.0,
10695                fr="Coefficient C dans la direction locale Dy de l'élément."),
10696             COEF_DZ =SIMP(statut='f',typ='R',val_min = 0.0,
10697                fr="Coefficient C dans la direction locale Dz de l'élément."),
10698             COEF_RX =SIMP(statut='f',typ='R',val_min = 0.0,
10699                fr="Coefficient C autour de la direction locale Rx de l'élément."),
10700             COEF_RY =SIMP(statut='f',typ='R',val_min = 0.0,
10701                fr="Coefficient C autour de la direction locale Ry de l'élément."),
10702             COEF_RZ =SIMP(statut='f',typ='R',val_min = 0.0,
10703                fr="Coefficient C autour de la direction locale Rz de l'élément."),
10704          ),
10705          DIS_BILI_ELAS  =FACT(statut='f',
10706             fr="Loi bi-linéaire pour les discrets.",
10707             regles=(PRESENT_PRESENT('KDEB_DX','KFIN_DX','FPRE_DX',),
10708                     PRESENT_PRESENT('KDEB_DY','KFIN_DY','FPRE_DY',),
10709                     PRESENT_PRESENT('KDEB_DZ','KFIN_DZ','FPRE_DZ',),),
10710             KDEB_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
10711                fr="Raideur début suivant l'axe local x de l'élément."),
10712             KDEB_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
10713                fr="Raideur début suivant l'axe local y de l'élément."),
10714             KDEB_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
10715                fr="Raideur début  suivant l'axe local z de l'élément."),
10716             KFIN_DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
10717                fr="Raideur fin l'axe local x de l'élément."),
10718             KFIN_DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
10719                fr="Raideur fin l'axe local y de l'élément."),
10720             KFIN_DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),
10721                fr="Raideur fin l'axe local z de l'élément."),
10722             FPRE_DX =SIMP(statut='f',typ='R',
10723                fr="Effort de préserrage suivant l'axe local x de l'élément."),
10724             FPRE_DY =SIMP(statut='f',typ='R',
10725                fr="Effort de préserrage suivant l'axe local y de l'élément."),
10726             FPRE_DZ =SIMP(statut='f',typ='R',
10727                fr="Effort de préserrage suivant l'axe local z de l'élément."),
10728             VERI_P  =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
10729          ),
10730 # Discrets non-linéaires : fin
10731 #
10732 # comportement thermique
10733 #
10734            THER_NL         =FACT(statut='f',
10735              regles=(UN_PARMI('BETA','RHO_CP', ),),
10736              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10737              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10738              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10739              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10740            ),
10741            THER_HYDR       =FACT(statut='f',
10742              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10743              BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10744              AFFINITE        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10745              CHALHYDR        =SIMP(statut='o',typ='R'),
10746              QSR_K           =SIMP(statut='o',typ='R'),
10747              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ),
10748            ),
10749            THER            =FACT(statut='f',
10750              LAMBDA          =SIMP(statut='o',typ='R'),
10751              RHO_CP          =SIMP(statut='f',typ='R'),
10752            ),
10753            THER_FO         =FACT(statut='f',
10754              LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10755              RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10756              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
10757            ),
10758            THER_ORTH       =FACT(statut='f',
10759              LAMBDA_L        =SIMP(statut='o',typ='R'),
10760              LAMBDA_T        =SIMP(statut='o',typ='R'),
10761              LAMBDA_N        =SIMP(statut='f',typ='R'),
10762              RHO_CP          =SIMP(statut='f',typ='R'),
10763            ),
10764            THER_COQUE      =FACT(statut='f',
10765              COND_LMM        =SIMP(statut='o',typ='R'),
10766              COND_TMM        =SIMP(statut='o',typ='R'),
10767              COND_LMP        =SIMP(statut='o',typ='R'),
10768              COND_TMP        =SIMP(statut='o',typ='R'),
10769              COND_LPP        =SIMP(statut='o',typ='R'),
10770              COND_TPP        =SIMP(statut='o',typ='R'),
10771              COND_LSI        =SIMP(statut='o',typ='R'),
10772              COND_TSI        =SIMP(statut='o',typ='R'),
10773              COND_NMM        =SIMP(statut='o',typ='R'),
10774              COND_NMP        =SIMP(statut='o',typ='R'),
10775              COND_NPP        =SIMP(statut='o',typ='R'),
10776              COND_NSI        =SIMP(statut='o',typ='R'),
10777              CMAS_MM         =SIMP(statut='f',typ='R'),
10778              CMAS_MP         =SIMP(statut='f',typ='R'),
10779              CMAS_PP         =SIMP(statut='f',typ='R'),
10780              CMAS_SI         =SIMP(statut='f',typ='R'),
10781            ),
10782            THER_COQUE_FO   =FACT(statut='f',
10783              COND_LMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10784              COND_TMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10785              COND_LMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10786              COND_TMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10787              COND_LPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10788              COND_TPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10789              COND_LSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10790              COND_TSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10791              COND_NMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10792              COND_NMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10793              COND_NPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10794              COND_NSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10795              CMAS_MM         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10796              CMAS_MP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10797              CMAS_PP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10798              CMAS_SI         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10799            ),
10800            SECH_GRANGER    =FACT(statut='f',
10801              A               =SIMP(statut='o',typ='R'),
10802              B               =SIMP(statut='o',typ='R'),
10803              QSR_K           =SIMP(statut='o',typ='R'),
10804              TEMP_0_C        =SIMP(statut='o',typ='R'),
10805            ),
10806            SECH_MENSI      =FACT(statut='f',
10807              A               =SIMP(statut='o',typ='R'),
10808              B               =SIMP(statut='o',typ='R'),
10809            ),
10810            SECH_BAZANT     =FACT(statut='f',
10811              D1              =SIMP(statut='o',typ='R'),
10812              ALPHA_BAZANT    =SIMP(statut='o',typ='R'),
10813              N               =SIMP(statut='o',typ='R'),
10814              FONC_DESORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10815              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10816            ),
10817            SECH_NAPPE      =FACT(statut='f',
10818              FONCTION        =SIMP(statut='o',typ=(nappe_sdaster,formule)),
10819              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ),
10820            ),
10821 #
10822 # comportement métallurgique
10823 #
10824            META_ACIER      =FACT(statut='f',
10825              TRC             =SIMP(statut='o',typ=(table_sdaster) ),
10826              AR3             =SIMP(statut='o',typ='R'),
10827              ALPHA           =SIMP(statut='o',typ='R'),
10828              MS0             =SIMP(statut='o',typ='R'),
10829              AC1             =SIMP(statut='o',typ='R'),
10830              AC3             =SIMP(statut='o',typ='R'),
10831              TAUX_1          =SIMP(statut='o',typ='R'),
10832              TAUX_3          =SIMP(statut='o',typ='R'),
10833              LAMBDA0         =SIMP(statut='f',typ='R'),
10834              QSR_K           =SIMP(statut='f',typ='R'),
10835              D10             =SIMP(statut='f',typ='R'),
10836              WSR_K           =SIMP(statut='f',typ='R'),
10837            ),
10838            META_ZIRC       =FACT(statut='f',
10839              TDEQ            =SIMP(statut='o',typ='R'),
10840              N               =SIMP(statut='o',typ='R'),
10841              K               =SIMP(statut='o',typ='R'),
10842              TDC             =SIMP(statut='o',typ='R'),
10843              AC              =SIMP(statut='o',typ='R'),
10844              M               =SIMP(statut='o',typ='R'),
10845              QSR_K           =SIMP(statut='f',typ='R'),
10846              TDR             =SIMP(statut='o',typ='R'),
10847              AR              =SIMP(statut='o',typ='R'),
10848              BR              =SIMP(statut='o',typ='R'),
10849            ),
10850            DURT_META       =FACT(statut='f',
10851              F1_DURT         =SIMP(statut='o',typ='R'),
10852              F2_DURT         =SIMP(statut='o',typ='R'),
10853              F3_DURT         =SIMP(statut='o',typ='R'),
10854              F4_DURT         =SIMP(statut='o',typ='R'),
10855              C_DURT          =SIMP(statut='o',typ='R'),
10856            ),
10857            ELAS_META       =FACT(statut='f',
10858              E               =SIMP(statut='o',typ='R'),
10859              NU              =SIMP(statut='o',typ='R'),
10860              F_ALPHA         =SIMP(statut='o',typ='R'),
10861              C_ALPHA         =SIMP(statut='o',typ='R'),
10862              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
10863              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
10864              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
10865              F1_SY           =SIMP(statut='f',typ='R'),
10866              F2_SY           =SIMP(statut='f',typ='R'),
10867              F3_SY           =SIMP(statut='f',typ='R'),
10868              F4_SY           =SIMP(statut='f',typ='R'),
10869              C_SY            =SIMP(statut='f',typ='R'),
10870              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10871              F1_S_VP         =SIMP(statut='f',typ='R'),
10872              F2_S_VP         =SIMP(statut='f',typ='R'),
10873              F3_S_VP         =SIMP(statut='f',typ='R'),
10874              F4_S_VP         =SIMP(statut='f',typ='R'),
10875              C_S_VP          =SIMP(statut='f',typ='R' ),
10876              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10877              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)),
10878            ),
10879            ELAS_META_FO    =FACT(statut='f',
10880              regles=(
10881                       PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'),
10882                       PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'),
10883                     ),
10884              E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10885              NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10886              F_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10887              C_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
10888              PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
10889              EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
10890              TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
10891              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
10892              F1_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10893              F2_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10894              F3_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10895              F4_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10896              C_SY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10897              SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10898              F1_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10899              F2_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10900              F3_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10901              F4_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10902              C_S_VP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10903              S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10904              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)),
10905            ),
10906            META_ECRO_LINE  =FACT(statut='f',
10907              F1_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10908              F2_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10909              F3_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10910              F4_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10911              C_D_SIGM_EPSI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10912              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
10913            ),
10914            META_TRACTION   =FACT(statut='f',
10915              SIGM_F1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10916              SIGM_F2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10917              SIGM_F3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10918              SIGM_F4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10919              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10920              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)),
10921            ),
10922            META_VISC_FO    =FACT(statut='f',
10923              F1_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10924              F1_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10925              F1_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10926              F1_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10927              F2_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10928              F2_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10929              F2_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10930              F2_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10931              F3_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10932              F3_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10933              F3_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10934              F3_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10935              F4_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10936              F4_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10937              F4_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10938              F4_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10939              C_ETA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10940              C_N             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10941              C_C             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10942              C_M             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10943              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
10944            ),
10945            META_PT         =FACT(statut='f',
10946              F1_K            =SIMP(statut='f',typ='R'),
10947              F2_K            =SIMP(statut='f',typ='R'),
10948              F3_K            =SIMP(statut='f',typ='R'),
10949              F4_K            =SIMP(statut='f',typ='R'),
10950              F1_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10951              F2_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10952              F3_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10953              F4_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
10954              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ),
10955            ),
10956            META_RE         =FACT(statut='f',
10957              C_F1_THETA      =SIMP(statut='f',typ='R'),
10958              C_F2_THETA      =SIMP(statut='f',typ='R'),
10959              C_F3_THETA      =SIMP(statut='f',typ='R'),
10960              C_F4_THETA      =SIMP(statut='f',typ='R'),
10961              F1_C_THETA      =SIMP(statut='f',typ='R'),
10962              F2_C_THETA      =SIMP(statut='f',typ='R'),
10963              F3_C_THETA      =SIMP(statut='f',typ='R'),
10964              F4_C_THETA      =SIMP(statut='f',typ='R'),
10965            ),
10966 #
10967 # comportement fluide
10968 #
10969            FLUIDE          =FACT(statut='f',
10970              regles=(EXCLUS('CELE_C','CELE_R'),),
10971              RHO             =SIMP(statut='o',typ='R'),
10972              CELE_C          =SIMP(statut='f',typ='C'),
10973              CELE_R          =SIMP(statut='f',typ='R'),
10974            ),
10975 # =================================================================================
10976 # COMPORTEMENT THERMO_HYDRO_MECANIQUE
10977 # LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES
10978 # DE LA LOI DE COUPLAGE THM DE LA RELATION
10979 # LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS
10980 # DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE
10981 # ET LIQU_AD_GAZ_VAPE
10982 # LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE :
10983 # 1 -->  LIQU_SATU
10984 # 2 -->  GAZ
10985 # 3 -->  LIQU_VAPE
10986 # 4 -->  LIQU_VAPE_GAZ
10987 # 5 -->  LIQU_GAZ
10988 # 6 -->  LIQU_GAZ_ATM
10989 # 9 -->  LIQU_AD_GAZ_VAPE
10990 # =================================================================================
10991            COMP_THM        = SIMP(statut='f', typ='TXM',
10992                                   into = ( "LIQU_SATU"     ,
10993                                            "LIQU_GAZ"      ,
10994                                            "GAZ"           ,
10995                                            "LIQU_GAZ_ATM"  ,
10996                                            "LIQU_VAPE_GAZ" ,
10997                                            "LIQU_VAPE"     ,
10998                                            "LIQU_AD_GAZ_VAPE" ,
10999                                           ) ),
11000 # =================================================================================
11001 # --- LOI DE COUPLAGE DE TYPE LIQU_SATU -------------------------------------------
11002 # =================================================================================
11003 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11004 # --- THM_INIT, THM_DIFFU, THM_LIQU -----------------------------------------------
11005 # =================================================================================
11006            b_liqusatu      = BLOC(condition = "COMP_THM == 'LIQU_SATU' ",
11007                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU",
11008 # =================================================================================
11009 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11010 # =================================================================================
11011                              THM_INIT   = FACT(statut='o',
11012 # ---------------------------------------------------------------------------------
11013 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11014 # ---------------------------------------------------------------------------------
11015                                            PRE1          = SIMP(statut='o',typ='R'),
11016                                            PORO          = SIMP(statut='o',typ='R'),
11017 # ---------------------------------------------------------------------------------
11018 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11019 # ---------------------------------------------------------------------------------
11020                                            TEMP          = SIMP(statut='f',typ='R'),
11021 # ---------------------------------------------------------------------------------
11022 # -------------------   DONNEES INUTILES   ----------------------------------------
11023 # ---------------------------------------------------------------------------------
11024                                            PRE2          = SIMP(statut='f',typ='R'),
11025                                            PRES_VAPE     = SIMP(statut='f',typ='R'),
11026                                            DEGR_SATU     = SIMP(statut='f',typ='R'),
11027                                            PRES_ATMO     = SIMP(statut='f',typ='R'),
11028 # ---------------------------------------------------------------------------------
11029 # -------------------   DONNEE CACHEE ---------------------------------------------
11030 # ---------------------------------------------------------------------------------
11031                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 1.0,),
11032                                              ),
11033 # =================================================================================
11034 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11035 # =================================================================================
11036                              THM_DIFFU  = FACT(statut='o',
11037 # ---------------------------------------------------------------------------------
11038 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11039 # ---------------------------------------------------------------------------------
11040                                            RHO           = SIMP(statut='o',typ='R'),
11041                                            BIOT_COEF     = SIMP(statut='o',typ='R'),
11042                                            PESA_X        = SIMP(statut='o',typ='R'),
11043                                            PESA_Y        = SIMP(statut='o',typ='R'),
11044                                            PESA_Z        = SIMP(statut='o',typ='R'),
11045 # ---------------------------------------------------------------------------------
11046 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11047 # ---------------------------------------------------------------------------------
11048                                            CP            = SIMP(statut='f',typ='R'),
11049                                            PERM_IN       = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11050                                            PERM_END      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11051                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11052                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11053                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11054                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11055                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11056                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11057                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11058                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11059                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11060                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11061                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11062                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11063 # ---------------------------------------------------------------------------------
11064 # -------------------   DONNEES INUTILES   ----------------------------------------
11065 # ---------------------------------------------------------------------------------
11066                                            R_GAZ         = SIMP(statut='f',typ='R'),
11067                                            EMMAG           = SIMP(statut='f',typ='R'),
11068                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11069                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11070                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11071                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11072                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11073                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11074                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11075                                            SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11076                                            D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11077                                            PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11078                                            CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11079                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11080                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11081                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11082                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11083                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11084                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11085                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11086                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11087                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11088                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11089                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11090 # ---------------------------------------------------------------------------------
11091 # -------------------   DONNEES CACHEES -------------------------------------------
11092 # ---------------------------------------------------------------------------------
11093          VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11094                                              ),
11095 # =================================================================================
11096 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11097 # =================================================================================
11098                              THM_LIQU   = FACT(statut='o',
11099 # ---------------------------------------------------------------------------------
11100 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11101 # ---------------------------------------------------------------------------------
11102                                            RHO           = SIMP(statut='o',typ='R'),
11103                                            UN_SUR_K      = SIMP(statut='o',typ='R'),
11104                                            VISC          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11105                                            D_VISC_TEMP   = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11106 # ---------------------------------------------------------------------------------
11107 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11108 # ---------------------------------------------------------------------------------
11109                                            ALPHA         = SIMP(statut='f',typ='R'),
11110                                            CP            = SIMP(statut='f',typ='R'),
11111 # ---------------------------------------------------------------------------------
11112 # -------------------   DONNEES CACHEES -------------------------------------------
11113 # ---------------------------------------------------------------------------------
11114                                            VERI_P        = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11115                                          ),
11116 # =================================================================================
11117 # --- MOT-CLE INUTILE -------------------------------------------------------------
11118 # =================================================================================
11119            THM_GAZ         =FACT(statut='f',
11120              MASS_MOL        =SIMP(statut='f',typ='R'),
11121              CP              =SIMP(statut='f',typ='R'),
11122              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11123              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11124              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11125            ),
11126 # =================================================================================
11127 # --- MOT-CLE INUTILE -------------------------------------------------------------
11128 # =================================================================================
11129            THM_VAPE_GAZ    =FACT(statut='f',
11130              MASS_MOL        =SIMP(statut='f',typ='R'),
11131              CP              =SIMP(statut='f',typ='R'),
11132              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11133              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11134              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11135            ),
11136                                  ),
11137 # =================================================================================
11138 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ --------------------------------------------
11139 # =================================================================================
11140 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11141 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
11142 # =================================================================================
11143            b_liqugaz      = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ",
11144                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ",
11145 # =================================================================================
11146 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11147 # =================================================================================
11148                              THM_INIT   = FACT(statut='o',
11149 # ---------------------------------------------------------------------------------
11150 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11151 # ---------------------------------------------------------------------------------
11152                                            PRE1             = SIMP(statut='o',typ='R'),
11153                                            PRE2             = SIMP(statut='o',typ='R'),
11154                                            PORO             = SIMP(statut='o',typ='R'),
11155 # ---------------------------------------------------------------------------------
11156 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11157 # ---------------------------------------------------------------------------------
11158                                            TEMP             = SIMP(statut='f',typ='R'),
11159 # ---------------------------------------------------------------------------------
11160 # -------------------   DONNEES INUTILES   ----------------------------------------
11161 # ---------------------------------------------------------------------------------
11162                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
11163                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11164                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11165 # ---------------------------------------------------------------------------------
11166 # -------------------   DONNEE CACHEE ---------------------------------------------
11167 # ---------------------------------------------------------------------------------
11168                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 5.0,),
11169                                              ),
11170 # =================================================================================
11171 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11172 # =================================================================================
11173                              THM_DIFFU  = FACT(statut='o',
11174 # ---------------------------------------------------------------------------------
11175 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11176 # ---------------------------------------------------------------------------------
11177                                            R_GAZ            = SIMP(statut='o',typ='R'),
11178                                            RHO              = SIMP(statut='o',typ='R'),
11179                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11180                                            PESA_X           = SIMP(statut='o',typ='R'),
11181                                            PESA_Y           = SIMP(statut='o',typ='R'),
11182                                            PESA_Z           = SIMP(statut='o',typ='R'),
11183                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11184                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11185                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11186                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11187                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11188                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11189                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11190 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
11191
11192                                            VG_N    = SIMP(statut='f',typ='R'),
11193                                            VG_SR    = SIMP(statut='f',typ='R'),
11194                                            VG_PR   = SIMP(statut='f',typ='R'),
11195                                            VG_SMAX = SIMP(statut='f',typ='R'),
11196                                            VG_SATUR = SIMP(statut='f',typ='R'),
11197 #
11198 # ---------------------------------------------------------------------------------
11199 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11200 # ---------------------------------------------------------------------------------
11201                                            CP               = SIMP(statut='f',typ='R'),
11202                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11203                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11204                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11205                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11206                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11207                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11208                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11209                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11210                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11211                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11212                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11213                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11214 #
11215                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11216                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
11217                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
11218                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
11219                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
11220                                             UN_PARMI('VG_N','SATU_PRES'),
11221                                            ),
11222
11223 # ---------------------------------------------------------------------------------
11224 # -------------------   DONNEES INUTILES   ----------------------------------------
11225 # ---------------------------------------------------------------------------------
11226                                            EMMAG           = SIMP(statut='f',typ='R'),
11227                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11228                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11229                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11230                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11231                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11232                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11233                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11234                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11235                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11236                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11237                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11238                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11239                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11240                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11241                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11242 # ---------------------------------------------------------------------------------
11243 # -------------------   DONNEES CACHEES -------------------------------------------
11244 # ---------------------------------------------------------------------------------
11245           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11246                                              ) ,
11247 # =================================================================================
11248 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11249 # =================================================================================
11250                              THM_LIQU   = FACT(statut='o',
11251 # ---------------------------------------------------------------------------------
11252 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11253 # ---------------------------------------------------------------------------------
11254                                            RHO              = SIMP(statut='o',typ='R'),
11255                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11256                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11257                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11258 # ---------------------------------------------------------------------------------
11259 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11260 # ---------------------------------------------------------------------------------
11261                                            ALPHA            = SIMP(statut='f',typ='R'),
11262                                            CP               = SIMP(statut='f',typ='R'),
11263 # ---------------------------------------------------------------------------------
11264 # -------------------   DONNEES CACHEES -------------------------------------------
11265 # ---------------------------------------------------------------------------------
11266                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11267                                              ),
11268 # =================================================================================
11269 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11270 # =================================================================================
11271                              THM_GAZ    = FACT(statut='o',
11272 # ---------------------------------------------------------------------------------
11273 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11274 # ---------------------------------------------------------------------------------
11275                                            MASS_MOL        = SIMP(statut='o',typ='R'),
11276                                            VISC            = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11277                                            D_VISC_TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11278 # ---------------------------------------------------------------------------------
11279 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11280 # ---------------------------------------------------------------------------------
11281                                            CP              = SIMP(statut='f',typ='R'),
11282 # ---------------------------------------------------------------------------------
11283 # -------------------   DONNEES CACHEES -------------------------------------------
11284 # ---------------------------------------------------------------------------------
11285                                            VERI_P          = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11286                                              ),
11287 # =================================================================================
11288 # --- MOT-CLE INUTILE -------------------------------------------------------------
11289 # =================================================================================
11290            THM_VAPE_GAZ    =FACT(statut='f',
11291              MASS_MOL        =SIMP(statut='f',typ='R'),
11292              CP              =SIMP(statut='f',typ='R'),
11293              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11294              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11295              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11296            ),
11297                                  ),
11298 # =================================================================================
11299 # --- LOI DE COUPLAGE DE TYPE GAZ -------------------------------------------------
11300 # =================================================================================
11301 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11302 # --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------
11303 # =================================================================================
11304            b_gaz          = BLOC(condition = "COMP_THM == 'GAZ' ",
11305                                  fr="Paramètres nécessaires pour une loi de couplage de type GAZ",
11306 # =================================================================================
11307 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11308 # =================================================================================
11309                              THM_INIT   = FACT(statut='o',
11310 # ---------------------------------------------------------------------------------
11311 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11312 # ---------------------------------------------------------------------------------
11313                                            TEMP             = SIMP(statut='o',typ='R'),
11314                                            PRE1             = SIMP(statut='o',typ='R'),
11315                                            PORO             = SIMP(statut='o',typ='R'),
11316 # ---------------------------------------------------------------------------------
11317 # -------------------   DONNEES INUTILES   ----------------------------------------
11318 # ---------------------------------------------------------------------------------
11319                                            PRE2             = SIMP(statut='f',typ='R'),
11320                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
11321                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11322                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11323 # ---------------------------------------------------------------------------------
11324 # -------------------   DONNEE CACHEE ---------------------------------------------
11325 # ---------------------------------------------------------------------------------
11326                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 2.0,),
11327                                              ),
11328 # =================================================================================
11329 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11330 # =================================================================================
11331                              THM_DIFFU  = FACT(statut='o',
11332 # ---------------------------------------------------------------------------------
11333 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11334 # ---------------------------------------------------------------------------------
11335                                            R_GAZ            = SIMP(statut='o',typ='R'),
11336                                            RHO              = SIMP(statut='o',typ='R'),
11337                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11338                                            PESA_X           = SIMP(statut='o',typ='R'),
11339                                            PESA_Y           = SIMP(statut='o',typ='R'),
11340                                            PESA_Z           = SIMP(statut='o',typ='R'),
11341 # ---------------------------------------------------------------------------------
11342 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11343 # ---------------------------------------------------------------------------------
11344                                            CP               = SIMP(statut='f',typ='R'),
11345                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11346                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11347                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11348                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11349                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11350                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11351                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11352                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11353                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11354                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11355                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11356                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11357                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11358                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11359 # ---------------------------------------------------------------------------------
11360 # -------------------   DONNEES INUTILES   ----------------------------------------
11361 # ---------------------------------------------------------------------------------
11362                                            EMMAG           = SIMP(statut='f',typ='R'),
11363                                            SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11364                                            D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11365                                            PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11366                                            D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11367                                            PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11368                                            D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11369                                            D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11370                                            SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11371                                            D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11372                                            PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11373                                            CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11374                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11375                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11376                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11377                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11378                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11379                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11380                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11381                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11382                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11383                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11384                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11385 # ---------------------------------------------------------------------------------
11386 # -------------------   DONNEES CACHEES -------------------------------------------
11387 # ---------------------------------------------------------------------------------
11388             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11389                                              ) ,
11390 # =================================================================================
11391 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11392 # =================================================================================
11393                              THM_GAZ    = FACT(statut='o',
11394 # ---------------------------------------------------------------------------------
11395 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11396 # ---------------------------------------------------------------------------------
11397                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11398                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11399                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11400 # ---------------------------------------------------------------------------------
11401 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11402 # ---------------------------------------------------------------------------------
11403                                            CP               = SIMP(statut='f',typ='R'),
11404 # ---------------------------------------------------------------------------------
11405 # -------------------   DONNEES CACHEES -------------------------------------------
11406 # ---------------------------------------------------------------------------------
11407                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11408                                              ),
11409 # =================================================================================
11410 # --- MOT-CLE INUTILE -------------------------------------------------------------
11411 # =================================================================================
11412            THM_LIQU        =FACT(statut='f',
11413              RHO             =SIMP(statut='f',typ='R'),
11414              UN_SUR_K        =SIMP(statut='f',typ='R'),
11415              ALPHA           =SIMP(statut='f',typ='R'),
11416              CP              =SIMP(statut='f',typ='R'),
11417              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11418              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11419              COEF_HENRY      =SIMP(statut='f',typ='R'),
11420              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11421            ),
11422 # =================================================================================
11423 # --- MOT-CLE INUTILE -------------------------------------------------------------
11424 # =================================================================================
11425            THM_VAPE_GAZ    =FACT(statut='f',
11426              MASS_MOL        =SIMP(statut='f',typ='R'),
11427              CP              =SIMP(statut='f',typ='R'),
11428              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11429              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11430              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11431            ),
11432                                  ),
11433 # =================================================================================
11434 # --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ----------------------------------------
11435 # =================================================================================
11436 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11437 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
11438 # =================================================================================
11439            b_liqugazatm   = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ",
11440                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM",
11441 # =================================================================================
11442 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11443 # =================================================================================
11444                              THM_INIT   = FACT(statut='o',
11445 # ---------------------------------------------------------------------------------
11446 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11447 # ---------------------------------------------------------------------------------
11448                                            PRE1             = SIMP(statut='o',typ='R'),
11449                                            PORO             = SIMP(statut='o',typ='R'),
11450 # ---------------------------------------------------------------------------------
11451 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11452 # ---------------------------------------------------------------------------------
11453                                            TEMP             = SIMP(statut='f',typ='R'),
11454 # ---------------------------------------------------------------------------------
11455 # -------------------   DONNEES INUTILES   ----------------------------------------
11456 # ---------------------------------------------------------------------------------
11457                                            PRE2             = SIMP(statut='f',typ='R'),
11458                                            PRES_VAPE        = SIMP(statut='f',typ='R'),
11459                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11460                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11461 # ---------------------------------------------------------------------------------
11462 # -------------------   DONNEE CACHEE ---------------------------------------------
11463 # ---------------------------------------------------------------------------------
11464                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 6.0,),
11465                                              ),
11466 # =================================================================================
11467 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11468 # =================================================================================
11469                              THM_DIFFU  = FACT(statut='o',
11470 # ---------------------------------------------------------------------------------
11471 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11472 # ---------------------------------------------------------------------------------
11473                                            RHO              = SIMP(statut='o',typ='R'),
11474                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11475                                            PESA_X           = SIMP(statut='o',typ='R'),
11476                                            PESA_Y           = SIMP(statut='o',typ='R'),
11477                                            PESA_Z           = SIMP(statut='o',typ='R'),
11478                                            SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11479                                            D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11480                                            PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11481                                            D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11482 # ---------------------------------------------------------------------------------
11483 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11484 # ---------------------------------------------------------------------------------
11485                                            CP               = SIMP(statut='f',typ='R'),
11486                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11487                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11488                                                            regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11489                                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
11490                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11491                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11492                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11493                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11494                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11495                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11496                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11497                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11498                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11499                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11500 # ---------------------------------------------------------------------------------
11501 # -------------------   DONNEES INUTILES   ----------------------------------------
11502 # ---------------------------------------------------------------------------------
11503              EMMAG           = SIMP(statut='f',typ='R'),
11504              R_GAZ           =SIMP(statut='f',typ='R'),
11505              PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11506              D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11507              D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11508              SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11509              D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11510              PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11511              CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11512              FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11513              FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11514              FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11515              FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11516              D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11517              D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11518              FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11519              FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11520              FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11521              FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11522              D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11523 # ---------------------------------------------------------------------------------
11524 # -------------------   DONNEES CACHEES -------------------------------------------
11525 # ---------------------------------------------------------------------------------
11526              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
11527                                              ) ,
11528 # =================================================================================
11529 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11530 # =================================================================================
11531                              THM_LIQU   = FACT(statut='o',
11532 # ---------------------------------------------------------------------------------
11533 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11534 # ---------------------------------------------------------------------------------
11535                                            RHO              = SIMP(statut='o',typ='R'),
11536                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11537                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11538                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11539 # ---------------------------------------------------------------------------------
11540 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11541 # ---------------------------------------------------------------------------------
11542                                            ALPHA            = SIMP(statut='f',typ='R'),
11543                                            CP               = SIMP(statut='f',typ='R'),
11544 # ---------------------------------------------------------------------------------
11545 # -------------------   DONNEES CACHEES -------------------------------------------
11546 # ---------------------------------------------------------------------------------
11547                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11548                                              ),
11549 # =================================================================================
11550 # --- MOT-CLE INUTILE -------------------------------------------------------------
11551 # =================================================================================
11552                              THM_GAZ    = FACT(statut='f',
11553                                            MASS_MOL         = SIMP(statut='f',typ='R'),
11554                                            VISC             = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11555                                            D_VISC_TEMP      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11556                                            CP               = SIMP(statut='f',typ='R'),
11557                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11558                                              ),
11559 # =================================================================================
11560 # --- MOT-CLE INUTILE -------------------------------------------------------------
11561 # =================================================================================
11562            THM_VAPE_GAZ    =FACT(statut='f',
11563              MASS_MOL        =SIMP(statut='f',typ='R'),
11564              CP              =SIMP(statut='f',typ='R'),
11565              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11566              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11567              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11568            ),
11569                                  ),
11570 # =================================================================================
11571 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ ---------------------------------------
11572 # =================================================================================
11573 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11574 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------
11575 # =================================================================================
11576            b_liquvapegaz  = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ",
11577                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ",
11578 # =================================================================================
11579 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11580 # =================================================================================
11581                              THM_INIT   = FACT(statut='o',
11582 # ---------------------------------------------------------------------------------
11583 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11584 # ---------------------------------------------------------------------------------
11585                                            PRE1             = SIMP(statut='o',typ='R'),
11586                                            PRE2             = SIMP(statut='o',typ='R'),
11587                                            PORO             = SIMP(statut='o',typ='R'),
11588                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
11589 # ---------------------------------------------------------------------------------
11590 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11591 # ---------------------------------------------------------------------------------
11592                                            TEMP             = SIMP(statut='f',typ='R'),
11593 # ---------------------------------------------------------------------------------
11594 # -------------------   DONNEES INUTILES   ----------------------------------------
11595 # ---------------------------------------------------------------------------------
11596                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11597                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11598 # ---------------------------------------------------------------------------------
11599 # -------------------   DONNEE CACHEE ---------------------------------------------
11600 # ---------------------------------------------------------------------------------
11601                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 4.0,),
11602                                              ),
11603 # =================================================================================
11604 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11605 # =================================================================================
11606                              THM_DIFFU  = FACT(statut='o',
11607 # ---------------------------------------------------------------------------------
11608 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11609 # ---------------------------------------------------------------------------------
11610                                            R_GAZ            = SIMP(statut='o',typ='R'),
11611                                            RHO              = SIMP(statut='o',typ='R'),
11612                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11613                                            PESA_X           = SIMP(statut='o',typ='R'),
11614                                            PESA_Y           = SIMP(statut='o',typ='R'),
11615                                            PESA_Z           = SIMP(statut='o',typ='R'),
11616                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11617                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11618                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11619                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11620                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11621                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11622                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11623 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
11624
11625                                            VG_N     = SIMP(statut='f',typ='R'),
11626                                            VG_SR    = SIMP(statut='f',typ='R'),
11627                                            VG_PR    = SIMP(statut='f',typ='R'),
11628                                            VG_SMAX  = SIMP(statut='f',typ='R'),
11629                                            VG_SATUR = SIMP(statut='f',typ='R'),
11630 #
11631                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11632 # ---------------------------------------------------------------------------------
11633 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11634 # ---------------------------------------------------------------------------------
11635                                            CP               = SIMP(statut='f',typ='R'),
11636                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11637                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11638                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11639                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11640                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11641                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11642                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11643                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11644                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11645                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11646                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11647                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11648 #
11649                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11650                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
11651                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
11652                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
11653                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
11654                                             UN_PARMI('VG_N','SATU_PRES'),
11655                                            ),
11656 # ---------------------------------------------------------------------------------
11657 # -------------------   DONNEES FACULTATIVE   ----------------------------------
11658 # ---------------------------------------------------------------------------------
11659                                            EMMAG            = SIMP(statut='f',typ='R'),
11660                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11661                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11662                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11663                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11664                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11665                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11666                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11667                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11668                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11669 # ---------------------------------------------------------------------------------
11670 # -------------------   DONNEES INUTILES   ----------------------------------------
11671 # ---------------------------------------------------------------------------------
11672                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11673                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11674                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11675                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11676                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11677 # ---------------------------------------------------------------------------------
11678 # -------------------   DONNEES CACHEES -------------------------------------------
11679 # ---------------------------------------------------------------------------------
11680          VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ),
11681                                              ) ,
11682 # =================================================================================
11683 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11684 # =================================================================================
11685                              THM_LIQU   = FACT(statut='o',
11686 # ---------------------------------------------------------------------------------
11687 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11688 # ---------------------------------------------------------------------------------
11689                                            RHO              = SIMP(statut='o',typ='R'),
11690                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11691                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11692                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11693 # ---------------------------------------------------------------------------------
11694 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11695 # ---------------------------------------------------------------------------------
11696                                            ALPHA            = SIMP(statut='f',typ='R'),
11697                                            CP               = SIMP(statut='f',typ='R'),
11698 # ---------------------------------------------------------------------------------
11699 # -------------------   DONNEES CACHEES -------------------------------------------
11700 # ---------------------------------------------------------------------------------
11701                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11702                                              ),
11703 # =================================================================================
11704 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11705 # =================================================================================
11706                              THM_GAZ    = FACT(statut='o',
11707 # ---------------------------------------------------------------------------------
11708 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11709 # ---------------------------------------------------------------------------------
11710                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11711                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11712                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11713 # ---------------------------------------------------------------------------------
11714 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11715 # ---------------------------------------------------------------------------------
11716                                            CP               = SIMP(statut='f',typ='R'),
11717 # ---------------------------------------------------------------------------------
11718 # -------------------   DONNEES CACHEES -------------------------------------------
11719 # ---------------------------------------------------------------------------------
11720                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11721                                              ),
11722 # =================================================================================
11723 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11724 # =================================================================================
11725                              THM_VAPE_GAZ = FACT(statut='o',
11726 # ---------------------------------------------------------------------------------
11727 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11728 # ---------------------------------------------------------------------------------
11729                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11730                                            CP               = SIMP(statut='o',typ='R'),
11731                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11732                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11733 # ---------------------------------------------------------------------------------
11734 # -------------------   DONNEES CACHEES -------------------------------------------
11735 # ---------------------------------------------------------------------------------
11736                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11737                                              ),
11738                                  ),
11739 # =================================================================================
11740 # --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE -------------------------------------
11741 # =================================================================================
11742 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11743 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS---------
11744 # =================================================================================
11745            b_liquadvape  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ",
11746                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE",
11747 # =================================================================================
11748 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11749 # =================================================================================
11750                              THM_INIT   = FACT(statut='o',
11751 # ---------------------------------------------------------------------------------
11752 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11753 # ---------------------------------------------------------------------------------
11754                                            PRE1             = SIMP(statut='o',typ='R'),
11755                                            PRE2             = SIMP(statut='o',typ='R'),
11756                                            PORO             = SIMP(statut='o',typ='R'),
11757                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
11758 # ---------------------------------------------------------------------------------
11759 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11760 # ---------------------------------------------------------------------------------
11761                                            TEMP             = SIMP(statut='f',typ='R'),
11762 # ---------------------------------------------------------------------------------
11763 # -------------------   DONNEES INUTILES   ----------------------------------------
11764 # ---------------------------------------------------------------------------------
11765                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11766                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11767 # ---------------------------------------------------------------------------------
11768 # -------------------   DONNEE CACHEE ---------------------------------------------
11769 # ---------------------------------------------------------------------------------
11770                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 9.0,),
11771                                              ),
11772 # =================================================================================
11773 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11774 # =================================================================================
11775                              THM_DIFFU  = FACT(statut='o',
11776 # ---------------------------------------------------------------------------------
11777 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11778 # ---------------------------------------------------------------------------------
11779                                            R_GAZ            = SIMP(statut='o',typ='R'),
11780                                            RHO              = SIMP(statut='o',typ='R'),
11781                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11782                                            PESA_X           = SIMP(statut='o',typ='R'),
11783                                            PESA_Y           = SIMP(statut='o',typ='R'),
11784                                            PESA_Z           = SIMP(statut='o',typ='R'),
11785                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11786                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11787                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11788                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11789                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11790                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11791                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11792 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
11793                                            VG_N     = SIMP(statut='f',typ='R'),
11794                                            VG_SR    = SIMP(statut='f',typ='R'),
11795                                            VG_PR    = SIMP(statut='f',typ='R'),
11796                                            VG_SMAX  = SIMP(statut='f',typ='R'),
11797                                            VG_SATUR = SIMP(statut='f',typ='R'),
11798 #
11799                                            FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11800                                            FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11801 # ---------------------------------------------------------------------------------
11802 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11803 # ---------------------------------------------------------------------------------
11804                                            CP               = SIMP(statut='f',typ='R'),
11805                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11806                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11807                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11808                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11809                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11810                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11811                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11812                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11813                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11814                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11815                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11816                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11817 #
11818                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11819                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
11820                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
11821                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
11822                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
11823                                             UN_PARMI('VG_N','SATU_PRES'),
11824                                            ),
11825 # ---------------------------------------------------------------------------------
11826 # -------------------   DONNEES FACULTATIVES   ------------------------------------
11827 # ---------------------------------------------------------------------------------
11828                                            EMMAG            = SIMP(statut='f',typ='R'),
11829                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11830                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11831                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11832                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11833                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11834                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11835                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11836                                            D_FV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11837                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11838 #
11839                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11840                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11841                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11842                                            D_FA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11843 # ---------------------------------------------------------------------------------
11844 # -------------------   DONNEES CACHEES -------------------------------------------
11845 # ---------------------------------------------------------------------------------
11846          VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ),
11847                                              ) ,
11848 # =================================================================================
11849 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11850 # =================================================================================
11851                              THM_LIQU   = FACT(statut='o',
11852 # ---------------------------------------------------------------------------------
11853 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11854 # ---------------------------------------------------------------------------------
11855                                            RHO              = SIMP(statut='o',typ='R'),
11856                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
11857                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11858                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11859 # ---------------------------------------------------------------------------------
11860 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11861 # ---------------------------------------------------------------------------------
11862                                            ALPHA            = SIMP(statut='f',typ='R'),
11863                                            CP               = SIMP(statut='f',typ='R'),
11864                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11865                                            D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11866                                            LAMB_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11867                                            D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11868                                            LAMB_CT        = SIMP(statut='f',typ='R'),
11869 # ---------------------------------------------------------------------------------
11870 # -------------------   DONNEES CACHEES -------------------------------------------
11871 # ---------------------------------------------------------------------------------
11872                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11873                                              ),
11874 # =================================================================================
11875 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11876 # =================================================================================
11877                              THM_GAZ    = FACT(statut='o',
11878 # ---------------------------------------------------------------------------------
11879 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11880 # ---------------------------------------------------------------------------------
11881                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11882                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11883                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11884 # ---------------------------------------------------------------------------------
11885 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11886 # ---------------------------------------------------------------------------------
11887                                            CP               = SIMP(statut='f',typ='R'),
11888 # ---------------------------------------------------------------------------------
11889 # -------------------   DONNEES CACHEES -------------------------------------------
11890 # ---------------------------------------------------------------------------------
11891                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11892                                              ),
11893 # =================================================================================
11894 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11895 # =================================================================================
11896                              THM_VAPE_GAZ = FACT(statut='o',
11897 # ---------------------------------------------------------------------------------
11898 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11899 # ---------------------------------------------------------------------------------
11900                                            MASS_MOL         = SIMP(statut='o',typ='R'),
11901                                            CP               = SIMP(statut='o',typ='R'),
11902                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11903                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11904 # ---------------------------------------------------------------------------------
11905 # -------------------   DONNEES CACHEES -------------------------------------------
11906 # ---------------------------------------------------------------------------------
11907                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
11908                                              ),
11909 # =================================================================================
11910 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11911 # =================================================================================
11912                              THM_AIR_DISS = FACT(statut='o',
11913 # ---------------------------------------------------------------------------------
11914 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11915 # ---------------------------------------------------------------------------------
11916                                            CP               = SIMP(statut='o',typ='R'),
11917                                            COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
11918                                            VERI_P      = SIMP(statut='c',typ='TXM',defaut=("TEMP",),),
11919                                              ),
11920                                  ),
11921 # =================================================================================
11922 # --- LOI DE COUPLAGE DE TYPE LIQU_VAPE -------------------------------------------
11923 # =================================================================================
11924 # --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
11925 # --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ ---------------------------------
11926 # =================================================================================
11927            b_liquvape  = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ",
11928                                  fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE",
11929 # =================================================================================
11930 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11931 # =================================================================================
11932                              THM_INIT   = FACT(statut='o',
11933 # ---------------------------------------------------------------------------------
11934 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11935 # ---------------------------------------------------------------------------------
11936                                            PRE1             = SIMP(statut='o',typ='R'),
11937                                            PORO             = SIMP(statut='o',typ='R'),
11938                                            PRES_VAPE        = SIMP(statut='o',typ='R'),
11939 # ---------------------------------------------------------------------------------
11940 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11941 # ---------------------------------------------------------------------------------
11942                                            TEMP             = SIMP(statut='f',typ='R'),
11943 # ---------------------------------------------------------------------------------
11944 # -------------------   DONNEES INUTILES   ----------------------------------------
11945 # ---------------------------------------------------------------------------------
11946                                            PRE2             = SIMP(statut='f',typ='R'),
11947                                            DEGR_SATU        = SIMP(statut='f',typ='R'),
11948                                            PRES_ATMO        = SIMP(statut='f',typ='R'),
11949 # ---------------------------------------------------------------------------------
11950 # -------------------   DONNEE CACHEE ---------------------------------------------
11951 # ---------------------------------------------------------------------------------
11952                                            COMP_THM         = SIMP(statut='c',typ='R',defaut= 3.0,),
11953                                              ),
11954 # =================================================================================
11955 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
11956 # =================================================================================
11957                              THM_DIFFU  = FACT(statut='o',
11958 # ---------------------------------------------------------------------------------
11959 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
11960 # ---------------------------------------------------------------------------------
11961                                            R_GAZ            = SIMP(statut='o',typ='R'),
11962                                            RHO              = SIMP(statut='o',typ='R'),
11963                                            BIOT_COEF        = SIMP(statut='o',typ='R'),
11964                                            PESA_X           = SIMP(statut='o',typ='R'),
11965                                            PESA_Y           = SIMP(statut='o',typ='R'),
11966                                            PESA_Z           = SIMP(statut='o',typ='R'),
11967                                            SATU_PRES        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11968                                            D_SATU_PRES      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11969                                            PERM_LIQU        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11970                                            D_PERM_LIQU_SATU = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11971                                            PERM_GAZ         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11972                                            D_PERM_SATU_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11973                                            D_PERM_PRES_GAZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11974 # ---Van Genhuchten et Muallen-----------------------------------------------------------------------------
11975
11976                                            VG_N    = SIMP(statut='f',typ='R'),
11977                                            VG_SR    = SIMP(statut='f',typ='R'),
11978                                            VG_PR   = SIMP(statut='f',typ='R'),
11979                                            VG_SMAX = SIMP(statut='f',typ='R'),
11980                                            VG_SATUR = SIMP(statut='f',typ='R'),
11981 # ---------------------------------------------------------------------------------
11982 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
11983 # ---------------------------------------------------------------------------------
11984                                            CP               = SIMP(statut='f',typ='R'),
11985                                            PERM_IN          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11986                                            PERM_END         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11987                                            PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11988                                            PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11989                                            PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11990                                            LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11991                                            D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11992                                            LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11993                                            D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11994                                            LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11995                                            D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
11996                                            LAMB_CT   = SIMP(statut='f',typ='R'),
11997 #
11998                                   regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
11999                                             PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',),
12000                                             ENSEMBLE('SATU_PRES','D_SATU_PRES','PERM_LIQU','D_PERM_LIQU_SATU',
12001                                                             'PERM_GAZ','D_PERM_SATU_GAZ','D_PERM_PRES_GAZ',),
12002                                             ENSEMBLE('VG_N','VG_SR','VG_PR','VG_SMAX','VG_SATUR',),
12003                                             UN_PARMI('VG_N','SATU_PRES'),
12004                                            ),
12005 # ---------------------------------------------------------------------------------
12006 # -------------------   DONNEES INUTILES   ----------------------------------------
12007 # ---------------------------------------------------------------------------------
12008                                            EMMAG            = SIMP(statut='f',typ='R'),
12009                                            SIGMA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12010                                            D_SIGMA_T        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12011                                            PERM_G_INTR      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12012                                            CHAL_VAPO        = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12013                                            FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12014                                            FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12015                                            FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12016                                            FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12017                                            D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12018                                            D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12019                                            FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12020                                            FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12021                                            FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12022                                            FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12023                                            D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12024 # ---------------------------------------------------------------------------------
12025 # -------------------   DONNEES CACHEES -------------------------------------------
12026 # ---------------------------------------------------------------------------------
12027             VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
12028                                              ) ,
12029 # =================================================================================
12030 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
12031 # =================================================================================
12032                              THM_LIQU   = FACT(statut='o',
12033 # ---------------------------------------------------------------------------------
12034 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
12035 # ---------------------------------------------------------------------------------
12036                                            RHO              = SIMP(statut='o',typ='R'),
12037                                            UN_SUR_K         = SIMP(statut='o',typ='R'),
12038                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12039                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12040 # ---------------------------------------------------------------------------------
12041 # -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
12042 # ---------------------------------------------------------------------------------
12043                                            ALPHA            = SIMP(statut='f',typ='R'),
12044                                            CP               = SIMP(statut='f',typ='R'),
12045 # ---------------------------------------------------------------------------------
12046 # -------------------   DONNEES CACHEES ---------------------------------------------
12047 # ---------------------------------------------------------------------------------
12048                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
12049                                              ),
12050 # =================================================================================
12051 # --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
12052 # =================================================================================
12053                              THM_VAPE_GAZ = FACT(statut='o',
12054 # ---------------------------------------------------------------------------------
12055 # -------------------   DONNEES OBLIGATOIRE   -------------------------------------
12056 # ---------------------------------------------------------------------------------
12057                                            MASS_MOL         = SIMP(statut='o',typ='R'),
12058                                            CP               = SIMP(statut='o',typ='R'),
12059                                            VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12060                                            D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12061 # ---------------------------------------------------------------------------------
12062 # -------------------   DONNEES CACHEES -------------------------------------------
12063 # ---------------------------------------------------------------------------------
12064                                            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
12065                                              ),
12066 # =================================================================================
12067 # --- MOT-CLE INUTILE -------------------------------------------------------------
12068 # =================================================================================
12069            THM_GAZ         =FACT(statut='f',
12070              MASS_MOL        =SIMP(statut='f',typ='R'),
12071              CP              =SIMP(statut='f',typ='R'),
12072              VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12073              D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12074              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
12075            ),
12076                                  ),
12077 # courbes et coefficients associés à la fatigue et au dommage
12078 #
12079            FATIGUE         =FACT(statut='f',
12080              regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
12081                      PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
12082                      PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
12083                      ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
12084                      ENSEMBLE('A0','A1','A2','A3','SL'),
12085                      PRESENT_PRESENT('A0','E_REFE'),
12086                      ENSEMBLE('D0','TAU0'),),
12087              WOHLER          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12088              A_BASQUIN       =SIMP(statut='f',typ='R'),
12089              BETA_BASQUIN    =SIMP(statut='f',typ='R'),
12090              A0              =SIMP(statut='f',typ='R'),
12091              A1              =SIMP(statut='f',typ='R'),
12092              A2              =SIMP(statut='f',typ='R'),
12093              A3              =SIMP(statut='f',typ='R'),
12094              SL              =SIMP(statut='f',typ='R'),
12095              MANSON_COFFIN   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12096              E_REFE          =SIMP(statut='f',typ='R'),
12097              D0              =SIMP(statut='f',typ='R'),
12098              TAU0            =SIMP(statut='f',typ='R'),
12099              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ),
12100            ),
12101            DOMMA_LEMAITRE  =FACT(statut='f',
12102              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12103              EPSP_SEUIL      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12104              EXP_S           =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0),
12105              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12106            ),
12107            CISA_PLAN_CRIT  =FACT(statut='f',
12108              CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC",
12109                                                             "DANG_VAN_MODI_AC",
12110                                                             "DANG_VAN_MODI_AV",
12111                                                             "MATAKE_MODI_AV",
12112                                                             "FATESOCI_MODI_AV",
12113                                                             ) ),
12114
12115              b_critere_matake =BLOC(condition="CRITERE=='MATAKE_MODI_AC' or CRITERE=='MATAKE_MODI_AV'",
12116                          fr="Cisaillement plan critique critère de matake pour les cas amplitude constante et amplitude variable",
12117                MATAKE_A         =SIMP(statut='o',typ='R'),
12118                MATAKE_B         =SIMP(statut='o',typ='R'),
12119                COEF_FLEX_TORS   =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
12120              ),
12121
12122              b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')",
12123                                  fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable",
12124                D_VAN_A            =SIMP(statut='o',typ='R'),
12125                D_VAN_B            =SIMP(statut='o',typ='R'),
12126                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
12127              ),
12128
12129              b_critere_fate_soci =BLOC(condition="CRITERE=='FATESOCI_MODI_AV'",
12130                                fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable",
12131                FATSOC_A           =SIMP(statut='o',typ='R'),
12132                COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
12133              ),
12134            ),
12135 #
12136 # autres comportements ...
12137 #
12138            WEIBULL         =FACT(statut='f',
12139              M               =SIMP(statut='o',typ='R'),
12140              VOLU_REFE       =SIMP(statut='o',typ='R'),
12141              SIGM_REFE       =SIMP(statut='o',typ='R'),
12142              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
12143            ),
12144            WEIBULL_FO      =FACT(statut='f',
12145              M               =SIMP(statut='o',typ='R'),
12146              VOLU_REFE       =SIMP(statut='o',typ='R'),
12147              SIGM_CNV        =SIMP(statut='o',typ='R'),
12148              SIGM_REFE       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12149              SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
12150              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12151            ),
12152            NON_LOCAL       =FACT(statut='f',
12153              regles=(AU_MOINS_UN('LONG_CARA','C_GONF','PENA_LAGR',),),
12154              LONG_CARA       =SIMP(statut='f',typ='R'),
12155              PENA_LAGR       =SIMP(statut='f',typ='R',defaut= 1.0E3),
12156              C_GONF          =SIMP(statut='f',typ='R'),
12157              COEF_RIGI_MINI  =SIMP(statut='f',typ='R'),
12158            ),
12159            RUPT_FRAG       =FACT(statut='f',
12160              GC              =SIMP(statut='o',typ='R'),
12161              SIGM_C          =SIMP(statut='f',typ='R'),
12162              PENA_ADHERENCE  =SIMP(statut='f',typ='R'),
12163              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
12164            ),
12165            RUPT_FRAG_FO   =FACT(statut='f',
12166              GC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
12167              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12168              PENA_ADHERENCE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12169              PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
12170              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12171            ),
12172            RCCM            =FACT(statut='f',
12173              regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),),
12174              SY_02           =SIMP(statut='f',typ='R'),
12175              SM              =SIMP(statut='f',typ='R'),
12176              SU              =SIMP(statut='f',typ='R'),
12177              SC              =SIMP(statut='f',typ='R'),
12178              SH              =SIMP(statut='f',typ='R'),
12179              N_KE            =SIMP(statut='f',typ='R'),
12180              M_KE            =SIMP(statut='f',typ='R'),
12181              A_AMORC         =SIMP(statut='f',typ='R'),
12182              B_AMORC         =SIMP(statut='f',typ='R'),
12183              D_AMORC         =SIMP(statut='f',typ='R'),
12184              R_AMORC         =SIMP(statut='f',typ='R'),
12185            ),
12186            RCCM_FO         =FACT(statut='f',
12187              regles=(ENSEMBLE('A_AMORC','B_AMORC','D_AMORC','R_AMORC'),),
12188              SY_02           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12189              SM              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12190              SU              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12191              S               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12192              N_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12193              M_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12194              A_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12195              B_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12196              D_AMORC         =SIMP(statut='f',typ='R'),
12197              R_AMORC         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
12198              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
12199            ),
12200            LAIGLE          =FACT(statut='f',
12201              GAMMA_ULT       =SIMP(statut='o',typ='R'),
12202              GAMMA_E         =SIMP(statut='o',typ='R'),
12203              M_ULT           =SIMP(statut='o',typ='R'),
12204              M_E             =SIMP(statut='o',typ='R'),
12205              A_E             =SIMP(statut='o',typ='R'),
12206              M_PIC           =SIMP(statut='o',typ='R'),
12207              A_PIC           =SIMP(statut='o',typ='R'),
12208              ETA             =SIMP(statut='o',typ='R'),
12209              SIGMA_C         =SIMP(statut='o',typ='R'),
12210              GAMMA           =SIMP(statut='o',typ='R'),
12211              KSI             =SIMP(statut='o',typ='R'),
12212              GAMMA_CJS       =SIMP(statut='o',typ='R'),
12213              SIGMA_P1        =SIMP(statut='o',typ='R'),
12214              PA              =SIMP(statut='o',typ='R'),
12215            ),
12216            LETK          =FACT(statut='f',
12217              PA         =SIMP(statut='o',typ='R',fr="pression atmospherique"),
12218              NELAS      =SIMP(statut='o',typ='R',fr="exposant de la loi de variation des modules K et G"),
12219              SIGMA_C    =SIMP(statut='o',typ='R',fr="résistance en compression simple "),
12220              H0_EXT     =SIMP(statut='o',typ='R',fr="parametre pilotant la résistance en extension"),
12221              GAMMA_CJS  =SIMP(statut='o',typ='R',fr="parametre de forme du critere ds le plan deviatoire entre 0 et 1."),
12222              XAMS       =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'ecrouissage pre pic"),
12223              ETA        =SIMP(statut='o',typ='R',fr="parametre non nul intervenant dans les lois d'ecrouissage post pic"),
12224              A_0        =SIMP(statut='o',typ='R',fr="a de la limite d'élasticité initiale"),
12225              A_E        =SIMP(statut='o',typ='R',fr="a de la limite de clivage ou seuil intermédiaire"),
12226              A_PIC      =SIMP(statut='o',typ='R',fr="a du seuil de pic"),
12227              S_0        =SIMP(statut='o',typ='R',fr="s de la limite d'élasticité initiale"),
12228              M_0        =SIMP(statut='o',typ='R',fr="m de la limite d'élasticité initiale"),
12229              M_E        =SIMP(statut='o',typ='R',fr="m de la limite de clivage ou seuil intermédiaire"),
12230              M_PIC      =SIMP(statut='o',typ='R',fr="m du seuil de pic"),
12231              M_ULT      =SIMP(statut='o',typ='R',fr="m du seuil residuel"),
12232              XI_ULT     =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil residuel"),
12233              XI_E       =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de clivage"),
12234              XI_PIC     =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil de pic"),
12235              MV_MAX     =SIMP(statut='o',typ='R',fr="m du seuil viscoplastique maximal"),
12236              XIV_MAX    =SIMP(statut='o',typ='R',fr="niveau d ecrouissage pour atteindre le seuil viscoplastique maximal"),
12237              A          =SIMP(statut='o',typ='R',fr="parametre carcaterisant l amplitude de la vitesse de fluage"),
12238              N          =SIMP(statut='o',typ='R',fr="parametre intervenant dans la formule pilotant la cinetique de fluage"),
12239              SIGMA_P1   =SIMP(statut='o',typ='R',fr="SIG min de l intersection du seuil de pic et intermediaire "),
12240              MU0_V      =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"),
12241              XI0_V      =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance des mecanismes pre pic et viscoplastique"),
12242              MU1        =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "),
12243              XI1        =SIMP(statut='o',typ='R',fr="relatif à l angle de dilatance du mecanisme post pic "),
12244            ),
12245            DRUCK_PRAGER  =FACT(statut='f',
12246              ALPHA           =SIMP(statut='o',typ='R'),
12247              SY              =SIMP(statut='o',typ='R'),
12248              P_ULTM          =SIMP(statut='o',typ='R'),
12249              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
12250              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
12251                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
12252                     H               =SIMP(statut='o',typ='R'),
12253                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
12254              ),
12255              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
12256                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
12257                     SY_ULTM         =SIMP(statut='o',typ='R'),
12258                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
12259              ),
12260              DILAT           =SIMP(statut='f',typ='R',defaut=0.0),
12261            ),           
12262              HOEK_BROWN          =FACT(statut='f',
12263              GAMMA_RUP       =SIMP(statut='o',typ='R'),
12264              GAMMA_RES       =SIMP(statut='o',typ='R'),
12265              S_END           =SIMP(statut='o',typ='R'),
12266              S_RUP           =SIMP(statut='o',typ='R'),
12267              M_END           =SIMP(statut='o',typ='R'),
12268              M_RUP           =SIMP(statut='o',typ='R'),
12269              BETA            =SIMP(statut='o',typ='R'),
12270              ALPHAHB         =SIMP(statut='o',typ='R'),
12271              PHI_RUP         =SIMP(statut='o',typ='R'),
12272              PHI_RES         =SIMP(statut='o',typ='R'),
12273              PHI_END         =SIMP(statut='f',typ='R'),
12274            ),
12275 ####  MONOCRISTAL
12276
12277            ECOU_VISC1      =FACT(statut='f',
12278              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12279              N               =SIMP(statut='o',typ='R'),
12280              K               =SIMP(statut='o',typ='R'),
12281              C               =SIMP(statut='o',typ='R'),
12282            ),
12283            ECOU_VISC2      =FACT(statut='f',
12284              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12285              N               =SIMP(statut='o',typ='R'),
12286              K               =SIMP(statut='o',typ='R'),
12287              C               =SIMP(statut='o',typ='R'),
12288              D               =SIMP(statut='o',typ='R'),
12289              A               =SIMP(statut='o',typ='R'),
12290            ),
12291            ECOU_VISC3      =FACT(statut='f',
12292              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12293              K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
12294              TAUMU           =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"),
12295              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
12296              DELTAV          =SIMP(statut='o',typ='R',fr="Volume d activation"),
12297              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
12298            ),
12299            KOCKS_RAUCH      =FACT(statut='f',
12300               regles=(UN_PARMI('H','H1'),
12301                       PRESENT_PRESENT('H1','H2','H3','H4'),
12302                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
12303                       ),
12304              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
12305              K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
12306              TAUR            =SIMP(statut='o',typ='R',fr="Contraintes de cisaillement à T=0K, en unite de contraintes"),
12307              TAU0            =SIMP(statut='o',typ='R',fr="Contraintes critique initiale de cisaillement, en unite de contraintes"),
12308              GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
12309              DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
12310              BSD             =SIMP(statut='o',typ='R',fr="fonction de la taille du grain B/D"),
12311              GCB             =SIMP(statut='o',typ='R',fr="distance critique d'annihilation GC/B"),
12312              KDCS            =SIMP(statut='o',typ='R',fr="Parametre relatif à la direction principale de la dislocation"),
12313              P               =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"),
12314              Q               =SIMP(statut='o',typ='R',fr="Parametre materiau dépendant de la forme de l'obstacle"),
12315              H               =SIMP(statut='f',typ='R'),
12316              H1              =SIMP(statut='f',typ='R'),
12317              H2              =SIMP(statut='f',typ='R'),
12318              H3              =SIMP(statut='f',typ='R'),
12319              H4              =SIMP(statut='f',typ='R'),
12320              H5              =SIMP(statut='f',typ='R'),
12321              H6              =SIMP(statut='f',typ='R'),
12322            ),
12323            ECRO_ISOT1      =FACT(statut='f',
12324               regles=(UN_PARMI('H','H1'),
12325                       PRESENT_PRESENT('H1','H2','H3','H4'),
12326                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
12327                       ),
12328              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
12329              R_0             =SIMP(statut='o',typ='R'),
12330              Q               =SIMP(statut='o',typ='R'),
12331              B               =SIMP(statut='o',typ='R'),
12332              H               =SIMP(statut='f',typ='R'),
12333              H1              =SIMP(statut='f',typ='R'),
12334              H2              =SIMP(statut='f',typ='R'),
12335              H3              =SIMP(statut='f',typ='R'),
12336              H4              =SIMP(statut='f',typ='R'),
12337              H5              =SIMP(statut='f',typ='R'),
12338              H6              =SIMP(statut='f',typ='R'),
12339            ),
12340            ECRO_ISOT2      =FACT(statut='f',
12341               regles=(UN_PARMI('H','H1'),
12342                       PRESENT_PRESENT('H1','H2','H3','H4'),
12343                       PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'),
12344                       ),
12345              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
12346              R_0             =SIMP(statut='o',typ='R'),
12347              Q1              =SIMP(statut='o',typ='R'),
12348              B1              =SIMP(statut='o',typ='R'),
12349              H               =SIMP(statut='f',typ='R'),
12350              H1              =SIMP(statut='f',typ='R'),
12351              H2              =SIMP(statut='f',typ='R'),
12352              H3              =SIMP(statut='f',typ='R'),
12353              H4              =SIMP(statut='f',typ='R'),
12354              H5              =SIMP(statut='f',typ='R'),
12355              H6              =SIMP(statut='f',typ='R'),
12356              Q2              =SIMP(statut='o',typ='R'),
12357              B2              =SIMP(statut='o',typ='R'),
12358            ),
12359            ECRO_CINE1      =FACT(statut='f',
12360              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
12361              D               =SIMP(statut='o',typ='R'),
12362            ),
12363            ECRO_CINE2      =FACT(statut='f',
12364              TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
12365              D               =SIMP(statut='o',typ='R'),
12366              GM              =SIMP(statut='o',typ='R'),
12367              PM              =SIMP(statut='o',typ='R'),
12368              C               =SIMP(statut='o',typ='R'),
12369            ),
12370
12371 ####  MONOCRISTAL
12372
12373            DRUCK_PRAGER_FO  =FACT(statut='f',
12374              ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12375              SY              =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12376              P_ULTM          =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12377              ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
12378              b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
12379                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
12380                     H               =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12381                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
12382              ),
12383              b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
12384                                     fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
12385                     SY_ULTM         =SIMP(statut='o',typ=(fonction_sdaster,formule)),
12386                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
12387              ),
12388             DILAT           =SIMP(statut='f',typ='R',defaut=0.0),
12389            ),
12390
12391
12392            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
12393 )  ;
12394 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12395 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12396 # ======================================================================
12397 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12398 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12399 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12400 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12401 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12402 #
12403 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12404 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12405 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12406 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12407 #
12408 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12409 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12410 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12411 # ======================================================================
12412 # RESPONSABLE BODEL C.BODEL
12413 DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
12414                       reentrant='n',
12415             fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", 
12416             UIinfo={"groupes":("Matrices/vecteurs",)},
12417          SOUS_STRUC      =FACT(statut='o',max='**',
12418            NOM             =SIMP(statut='o',typ='TXM' ),
12419            MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
12420            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
12421            TRANS           =SIMP(statut='f',typ='R',max=3),
12422          ),
12423          LIAISON         =FACT(statut='o',max='**',
12424            SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
12425            INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
12426            SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
12427            INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
12428            regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
12429                    EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
12430            GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12431            MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12432            GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12433            MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12434            OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
12435          ),
12436          VERIF           =FACT(statut='f',max='**',
12437 #  dans la doc U stop_erreur est obligatoire         
12438            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
12439            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12440            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12441          ),
12442          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
12443 )  ;
12444 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12445 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12446 # ======================================================================
12447 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12448 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12449 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12450 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12451 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12452 #
12453 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12454 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12455 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12456 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12457 #
12458 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12459 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12460 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12461 # ======================================================================
12462 # RESPONSABLE COURTOIS M.COURTOIS
12463 DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=4,sd_prod=nappe_sdaster,
12464                 fr="Définir une fonction réelle de deux variables réelles",
12465                 reentrant='n',UIinfo={"groupes":("Fonction",)},
12466          regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
12467                  EXCLUS('FONCTION','NOM_PARA_FONC',),
12468                  ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),),
12469          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
12470          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),       
12471          PARA            =SIMP(statut='o',typ='R',max='**'),
12472          FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
12473          NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
12474          DEFI_FONCTION   =FACT(statut='f',max='**',
12475            VALE            =SIMP(statut='o',typ='R',max='**'),
12476            INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
12477            PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12478            PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12479          ),
12480          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
12481          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12482          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
12483          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
12484          VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
12485          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12486 )  ;
12487 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12488 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12489 # ======================================================================
12490 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12491 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12492 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12493 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12494 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12495 #
12496 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12497 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12498 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12499 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12500 #
12501 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12502 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12503 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12504 # ======================================================================
12505 # RESPONSABLE KHAM M.KHAM
12506 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=table_fonction,
12507                    fr="Définition d'un obstacle plan perpendiculaire à une structure filaire",
12508                    reentrant='n',
12509          UIinfo={"groupes":("Modélisation",)},
12510          TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
12511                              into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
12512                              "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
12513                              "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
12514                              "GUID_B_CARTE_900","GUID_C_CARTE_900",
12515                              "GUID_D_CARTE_900","GUID_E_CARTE_900",
12516                              "GUID_F_CARTE_900","GUID_A_CARTE_1300",
12517                              "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
12518                              "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
12519                              "GUID_F_CARTE_1300","GUID_A_CARSP_900",
12520                              "GUID_B_CARSP_900","GUID_C_CARSP_900",
12521                              "GUID_D_CARSP_900","GUID_E_CARSP_900",
12522                              "GUID_F_CARSP_900","GUID_A_CARSP_1300",
12523                              "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
12524                              "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
12525                              "GUID_F_CARSP_1300","GUID_A_GCONT_900",
12526                              "GUID_B_GCONT_900","GUID_C_GCONT_900",
12527                              "GUID_D_GCONT_900","GUID_E_GCONT_900",
12528                              "GUID_F_GCONT_900","GUID_A_GCONT_1300",
12529                              "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
12530                              "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
12531                              "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
12532                              "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
12533                              "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
12534                              "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
12535                              "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
12536                              "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
12537                              "GUID_F_GCOMB_1300",) ),
12538          VALE            =SIMP(statut='f',typ='R',max='**'),
12539          VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
12540 )  ;
12541 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12542 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12543 # ======================================================================
12544 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12545 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12546 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12547 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12548 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12549 #
12550 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12551 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12552 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12553 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12554 #
12555 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12556 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12557 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12558 # ======================================================================
12559 # RESPONSABLE GNICOLAS G.NICOLAS
12560 DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
12561                     fr="Définition d'un paramètre de sensibilité",
12562                     ang="Definition of a sensitive parameter",
12563                     reentrant='n',
12564             UIinfo={"groupes":("Fonction",)},
12565          NOM_RESU        =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU",
12566                                fr="Nom du concept créé",
12567                                ang="Name of the concept"),
12568          VALE            =SIMP(statut='o',typ='R',
12569                                fr="Valeur du parametre",
12570                                ang="Value of the parameter"),
12571          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12572 )  ;
12573 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12574 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12575 # ======================================================================
12576 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
12577 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12578 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12579 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12580 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12581 #                                                                       
12582 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12583 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12584 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12585 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12586 #                                                                       
12587 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12588 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12589 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12590 # ======================================================================
12591 # RESPONSABLE ASSIRE A.ASSIRE
12592
12593 from Macro.defi_part_feti_ops import defi_part_feti_ops
12594
12595 DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster,
12596                      reentrant='n',UIinfo={"groupe":("Maillage",)},
12597                      fr="Creation partitionnement en sous-domaines pour FETI",
12598          regles=(UN_PARMI('MAILLAGE','MODELE'),),
12599          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
12600          MODELE          =SIMP(statut='f',typ=modele_sdaster),
12601          NB_PART         =SIMP(statut='o',typ='I',val_min=2),
12602          EXCIT           =FACT(statut='f',max='**',
12603            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
12604
12605          # Methode de partitionnement
12606          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
12607          
12608          LOGICIEL      =SIMP(statut='f',typ='TXM'),
12609
12610          # Corrige les problemes possibles de non-connexite des sous-domaines
12611          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
12612
12613          # Permet de grouper des mailles dans un meme sous-doamine
12614          GROUPAGE        =FACT(statut='f',max='**',
12615            GROUP_MA       =SIMP(statut='o',typ=grma,),
12616                           ),
12617          # Permet d'appliquer des poids sur certaines mailles
12618          POIDS_MAILLES   =FACT(statut='f',max='**',
12619            GROUP_MA       =SIMP(statut='o',typ=grma,),
12620            POIDS          =SIMP(statut='f',typ='I',val_min=2),
12621                           ),
12622          # Prefixe pour le nom des group_ma definissant les sous-domaines 
12623          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
12624
12625          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
12626          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
12627          
12628          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
12629          # Note : le calcul FETI sera impossible
12630          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
12631            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
12632              ),
12633
12634          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
12635 );
12636 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12637 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12638 # ======================================================================
12639 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
12640 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12641 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12642 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12643 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12644 #                                                                       
12645 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12646 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12647 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12648 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12649 #                                                                       
12650 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12651 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12652 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12653 # ======================================================================
12654 # RESPONSABLE ASSIRE A.ASSIRE
12655
12656 DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster,
12657                     fr="Creation partitionnement en sous-domaines pour FETI",
12658                     docu="U4.23.05",reentrant='n',
12659                     UIinfo={"groupes":("Résolution",)},
12660          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
12661          MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
12662          NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
12663          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
12664          DEFI          =FACT(statut='f',max='**',
12665            GROUP_MA        =SIMP(statut='o',typ=grma),
12666            GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
12667          ),
12668          EXCIT           =FACT(statut='f',max='**',
12669            CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
12670          ),
12671 );
12672 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12673 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12674 # ======================================================================
12675 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
12676 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
12677 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
12678 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
12679 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
12680 #                                                                       
12681 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12682 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
12683 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
12684 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
12685 #                                                                       
12686 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
12687 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
12688 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
12689 # ======================================================================
12690 # RESPONSABLE ASSIRE A.ASSIRE
12691
12692 DEFI_PART_PA_OPS=PROC(nom="DEFI_PART_PA_OPS",op=29,
12693                     fr="Creation partitionnement en sous-domaines pour FETI",
12694                     docu="U4.00.00",
12695                     UIinfo={"groupes":("Résolution",)},
12696          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
12697          MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
12698          NB_PART         =SIMP(statut='o',typ='I',),
12699
12700          # Methode de partitionnement
12701          METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
12702          
12703          LOGICIEL      =SIMP(statut='f',typ='TXM'),
12704
12705          # Corrige les problemes possibles de non-connexite des sous-domaines
12706          CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
12707
12708          # Permet de grouper des mailles dans un meme sous-doamine
12709          GROUPAGE        =FACT(statut='f',max='**',
12710            GROUP_MA       =SIMP(statut='o',typ=grma,),
12711                           ),
12712          # Permet d'appliquer des poids sur certaines mailles
12713          POIDS_MAILLES   =FACT(statut='f',max='**',
12714            GROUP_MA       =SIMP(statut='o',typ=grma,),
12715            POIDS          =SIMP(statut='f',typ='I'),
12716                           ),
12717          # Prefixe pour le nom des group_ma definissant les sous-domaines 
12718          NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
12719
12720          # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
12721          TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
12722
12723          # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
12724          # Note : le calcul FETI sera impossible
12725          b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
12726            NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
12727              ),
12728
12729          INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
12730
12731 );
12732 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12733 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12734 # ======================================================================
12735 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12736 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12737 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12738 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12739 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12740 #
12741 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12742 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12743 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12744 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12745 #
12746 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12747 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12748 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12749 # ======================================================================
12750 # RESPONSABLE ADOBES A.ADOBES
12751 DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
12752                     fr="Définition d'un spectre d'excitation turbulente",
12753                     reentrant='n',
12754             UIinfo={"groupes":("Modélisation",)},
12755          regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3',
12756                           'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2',
12757                           'SPEC_FONC_FORME','SPEC_EXCI_POINT'),),
12758          SPEC_LONG_COR_1 =FACT(statut='f',
12759            LONG_COR        =SIMP(statut='o',typ='R' ),
12760            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12761            VISC_CINE       =SIMP(statut='o',typ='R' ),
12762          ),
12763          SPEC_LONG_COR_2 =FACT(statut='f',
12764            regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
12765            LONG_COR        =SIMP(statut='o',typ='R' ),
12766            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12767            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.1 ),
12768            PHI0            =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
12769            BETA            =SIMP(statut='f',typ='R',defaut= 2.7 ),
12770          ),
12771          SPEC_LONG_COR_3 =FACT(statut='f',
12772            regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),),
12773            LONG_COR        =SIMP(statut='o',typ='R' ),
12774            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12775            FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.2 ),
12776            PHI0_1          =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
12777            BETA_1          =SIMP(statut='f',typ='R',defaut= 0.5 ),
12778            PHI0_2          =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
12779            BETA_2          =SIMP(statut='f',typ='R',defaut= 3.5 ),
12780          ),
12781          SPEC_LONG_COR_4 =FACT(statut='f',
12782            regles=(ENSEMBLE('BETA','GAMMA'),),
12783            LONG_COR        =SIMP(statut='o',typ='R' ),
12784            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12785            TAUX_VIDE       =SIMP(statut='o',typ='R' ),
12786            BETA            =SIMP(statut='f',typ='R',defaut= 2. ),
12787            GAMMA           =SIMP(statut='f',typ='R',defaut= 4. ),
12788          ),
12789          SPEC_CORR_CONV_1=FACT(statut='f',
12790            LONG_COR_1      =SIMP(statut='o',typ='R' ),
12791            LONG_COR_2      =SIMP(statut='f',typ='R' ),
12792            VITE_FLUI       =SIMP(statut='o',typ='R' ),
12793            RHO_FLUI        =SIMP(statut='o',typ='R' ),
12794            FREQ_COUP       =SIMP(statut='f',typ='R' ),
12795            K               =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
12796            D_FLUI          =SIMP(statut='o',typ='R' ),
12797            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
12798            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
12799            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
12800                                  into=("AU_YANG","GENERALE","CORCOS") ),
12801          ),
12802          SPEC_CORR_CONV_2=FACT(statut='f',
12803            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
12804            VITE_FLUI       =SIMP(statut='o',typ='R' ),
12805            FREQ_COUP       =SIMP(statut='f',typ='R' ),
12806            METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
12807                                  into=("AU_YANG","GENERALE","CORCOS",) ),
12808            COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
12809            COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
12810          ),
12811          SPEC_FONC_FORME =FACT(statut='f',
12812            regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
12813                    ENSEMBLE('INTE_SPEC','FONCTION'),),
12814            INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
12815            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
12816            GRAPPE_1        =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
12817            NOEUD           =SIMP(statut='o',typ=no),
12818            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
12819            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
12820          ),
12821          SPEC_EXCI_POINT =FACT(statut='f',
12822            regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
12823            INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
12824            GRAPPE_2        =SIMP(statut='f',typ='TXM',
12825                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
12826 #  Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
12827            b_inte_spec =BLOC(condition = "INTE_SPEC != None",
12828              NATURE          =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
12829              ANGL            =SIMP(statut='o',typ='R',max='**'),
12830              NOEUD           =SIMP(statut='o',typ=no,max='**'),
12831            ),
12832            b_grappe_2      =BLOC(condition = "GRAPPE_2 != None",
12833              RHO_FLUI        =SIMP(statut='o',typ='R' ),
12834              NOEUD           =SIMP(statut='o',typ=no),
12835            ),
12836            CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
12837            MODELE          =SIMP(statut='o',typ=modele_sdaster ),
12838          ),
12839          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12840 )  ;
12841 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12842 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12843 # ======================================================================
12844 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12845 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12846 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12847 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12848 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12849 #
12850 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12851 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12852 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12853 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12854 #
12855 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12856 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12857 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12858 # ======================================================================
12859 # RESPONSABLE BODEL C.BODEL
12860 DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
12861                     fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique",
12862                     reentrant='n',
12863             UIinfo={"groupes":("Maillage",)},
12864          regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'),
12865                  PRESENT_PRESENT('CYCLIQUE','SECTEUR'),
12866                  EXCLUS('SOUS_STRUC','SECTEUR'),
12867                  PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
12868                  PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
12869          CYCLIQUE    =FACT(statut='f',max='**',
12870            regles=(UN_PARMI('MODE_CYCL','MAILLAGE'),
12871                    PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),),
12872            MODE_CYCL       =SIMP(statut='f',typ=mode_cycl ),
12873            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
12874            MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
12875          ),
12876          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
12877          SQUELETTE       =SIMP(statut='f',typ=squelette ),
12878          RECO_GLOBAL     =FACT(statut='f',max='**',
12879            regles=(EXCLUS('TOUT','GROUP_NO_1'),
12880                    PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
12881                    PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
12882                    PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
12883                    PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
12884            TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
12885            GROUP_NO_1      =SIMP(statut='f',typ=grno),
12886            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
12887            GROUP_NO_2      =SIMP(statut='f',typ=grno),
12888            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
12889            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
12890            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
12891            DIST_REFE       =SIMP(statut='f',typ='R' ),
12892          ),
12893          NOM_GROUP_MA    =FACT(statut='f',max='**',
12894            NOM             =SIMP(statut='o',typ='TXM' ),
12895            SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
12896            GROUP_MA        =SIMP(statut='o',typ=grma),
12897          ),
12898          EXCLUSIF        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
12899          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
12900          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12901          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12902          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12903          TRANS           =SIMP(statut='f',typ='R',min=3,max=3),
12904          ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),
12905          SOUS_STRUC      =FACT(statut='f',max='**',
12906            NOM             =SIMP(statut='f',typ='TXM' ),
12907            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12908            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12909            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12910          ),
12911          SECTEUR         =FACT(statut='f',max='**',
12912            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
12913            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
12914            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
12915          ),
12916          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
12917 )  ;
12918 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12919 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12920 # ======================================================================
12921 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12922 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12923 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12924 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12925 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12926 #
12927 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12928 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12929 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12930 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12931 #
12932 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12933 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12934 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12935 # ======================================================================
12936 # RESPONSABLE CANO V.CANO
12937 DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n',
12938             UIinfo={"groupes":("Modélisation",)},
12939               fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
12940                 +" pour les calculs métallurgiques.",
12941          HIST_EXP        =FACT(statut='o',max='**',
12942            VALE            =SIMP(statut='o',typ='R',max='**'),
12943          ),
12944          TEMP_MS         =FACT(statut='o',max='**',
12945            SEUIL           =SIMP(statut='o',typ='R'),
12946            AKM             =SIMP(statut='o',typ='R'),
12947            BKM             =SIMP(statut='o',typ='R'),
12948            TPLM            =SIMP(statut='o',typ='R'),
12949          ),
12950          GRAIN_AUST      =FACT(statut='f',max='**',
12951            DREF           =SIMP(statut='f',typ='R'),
12952            A              =SIMP(statut='f',typ='R'),
12953          ),
12954 )  ;
12955 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12956 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12957 # ======================================================================
12958 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12959 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12960 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12961 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12962 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12963 #
12964 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
12965 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
12966 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
12967 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
12968 #
12969 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
12970 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
12971 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
12972 # ======================================================================
12973 # RESPONSABLE PELLET J.PELLET
12974 def depl_interne_prod(DEPL_GLOBAL,**args ):
12975     if AsType(DEPL_GLOBAL)     == cham_no_sdaster: return cham_no_sdaster
12976     if AsType(DEPL_GLOBAL)     == evol_elas      : return evol_elas
12977     if AsType(DEPL_GLOBAL)     == dyna_trans     : return dyna_trans
12978     if AsType(DEPL_GLOBAL)     == dyna_harmo     : return dyna_harmo
12979     if AsType(DEPL_GLOBAL)     == mode_meca      : return mode_meca
12980     if AsType(DEPL_GLOBAL)     == base_modale    : return base_modale
12981     raise AsException("type de concept resultat non prevu")
12982
12983 DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n',
12984             UIinfo={"groupes":("Matrices/vecteurs",)},
12985                   fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique",
12986          DEPL_GLOBAL     =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,base_modale,evol_elas,dyna_trans,dyna_harmo),),
12987          SUPER_MAILLE    =SIMP(statut='o',typ=ma,),
12988          NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
12989 )  ;
12990 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
12991 #            CONFIGURATION MANAGEMENT OF EDF VERSION
12992 # ======================================================================
12993 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
12994 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
12995 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
12996 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
12997 # (AT YOUR OPTION) ANY LATER VERSION.                                 
12998 #
12999 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13000 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13001 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13002 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13003 #
13004 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13005 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13006 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13007 # ======================================================================
13008 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
13009 DETRUIRE=MACRO(nom="DETRUIRE",op=-7,
13010             UIinfo={"groupes":("Gestion du travail",)},
13011               fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX",
13012              op_init=ops.detruire,
13013              regles=(UN_PARMI('CONCEPT','OBJET',),),
13014             CONCEPT     =FACT(statut='f',max='**',
13015                 regles=(DERIVABLE('NOM'),),
13016                 NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
13017                 SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
13018                                  fr="Paramètre de sensibilité.",
13019                                  ang="Sensitivity parameter",max='**'),
13020             ),
13021             OBJET  =FACT(statut='f',max='**',
13022                CLASSE      =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'),  
13023                CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
13024                POSITION    =SIMP(statut='f',typ='I'  ,max='**'),
13025             ),
13026             ALARME        =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',),
13027             INFO          =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),           
13028 );
13029 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13030 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13031 # ======================================================================
13032 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13033 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13034 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13035 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
13036 # (AT YOUR OPTION) ANY LATER VERSION.                                 
13037 #
13038 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13039 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13040 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13041 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13042 #
13043 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13044 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13045 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13046 # ======================================================================
13047 # RESPONSABLE ZENTNER I.ZENTNER
13048 DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction,
13049                      fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP",
13050                      reentrant='n',
13051             UIinfo={"groupes":("Résolution",)},
13052          BASE_MODALE     =FACT(statut='o',
13053            regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
13054            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
13055            BANDE           =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2),
13056            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
13057            b_bande =BLOC(condition = "BANDE != None",
13058              AMOR_UNIF       =SIMP(statut='o',typ='R' ),
13059            ),
13060            b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
13061              AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
13062            ),
13063          ),
13064          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
13065 # MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait
13066 # ainsi rajouter un bloc du genre  b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')",        
13067          EXCIT           =FACT(statut='o',
13068            INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
13069            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
13070            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
13071            MODAL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13072            b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')",           
13073              regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),),
13074              NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**'),
13075              NOEUD_I         =SIMP(statut='f',typ=no,max='**'),
13076              b_nume_ordre_i  =BLOC(condition = "NUME_ORDRE_I != None",
13077                regles=(EXCLUS('CHAM_NO','NOEUD'),),
13078 # on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO'
13079 # cela impliquerait d'enlever la valeur par defaut a GRANDEUR            
13080                NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
13081                CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
13082                NOEUD           =SIMP(statut='f',typ=no,max='**'),
13083                b_noeud         =BLOC(condition = "NOEUD != None",
13084                   NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
13085                 ),  
13086                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
13087                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
13088 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP  
13089                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
13090              ),           
13091              b_noeud_i       =BLOC(condition = "NOEUD_I != None",
13092                NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
13093                NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**'),
13094                NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**'),
13095                NOEUD           =SIMP(statut='o',typ=no,max='**'),
13096                NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
13097 # ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans
13098 # NOEUD_I, NOM_CMP_I ...  => modif. du Fortran
13099                GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
13100                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
13101 # que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I  
13102                DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
13103              ),
13104            ),  
13105            b_modal_oui = BLOC(condition = "(MODAL == 'OUI')",
13106 # dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes
13107              NUME_ORDRE_I    =SIMP(statut='o',typ='I',max='**'),
13108              NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
13109              GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
13110                            into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
13111              DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
13112 # dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO   On devrait
13113 # pouvoir supprimer GRANDEUR et DERIVATION ici   
13114            ),  
13115                     
13116          ),
13117          REPONSE         =FACT(statut='f',
13118            regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
13119            DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ),
13120            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
13121            FREQ_MIN        =SIMP(statut='f',typ='R' ),
13122            FREQ_MAX        =SIMP(statut='f',typ='R' ),
13123            PAS             =SIMP(statut='f',typ='R' ),
13124            b_defaut_freq   =BLOC(condition = "FREQ_MIN == NONE",
13125               FREQ_EXCIT      =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
13126               NB_POIN_MODE    =SIMP(statut='f',typ='I',defaut= 50 ),
13127            ),
13128          ),
13129          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13130          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
13131 )  ;
13132 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13133 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13134 # ======================================================================
13135 # COPYRIGHT (C) 1991 - 2008  EDF R&D                  WWW.CODE-ASTER.ORG
13136 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
13137 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
13138 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
13139 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
13140 #                                                                       
13141 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
13142 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
13143 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
13144 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
13145 #                                                                       
13146 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
13147 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
13148 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
13149 # ======================================================================
13150 # RESPONSABLE ZENTNER I.ZENTNER
13151 from Macro.dyna_iss_vari_ops import dyna_iss_vari_ops
13152 #
13153 DYNA_ISS_VARI=MACRO(nom="DYNA_ISS_VARI",op=dyna_iss_vari_ops ,sd_prod=table_fonction,
13154                     fr="Calcul du spectre de réponse ou de la reponse temporelle sismique incoherente par decomposition spectrale",
13155                     reentrant='n',
13156                     UIinfo={"groupes":("Outils métier",)},        
13157          NOM_CMP         =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
13158          PRECISION       =SIMP(statut='f',typ='R',defaut=0.999 ),
13159          INTERF           =FACT(statut='o',
13160             GROUP_NO_INTERF =SIMP(statut='o',typ=grma ,max='**'), 
13161             MODE_INTERF  =SIMP(statut='o',typ='TXM',into=("CORP_RIGI","TOUT")),
13162          ),      
13163          MATR_COHE       =FACT(statut='o',
13164             VITE_ONDE       =SIMP(statut='o',typ='R'),
13165             PARA_ALPHA     =SIMP(statut='f',typ='R',defaut=0.5),           
13166          ),
13167 #        FONC_MULT     =SIMP(statut='f',typ='R' ),
13168          FREQ_INIT       =SIMP(statut='o',typ='R' ),
13169          NB_FREQ       =SIMP(statut='o',typ='I' ),
13170          PAS             =SIMP(statut='o',typ='R' ),     
13171 #        LIST_FREQ        =SIMP(statut='o',typ='liste' ),  
13172          UNITE_RESU_FORC = SIMP(statut='f',typ='I',defaut=33),
13173          UNITE_RESU_IMPE  = SIMP(statut='f',typ='I',defaut=32), 
13174          TYPE             = SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII"), defaut="ASCII"),
13175 #
13176          MATR_GENE         = FACT(statut='o',
13177             MATR_MASS     = SIMP(statut='o',typ=(matr_asse_gene_r ) ),
13178             MATR_RIGI     = SIMP(statut='o',typ=(matr_asse_gene_r,matr_asse_gene_c ) ),
13179             MATR_AMOR     = SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c ) ), 
13180          ),         
13181 #         
13182 #         OPTION        =SIMP(statut='f',typ='TXM',into=("TOUT","DIAG"),defaut="TOUT"),
13183 #             
13184          INFO           =SIMP(statut='f',typ='I' ,defaut=1,into=( 1 , 2)),
13185          )  ;
13186 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13187 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13188 # ======================================================================
13189 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13190 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13191 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13192 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
13193 # (AT YOUR OPTION) ANY LATER VERSION.                                 
13194 #
13195 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13196 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13197 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13198 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13199 #
13200 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13201 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13202 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13203 # ======================================================================
13204 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
13205 def dyna_line_harm_prod(MATR_RIGI,**args):
13206    if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo
13207    elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo
13208    elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo
13209    elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene
13210    elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene
13211    raise AsException("type de concept resultat non prevu")
13212
13213 DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
13214                     fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique",
13215                     reentrant='f',
13216             UIinfo={"groupes":("Résolution",)},
13217          regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
13218                  PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
13219                  PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
13220                  UN_PARMI('FREQ','LIST_FREQ'),
13221                  CONCEPT_SENSIBLE('ENSEMBLE'),),
13222          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
13223          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
13224          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
13225          MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
13226          MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
13227                                               ,matr_asse_gene_r,matr_asse_gene_c ) ),
13228          MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
13229          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
13230          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
13231          MATR_IMPE_PHI   =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
13232          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
13233          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
13234          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
13235          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
13236          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire",
13237              RESULTAT      =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
13238          ),         
13239          EXCIT           =FACT(statut='o',max='**',
13240            regles=(UN_PARMI('VECT_ASSE','CHARGE'),
13241                    UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
13242                   ),
13243            VECT_ASSE       =SIMP(statut='f',typ=(cham_no_sdaster,vect_asse_gene) ),
13244            CHARGE          =SIMP(statut='f',typ=char_meca ),
13245            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
13246            FONC_MULT_C     =SIMP(statut='f',typ=(fonction_c,formule_c) ),
13247            COEF_MULT_C     =SIMP(statut='f',typ='C' ),
13248            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13249            COEF_MULT       =SIMP(statut='f',typ='R' ),
13250            PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
13251            PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
13252          ),
13253
13254          b_matr_gene =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_gene_r,)",
13255                            fr="Methode de resolution matrice generalisee",
13256           SOLVEUR         =FACT(statut='d',
13257            METHODE         =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS",) ),
13258
13259            b_ldlt_gene      =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
13260              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13261              NPREC           =SIMP(statut='f',typ='I',defaut=8),
13262              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13263            ),
13264
13265            b_mumps_gene     =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13266              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13267              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13268              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13269              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13270              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
13271              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
13272              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
13273                                        into=("CENTRALISE","DISTRIBUE_MAILLE","DISTRIBUE_SD")),
13274              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
13275              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=0,min=0),
13276              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
13277            ),
13278           ),
13279          ),
13280
13281          b_matr_phys =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_depl_r,matr_asse_pres_c,)",
13282                            fr="Methode de resolution matrice sur ddl physique",
13283           SOLVEUR         =FACT(statut='d',
13284            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","MUMPS",) ),
13285
13286            b_mult_front_phys=BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13287              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13288              NPREC           =SIMP(statut='f',typ='I',defaut=8),
13289              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13290            ),
13291
13292            b_ldlt_phys      =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
13293              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13294              NPREC           =SIMP(statut='f',typ='I',defaut=8),
13295              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13296            ),
13297
13298            b_mumps_phys     =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13299              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13300              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13301              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13302              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13303              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
13304              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
13305              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
13306                                        into=("CENTRALISE","DISTRIBUE_MAILLE","DISTRIBUE_SD")),
13307              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
13308              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=0,min=0),
13309              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
13310              ),
13311           ),
13312          ),
13313
13314          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13315          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
13316                                fr="Liste des paramètres de sensibilité.",
13317                                ang="List of sensitivity parameters"),
13318 )  ;
13319 # Rajouter test icompatibilite vect_asse et sensibilite
13320 # Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation 
13321 #  presents dans le Fortran          
13322 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13323 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13324 # ======================================================================
13325 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13326 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13327 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13328 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13329 # (AT YOUR OPTION) ANY LATER VERSION.
13330 #
13331 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13332 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13333 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13334 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13335 #
13336 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13337 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13338 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13339 # ======================================================================
13340 # RESPONSABLE BOYERE E.BOYERE
13341 DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
13342                     fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque",
13343                     reentrant='f',
13344             UIinfo={"groupes":("Résolution",)},
13345 #         regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
13346          regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),
13347                  CONCEPT_SENSIBLE('ENSEMBLE'),),
13348          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
13349          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
13350          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
13351          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
13352          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
13353          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
13354          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
13355          NEWMARK         =FACT(statut='f',
13356            ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
13357            DELTA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
13358          ),
13359          WILSON          =FACT(statut='f',
13360            THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
13361          ),
13362          DIFF_CENTRE     =FACT(statut='f',
13363          ),
13364          ADAPT           =FACT(statut='f',
13365          ),
13366          ETAT_INIT       =FACT(statut='f',
13367            regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),
13368                    PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),),
13369            DYNA_TRANS      =SIMP(statut='f',typ=dyna_trans ),
13370            b_dyna_trans    =BLOC(condition = "DYNA_TRANS != None",
13371              regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
13372              NUME_INIT       =SIMP(statut='f',typ='I' ),
13373              INST_INIT       =SIMP(statut='f',typ='R' ),
13374              b_inst_init     =BLOC(condition = "INST_INIT != None",
13375                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
13376                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13377              ),
13378            ),
13379            DEPL_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
13380            VITE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
13381            ACCE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
13382          ),
13383          EXCIT           =FACT(statut='f',max='**',
13384            regles=(UN_PARMI('CHARGE','VECT_ASSE'),
13385                    EXCLUS('CHARGE','COEF_MULT'),
13386                    EXCLUS('FONC_MULT','COEF_MULT'),
13387                    EXCLUS('ACCE','COEF_MULT'),
13388                    PRESENT_ABSENT('ACCE','FONC_MULT'),
13389                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
13390                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
13391                    ),
13392            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
13393            CHARGE          =SIMP(statut='f',typ=char_meca ),
13394            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13395            COEF_MULT       =SIMP(statut='f',typ='R' ),
13396            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
13397            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13398            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13399            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13400            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13401            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
13402            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13403            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13404          ),
13405          AMOR_MODAL      =FACT(statut='f',
13406            MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
13407            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
13408            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13409          ),
13410
13411          SOLVEUR         =FACT(statut='d',
13412          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
13413
13414            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13415              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13416            ),
13417
13418            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
13419              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13420            ),
13421
13422            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
13423                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13424              NPREC           =SIMP(statut='f',typ='I',defaut=8),
13425              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13426            ),
13427
13428            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
13429              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13430              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
13431              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13432              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
13433              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13434            ),
13435            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13436              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13437              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13438              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13439              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13440              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
13441              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
13442              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",into=("CENTRALISE","CENTRALISE")),
13443              ),
13444
13445            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
13446              VARIANTE        =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
13447              PRE_COND        =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
13448              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13449              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-8),
13450              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
13451            ),
13452          ),
13453
13454          INCREMENT       =FACT(statut='o',max='**',
13455            regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
13456            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
13457            FONC_INST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13458            PAS             =SIMP(statut='f',typ='R' ),
13459            b_pas           =BLOC(condition = "PAS != None",
13460                INST_INIT       =SIMP(statut='f',typ='R' ),
13461                INST_FIN        =SIMP(statut='f',typ='R' ),
13462            ),
13463            b_list_fonc     =BLOC(condition = "LIST_INST != None or FONC_INST != None",
13464                regles=(EXCLUS('INST_FIN','NUME_FIN'),),
13465                NUME_FIN        =SIMP(statut='f',typ='I' ),
13466                INST_FIN        =SIMP(statut='f',typ='R' ),
13467            ),
13468            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
13469            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
13470            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.33334 ),
13471            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13472            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
13473            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
13474            PAS_CALCUL      =SIMP(statut='f',typ='I',defaut= 1 ),
13475          ),
13476          ARCHIVAGE       =FACT(statut='f',
13477            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
13478            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
13479            PAS_ARCH        =SIMP(statut='f',typ='I' ),
13480            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ),
13481          ),
13482          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
13483                                fr="Liste des paramétres de sensibilité.",
13484                                ang="List of sensitivity parameters",
13485          ),
13486          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13487          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
13488 )  ;
13489 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13490 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13491 # ======================================================================
13492 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13493 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13494 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13495 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
13496 # (AT YOUR OPTION) ANY LATER VERSION.
13497 #
13498 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
13499 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13500 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13501 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13502 #
13503 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
13504 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
13505 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
13506 # ======================================================================
13507 # RESPONSABLE GREFFET N.GREFFET
13508 DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
13509             fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
13510             UIinfo={"groupes":("Résolution",)},
13511          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
13512                  CONCEPT_SENSIBLE('ENSEMBLE'),),
13513          MODELE          =SIMP(statut='o',typ=modele_sdaster),
13514          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
13515          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
13516          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
13517          MASS_DIAG       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
13518          EXCIT           =FACT(statut='o',max='**',
13519            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
13520                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
13521                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
13522                    ),
13523            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
13524                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
13525            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
13526            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13527            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13528            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13529            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13530            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13531            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
13532            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13533            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13534          ),
13535          EXCIT_GENE      =FACT(statut='f',max='**',
13536            FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
13537            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
13538          ),
13539          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
13540                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
13541                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
13542                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13543                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
13544                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
13545               ),
13546          AMOR_MODAL      =FACT(statut='f',
13547            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
13548            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
13549            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
13550            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
13551            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13552            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13553          ),
13554          PROJ_MODAL      =FACT(statut='f',max='**',
13555            MODE_MECA       =SIMP(statut='o',typ=mode_meca),
13556            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
13557            regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
13558            MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
13559            RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
13560            AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
13561          ),
13562          COMP_INCR       =C_COMP_INCR(),
13563          COMP_ELAS       =FACT(statut='f',max='**',
13564            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
13565                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS",
13566                                       "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
13567            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13568            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13569            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13570            ELAS_VMIS_PUIS  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13571            ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13572            ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
13573            CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
13574            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
13575       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
13576            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13577            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
13578            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13579            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
13580            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
13581            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
13582            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
13583                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
13584          ),
13585 #-------------------------------------------------------------------
13586          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
13587          ETAT_INIT       =FACT(statut='o',
13588            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
13589                    EXCLUS('EVOL_NOLI','DEPL',),
13590                    EXCLUS('EVOL_NOLI','VITE'),
13591                    EXCLUS('EVOL_NOLI','ACCE'),
13592                    EXCLUS('EVOL_NOLI','SIGM',),
13593                    EXCLUS('EVOL_NOLI','VARI',),
13594                    EXCLUS('NUME_ORDRE','INST'), ),
13595            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
13596            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
13597            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
13598            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
13599            VARI            =SIMP(statut='f',typ=cham_elem),
13600            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
13601            NUME_ORDRE      =SIMP(statut='f',typ='I'),
13602            INST            =SIMP(statut='f',typ='R'),
13603            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13604            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13605            NUME_DIDI       =SIMP(statut='f',typ='I'),
13606            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
13607          ),),
13608          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
13609          ETAT_INIT       =FACT(statut='f',
13610            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI',),
13611                    EXCLUS('EVOL_NOLI','DEPL',),
13612                    EXCLUS('EVOL_NOLI','VITE'),
13613                    EXCLUS('EVOL_NOLI','ACCE'),
13614                    EXCLUS('EVOL_NOLI','SIGM',),
13615                    EXCLUS('EVOL_NOLI','VARI',),
13616                    EXCLUS('NUME_ORDRE','INST'), ),
13617            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
13618            VITE            =SIMP(statut='f',typ=cham_no_sdaster),
13619            ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
13620            SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
13621            VARI            =SIMP(statut='f',typ=cham_elem),
13622            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
13623            NUME_ORDRE      =SIMP(statut='f',typ='I'),
13624            INST            =SIMP(statut='f',typ='R'),
13625            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13626            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13627            NUME_DIDI       =SIMP(statut='f',typ='I'),
13628            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
13629          ),),
13630 #-------------------------------------------------------------------
13631          INCREMENT       =FACT(statut='o',
13632            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
13633                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
13634            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
13635            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
13636                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
13637            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
13638            INST_INIT       =SIMP(statut='f',typ='R'),
13639            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
13640            INST_FIN        =SIMP(statut='f',typ='R'),
13641            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
13642            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
13643            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
13644               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
13645               defaut="AUCUNE",
13646               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
13647            ),
13648            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
13649              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
13650              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
13651                 fr="Coefficient multiplicateur de la 1ère subdivision"),
13652              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
13653                 fr="Nombre de subdivision d'un pas de temps"),
13654              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
13655                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
13656              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
13657                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
13658            ),
13659            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
13660              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
13661              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
13662                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
13663                 defaut="IGNORE_PREMIERES",
13664                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
13665              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
13666                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
13667              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
13668                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
13669              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
13670                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
13671              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
13672                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
13673              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
13674                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
13675              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
13676                 fr="% itération autorisée en plus"),
13677            ),
13678            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
13679            OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
13680            NOM_CHAM        =SIMP(statut='f',typ='TXM',),
13681            NOM_CMP         =SIMP(statut='f',typ='TXM',),
13682            VALE            =SIMP(statut='f',typ='R'),
13683          ),
13684 #-------------------------------------------------------------------
13685          SCHEMA_TEMPS     =FACT(statut='o',
13686             SCHEMA          =SIMP(statut='o',min=1,max=1,typ='TXM',
13687                                   into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE"),),
13688             b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
13689                PHI          =SIMP(statut='f',typ='R',defaut= 1.05),),
13690             b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
13691                ALPHA        =SIMP(statut='f',typ='R',defaut= 0.25),
13692                DELTA        =SIMP(statut='f',typ='R',defaut= 0.5),),
13693             b_hht     = BLOC(condition="SCHEMA=='HHT'",
13694                ALPHA        =SIMP(statut='f',typ='R',defaut= -0.3 ),
13695                MODI_EQUI    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
13696             b_theta   = BLOC(condition="SCHEMA=='THETA_METHODE'",
13697                THETA         =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=1. ),),
13698             b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
13699                STOP_CFL     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
13700                FORMULATION  =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
13701             b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
13702                FORMULATION  =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE",),),),
13703          ),
13704          NEWTON          =FACT(statut='d',
13705            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
13706            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
13707            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
13708            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
13709            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
13710            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
13711          ),
13712          SOLVEUR         =FACT(statut='d',
13713            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
13714            b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
13715              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
13716            ),
13717            b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
13718              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
13719            ),
13720            b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
13721                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
13722              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
13723              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
13724            ),
13725            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
13726              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
13727              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
13728              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
13729              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
13730              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
13731              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
13732              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
13733                                    into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
13734              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
13735              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
13736              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
13737              ),
13738            b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
13739              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
13740              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
13741              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13742              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
13743              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
13744            ),
13745            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
13746              VARIANTE        =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
13747              PRE_COND        =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
13748              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
13749              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-8),
13750              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
13751            ),
13752            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
13753          ),
13754 #-------------------------------------------------------------------
13755          CONVERGENCE     =FACT(statut='d',
13756            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
13757            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
13758              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE',
13759                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),),
13760              SIGM_REFE       =SIMP(statut='f',typ='R'),
13761              EPSI_REFE       =SIMP(statut='f',typ='R'),
13762              FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
13763              FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
13764              FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
13765              VARI_REFE       =SIMP(statut='f',typ='R'),                     
13766            ),
13767            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
13768            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
13769            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
13770            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
13771            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
13772            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
13773          ),
13774 #-------------------------------------------------------------------
13775          OBSERVATION     =FACT(statut='f',max='**',
13776            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
13777            SUIVI_DDL       =SIMP(statut='f',typ='TXM',defaut="NON",max=1,into=("OUI","NON")),
13778          b_suivi          =BLOC(condition = "SUIVI_DDL == 'OUI' ",
13779                                 regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'),
13780                                                   PRESENT_PRESENT('MAILLE','POINT'),),
13781              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13782              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13783              POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
13784              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13785              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
13786                                    into=("DEPL","VITE","ACCE","SIEF_ELGA",
13787                                          "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
13788              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
13789              NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
13790              VALE_MAX        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),
13791              VALE_MIN        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),),
13792          b_non_suivi      =BLOC(condition = "SUIVI_DDL == 'NON' ",
13793                                 regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),PRESENT_PRESENT('MAILLE','POINT'),),
13794              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13795              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
13796              POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
13797              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
13798              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
13799                                               "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")),
13800              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
13801              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
13802              PAS_OBSE        =SIMP(statut='f',typ='I'),
13803              LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
13804              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13805              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),),
13806          ),
13807
13808          AFFICHAGE      = FACT(statut='f',max=16,
13809
13810             UNITE       = SIMP(statut='f',typ='I',val_min=1),
13811
13812             LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
13813             PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
13814             LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
13815
13816             NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
13817                                 into=("STANDARD","MINIMUM",
13818                                       "ITER_NEWT",
13819                                       "INCR_TPS",
13820                                       "RESI_RELA","RELA_NOEU",
13821                                       "RESI_MAXI","MAXI_NOEU",
13822                                       "RESI_REFE","REFE_NOEU",
13823                                       "RELI_ITER","RELI_COEF",
13824                                       "PILO_PARA",
13825                                       "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
13826                                       "MATR_ASSE",
13827                                       "ITER_DEBO",
13828                                       "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
13829                                       "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
13830                                       "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
13831                                      ),
13832                                ),
13833             b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
13834                     NOM_COLONNE == 'RESI_MAXI' or\
13835                     NOM_COLONNE == 'RESI_REFE' or\
13836                     NOM_COLONNE == 'CTCD_GEOM' or\
13837                     NOM_COLONNE == 'STANDARD' ",
13838                             INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
13839                           ),
13840          ),
13841 #-------------------------------------------------------------------
13842          ARCHIVAGE       =FACT(statut='f',
13843            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
13844                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
13845            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
13846            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
13847            PAS_ARCH        =SIMP(statut='f',typ='I' ),
13848            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
13849            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
13850            NUME_INIT       =SIMP(statut='f',typ='I'),
13851            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
13852            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
13853            into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","LANL_ELGA")),
13854          ),
13855
13856 #-------------------------------------------------------------------
13857          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
13858            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
13859            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.),
13860                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
13861            INST_CALCUL       =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ),
13862          ),
13863          MODE_VIBR     =FACT(statut='f',min=1,max=1,
13864            MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE","SECANTE",) ),
13865            NB_FREQ          =SIMP(statut='f',typ='I',max=1,defaut=3,
13866                             fr="Nombre de fréquences propres à calculer"),
13867            BANDE            =SIMP(statut='f',typ='R',min=2,max=2,
13868                             fr="Valeur des deux fréquences délimitant la bande de recherche",),
13869            INST_CALCUL       =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ),
13870          ),
13871 #-------------------------------------------------------------------
13872            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
13873                                fr="Liste des paramètres de sensibilité",
13874                                ang="List of sensitivity parameters"),
13875 #-------------------------------------------------------------------
13876          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
13877          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13878 )  ;
13879 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13880 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13881 # ======================================================================
13882 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13883 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13884 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13885 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
13886 # (AT YOUR OPTION) ANY LATER VERSION.                                 
13887 #
13888 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13889 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13890 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13891 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13892 #
13893 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13894 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13895 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13896 # ======================================================================
13897 # RESPONSABLE ADOBES A.ADOBES
13898 DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_fonction,
13899                      fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
13900                      reentrant='n',
13901             UIinfo={"groupes":("Résolution",)},
13902          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
13903          EXCIT           =FACT(statut='o',
13904            INTE_SPEC_GENE  =SIMP(statut='o',typ=table_fonction),
13905          ),
13906          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
13907          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
13908 )  ;
13909 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
13910 #            CONFIGURATION MANAGEMENT OF EDF VERSION
13911 # ======================================================================
13912 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
13913 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
13914 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
13915 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
13916 # (AT YOUR OPTION) ANY LATER VERSION.                                 
13917 #
13918 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
13919 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
13920 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
13921 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
13922 #
13923 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
13924 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
13925 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
13926 # ======================================================================
13927 # RESPONSABLE BOYERE E.BOYERE
13928 DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
13929                      fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées"
13930                         +" par superposition modale ou par sous structuration",
13931                      reentrant='f',
13932             UIinfo={"groupes":("Résolution",)},
13933       regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), 
13934               PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
13935          METHODE         =SIMP(statut='f',typ='TXM',defaut="EULER",
13936                                into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
13937          MASS_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
13938          RIGI_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
13939          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
13940          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
13941          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
13942          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ),
13943          MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,),
13944          
13945          ETAT_INIT       =FACT(statut='f',
13946            regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
13947                    EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
13948            RESU_GENE       =SIMP(statut='f',typ=tran_gene ),
13949            b_resu_gene     =BLOC(condition = "RESU_GENE != None",
13950              INST_INIT       =SIMP(statut='f',typ='R' ),
13951              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
13952              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
13953            ),
13954            DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
13955            VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
13956          ),
13957          INCREMENT       =FACT(statut='o',max='**',
13958            INST_INIT       =SIMP(statut='f',typ='R' ),
13959            INST_FIN        =SIMP(statut='o',typ='R' ),
13960            PAS             =SIMP(statut='f',typ='R' ),
13961            VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
13962            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
13963            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
13964            COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
13965            PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
13966            NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
13967            NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
13968          ),
13969          ARCHIVAGE       =FACT(statut='f',
13970            regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
13971            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
13972            PAS_ARCH        =SIMP(statut='f',typ='I' ),
13973          ),
13974          
13975          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
13976          RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
13977          LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
13978          
13979          EXCIT           =FACT(statut='f',max='**',
13980            regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
13981                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
13982                    PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
13983                    PRESENT_ABSENT('NUME_ORDRE','VECT_GENE','COEF_MULT'),
13984                    EXCLUS('MULT_APPUI','CORR_STAT'),
13985                    PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
13986                    PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
13987            VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene ),
13988            NUME_ORDRE      =SIMP(statut='f',typ='I' ),
13989            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13990            COEF_MULT       =SIMP(statut='f',typ='R' ),
13991            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13992            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13993            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
13994            MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
13995            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
13996            b_loca          =BLOC(condition= "DIRECTION != None",
13997              regles=(EXCLUS('NOEUD','GROUP_NO'),),
13998              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
13999              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
14000            ),
14001            CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14002            D_FONC_DT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14003            D_FONC_DT2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14004          ),
14005          CHOC            =FACT(statut='f',max='**',
14006            regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ),
14007                    EXCLUS('NOEUD_2','GROUP_NO_2'),
14008                    PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'),
14009                    PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),),
14010            INTITULE        =SIMP(statut='f',typ='TXM' ),
14011            GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
14012            MAILLE          =SIMP(statut='f',typ=ma,max='**'),
14013            NOEUD_1         =SIMP(statut='f',typ=no),
14014            NOEUD_2         =SIMP(statut='f',typ=no),
14015            GROUP_NO_1      =SIMP(statut='f',typ=grno),
14016            GROUP_NO_2      =SIMP(statut='f',typ=grno),
14017            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
14018            ORIG_OBST       =SIMP(statut='f',typ='R',min=3,max=3),
14019            NORM_OBST       =SIMP(statut='o',typ='R',min=3,max=3),
14020            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
14021            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
14022            DIST_1          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
14023            DIST_2          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
14024            SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
14025            SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
14026            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
14027            RIGI_NOR        =SIMP(statut='f',typ='R' ),
14028            AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14029            RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14030            AMOR_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14031            COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14032
14033            LAME_FLUIDE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14034            b_lame          =BLOC(condition="LAME_FLUIDE=='OUI'",
14035                ALPHA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14036                BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14037                CHI             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14038                DELTA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14039            ),
14040          ),
14041          VERI_CHOC       =FACT(statut='f',max='**',
14042            STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
14043            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
14044          ),
14045          FLAMBAGE        =FACT(statut='f',max='**',
14046            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
14047                    EXCLUS('NOEUD_2','GROUP_NO_2'),),
14048            NOEUD_1         =SIMP(statut='f',typ=no),
14049            NOEUD_2         =SIMP(statut='f',typ=no),
14050            GROUP_NO_1      =SIMP(statut='f',typ=grno),
14051            GROUP_NO_2      =SIMP(statut='f',typ=grno),
14052            OBSTACLE        =SIMP(statut='o',typ=table_fonction),
14053            ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
14054            NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
14055            ANGL_VRIL       =SIMP(statut='f',typ='R' ),
14056            JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
14057            DIST_1          =SIMP(statut='f',typ='R' ),
14058            DIST_2          =SIMP(statut='f',typ='R' ),
14059            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
14060            RIGI_NOR        =SIMP(statut='f',typ='R' ),
14061            FNOR_CRIT       =SIMP(statut='f',typ='R' ),
14062            FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
14063            RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
14064          ),
14065          ANTI_SISM       =FACT(statut='f',max='**',
14066            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
14067                    UN_PARMI('NOEUD_2','GROUP_NO_2'),),
14068            NOEUD_1         =SIMP(statut='f',typ=no),
14069            NOEUD_2         =SIMP(statut='f',typ=no),
14070            GROUP_NO_1      =SIMP(statut='f',typ=grno),
14071            GROUP_NO_2      =SIMP(statut='f',typ=grno),
14072            RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14073            RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14074            SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14075            C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14076            PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
14077            DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
14078          ),
14079          RELA_EFFO_DEPL  =FACT(statut='f',max='**',
14080            NOEUD           =SIMP(statut='o',typ=no),
14081            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
14082            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
14083            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14084          ),
14085          RELA_TRANSIS    =FACT(statut='f',max='**',
14086            NOEUD           =SIMP(statut='o',typ=no),
14087            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
14088            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
14089            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14090          ),
14091          RELA_EFFO_VITE  =FACT(statut='f',max='**',
14092            NOEUD           =SIMP(statut='o',typ=no),
14093            SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
14094            NOM_CMP         =SIMP(statut='f',typ='TXM' ),
14095            RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
14096          ),
14097          b_itmi          =BLOC(condition = "METHODE=='ITMI'",
14098                 regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
14099                 BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
14100                 NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
14101                 ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14102                 PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
14103                 CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14104                 NB_MODE         =SIMP(statut='f',typ='I' ),
14105                 NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
14106                 TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
14107          ),
14108          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
14109          IMPRESSION      =FACT(statut='f',max='**',
14110            regles=(EXCLUS('TOUT','NIVEAU'),),
14111            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14112            NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
14113            INST_INIT       =SIMP(statut='f',typ='R' ),
14114            INST_FIN        =SIMP(statut='f',typ='R' ),
14115          ),
14116          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14117  )  ;
14118 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14119 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14120 # ======================================================================
14121 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14122 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14123 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14124 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14125 # (AT YOUR OPTION) ANY LATER VERSION.
14126 #
14127 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14128 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14129 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14130 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14131 #
14132 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14133 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14134 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14135 # ======================================================================
14136 # RESPONSABLE PELLET J.PELLET
14137 ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
14138                    UIinfo={"groupes":("Impression",)},
14139                    fr="Engendre des tests pour la non régression du code (pour développeurs)",
14140          UNITE           =SIMP(statut='f',typ='I',defaut=8),
14141          FORMAT          =SIMP(statut='f',typ='TXM',into=("OBJET",) ),
14142          FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE20.13"),
14143          PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-10"),
14144 #============================================================================
14145          b_aster     =BLOC( condition = "FORMAT==None",
14146             CO              =SIMP(statut='o',typ=(cham_gd_sdaster,resultat_sdaster,table_sdaster),
14147                                   validators=NoRepeat(),max='**'),
14148             TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMM_ABS",into=("SOMM","SOMM_ABS","MAX","MIN") ),
14149          ),
14150 #============================================================================
14151          b_objet     =BLOC( condition = "FORMAT=='OBJET'",
14152                             regles=(UN_PARMI('TOUT','CO'),),
14153             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14154             CO              =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
14155             TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME",) ),
14156          ),
14157 )  ;
14158 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14159 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14160 # ======================================================================
14161 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14162 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14163 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14164 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14165 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14166 #
14167 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14168 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14169 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14170 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14171 #
14172 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14173 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14174 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14175 # ======================================================================
14176 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
14177
14178 from Macro.exec_logiciel_ops import exec_logiciel_ops
14179 def exec_logiciel_prod(self, MAILLAGE, **args):
14180    if MAILLAGE != None:
14181       mcf = MAILLAGE[0]
14182       self.type_sdprod(mcf['MAILLAGE'], maillage_sdaster)
14183    return None
14184
14185 EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL",op=exec_logiciel_ops, sd_prod=exec_logiciel_prod,
14186                       fr="Exécute un logiciel ou une commande système depuis Aster",
14187                       UIinfo={"groupes":("Outils métier",)},
14188       
14189       regles = (AU_MOINS_UN('LOGICIEL', 'MAILLAGE'),),
14190       
14191       LOGICIEL = SIMP(statut='f', typ='TXM'),
14192       ARGUMENT = SIMP(statut='f', max='**', typ='TXM'),
14193
14194       MAILLAGE = FACT(statut='f',
14195          FORMAT     = SIMP(statut='o', typ='TXM', into=("GMSH", "GIBI", "SALOME")),
14196          UNITE_GEOM = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=16,
14197                            fr="Unité logique définissant le fichier (fort.N) contenant les données géométriques (datg)"),
14198          UNITE      = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=19,
14199                            fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"),
14200          MAILLAGE   = SIMP(statut='o', typ=CO),
14201       ),
14202
14203       CODE_RETOUR_MAXI = SIMP(statut='f', typ='I', defaut=0, val_min=-1,
14204                               fr="Valeur maximale du code retour toléré (-1 pour l'ignorer)"),
14205       
14206       INFO     = SIMP(statut='f', typ='I', defaut=2, into=(1,2),),
14207 )
14208 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
14209 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14210 # ======================================================================
14211 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14212 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14213 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14214 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14215 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14216 #
14217 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14218 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14219 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14220 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14221 #
14222 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14223 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14224 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14225 # ======================================================================
14226 # RESPONSABLE NISTOR I.NISTOR
14227
14228 def extr_mode_prod(FILTRE_MODE,**args):
14229   vale=FILTRE_MODE[0]['MODE']
14230   if AsType(vale) == mode_meca   : return mode_meca
14231   if AsType(vale) == mode_meca_c : return mode_meca_c
14232   if AsType(vale) == mode_gene   : return mode_gene
14233   raise AsException("type de concept resultat non prevu")
14234
14235 EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
14236                reentrant='n',fr="Extraire séléctivement des modes des structures de données modales",
14237             UIinfo={"groupes":("Résolution",)},
14238          FILTRE_MODE     =FACT(statut='o',max='**',
14239            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
14240            MODE            =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ),
14241            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14242            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14243            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14244            NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14245            FREQ_MIN        =SIMP(statut='f',typ='R' ),
14246            CRIT_EXTR       =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ),
14247            b_freq_min      =BLOC(condition = "FREQ_MIN != None",  
14248              FREQ_MAX        =SIMP(statut='o',typ='R' ),
14249              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
14250            ),
14251            b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
14252              regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),),
14253              SEUIL           =SIMP(statut='f',typ='R'),
14254              SEUIL_X         =SIMP(statut='f',typ='R'),
14255              SEUIL_Y         =SIMP(statut='f',typ='R'),
14256              SEUIL_Z         =SIMP(statut='f',typ='R'),
14257            ),    
14258          ),
14259          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14260          IMPRESSION      =FACT(statut='f',
14261            CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
14262            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
14263          ),
14264 )  ;
14265 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14266 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14267 # ======================================================================
14268 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14269 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14270 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14271 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14272 # (AT YOUR OPTION) ANY LATER VERSION.
14273 #
14274 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14275 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14276 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14277 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14278 #
14279 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14280 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14281 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14282 # ======================================================================
14283 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
14284
14285 def extr_resu_prod(RESULTAT,**args):
14286   if AsType(RESULTAT) == evol_elas    : return evol_elas
14287   if AsType(RESULTAT) == evol_noli    : return evol_noli
14288   if AsType(RESULTAT) == evol_ther    : return evol_ther
14289   if AsType(RESULTAT) == dyna_trans   : return dyna_trans
14290   if AsType(RESULTAT) == dyna_harmo   : return dyna_harmo
14291   if AsType(RESULTAT) == acou_harmo   : return acou_harmo
14292   if AsType(RESULTAT) == mode_meca    : return mode_meca
14293   if AsType(RESULTAT) == mode_acou    : return mode_acou
14294   if AsType(RESULTAT) == mode_stat_depl :    return mode_stat_depl
14295   if AsType(RESULTAT) == mode_stat_acce :    return mode_stat_acce
14296   if AsType(RESULTAT) == mode_stat_forc :    return mode_stat_forc
14297   if AsType(RESULTAT) == mult_elas    : return mult_elas
14298   if AsType(RESULTAT) == fourier_elas : return fourier_elas
14299   raise AsException("type de concept resultat non prevu")
14300
14301 EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
14302             UIinfo={"groupes":("Résultats et champs",)},
14303             fr="Extraire des champs au sein d'une SD Résultat",
14304          regles=(CONCEPT_SENSIBLE('SEPARE'), 
14305                  #REUSE_SENSIBLE(),
14306                  DERIVABLE('RESULTAT'),),
14307          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
14308                                                mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli,
14309                                                mult_elas,fourier_elas,fourier_ther ) ),
14310
14311          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
14312                                    fr="Liste des paramètres de sensibilité.",
14313                                    ang="List of sensitivity parameters"),
14314
14315          ARCHIVAGE       =FACT(statut='f',
14316            regles=(  UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE',
14317                         'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE',
14318                         'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ),
14319                      EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ),   ),
14320            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
14321            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
14322            PRECISION       =SIMP(statut='f',typ='R',defaut=1.E-3 ),
14323            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"),
14324            LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
14325            PAS_ARCH        =SIMP(statut='f',typ='I'),
14326            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14327            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
14328            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14329            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
14330            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14331            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
14332            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14333            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
14334            NOM_CAS         =SIMP(statut='f',typ='TXM'),
14335                                ),
14336
14337          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
14338 )  ;
14339 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14340 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14341 # ======================================================================
14342 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
14343 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14344 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14345 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14346 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14347 #                                                                       
14348 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14349 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14350 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14351 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14352 #                                                                       
14353 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14354 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14355 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14356 # ======================================================================
14357 # RESPONSABLE COURTOIS M.COURTOIS
14358
14359 def extr_table_prod(TYPE_RESU,**args):
14360   from Cata import cata
14361   typ = TYPE_RESU.lower()
14362   if hasattr(cata, typ):
14363      return getattr(cata, typ)
14364   raise AsException("type de concept resultat non prevu")
14365
14366 EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n',
14367             UIinfo={"groupes":("Résultats et champs",)},
14368          fr="Extraire d'une table des concepts Code_Aster",
14369          TYPE_RESU       =SIMP(statut='o',typ='TXM',),
14370
14371          TABLE           =SIMP(statut='o',typ=(table_sdaster,table_container)),
14372
14373          NOM_PARA        =SIMP(statut='o',typ='TXM'),
14374
14375          FILTRE          =FACT(statut='f',min=1,max='**',
14376            NOM_PARA        =SIMP(statut='o',typ='TXM'),
14377            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
14378                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
14379                                        "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
14380            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
14381               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
14382               VALE            =SIMP(statut='f',typ='R'),
14383               VALE_I          =SIMP(statut='f',typ='I'),
14384               VALE_C          =SIMP(statut='f',typ='C'),
14385               VALE_K          =SIMP(statut='f',typ='TXM'),),
14386
14387            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
14388            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
14389          ),
14390
14391          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
14392 )  ;
14393 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14394 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14395 # ======================================================================
14396 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
14397 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14398 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14399 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14400 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14401 #                                                                       
14402 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14403 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14404 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14405 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14406 #                                                                       
14407 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14408 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14409 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14410 # ======================================================================
14411 # RESPONSABLE PELLET J.PELLET
14412
14413 def factoriser_prod(MATR_ASSE,**args):
14414   if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
14415   if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
14416   if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
14417   if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
14418   if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
14419   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
14420   raise AsException("type de concept resultat non prevu")
14421
14422 FACTORISER=OPER(nom="FACTORISER",op=14,sd_prod=factoriser_prod,
14423                fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires"+
14424                   "ou construire une matrice de préconditionnement pour une résolution par gradient conjugué",
14425                reentrant='f', UIinfo={"groupes":("Résolution",)},
14426          regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
14427                  EXCLUS('BLOC_FIN','DDL_FIN'),),
14428          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
14429                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
14430
14431          # mots clés pour solveur LDLT et MULT_FRONT:
14432          STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
14433          NPREC           =SIMP(statut='f',typ='I',defaut=8,val_min=0,),
14434
14435          # mots clés pour solveur LDLT :
14436          BLOC_DEBUT      =SIMP(statut='f',typ='I',val_min=1,),
14437          DDL_DEBUT       =SIMP(statut='f',typ='I',val_min=1,),
14438          BLOC_FIN        =SIMP(statut='f',typ='I',val_min=1,),
14439          DDL_FIN         =SIMP(statut='f',typ='I',val_min=1,),
14440
14441          # mots clés pour solveur MUMPS :
14442          TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
14443          PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
14444          PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
14445          ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
14446
14447          # mots clés pour solveur GCPC :
14448          PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
14449          NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),  
14450
14451          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14452          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
14453 )  ;
14454 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14455 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14456 # ======================================================================
14457 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14458 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14459 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14460 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14461 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14462 #
14463 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14464 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14465 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14466 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14467 #
14468 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14469 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14470 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14471 # ======================================================================
14472 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
14473 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE",
14474             UIinfo={"groupes":("Gestion du travail",)},
14475          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
14476                                typ='TXM',defaut="NON",into=("OUI","NON",) ), 
14477          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
14478                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
14479          PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
14480                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
14481          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
14482                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
14483          UNITE           =SIMP(statut='f',typ='I',defaut=6),  
14484 )  ;
14485 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14486 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14487 # ======================================================================
14488 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14489 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14490 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14491 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14492 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14493 #
14494 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14495 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14496 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14497 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14498 #
14499 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14500 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14501 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14502 # ======================================================================
14503 # RESPONSABLE ADOBES A.ADOBES
14504 FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster,
14505                     reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne",
14506             UIinfo={"groupes":("Fonction",)},
14507          TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
14508 )  ;
14509 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14510 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14511 # ======================================================================
14512 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14513 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14514 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14515 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14516 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14517 #
14518 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14519 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14520 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14521 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14522 #
14523 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14524 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14525 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14526 # ======================================================================
14527 # RESPONSABLE DURAND C.DURAND
14528 def formule_prod(self,VALE,VALE_C,**args):
14529    if   VALE   != None:
14530       return formule
14531    elif VALE_C != None:
14532       return formule_c
14533
14534 def form_pyth_ops(self,d):
14535    NOM_PARA=self.etape['NOM_PARA']
14536    VALE    =self.etape['VALE']
14537    VALE_C  =self.etape['VALE_C']
14538    if type(NOM_PARA) not in (list, tuple):
14539       NOM_PARA = [NOM_PARA,]
14540    if self.sd == None:
14541       return
14542    if VALE     != None :
14543       texte = ''.join(VALE.splitlines())
14544    elif VALE_C != None :
14545       texte = ''.join(VALE_C.splitlines())
14546    self.sd.setFormule(NOM_PARA, texte.strip())
14547
14548 FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5,
14549              sd_prod=formule_prod,UIinfo={"groupes":("Fonction",)},
14550              fr="Définit une formule réelle ou complexe à partir de son expression mathématique",
14551          regles=(UN_PARMI('VALE','VALE_C',),),
14552          VALE     =SIMP(statut='f',typ='TXM'),
14553          VALE_C   =SIMP(statut='f',typ='TXM'),
14554          NOM_PARA =SIMP(statut='o',typ='TXM',max='**'),
14555 );
14556 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14557 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14558 # ======================================================================
14559 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14560 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14561 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14562 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14563 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14564 #
14565 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14566 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14567 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14568 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14569 #
14570 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14571 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14572 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14573 # ======================================================================
14574 # RESPONSABLE ZENTNER I.ZENTNER
14575 GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction,
14576                     fr="Génération de la fonction temporelle à partir d une matrice interspectrale",
14577                     reentrant='n',
14578             UIinfo={"groupes":("Fonction",)},
14579          INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
14580          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
14581          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
14582          b_interpol_oui    =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee",
14583            DUREE_TIRAGE    =SIMP(statut='f',typ='R' ),
14584            FREQ_INIT       =SIMP(statut='f',typ='R' ),
14585            FREQ_FIN        =SIMP(statut='f',typ='R' ),
14586              ),
14587          NB_POIN         =SIMP(statut='f',typ='I'),
14588          NB_TIRAGE       =SIMP(statut='f',typ='I',defaut= 1 ),
14589          INIT_ALEA       =SIMP(statut='f',typ='I'),
14590          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
14591          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
14592 )  ;
14593 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14594 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14595 # ======================================================================
14596 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
14597 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14598 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14599 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14600 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14601 #                                                                       
14602 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14603 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14604 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14605 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14606 #                                                                       
14607 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14608 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14609 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14610 # ======================================================================
14611 # RESPONSABLE ZENTNER I.ZENTNER
14612 def gene_matr_alea_prod(MATR_MOYEN,**args ):
14613   if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
14614   if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
14615   raise AsException("type de concept resultat non prevu")
14616
14617 GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
14618 #sd_prod=matr_asse_gene_r,
14619 sd_prod=gene_matr_alea_prod,
14620                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",
14621                reentrant='n',
14622             UIinfo={"groupes":("Matrice",)},
14623    MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
14624
14625 #    cas matrice generalisee 
14626    b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
14627            COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
14628                                 fr="coefficient de variation de la matrice a generer" ),
14629            ),
14630 #    cas macr_elem_dyna 
14631    b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
14632            fr="cas macr_elem_dyna (sous-structuratio)",
14633            COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
14634                                 fr="coefficient de variation de la matrice de raideur" ),
14635            COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
14636                                 fr="coefficient de variation de la matrice de masse" ),
14637            COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
14638                                 fr="coefficient de variation de la matrice d'amortissement" ),),
14639
14640    INIT_ALEA    =SIMP(statut='f',typ='I'),
14641 ) ;
14642    
14643 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14644 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14645 # ======================================================================
14646 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
14647 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
14648 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
14649 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
14650 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
14651 #                                                                       
14652 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
14653 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
14654 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14655 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
14656 #                                                                       
14657 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
14658 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
14659 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
14660 # ======================================================================
14661 # RESPONSABLE ZENTNER I.ZENTNER
14662 from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init
14663 GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA",
14664                op_init=gene_vari_alea_init,op=gene_vari_alea_ops,
14665                sd_prod=reel,reentrant='n',
14666                fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)",
14667                UIinfo={"groupes":("Fonction",)},
14668    TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
14669    b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
14670            VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
14671            BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
14672            COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
14673              ),
14674    b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
14675            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
14676            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
14677              ),
14678    b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
14679            VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
14680            BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
14681            BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
14682              ),
14683    INIT_ALEA       =SIMP(statut='f',typ='I'),
14684 )
14685 #& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
14686 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14687 # ======================================================================
14688 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14689 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14690 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14691 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14692 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14693 #
14694 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14695 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14696 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14697 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14698 #
14699 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14700 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14701 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14702 # ======================================================================
14703 IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
14704                  fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl",
14705                  UIinfo={"groupes":("Fonction",)},
14706          UNITE           =SIMP(statut='f',typ='I',defaut=30),  
14707          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
14708          VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
14709          CHARGE          =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ),
14710 )  ;
14711 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14712 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14713 # ======================================================================
14714 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14715 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14716 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14717 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
14718 # (AT YOUR OPTION) ANY LATER VERSION.
14719 #
14720 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
14721 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
14722 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14723 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14724 #
14725 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
14726 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
14727 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
14728 # ======================================================================
14729 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
14730 IMPR_CO=PROC(nom="IMPR_CO",op=17,
14731             UIinfo={"groupes":("Impression",)},
14732              fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)",
14733          regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),),
14734
14735          UNITE           =SIMP(statut='f',typ='I',defaut=8),
14736          NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ),
14737          ATTRIBUT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
14738          CONTENU         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
14739          BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ),
14740          CONCEPT    =FACT(statut='f',max='**',
14741              regles=(DERIVABLE('NOM'),),
14742              NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
14743              SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
14744                                  fr="Paramètre de sensibilité.",
14745                                  ang="Sensitivity parameter",max='**'),),        
14746          CHAINE          =SIMP(statut='f',typ='TXM'),
14747          POSITION        =SIMP(statut='f',typ='I',defaut=1),
14748          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14749 )  ;
14750 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR CNGUYEN C.NGUYEN 
14751 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14752 # ======================================================================
14753 # COPYRIGHT (C) 1991 - 2004  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 # RESPONSABLE COURTOIS M.COURTOIS
14769 from Macro.impr_fonction_ops import impr_fonction_ops
14770
14771 IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
14772                  fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe",
14773             UIinfo={"groupes":("Fonction",)},
14774          FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
14775                                into=("TABLEAU","AGRAF","XMGRACE",),),
14776          b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
14777                         fr="Mots-clés propres à XMGRACE",
14778            PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
14779                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
14780                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
14781            UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
14782                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
14783          ),
14784          b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
14785                         fr="Mots-clés propres à AGRAF",
14786            UNITE           =SIMP(statut='o',typ='I',defaut=25,
14787                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
14788            UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
14789                                  fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
14790          ),
14791          # unite pour TABLEAU dans le bloc de mise en forme spécifique
14792
14793          COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
14794            regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
14795            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
14796                                  fr="Fonction réelle ou complexe", ),
14797            LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
14798                                  fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
14799            FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
14800                                  fr="Fonction abscisses d'une fonction paramétrique",),
14801            ABSCISSE        =SIMP(statut='f',typ='R',max='**',
14802                                  fr="Valeurs des abscisses", ),
14803            b_fonction      =BLOC(condition = "FONCTION != None",
14804              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
14805            ),
14806            b_fonction_c  =BLOC(condition = "AsType(FONCTION) in (fonction_c, formule_c)",
14807                                  fr="Fonction complexe définie par le mot-clé fonction",
14808              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
14809            ),
14810            b_list_resu     =BLOC(condition = "LIST_RESU != None",
14811              LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
14812            ),
14813            b_fonc_x        =BLOC(condition = "FONC_X != None",
14814              FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
14815              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
14816            ),
14817            b_vale_resu     =BLOC(condition = "ABSCISSE != None",
14818              ORDONNEE      =SIMP(statut='o',typ='R',max='**',
14819                                  fr="Valeurs des ordonnées"),
14820            ),
14821
14822            # mots-clés utilisant uniquement aux formats autres que TABLEAU
14823            # mais ce serait trop pénible de devoir les supprimer quand on change de format
14824            # donc on ne les met pas dans un bloc
14825            # "pseudo" bloc mise en forme :
14826                LEGENDE         =SIMP(statut='f',typ='TXM',
14827                                     fr="Légende associée à la fonction" ),
14828                STYLE           =SIMP(statut='f',typ='I',val_min=0,
14829                                     fr="Style de la ligne représentant la fonction",),
14830                COULEUR         =SIMP(statut='f',typ='I',val_min=0,
14831                                     fr="Couleur associée à la fonction",),
14832                MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
14833                                     fr="Type du marqueur associé à la fonction",),
14834                FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
14835                                     fr="Fréquence d impression du marqueur associé à la fonction", ),
14836            # fin bloc mise en forme
14837            
14838            TRI             =SIMP(statut='f',typ='TXM',defaut="N",
14839                                  fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
14840                                  into=("N","X","Y","XY","YX") ),
14841          ),
14842          # Mise en page du tableau ou du graphique
14843          b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
14844                           fr="Mots-clés propres au format Tableau",
14845            UNITE           =SIMP(statut='o',typ='I',defaut=8,
14846                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
14847            TITRE           =SIMP(statut='f',typ='TXM',
14848                                  fr="Titre associé au graphique" ),
14849            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
14850                                  fr="Sous-titre du graphique" ),
14851            SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
14852                                  fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
14853            COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
14854                                  fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
14855            COMM_PARA       =SIMP(statut='f',typ='TXM',defaut='',
14856                                  fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"),
14857            DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
14858                                  fr="Caractère de debut de ligne"),
14859            FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
14860                                  fr="Caractère de fin de ligne"),
14861          ),
14862          b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
14863                         fr="Mise en page du graphique",
14864            TITRE           =SIMP(statut='f',typ='TXM',
14865                                  fr="Titre associé au graphique" ),
14866            SOUS_TITRE      =SIMP(statut='f',typ='TXM',
14867                                  fr="Sous-titre du graphique" ),
14868            BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
14869                                  fr="Intervalles de variation des abscisses"),
14870            BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
14871                                  fr="Intervalles de variation des ordonnées"),
14872            ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
14873                                  fr="Type d'échelle pour les abscisses" ),
14874            ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
14875                                  fr="Type d'échelle pour les ordonnées" ),
14876            GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
14877                                  fr="Pas du quadrillage vertical" ),
14878            GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
14879                                  fr="Pas du quadrillage horizontal" ),
14880            LEGENDE_X       =SIMP(statut='f',typ='TXM',
14881                                  fr="Légende associée à l'axe des abscisses" ),
14882            LEGENDE_Y       =SIMP(statut='f',typ='TXM',
14883                                  fr="Légende associée à l'axe des ordonnées" ),
14884          ),
14885          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
14886 )  ;
14887 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14888 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14889 # ======================================================================
14890 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14891 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14892 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14893 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14894 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14895 #
14896 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14897 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14898 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14899 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14900 #
14901 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14902 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14903 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14904 # ======================================================================
14905 # RESPONSABLE BOYERE E.BOYERE
14906 IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
14907             fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT",
14908             UIinfo={"groupes":("Impression",)},
14909          FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
14910          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
14911          GENE            =FACT(statut='o',max='**',
14912            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
14913                           'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
14914                    EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
14915                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
14916                    EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
14917                           'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
14918                    EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
14919                    EXCLUS('TOUT_CHAM','NOM_CHAM'),
14920                    EXCLUS('TOUT_PARA','NOM_PARA'),),
14921 #  faut-il faire des blocs selon le type de RESU_GENE                   
14922            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
14923            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14924            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14925            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
14926            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14927            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
14928            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14929            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
14930            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
14931            TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
14932            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
14933            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
14934            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
14935                                    into=("RELATIF","ABSOLU") ),
14936            TOUT_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14937            NUME_CMP_GENE   =SIMP(statut='f',typ='I',max='**'),
14938            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14939            NOM_CHAM        =SIMP(statut='f',typ='TXM',max='**'),
14940            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14941            NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
14942            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
14943            INFO_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14944            INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
14945          ),
14946 )  ;
14947 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
14948 #            CONFIGURATION MANAGEMENT OF EDF VERSION
14949 # ======================================================================
14950 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
14951 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
14952 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
14953 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
14954 # (AT YOUR OPTION) ANY LATER VERSION.                                 
14955 #
14956 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
14957 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
14958 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
14959 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
14960 #
14961 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
14962 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
14963 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
14964 # ======================================================================
14965 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
14966 IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
14967             UIinfo={"groupes":("Impression",)},
14968                  fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)",
14969          ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
14970                                into=("DISQUE","MEMOIRE","REPERTOIRE",    
14971                                      "OBJET","ATTRIBUT","SYSTEME") ),
14972          b_objet      =BLOC(condition = "(ENTITE=='OBJET')",
14973             NOMOBJ          =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),  
14974             NUMOC           =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),  
14975             NOMOC           =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),  
14976          ),
14977          b_attribut   =BLOC(condition = "(ENTITE=='ATTRIBUT')",
14978             NOMOBJ          =SIMP(fr="nom de collection",statut='f',typ='TXM' ),  
14979             NOMATR          =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
14980                                   into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
14981                                       '$$LONO','$$LUTI','$$NUM') ),
14982          ),
14983          b_systeme    =BLOC(condition = "(ENTITE=='SYSTEME')",
14984             CLASSE          =SIMP(statut='o',typ='TXM',into=('G','V','L') ),  
14985             NOMATR          =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',   
14986                                   into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ',
14987                                       '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
14988                                       '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
14989                                       '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ),
14990          ),
14991          b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')",
14992             CLASSE          =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '),  
14993          ),
14994          b_disque     =BLOC(condition = "(ENTITE=='DISQUE')",
14995             CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '),  
14996          ),
14997          IMPRESSION      =FACT(statut='f',
14998            NOM             =SIMP(statut='f',typ='TXM' ),  
14999            UNITE           =SIMP(statut='f',typ='I'),  
15000          ),
15001          COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
15002 )  ;
15003 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR CORUS M.CORUS 
15004 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15005 # ======================================================================
15006 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15007 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15008 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15009 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15010 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15011 #
15012 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15013 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15014 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15015 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15016 #
15017 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15018 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15019 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15020 # ======================================================================
15021 # RESPONSABLE CORUS M.CORUS
15022
15023 IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
15024                     UIinfo={"groupes":("Impression",)},
15025          fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO",
15026          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
15027          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
15028                                into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ),
15029
15030          b_plexus         =BLOC(condition = "FORMAT == 'IDEAS'",
15031            UNITE           =SIMP(statut='f',typ='I',defaut=30),
15032            VERSION          =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
15033          ),             
15034
15035          b_ideas         =BLOC(condition = "FORMAT == 'PLEXUS'",
15036            UNITE           =SIMP(statut='f',typ='I',defaut=30),
15037            VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
15038          ),                      
15039
15040          b_miss_3d       =BLOC(condition = "FORMAT == 'MISS_3D'",
15041            regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
15042            UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
15043            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
15044            AMOR_REDUIT     =SIMP(statut='f',typ='R'  ,max='**'),
15045            LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
15046            GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'),
15047            GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'),
15048            GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'),
15049            GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
15050            GROUP_MA_CONTROL=SIMP(statut='f',typ=grma,max='**'),
15051            FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ),
15052            IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15053            IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15054          ),
15055
15056          b_cadyro        =BLOC(condition = "FORMAT == 'CADYRO'",
15057            SQUELETTE       =SIMP(statut='f',typ=squelette ),
15058            UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
15059            UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
15060            UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 28 ),
15061            IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15062            IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
15063          ),
15064
15065 )  ;
15066 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15067 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15068 # ======================================================================
15069 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15070 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15071 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15072 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15073 # (AT YOUR OPTION) ANY LATER VERSION.
15074 #
15075 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15076 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15077 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15078 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15079 #
15080 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15081 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15082 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15083 # ======================================================================
15084 # RESPONSABLE PELLET J.PELLET
15085 IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
15086                   fr="Imprimer sur un fichier au format IDEAS des matrices élémentaires et assemblées",
15087                   UIinfo={"groupes":("Impression",)},
15088                   regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
15089 # ======================================================================
15090    MATR_ELEM       =FACT(statut='f',max='**',
15091 #
15092            MATRICE     =SIMP(statut='o',typ=(matr_elem, vect_elem)),
15093            FORMAT      =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
15094 #
15095          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
15096            UNITE       =SIMP(statut='f',typ='I',defaut=30),
15097            VERSION     =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ),  ),
15098          ),
15099 # ======================================================================
15100    MATR_ASSE       =FACT(statut='f',max='**',
15101 #
15102            MATRICE     =SIMP(statut='o',typ=matr_asse_gd),
15103            FORMAT      =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
15104 #
15105          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
15106            UNITE       =SIMP(statut='f',typ='I',defaut=30),
15107            VERSION     =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ),  ),
15108 #
15109          ),
15110 # ======================================================================
15111 )  ;
15112 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15113 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15114 # ======================================================================
15115 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15116 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15117 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15118 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15119 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15120 #
15121 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15122 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15123 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15124 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15125 #
15126 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15127 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15128 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15129 # ======================================================================
15130 # RESPONSABLE DEVESA G.DEVESA
15131 IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
15132             UIinfo={"groupes":("Impression",)},
15133          fr="Impression des données d'entrée pour une étude sismique avec MISS3D",
15134          regles=(UN_PARMI('INST_INIT','FREQ_INIT'),
15135                  PRESENT_PRESENT('INST_INIT','INST_FIN'),
15136                  PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),),
15137          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
15138          EXCIT           =FACT(statut='f',max='**',
15139            regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
15140            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
15141            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15142            COEF_MULT       =SIMP(statut='f',typ='R' ),
15143          ),
15144          EXCIT_SOL       =FACT(statut='f',max='**',
15145            DIRECTION       =SIMP(statut='o',typ='R',min=3,max=3),
15146            FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
15147            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",
15148                                  into=("DEPL","VITE","ACCE","FORC",) ),
15149          ),
15150          INST_INIT       =SIMP(statut='f',typ='R' ),
15151          INST_FIN        =SIMP(statut='f',typ='R' ),
15152          FREQ_INIT       =SIMP(statut='f',typ='R' ),
15153          FREQ_FIN        =SIMP(statut='f',typ='R' ),
15154          PAS             =SIMP(statut='o',typ='R' ),
15155          UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
15156          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
15157          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
15158 )  ;
15159 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15160 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15161 # ======================================================================
15162 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
15163 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
15164 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
15165 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
15166 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
15167 #                                                                       
15168 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
15169 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
15170 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
15171 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15172 #                                                                       
15173 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
15174 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
15175 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
15176 # ======================================================================
15177 # RESPONSABLE THOMASSON D.THOMASSON
15178 #
15179 from Macro.impr_oar_ops import impr_oar_ops
15180 IMPR_OAR =MACRO(nom="IMPR_OAR",op= impr_oar_ops, sd_prod=None,
15181                fr="Impression au format OAR",
15182                UIinfo={"groupes":("Impression",)},
15183    TYPE_CALC = SIMP(statut='o', typ='TXM',into=('COMPOSANT', 'MEF', 'TUYAUTERIE')),
15184    b_composant =BLOC(condition = "TYPE_CALC == 'COMPOSANT' ",
15185       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
15186       DIAMETRE = SIMP(statut='o', typ='R'),
15187       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
15188       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
15189       ANGLE_C  = SIMP(statut='o', typ='R',   defaut=0.0),
15190       REVET    = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
15191       RESU_MECA = FACT(statut='f', max='**',
15192          NUM_CHAR  = SIMP(statut='o', typ='I'),
15193          TYPE      = SIMP(statut='o', typ='TXM', defaut='FX', into=('FX', 'FY', 'FZ', 'MX', 'MY', 'MZ', 'PRE')),
15194          TABLE     = SIMP(statut='o', typ=table_sdaster),
15195          TABLE_S   = SIMP(statut='f', typ=table_sdaster)),
15196       RESU_THER = FACT(statut='f', max='**',
15197          NUM_TRAN  = SIMP(statut='o', typ='I'),
15198          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
15199          TABLE_TEMP= SIMP(statut='o', typ=table_sdaster),
15200          TABLE_S   = SIMP(statut='f', typ=table_sdaster),
15201          TABLE_ST  = SIMP(statut='f', typ=table_sdaster)),
15202          ),
15203    b_mef = BLOC(condition = "TYPE_CALC == 'MEF' ",
15204       regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')),
15205       DIAMETRE = SIMP(statut='o', typ='R'),
15206       ORIGINE  = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')),
15207       COEF_U   = SIMP(statut='f', typ='R',   defaut=1.0),
15208       RESU_MECA = FACT(statut='f', max='**',
15209          AZI       = SIMP(statut='o', typ='R'),
15210          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
15211          TABLE_F   = SIMP(statut='o', typ=table_sdaster),
15212          TABLE_P   = SIMP(statut='o', typ=table_sdaster),
15213          TABLE_CA  = SIMP(statut='o', typ=table_sdaster)),
15214       RESU_THER=FACT(statut='f', max='**',
15215          AZI       = SIMP(statut='o', typ='R'),
15216          NUM_CHAR  = SIMP(statut='o', typ='I'),
15217          TABLE_T   = SIMP(statut='o', typ=table_sdaster),
15218          TABLE_TI  = SIMP(statut='o', typ=table_sdaster)),
15219       ),
15220    b_tuyauterie = BLOC(condition = "TYPE_CALC == 'TUYAUTERIE' ",
15221       RESU_MECA = FACT(statut='o', max='**',
15222          NUM_CHAR  = SIMP(statut='o', typ='I'),
15223          TABLE     = SIMP(statut='o', typ=table_sdaster),
15224          MAILLAGE  = SIMP(statut='o', typ=maillage_sdaster)),
15225          ),
15226    UNITE = SIMP(statut='f',typ='I',defaut=38),
15227    AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
15228    );
15229 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15230 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15231 # ======================================================================
15232 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15233 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15234 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15235 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
15236 # (AT YOUR OPTION) ANY LATER VERSION.
15237 #
15238 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
15239 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
15240 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
15241 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15242 #
15243 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15244 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
15245 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
15246 # ======================================================================
15247 # RESPONSABLE COURTOIS M.COURTOIS
15248 IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
15249             UIinfo={"groupes":("Impression",)},
15250                fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)",
15251          MODELE          =SIMP(statut='f',typ=modele_sdaster),
15252
15253          FORMAT          =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT",
15254                                  into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
15255
15256          b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
15257            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
15258          ),
15259
15260          b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
15261            UNITE           =SIMP(statut='f',typ='I',defaut=30),  
15262            VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
15263          ),
15264
15265          b_format_aster  =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER",
15266            UNITE           =SIMP(statut='f',typ='I',defaut=26),  
15267          ),
15268
15269          b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM",
15270            UNITE           =SIMP(statut='f',typ='I',defaut=37),  
15271            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
15272          ),
15273
15274          b_format_ensight  =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT",
15275            UNITE           =SIMP(statut='f',typ='I',defaut=31),  
15276          ),
15277
15278          b_format_med  =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED",
15279            UNITE           =SIMP(statut='f',typ='I',defaut=80),  
15280          ),
15281
15282          b_format_gmsh  =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH",
15283            UNITE           =SIMP(statut='f',typ='I',defaut=37),  
15284            VERSION         =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)),
15285          ),
15286
15287          RESU            =FACT(statut='o',max='**',
15288
15289            regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
15290                    EXCLUS('CHAM_GD','RESULTAT'),),
15291            MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster,squelette)),
15292            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
15293            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
15294
15295            b_info_med  =BLOC(condition="FORMAT=='MED'",
15296              INFO_MAILLAGE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15297            ),
15298
15299            b_sensibilite   =BLOC(condition="RESULTAT != None",
15300                                  fr="Définition des paramètres de sensibilité",
15301                                  ang="Definition of sensitivity parameters",
15302              regles=(DERIVABLE('RESULTAT'),),
15303              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
15304                                    fr="Liste des paramètres de sensibilité.",
15305                                    ang="List of sensitivity parameters"),),
15306
15307            b_partie        =BLOC(condition="""(AsType(RESULTAT) in (dyna_harmo, acou_harmo) or  
15308                           AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""",
15309              PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
15310            ),
15311            b_extrac        =BLOC(condition="RESULTAT != None",
15312                                  fr="extraction d un champ de grandeur",
15313              regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
15314                      EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
15315                             'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
15316              TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
15317              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
15318
15319              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15320              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
15321              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
15322              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
15323              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
15324              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
15325              ANGL            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15326              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15327              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
15328              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
15329              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
15330
15331              b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
15332                PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
15333                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15334              ),
15335            ),
15336 ###
15337            b_parametres    =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
15338              regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
15339              INFO_RESU       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15340              TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
15341              NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
15342              FORM_TABL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
15343            ),
15344 ###
15345            b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
15346            ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""",
15347                                 fr="sélection des composantes",
15348              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
15349              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15350              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
15351            ),
15352 ###
15353            b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
15354                                 fr="sélection des composantes et des entités toplogiques",
15355              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15356              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15357              TYPE_CHAM       =SIMP(statut='f',typ='TXM',defaut="SCALAIRE",
15358                                    into=("VECT_2D","VECT_3D","SCALAIRE","TENS_2D","TENS_3D"),),
15359              b_scal          =BLOC(condition = "TYPE_CHAM=='SCALAIRE'",
15360                NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),),
15361              b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
15362                NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
15363              b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
15364                NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
15365              b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
15366                NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
15367              b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
15368                NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
15369            ),
15370 ###
15371            b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
15372            ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""",
15373                                 fr="sélection des entités topologiques",
15374              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15375              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
15376              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
15377              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15378              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15379            ),
15380 ###
15381            b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')",
15382                                fr="sélection sur les valeurs",
15383              VALE_MAX        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15384              VALE_MIN        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15385              BORNE_SUP       =SIMP(statut='f',typ='R'),
15386              BORNE_INF       =SIMP(statut='f',typ='R'),
15387              IMPR_COOR       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15388              FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
15389            ),
15390
15391            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
15392          ),
15393          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15394 ) ;
15395 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
15396 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15397 # ======================================================================
15398 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15399 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15400 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15401 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15402 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15403 #
15404 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15405 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15406 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15407 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15408 #
15409 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15410 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15411 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15412 # ======================================================================
15413 # RESPONSABLE NISTOR I.NISTOR
15414
15415 IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné",
15416             UIinfo={"groupes":("Résolution",)},
15417          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
15418          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
15419          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
15420                                fr="Type d analyse" ),
15421          b_dynamique  =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
15422                             fr="Recheche du nombre de fréquences propres",
15423              FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
15424              FREQ_MAX        =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
15425          ),
15426          b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
15427                             fr="Recherche du nombre de charges critiques",
15428              CHAR_CRIT_MIN   =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
15429              CHAR_CRIT_MAX   =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
15430          ),
15431          NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
15432          NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
15433          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
15434          PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
15435          SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
15436 )  ;
15437 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR CNGUYEN C.NGUYEN 
15438 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15439 # ======================================================================
15440 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15441 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15442 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15443 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15444 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15445 #
15446 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15447 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15448 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15449 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15450 #
15451 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15452 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15453 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15454 # ======================================================================
15455 # RESPONSABLE COURTOIS M.COURTOIS
15456 from Macro.impr_table_ops import impr_table_ops
15457
15458 IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None,
15459             UIinfo={"groupes":("Impression",)},
15460                 fr="Impression du contenu d'une table dans un fichier",
15461            regles=(DERIVABLE("TABLE"),),
15462    TABLE          =SIMP(statut='o',typ=table_sdaster),
15463    SENSIBILITE    =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
15464                          fr="Liste des paramètres de sensibilité.",
15465                          ang="List of sensitivity parameters"),
15466    FORMAT         =SIMP(statut='f',typ='TXM',defaut="TABLEAU",
15467                          into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),),
15468    b_pilote       =BLOC(condition = "FORMAT == 'XMGRACE'",
15469                         fr="Mots-clés propres à XMGRACE",
15470       PILOTE         =SIMP(statut='f',typ='TXM',defaut='',
15471                            into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
15472                       fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
15473       UNITE          =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
15474                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
15475    ),
15476    b_unite        =BLOC(condition = "FORMAT != 'XMGRACE'",
15477       UNITE          =SIMP(statut='f',typ='I',defaut=8,
15478                            fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
15479    ),
15480    FILTRE         =FACT(statut='f',max='**',
15481       NOM_PARA       =SIMP(statut='o',typ='TXM'),
15482       CRIT_COMP      =SIMP(statut='f',typ='TXM',defaut="EQ",
15483                            into=("EQ","LT","GT","NE","LE","GE","VIDE",
15484                                  "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),),
15485       b_vale         =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
15486          regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
15487          VALE           =SIMP(statut='f',typ='R',max='**'),
15488          VALE_I         =SIMP(statut='f',typ='I',max='**'),
15489          VALE_C         =SIMP(statut='f',typ='C',max='**'),
15490          VALE_K         =SIMP(statut='f',typ='TXM',max='**'),
15491       ),
15492       b_crit         =BLOC(condition = "CRIT_COMP in ('EQ','NE')",
15493          CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15494          PRECISION      =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
15495       ),
15496    ),
15497    TRI            =FACT(statut='f',
15498       NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
15499       ORDRE          =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**',
15500                            into=("CROISSANT","DECROISSANT") ),
15501    ),
15502    PAGINATION     =SIMP(statut='f',typ='TXM',max='**'),
15503    FORMAT_R       =SIMP(statut='f',typ='TXM',defaut="E12.5"),
15504    FORMAT_C       =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",
15505                               into=("MODULE_PHASE","REEL_IMAG") ),
15506    NOM_PARA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
15507    IMPR_FONCTION  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
15508
15509    # Mise en page du tableau ou du graphique
15510    b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
15511                     fr="Mots-clés propres au format Tableau",
15512       SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
15513                             fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
15514       COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
15515                             fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
15516       COMM_PARA       =SIMP(statut='f',typ='TXM',defaut='',
15517                             fr="Caractère utilisé pour commentariser la ligne des labels de colonnes"),
15518       DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
15519                             fr="Caractère de debut de ligne"),
15520       FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
15521                             fr="Caractère de fin de ligne"),
15522     ),
15523
15524    # mise en forme pour les formats qui passent par Graph
15525    b_forme         =BLOC(condition = "FORMAT == 'XMGRACE'",
15526                          fr="Données de mise en forme du graphique",
15527       # pour la courbe
15528       LEGENDE         =SIMP(statut='f',typ='TXM',
15529                             fr="Légende associée à la fonction" ),
15530       STYLE           =SIMP(statut='f',typ='I',val_min=0,
15531                             fr="Style de la ligne représentant la fonction",),
15532       COULEUR         =SIMP(statut='f',typ='I',val_min=0,
15533                             fr="Couleur associée à la fonction",),
15534       MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
15535                             fr="Type du marqueur associé à la fonction",),
15536       FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
15537                             fr="Fréquence d impression du marqueur associé à la fonction", ),
15538       # format du graphique
15539       BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
15540                             fr="Intervalles de variation des abscisses"),
15541       BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
15542                             fr="Intervalles de variation des ordonnées"),
15543       ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
15544                             fr="Type d'échelle pour les abscisses" ),
15545       ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
15546                             fr="Type d'échelle pour les ordonnées" ),
15547       GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
15548                             fr="Pas du quadrillage vertical" ),
15549       GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
15550                             fr="Pas du quadrillage horizontal" ),
15551       LEGENDE_X       =SIMP(statut='f',typ='TXM',
15552                             fr="Légende associée à l'axe des abscisses" ),
15553       LEGENDE_Y       =SIMP(statut='f',typ='TXM',
15554                             fr="Légende associée à l'axe des ordonnées" ),
15555    ),
15556
15557    TITRE          =SIMP(statut='f',typ='TXM',max='**'),
15558    INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15559 )  
15560 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15561 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15562 # ======================================================================
15563 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15564 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15565 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15566 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15567 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15568 #
15569 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15570 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15571 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15572 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15573 #
15574 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15575 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15576 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15577 # ======================================================================
15578 # RESPONSABLE DURAND C.DURAND
15579 INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include,
15580             UIinfo={"groupes":("Gestion du travail",)},
15581              fr="Débranchement vers un fichier de commandes secondaires",
15582              sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1,
15583          UNITE = SIMP(statut='o',typ='I'),
15584          INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15585 );
15586 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15587 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15588 # ======================================================================
15589 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15590 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15591 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15592 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15593 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15594 #
15595 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15596 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15597 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15598 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15599 #
15600 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15601 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15602 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15603 # ======================================================================
15604 # RESPONSABLE DURAND C.DURAND
15605 INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,
15606             UIinfo={"groupes":("Modélisation",)},
15607          fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ",
15608          sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
15609          NOM_AFNOR       =SIMP(statut='o',typ='TXM' ),  
15610          TYPE_MODELE     =SIMP(statut='o',typ='TXM',into=("REF","PAR") ),
15611          VARIANTE        =SIMP(statut='o',typ='TXM',     
15612                                into=("A","B","C","D","E","F","G","H","I","J",    
15613                                      "K","L","M","N","O","P","Q","R","S","T","U","V",   
15614                                      "W","X","Y","Z",) ),
15615          TYPE_VALE       =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ),
15616          NOM_MATER       =SIMP(statut='o',typ='TXM' ),  
15617          UNITE           =SIMP(statut='f',typ='I',defaut= 32 ),  
15618          EXTRACTION      =FACT(statut='f',max=99,
15619            COMPOR          =SIMP(statut='o',typ='TXM' ),  
15620            TEMP_EVAL       =SIMP(statut='o',typ='R' ),  
15621          ),
15622          UNITE_LONGUEUR  =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ),  
15623          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
15624 )  ;
15625 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15626 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15627 # ======================================================================
15628 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
15629 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
15630 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
15631 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
15632 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
15633 #                                                                       
15634 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
15635 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
15636 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
15637 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15638 #                                                                       
15639 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
15640 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
15641 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
15642 # ======================================================================
15643 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
15644 INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
15645                     fr="Récupère différentes informations propres à l'exécution en cours",
15646                     reentrant='n',
15647                     UIinfo={"groupes":("Gestion du travail",)},
15648
15649          regles=(),
15650          LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
15651                               into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
15652          b_etat_unite   =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", 
15653             regles=(UN_PARMI('UNITE','FICHIER'),),
15654             UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
15655                                  fr="Unité logique dont on veut obtenir l'état",),
15656             FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
15657                                  fr="Nom du fichier dont on veut obtenir l'état",),
15658          ),
15659          TITRE          =SIMP(statut='f',typ='TXM',max='**'),
15660          INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15661 )  ;
15662 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15663 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15664 # ======================================================================
15665 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
15666 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
15667 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
15668 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
15669 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
15670 #                                                                       
15671 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
15672 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
15673 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
15674 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15675 #                                                                       
15676 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
15677 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
15678 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
15679 # ======================================================================
15680 # RESPONSABLE COURTOIS M.COURTOIS
15681 from Macro.info_fonction_ops import info_fonction_ops
15682 def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args):
15683    if (RMS         != None): return table_sdaster
15684    if (MAX         != None): return table_sdaster
15685    if (NOCI_SEISME != None): return table_sdaster
15686    if (ECART_TYPE  != None): return table_sdaster
15687    if (NORME       != None): return table_sdaster
15688    raise AsException("type de concept resultat non prevu")
15689
15690 INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod
15691                     ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe",
15692                      reentrant='n',
15693             UIinfo={"groupes":("Fonction",)},
15694          regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),),
15695          RMS             =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**',
15696            METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
15697            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
15698            INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
15699            INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
15700            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15701            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
15702          ),
15703          NOCI_SEISME     =FACT(statut='f',
15704            regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
15705            FONCTION        =SIMP(statut='f',typ=fonction_sdaster ),
15706            SPEC_OSCI       =SIMP(statut='f',typ=nappe_sdaster ),
15707            b_option_f      =BLOC(condition="""FONCTION !=None""",
15708              OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**',
15709                                    into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
15710                                          "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ),
15711              b_amor_red          =BLOC(condition="""OPTION in ("TOUT", "INTE_SPEC") """,
15712                 AMOR_REDUIT     =SIMP(statut='o',typ='R'),),
15713              b_pesanteur         =BLOC(condition="""OPTION in ("TOUT", "INTE_ARIAS", "POUV_DEST", "DUREE_PHAS_FORT") """,
15714                 PESANTEUR       =SIMP(statut='o',typ='R'),),
15715            ),
15716            b_option_n      =BLOC(condition="""SPEC_OSCI !=None""",
15717              OPTION          =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ),
15718              NATURE          =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ),
15719              AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),
15720            INST_INIT       =SIMP(statut='f',typ='R'),
15721            INST_FIN        =SIMP(statut='f',typ='R'),
15722            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
15723            FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
15724            FREQ_FIN        =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
15725            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
15726            FREQ            =SIMP(statut='f',typ='R',max='**'),
15727            NORME           =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
15728            BORNE_INF       =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
15729            BORNE_SUP       =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
15730            b_acce_reel     =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
15731              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,val_min=0.E+0),
15732              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15733            ),
15734          ),
15735          MAX             =FACT(statut='f',fr="Extrémas locaux d'une fonction",
15736            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
15737          ),
15738          NORME           =FACT(statut='f',fr="Norme L2 d'une fonction",
15739             FONCTION      =SIMP(statut='o', typ=nappe_sdaster),
15740          ),     
15741          ECART_TYPE      =FACT(statut='f',fr="Ecart-type d'une fonction",
15742             METHODE       =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
15743             FONCTION      =SIMP(statut='o',typ=fonction_sdaster),
15744             INST_INIT     =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
15745             INST_FIN      =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
15746             CRITERE       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
15747             PRECISION     =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
15748          ),     
15749          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
15750 )
15751 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15752 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15753 # ======================================================================
15754 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15755 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15756 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15757 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15758 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15759 #
15760 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15761 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15762 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15763 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15764 #
15765 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15766 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15767 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15768 # ======================================================================
15769 # RESPONSABLE DESROCHES X.DESROCHES
15770 INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
15771             UIinfo={"groupes":("Post traitements",)},
15772                   fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
15773
15774          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
15775
15776          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
15777                  AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
15778                  PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
15779                  PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
15780                  PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
15781                  EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
15782                  EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
15783                  EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
15784
15785          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15786          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15787          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15788
15789          DEFI_SEGMENT    =FACT(statut='f',max='**',
15790            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
15791                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
15792            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
15793            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15794            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15795            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
15796            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
15797            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
15798          ),
15799
15800          DEFI_ARC        =FACT(statut='f',max='**',
15801            regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
15802                    UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
15803                    UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),               
15804                    PRESENT_PRESENT('RAYON','SECTEUR'),),
15805            CENTRE          =SIMP(statut='f',typ='R',min=2,max=2),  
15806            NOEUD_CENTRE    =SIMP(statut='f',typ=no,),
15807            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,),
15808            RAYON           =SIMP(statut='f',typ='R',val_min=0.E+0),  
15809            SECTEUR         =SIMP(statut='f',typ='R',min=2,max=2,
15810                                  val_min=-180.E+0,val_max=180E+0),  
15811            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
15812            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15813            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15814            EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
15815            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
15816            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
15817            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
15818            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",    
15819                                  into=("RELATIF","ABSOLU",) ),
15820          ),
15821
15822          DEFI_CHEMIN     =FACT(statut='f',max='**',
15823            regles=(UN_PARMI('MAILLE','GROUP_MA'),),
15824            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15825            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15826          ),
15827
15828          NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15829          GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15830          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
15831          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15832 )  ;
15833 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15834 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15835 # ======================================================================
15836 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15837 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15838 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15839 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15840 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15841 #
15842 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15843 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15844 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15845 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15846 #
15847 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15848 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15849 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15850 # ======================================================================
15851 # RESPONSABLE DESROCHES X.DESROCHES
15852 INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
15853             UIinfo={"groupes":("Post traitements",)},
15854                   fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n',
15855          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
15856          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
15857          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
15858          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
15859          DEFI_SEGMENT    =FACT(statut='o',max='**',
15860            regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
15861                    UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
15862            ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
15863            NOEUD_ORIG      =SIMP(statut='f',typ=no,),
15864            GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
15865            EXTREMITE       =SIMP(statut='f',typ='R',min=3,max=3),  
15866            NOEUD_EXTR      =SIMP(statut='f',typ=no,),
15867            GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
15868          ),
15869          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
15870          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
15871 )  ;
15872 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15873 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15874 # ======================================================================
15875 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15876 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15877 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15878 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15879 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15880 #
15881 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15882 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15883 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15884 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15885 #
15886 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15887 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15888 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15889 # ======================================================================
15890 # RESPONSABLE COURTOIS M.COURTOIS
15891 def lire_champ_prod(TYPE_CHAM=None,**args):
15892 # Remarque : si cette liste évolue, il faut penser à mettre à jour son
15893 #            homologue dans macr_adap_mail
15894   import string
15895 #  
15896   if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster
15897   if TYPE_CHAM[0:2] == "EL"    : return cham_elem
15898   raise AsException("type de concept resultat non prevu")
15899
15900 LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
15901                 fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.",
15902                 reentrant='n',UIinfo={"groupe":("Résultats et champs",)},
15903          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster,),
15904          FORMAT          =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),),
15905          UNITE           =SIMP(statut='f',typ='I',defaut= 81,),  
15906          b_format =BLOC(condition = "FORMAT == 'MED'",
15907          regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
15908                   PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),
15909                   EXCLUS('NUME_ORDRE','INST'),
15910                   EXCLUS('NUME_PT','INST'),),
15911             NOM_MED      =SIMP(statut='o',typ='TXM', ),
15912             NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ),
15913             NOM_CMP      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
15914             NOM_CMP_MED  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
15915             PROL_ZERO    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),
15916                fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"),
15917             NUME_PT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',),
15918             NUME_ORDRE   =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',
15919                            fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ),
15920             INST         =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ),
15921 #
15922             b_precision     =BLOC(condition="(INST != None)",
15923               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,
15924               fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),
15925               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
15926               fr="Critère de précision sur le choix de l'instant associé",
15927               ang="Accuracy criterium over instant choice" ),),
15928 #
15929             NOM_MAIL_MED =SIMP(statut='f',typ='TXM',),
15930                   ),
15931 #        Remarque : si cette liste évolue, il faut penser à mettre à jour son
15932 #                   homologue dans macr_adap_mail
15933          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
15934          b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'",
15935             MODELE      =SIMP(statut='o',typ=modele_sdaster, ),
15936                   ),
15937          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
15938 )  ;
15939 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
15940 #            CONFIGURATION MANAGEMENT OF EDF VERSION
15941 # ======================================================================
15942 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
15943 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
15944 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
15945 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
15946 # (AT YOUR OPTION) ANY LATER VERSION.                                 
15947 #
15948 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
15949 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
15950 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
15951 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
15952 #
15953 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
15954 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
15955 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
15956 # ======================================================================
15957 # RESPONSABLE COURTOIS M.COURTOIS
15958
15959 from Macro.lire_fonction_ops import lire_fonction_ops
15960
15961 def lire_fonction_prod(self,TYPE,**args):
15962   if   (TYPE == 'FONCTION')  : return fonction_sdaster
15963   elif (TYPE == 'FONCTION_C'): return fonction_c
15964   elif (TYPE == 'NAPPE'   )  : return nappe_sdaster
15965   raise AsException("type de concept resultat non prevu")
15966
15967 LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod,
15968                    fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et"
15969                      +" crée un concept de type fonction ou nappe",
15970                    reentrant='n',
15971             UIinfo={"groupes":("Fonction",)},
15972          FORMAT          =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE"  ),
15973          TYPE            =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION"  ),
15974          SEPAR           =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ),
15975          INDIC_PARA      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]),
15976          b_fonction      =BLOC(condition = "TYPE=='FONCTION' ",
15977            INDIC_RESU      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ),
15978          b_fonction_c    =BLOC(condition = "TYPE=='FONCTION_C' ",
15979            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ),
15980            b_reel_imag     =BLOC(condition = "FORMAT_C=='REEL_IMAG' ",
15981              INDIC_REEL      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
15982              INDIC_IMAG      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) ,
15983            b_modu_phas     =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ",
15984              INDIC_MODU      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
15985              INDIC_PHAS      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ),
15986          b_nappe         =BLOC(condition = "TYPE=='NAPPE' ",
15987            NOM_PARA_FONC   =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
15988            INDIC_ABSCISSE  =SIMP(statut='o',typ='I',min=2,max=2,),
15989            INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
15990            PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15991            PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15992            DEFI_FONCTION   =FACT(statut='f',max='**',
15993              INDIC_RESU      =SIMP(statut='o',typ='I',min=2,max=2,),),  ),
15994          UNITE           =SIMP(statut='o',typ='I' ),
15995          NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
15996          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
15997          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
15998          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
15999          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
16000          VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
16001          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16002          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16003 )  ;
16004 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16005 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16006 # ======================================================================
16007 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
16008 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16009 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16010 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16011 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16012 #                                                                       
16013 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16014 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16015 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16016 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16017 #                                                                       
16018 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16019 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16020 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16021 # ======================================================================
16022 # RESPONSABLE DEVESA G.DEVESA
16023 LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene,
16024                     fr="Création d un vecteur assemblé à partir de base modale",
16025                     reentrant='n',
16026             UIinfo={"groupes":("Matrices/vecteurs",)},           
16027          BASE            =SIMP(statut='o',typ=base_modale ),
16028          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
16029          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
16030          NOM_CMP         =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
16031          NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
16032          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),
16033 )  ;
16034
16035 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16036 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16037 # ======================================================================
16038 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
16039 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16040 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16041 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16042 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16043 #                                                                       
16044 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16045 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16046 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16047 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16048 #                                                                       
16049 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16050 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16051 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16052 # ======================================================================
16053 # RESPONSABLE DEVESA G.DEVESA
16054 LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
16055                     fr="Création d une matrice assemblée à partir de base modale",
16056                     reentrant='n',
16057             UIinfo={"groupes":("Matrices/vecteurs",)},           
16058          BASE            =SIMP(statut='o',typ=base_modale ),
16059          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
16060          FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
16061          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
16062          TYPE            =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ),         
16063 )  ;
16064
16065 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16066 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16067 # ======================================================================
16068 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16069 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16070 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16071 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16072 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16073 #
16074 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16075 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16076 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16077 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16078 #
16079 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16080 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16081 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16082 # ======================================================================
16083 # RESPONSABLE ZENTNER I.ZENTNER
16084
16085 from Macro.lire_inte_spec_ops import lire_inte_spec_ops
16086
16087 LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_fonction,
16088                     fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale",
16089                     reentrant='n',
16090             UIinfo={"groupes":("Fonction",)},
16091          UNITE           =SIMP(statut='o',typ='I' ),
16092          FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ),
16093          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS") ),
16094          NOM_PARA        =SIMP(statut='f',typ='TXM',defaut="FREQ",
16095                                into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
16096                                      "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
16097          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="DSP" ),
16098          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
16099          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
16100          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
16101          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16102          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16103 )  ;
16104 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16105 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16106 # ======================================================================
16107 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16108 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16109 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16110 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16111 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16112 #
16113 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16114 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16115 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16116 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16117 #
16118 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16119 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16120 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16121 # ======================================================================
16122 # RESPONSABLE PELLET J.PELLET
16123 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
16124                    fr="Crée un maillage par lecture d'un fichier au format Aster ou Med",
16125                    ang="Readings of a mesh file",
16126                    reentrant='n',
16127             UIinfo={"groupes":("Maillage",)},
16128 #
16129          UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
16130 #
16131          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
16132                             fr="Format du fichier : ASTER ou MED.",
16133                             ang="Format of the file : ASTER or MED.",),
16134 #
16135          ABSC_CURV       =FACT(statut='f',min=0,
16136                TOUT          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16137          ),
16138 #
16139          VERI_MAIL       =FACT(statut='d',
16140                VERIF         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
16141                APLAT         =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
16142          ),
16143 #
16144          b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
16145                              fr="Informations complémentaires pour la lecture MED.",
16146                              ang="Further information for MED readings.",
16147 #
16148 # Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
16149 # le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
16150             NOM_MED    = SIMP(statut='f',typ='TXM',
16151                               fr="Nom du maillage dans le fichier MED.",
16152                               ang="Name of the mesh into the MED file.",),
16153             INFO_MED   = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
16154 #
16155             RENOMME = FACT(statut='f', max='**',
16156                                  fr="Renommer un nom de groupe MED",
16157                  NOM_MED     = SIMP(statut='o', typ=grma,
16158                                     fr="Nom du groupe dans le fichier MED"),
16159                  NOM         = SIMP(statut='o', typ=grma, validators=LongStr(1,8),
16160                                     fr="Nom du groupe dans le maillage ASTER"),
16161             ),
16162          ),
16163 #
16164          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
16165 #
16166 )  ;
16167 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16168 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16169 # ======================================================================
16170 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16171 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16172 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16173 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16174 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16175 #
16176 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16177 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16178 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16179 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16180 #
16181 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16182 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16183 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16184 # ======================================================================
16185 # RESPONSABLE DEVESA G.DEVESA
16186 def lire_miss_3d_prod(TYPE_RESU,**args):
16187   if TYPE_RESU == "TRANS" : return dyna_trans
16188   if TYPE_RESU == "HARMO" : return dyna_harmo
16189   raise AsException("type de concept resultat non prevu")
16190
16191 LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
16192                   fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D",
16193                   reentrant='n',
16194             UIinfo={"groupes":("Maillage",)},
16195          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
16196          UNITE           =SIMP(statut='f',typ='I',defaut= 27 ),
16197          NOM             =SIMP(statut='f',typ='TXM' ),
16198          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
16199          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16200 )  ;
16201 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16202 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16203 # ======================================================================
16204 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16205 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16206 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16207 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16208 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16209 #
16210 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16211 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16212 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16213 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16214 #
16215 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16216 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16217 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16218 # ======================================================================
16219 # RESPONSABLE POTAPOV S.POTAPOV
16220
16221 LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
16222                  fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS",
16223                  reentrant='n',
16224             UIinfo={"groupes":("Maillage",)},
16225          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
16226          UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16227          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
16228          MAIL_PLEXUS     =SIMP(statut='o',typ=maillage_sdaster ),
16229          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
16230          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
16231          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16232          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
16233          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
16234          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16235          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
16236          b_prec_crit     =BLOC(condition = "LIST_INST != None or INST != None",
16237              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
16238              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
16239                                    into=("RELATIF","ABSOLU") ),
16240          ),
16241          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16242 )  ;
16243 #& MODIF COMMANDE  DATE 02/06/2008   AUTEUR PELLET J.PELLET 
16244 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16245 # ======================================================================
16246 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16247 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16248 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16249 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
16250 # (AT YOUR OPTION) ANY LATER VERSION.
16251 #
16252 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
16253 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
16254 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
16255 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16256 #
16257 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16258 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16259 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
16260 # ======================================================================
16261 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
16262
16263 def lire_resu_prod(TYPE_RESU,**args):
16264   if TYPE_RESU == "EVOL_CHAR" :  return evol_char
16265   if TYPE_RESU == "EVOL_THER" :  return evol_ther
16266   if TYPE_RESU == "EVOL_ELAS" :  return evol_elas
16267   if TYPE_RESU == "EVOL_NOLI" :  return evol_noli
16268   if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
16269   if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
16270   if TYPE_RESU == "HARM_GENE" :  return harm_gene
16271   if TYPE_RESU == "MODE_MECA" :  return mode_meca
16272   if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c
16273   if TYPE_RESU == "EVOL_VARC" :  return evol_varc
16274   raise AsException("type de concept resultat non prevu")
16275
16276 # pour éviter d'écrire 3 fois cette liste :
16277 def l_nom_cham_pas_elga(): return (
16278      "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM",
16279      "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL",
16280      "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE",
16281      "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL",
16282      "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO",
16283      "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL",
16284      "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU",
16285      "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL",
16286      "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI",
16287      "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1",
16288      "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM",
16289      "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D",
16290      "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA",
16291      "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA",
16292      "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF",
16293      "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL",
16294      "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL",
16295      "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA",
16296      "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO",
16297      "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF",
16298      "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU",
16299      "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA",
16300      "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL",
16301      "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA",
16302      "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU",
16303      "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA",
16304      "VITE", "VITE_ABSOLU", "VITE_VENT",
16305                            )
16306
16307 LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
16308             UIinfo={"groupes":("Résultats et champs",)},
16309                fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED,"
16310                  +" des champs et les stocker dans une SD résultat",
16311
16312
16313 # 0) mots clés généraux :
16314 #----------------------
16315          TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA",
16316                                                           "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE",
16317                                                           "EVOL_CHAR","EVOL_VARC") ),
16318
16319          FORMAT          =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ),
16320
16321          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
16322          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16323
16324          regles=(UN_PARMI('MAILLAGE','MODELE'),),
16325          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
16326          MODELE          =SIMP(statut='f',typ=modele_sdaster),
16327          COMP_INCR       =C_COMP_INCR(),
16328          NB_VARI         =SIMP(statut='f',typ='I' ),
16329
16330          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,),
16331          
16332          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,),
16333
16334           b_evol_elas  = BLOC(condition="TYPE_RESU=='EVOL_ELAS'",
16335           EXCIT           =FACT(statut='f',max='**',
16336             CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
16337             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16338             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),),
16339            ),
16340
16341           b_evol_ther  = BLOC(condition="TYPE_RESU=='EVOL_THER'",
16342           EXCIT           =FACT(statut='f',max='**',
16343             CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
16344             FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
16345            ),
16346
16347           b_evol_noli  = BLOC(condition="TYPE_RESU=='EVOL_NOLI'",
16348           EXCIT           =FACT(statut='f',max='**',
16349            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
16350            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16351            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
16352                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
16353            DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16354            ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16355            VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
16356            MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
16357            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
16358            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
16359            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
16360          ),
16361
16362
16363 # 1) blocs selon le format choisi :
16364 #---------------------------------
16365
16366 # 1-1 ideas dataset-58 :
16367 # ----------------------
16368          b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'",
16369            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16370          ),
16371          b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\
16372                                         (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))",
16373            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16374            NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ),
16375            REDEFI_ORIENT=FACT(statut='f',max='**',
16376                               regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),),
16377                               CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ),
16378                               DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,),
16379                               NOEUD    =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),),
16380          ),
16381
16382 # 1-2 ideas  :
16383 # ---------
16384          b_ideas         =BLOC(condition="FORMAT=='IDEAS'",
16385            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
16386 #           TEST            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
16387            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
16388            FORMAT_IDEAS    =FACT(statut='f',max='**',
16389              regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
16390              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
16391              NUME_DATASET    =SIMP(statut='f',typ='I',into=(55,57,2414) ),
16392              RECORD_3        =SIMP(statut='f',typ='I',max=10),
16393              RECORD_6        =SIMP(statut='f',typ='I',max=10),
16394              RECORD_9        =SIMP(statut='f',typ='I',max=10),
16395              POSI_ORDRE      =SIMP(statut='o',typ='I',min=2,max=2),
16396              POSI_NUME_MODE  =SIMP(statut='f',typ='I',min=2,max=2),
16397              POSI_MASS_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
16398              POSI_AMOR_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
16399              POSI_INST       =SIMP(statut='f',typ='I',min=2,max=2),
16400              POSI_FREQ       =SIMP(statut='f',typ='I',min=2,max=2),
16401              NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),),
16402          ),
16403 # 1-3 ensight :
16404 # -------------
16405          b_ensight       =BLOC(condition="FORMAT=='ENSIGHT'",
16406            NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
16407            NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
16408          ),
16409
16410 # 1-4 med :
16411 # ---------
16412          b_med           =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
16413            UNITE           =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",),
16414            FORMAT_MED      =FACT(statut='f',max='**',
16415              regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),),
16416              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO(),),
16417              NOM_CHAM_MED    =SIMP(statut='o',typ='TXM',               fr="Nom du champ dans le fichier MED.",  ),
16418              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans ASTER.", ),
16419              NOM_CMP_MED     =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans MED.", ),
16420            ),
16421            PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",),
16422             fr="Affecte des valeurs nulles la ou le champ n'est pas defini (sinon il y a NaN)"),
16423          ),
16424
16425 # 2) blocs selon le type du résultat :
16426 #---------------------------------
16427          b_mode_meca     =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')",
16428            MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r,),
16429            MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r,),
16430          ),
16431
16432
16433 # 3) autres blocs :
16434 #---------------------------------
16435          b_extrac        =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat",
16436            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),),
16437            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
16438            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
16439            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16440            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
16441            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
16442            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
16443            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
16444
16445            b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
16446              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
16447              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
16448            ),
16449          ),
16450 )  ;
16451 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16452 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16453 # ======================================================================
16454 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
16455 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16456 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16457 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16458 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16459 #                                                                       
16460 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16461 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16462 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16463 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16464 #                                                                       
16465 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16466 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16467 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16468 # ======================================================================
16469 # RESPONSABLE COURTOIS M.COURTOIS
16470
16471 from Macro.lire_table_ops import lire_table_ops
16472
16473 LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster,
16474                  fr="Lecture d'un fichier contenant une table",
16475             UIinfo={"groupes":("Table",)},
16476          UNITE           =SIMP(statut='o',typ='I' ),
16477          FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
16478          NUME_TABLE      =SIMP(statut='f',typ='I',defaut=1),
16479          SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' '),
16480          PARA            =SIMP(statut='f',typ='TXM',max='**'),
16481          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
16482          )  ;
16483
16484 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16485 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16486 # ======================================================================
16487 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
16488 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
16489 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
16490 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
16491 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
16492 #                                                                       
16493 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
16494 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
16495 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
16496 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
16497 #                                                                       
16498 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
16499 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
16500 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
16501 # ======================================================================
16502 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
16503
16504 MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
16505                fr="Normalisation de modes propres",
16506                reentrant='n',
16507             UIinfo={"groupes":("Résolution",)},
16508          BASE_1       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
16509          BASE_2       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
16510          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
16511          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
16512          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
16513 )  ;
16514 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
16515 #            CONFIGURATION MANAGEMENT OF EDF VERSION
16516 # ======================================================================
16517 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
16518 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
16519 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
16520 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
16521 # (AT YOUR OPTION) ANY LATER VERSION.                                 
16522 #
16523 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
16524 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
16525 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
16526 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
16527 #
16528 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
16529 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
16530 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
16531 # ======================================================================
16532 # RESPONSABLE GNICOLAS G.NICOLAS
16533
16534
16535 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
16536
16537 def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
16538 #
16539 # 0. Typage des structures produites
16540 #
16541   maillage_np1=args['MAILLAGE_NP1']
16542   self.type_sdprod(maillage_np1,maillage_sdaster)
16543 #
16544   if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) :
16545     maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE']
16546     self.type_sdprod(maillage_np1_annexe,maillage_sdaster)
16547 #
16548   if MAJ_CHAM == None:return None
16549 # Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP
16550   for ch in MAJ_CHAM:
16551     t=ch['TYPE_CHAM']
16552     if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster)
16553     if t[0:2] == "EL":   self.type_sdprod(ch['CHAM_MAJ'],cham_elem)
16554   return None
16555
16556
16557 MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod,
16558                      fr="Adapter un maillage avec le logiciel HOMARD.",
16559                      ang="Mesh adaptation with HOMARD software.",
16560                      docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)},
16561 #
16562 # 1. Le niveau d'information
16563 #
16564   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
16565 #
16566 # 2. Version de HOMARD
16567 #
16568   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_11",
16569                         into=("V8_11", "V8_N", "V8_N_PERSO"),
16570                         fr="Version de HOMARD",
16571                         ang="HOMARD release"),
16572 #
16573 # 3. Langue des messages produits par HOMARD
16574 #
16575   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
16576                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
16577                 fr="Langue des messages produits par HOMARD.",
16578                 ang="Language for HOMARD messages." ),
16579 #
16580 # 4. Les maillages
16581 # 4.1. Quel que soit le type de traitement, il faut donner  :
16582 #      A. Le concept du maillage initial (entree)
16583 #      B. Le concept du maillage final (sortie)
16584 #
16585   MAILLAGE_N   = SIMP(statut='o',typ=maillage_sdaster,
16586                       fr="Maillage avant adaptation",
16587                       ang="Mesh before adaptation" ),
16588 #
16589   MAILLAGE_NP1 = SIMP(statut='o',typ=CO,
16590                       fr="Maillage apres adaptation",
16591                       ang="Mesh after adaptation" ),
16592 #
16593 # 4.2. Eventuellement, on peut produire un maillage annexe
16594 #      Actuellement, c'est le maillage n+1, mais de degré différent.
16595 #
16596   MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO,
16597                              fr="Maillage annexe apres adaptation",
16598                              ang="Additional mesh after adaptation" ),
16599 #
16600 # 5. Le pilotage de l'adaptation, avec les variantes suivantes :
16601 #  . Raffinement et deraffinement, selon un champ d'indicateurs d'erreur
16602 #  . Raffinement seul, selon un champ d'indicateurs d'erreur
16603 #  . Deraffinement seul, selon un champ d'indicateurs d'erreur
16604 #  . Raffinement seul, selon des zones geometriques
16605 #  . Raffinement uniforme : toutes les mailles sont divisées
16606 #  . Deraffinement uniforme : toutes les mailles sont regroupées
16607 #  . Rien : le maillage est le meme a la sortie et a l'entree
16608 #
16609   ADAPTATION = SIMP(statut='o',typ='TXM',
16610                     into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \
16611                           "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME","RIEN"),    
16612                     fr="Pilotage de l'adaptation : selon un indicateur d'erreur ou uniforme.",
16613                     ang="Adaptation control : among an error indicator or uniform" ),
16614 #
16615 # 6. Pour de l'adaptation libre, il faut un indicateur d'erreur
16616 #
16617   b_indicateur_d_erreur = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16618                                               (ADAPTATION == 'RAFFINEMENT') or \
16619                                               (ADAPTATION == 'DERAFFINEMENT') " ,
16620                                 fr="Pour une adaptation libre, choix de l'indicateur d'erreur ou d'une zone à raffiner",
16621                                 ang="For free adaptation, selection of error indicator or zone",
16622 #
16623     regles=(UN_PARMI('CHAM_GD','RESULTAT_N')),
16624 #
16625 # 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur
16626 #
16627 # 6.1.1. Sous forme de champ de grandeur
16628 #
16629     CHAM_GD    = SIMP(statut='f',typ=cham_gd_sdaster,
16630                       fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur",
16631                       ang="Code_Aster champ de grandeur with error indicator" ),
16632 #
16633 # 6.1.2. Sous forme de concept resultat_sdaster
16634 #
16635     RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ,
16636                       fr="Concept resultat Code_Aster contenant l'indicateur d'erreur",
16637                       ang="Code_Aster result with error indicator" ),
16638 #
16639     b_champ_indicateur = BLOC(condition="(RESULTAT_N != None)",
16640       INDICATEUR = SIMP(statut='o',typ='TXM',     
16641                         fr="Champ de l'indicateur d'erreur dans le résultat",
16642                         ang="Error indicator field in the result structure" ),
16643     ),
16644 #
16645 # 6.1.3. Est-ce un champ dérivé
16646 #
16647     b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16648                         fr="Est-ce un champ dérivé",
16649                         ang="Is the indicator a derivative field",
16650 #
16651       SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),
16652                          fr="Paramètre de sensibilité.",
16653                          ang="Sensitivity parameter")
16654 #
16655     ),
16656 #
16657 # 6.1.4. La composante retenue
16658 #
16659     b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16660                         fr="Choix de la composante pour l'indicateur",
16661                         ang="Component selection for error indicator",
16662 #
16663       NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
16664                             fr="Composante retenue pour l'indicateur d'erreur",
16665                             ang="Selected component for error indicator" ),
16666 #
16667     ),
16668 #
16669 # 6.1.5. Le paramètre temporel pour l'indicateur
16670 #
16671     b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)",
16672                                 fr="Choix éventuel du paramètre temporel pour l'indicateur",
16673                                 ang="Time selection for error indicator (option)",
16674 #
16675       regles=(EXCLUS('NUME_ORDRE','INST'),),
16676 #
16677 # 6.1.5.1. Soit le numero d'ordre
16678 #
16679       NUME_ORDRE = SIMP(statut='f',typ='I',
16680                         fr="Numero d ordre",
16681                         ang="Rank" ),  
16682 #
16683 # 6.1.5.2. Soit l'instant
16684 # 6.1.5.2.1. Sa valeur
16685 #
16686       INST       = SIMP(statut='f',typ='R',
16687                         fr="Instant associé",
16688                         ang="Instant" ),
16689 #
16690 # 6.1.5.2.2. La précision du choix de l'instant
16691 #
16692       b_precision = BLOC(condition="(INST != None)",
16693                          fr="Choix de la précision du choix de l'instant",
16694                          ang="Selection for instant choice",
16695         PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
16696                          fr="Précision sur le choix de l'instant associé",
16697                          ang="Accuracy over instant choice" ),
16698         CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
16699                          fr="Critère de précision sur le choix de l'instant associé",
16700                          ang="Accuracy criterium over instant choice" ),
16701       ),
16702 #
16703     ),
16704 #
16705 # 6.1.6. Type de valeur de l'indicateur : absolue ou relative
16706 #
16707     b_valeur_indicateur = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16708                                fr="Type de valeur pour l'indicateur",
16709                                ang="Value type for error indicator",
16710 #
16711       TYPE_VALEUR_INDICA = SIMP(statut='f',typ='TXM',defaut="V_ABSOLUE",into=("V_ABSOLUE","V_RELATIVE"),
16712                                 fr="Valeur absolue ou relative pour l'indicateur",
16713                                 ang="Absolute or relative value for error indicator" ),
16714 #
16715     ),
16716 #
16717 # 6.1.7. Type d'opération sur l'indicateur : la valeur par maille ou le max du saut entre mailles
16718 #
16719     b_usage_indicateur = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
16720                               fr="Usage de l'indicateur : direct ou saut",
16721                               ang="Use type for error indicator : direct or jump",
16722 #
16723       TYPE_OPER_INDICA = SIMP(statut='f',typ='TXM',defaut="MAILLE",into=("MAILLE","SAUT"),
16724                               fr="Usage de l'indicateur : la valeur par maille ou le saut entre mailles voisines",
16725                               ang="Use of indicator : value over every mesh or jump between neighbour" ),
16726 #
16727     ),
16728 #
16729   ) ,
16730 #
16731 # 7. Les criteres pour de l'adaptation libre avec un indicateur d'erreur :
16732 #        absolu, relatif, en proportion d'entite
16733 # 7.1. Pour le raffinement :
16734 #
16735   b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16736                                                  (ADAPTATION == 'RAFFINEMENT') " ,
16737                                 fr="Critère de raffinement.",
16738                                 ang="Refinement threshold.",
16739 #
16740     regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
16741 #
16742     CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
16743                          fr="Critère absolu",
16744                          ang="Absolute threshold" ),  
16745     CRIT_RAFF_REL = SIMP(statut='f',typ='R',
16746                          fr="Critère relatif : fraction réelle entre 0. et 1.",
16747                          ang="Relative threshold : ratio between 0. and 1." ),  
16748     CRIT_RAFF_PE  = SIMP(statut='f',typ='R',
16749                          fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.",
16750                          ang="Percentage of elements : ratio between 0. and 1." ),  
16751   ) ,
16752 #
16753 # 7.2. Pour le deraffinement :
16754 #
16755   b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16756                                                    (ADAPTATION == 'DERAFFINEMENT') " ,
16757                                      fr="Critère de déraffinement.",
16758                                      ang="Unrefinement threshold.",
16759 #
16760     regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
16761 #
16762     CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
16763                          fr="Critère absolu",
16764                          ang="Absolute threshold" ),  
16765     CRIT_DERA_REL = SIMP(statut='f',typ='R',
16766                          fr="Critère relatif : fraction réelle entre 0. et 1.",
16767                          ang="Relative threshold : ratio between 0. and 1." ),  
16768     CRIT_DERA_PE  = SIMP(statut='f',typ='R',
16769                          fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.",
16770                          ang="Percentage of elements : ratio between 0. and 1." ),  
16771   ) ,
16772 #
16773 # 8. Pour de l'adaptation par zone, définitions des zones
16774 #
16775   b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
16776                                 fr="Pour une adaptation selon une zone à raffiner",
16777                                 ang="For adaptation among zone",
16778     ZONE = FACT(statut='f',max='**',
16779                   fr="Définition de zones à raffiner.",
16780                   ang="Refined zone definition.",
16781 #
16782       regles=(AU_MOINS_UN('X_MINI','X_CENTRE'),
16783               EXCLUS('X_MINI','X_CENTRE',),
16784               EXCLUS('Z_MINI','X_CENTRE',),
16785               EXCLUS('X_MINI','Z_CENTRE',),
16786               EXCLUS('Z_MINI','Z_CENTRE',),
16787               PRESENT_PRESENT('X_MINI','X_MAXI','Y_MINI','Y_MAXI'),
16788               PRESENT_PRESENT('Z_MINI','Z_MAXI'),
16789               PRESENT_PRESENT('X_CENTRE','Y_CENTRE','RAYON'),),
16790 #
16791 # 6.2.1. Une boite parallelepipedique
16792 #
16793       X_MINI = SIMP(statut='f',typ='R',
16794                     fr="Abscisse minimum de la boite",
16795                     ang="Minimum X for the box"),
16796       X_MAXI = SIMP(statut='f',typ='R',
16797                     fr="Abscisse maximum de la boite",
16798                     ang="Maximum X for the box"),
16799 #
16800       Y_MINI = SIMP(statut='f',typ='R',
16801                     fr="Orodnnée minimum de la boite",
16802                     ang="Minimum Y for the box"),
16803       Y_MAXI = SIMP(statut='f',typ='R',
16804                     fr="Abscisse maximum de la boite",
16805                     ang="Maximum Y for the box"),
16806 #
16807       Z_MINI = SIMP(statut='f',typ='R',
16808                     fr="Cote minimum de la boite",
16809                     ang="Minimum Z for the box"),
16810       Z_MAXI = SIMP(statut='f',typ='R',
16811                     fr="Cote maximum de la boite",
16812                     ang="Maximum Z for the box"),
16813 #
16814 # 6.2.2. Une sphere
16815 #
16816       X_CENTRE = SIMP(statut='f',typ='R',
16817                       fr="Abscisse du centre de la sphere",
16818                       ang="X for the center of the sphere"),
16819       Y_CENTRE = SIMP(statut='f',typ='R',
16820                       fr="Ordonnee du centre de la sphere",
16821                       ang="Y for the center of the sphere"),
16822       Z_CENTRE = SIMP(statut='f',typ='R',
16823                       fr="Cote du centre de la sphere",
16824                       ang="Z for the center of the sphere"),
16825       RAYON = SIMP(statut='f',typ='R',
16826                    fr="Rayon de la sphere",
16827                    ang="Radius of the sphere"),
16828 #
16829     ) ,
16830 #
16831   ) ,
16832 #
16833 # 9. Les niveaux extremes pour le maillage adapte
16834 # 9.1. Pour le raffinement :
16835 #
16836   b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16837                                          (ADAPTATION == 'RAFFINEMENT') or \
16838                                          (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
16839                                          (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
16840                            fr="Niveau maximum de profondeur de raffinement",
16841                            ang="Maximum level for refinement",
16842     NIVE_MAX = SIMP(statut='f',typ='I',
16843                     fr="Niveau maximum de profondeur de raffinement",
16844                     ang="Maximum level for refinement"),
16845   ) ,
16846 #
16847 # 9.2. Pour le deraffinement :
16848 #
16849   b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16850                                          (ADAPTATION == 'DERAFFINEMENT') or \
16851                                          (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
16852                            fr="Niveau minimum de profondeur de déraffinement",
16853                            ang="Minimum level for unrefinement",
16854     NIVE_MIN = SIMP(statut='f',typ='I',
16855                     fr="Niveau minimum de profondeur de déraffinement",
16856                     ang="Minimum level for unrefinement"),
16857   ) ,
16858 #
16859 # 10. Filtrage de l'adaptation par des groupes
16860 #
16861   b_filtrage_par_des_groupes = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
16862                                                    (ADAPTATION == 'RAFFINEMENT') or \
16863                                                    (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
16864                                                    (ADAPTATION == 'RAFFINEMENT_ZONE') or \
16865                                                    (ADAPTATION == 'DERAFFINEMENT') or \
16866                                                    (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
16867                                 fr="Filtrage de l'adaptation par des groupes.",
16868                                 ang="Filtering of adaptation by groups.",
16869 #
16870     GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
16871                     fr="Liste des groupes de mailles pour le filtrage de l'adaptation.",
16872                     ang="List of groups of meshes for filtering of adaptation." ),  
16873 #
16874     GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**',
16875                     fr="Liste des groupes de noeuds pour le filtrage de l'adaptation.",
16876                     ang="List of groups of nodes for filtering of adaptation." ),  
16877   ) ,
16878 #
16879 # 11. Suivi d'une frontiere
16880 #
16881   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
16882                            fr="Maillage de la frontiere à suivre",
16883                            ang="Boundary mesh" ),
16884 #
16885   b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
16886                       fr="Information complémentaire sur la frontière",
16887                       ang="Further information about boundary",
16888 #
16889     GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
16890                           fr="Liste des groupes de mailles définissant la frontière",
16891                           ang="Mesh groups which define the boundary" ),
16892 #
16893   ) ,
16894 #
16895 # 12. Mise à jour de champs sur le nouveau maillage
16896 #
16897   MAJ_CHAM = FACT(statut='f',max='**',
16898                   fr="Mise à jour de champs sur le nouveau maillage.",
16899                   ang="Updating of fields over the new mesh.",
16900 #
16901 # 12.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour
16902 #
16903     CHAM_MAJ = SIMP(statut='o',typ=CO,
16904                     fr="Nom du champ de grandeur qui contiendra le champ mis à jour",
16905                     ang="Name of the field for the updated field"),
16906 #
16907 # 12.2. Le type du champ qui contiendra le resultat de la mise a jour
16908 #
16909     TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(),
16910                      fr="Type du champ qui contiendra le champ mis à jour",
16911                      ang="Type of the field for the updated field" ),
16912 #
16913 # 12.3. Le champ a interpoler
16914 #
16915     regles=(UN_PARMI('CHAM_GD','RESULTAT')),
16916 #
16917 # 12.3.1. Sous forme de champ de grandeur
16918 #
16919     CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster,
16920                    fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour",
16921                    ang="Champ de grandeur with field to be updated" ),
16922 #
16923 # 12.3.2. Sous forme de champ dans un resultat
16924 #
16925     RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
16926                     fr="Resultat contenant le champ à mettre à jour",
16927                     ang="Result with field to be updated" ),
16928 #
16929     b_nom_du_champ = BLOC(condition="(RESULTAT != None)",
16930                           fr="Choix éventuel du nom du champ à interpoler",
16931                           ang="Selection for the name of the field (option)",
16932 #
16933       NOM_CHAM = SIMP(statut='o',typ='TXM',
16934                       fr="Nom du champ à mettre à jour",
16935                       ang="Name of the field to be updated" ),
16936 #
16937     ),
16938 #
16939 # 12.4. Est-ce un champ dérivé
16940 #
16941     SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),
16942                        fr="Paramètre de sensibilité.",
16943                        ang="Sensitivity parameter"),
16944 #
16945 # 12.5. Le paramètre temporel pour le champ a interpoler
16946 #
16947     b_parametre_temporel = BLOC(condition="(RESULTAT != None)",
16948                                 fr="Choix éventuel du paramètre temporel pour le champ à interpoler",
16949                                 ang="Time selection for the field (option)",
16950 #
16951       regles=(EXCLUS('NUME_ORDRE','INST'),),
16952 #
16953 # 12.5.1. Soit le numero d'ordre
16954 #
16955       NUME_ORDRE = SIMP(statut='f',typ='I',
16956                         fr="Numero d ordre du champ à mettre à jour",
16957                         ang="Rank of the field to be updated" ),
16958 #
16959 # 12.5.2. Soit l'instant
16960 # 12.5.2.1. Sa valeur
16961 #
16962       INST = SIMP(statut='f',typ='R',
16963                   fr="Instant associé",
16964                   ang="Instant" ),
16965 #
16966 # 12.5.2.2. La précision du choix de l'instant
16967 #
16968       b_precision = BLOC(condition="(INST != None)",
16969                          fr="Choix de la précision du choix de l'instant",
16970                          ang="Selection for instant choice",
16971 #
16972         PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
16973                          fr="Précision sur le choix de l'instant associé",
16974                          ang="Accuracy over instant choice" ),
16975 #
16976         CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
16977                        fr="Critère de précision sur le choix de l'instant associé",
16978                        ang="Accuracy criterium over instant choice" ),
16979 #
16980       ),
16981 #
16982     ),
16983   ),
16984 #
16985 # 13. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
16986 # 13.1. Nombre de noeuds et éléments
16987 #
16988   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
16989                           fr="Nombre de noeuds et éléments du maillage",
16990                           ang="Number of nodes and éléments in the mesh" ),
16991 #
16992 # 13.2. Determination de la qualité des éléments du maillage
16993 #
16994   QUALITE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
16995                           fr="Qualité du maillage",
16996                           ang="Mesh quality" ),
16997 #
16998 # 13.3. Connexite du maillage
16999 #
17000   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17001                           fr="Connexité du maillage.",
17002                           ang="Mesh connexity." ),
17003 #
17004 # 13.4. Taille des sous-domaines du maillage
17005 #
17006   TAILLE         = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17007                           fr="Tailles des sous-domaines du maillage.",
17008                           ang="Sizes of mesh sub-domains." ),
17009 #
17010 # 13.5. Controle de la non-interpenetration des éléments
17011 #
17012   INTERPENETRATION= SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
17013                           fr="Controle de la non interpénétration des éléments.",
17014                           ang="Overlapping checking." ),
17015 #
17016 # 14. Gestion des éléments autres que ceux compatibles avec HOMARD
17017 #       "REFUSER" : ils sont refuses (defaut)
17018 #       "IGNORER" : ils sont ignorés
17019 #
17020   ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
17021                              fr="Acceptation d'éléments incompatibles avec HOMARD",
17022                              ang="Incompatible elements for HOMARD" ),
17023 #
17024 ) ;
17025 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17026 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17027 # ======================================================================
17028 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17029 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17030 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17031 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17032 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17033 #
17034 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17035 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17036 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17037 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17038 #
17039 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17040 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17041 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17042 # ======================================================================
17043 # RESPONSABLE GALENNE E.GALENNE
17044 from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops
17045 def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args):
17046   self.type_sdprod(MODELE,modele_sdaster)
17047   if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
17048   if CARA_ELEM  != None:self.type_sdprod(CARA_ELEM,cara_elem)
17049   if FOND_FISS  != None:self.type_sdprod(FOND_FISS,fond_fiss)
17050   if CHARGE     != None:self.type_sdprod(CHARGE,char_meca)
17051   if RESU_THER  != None:self.type_sdprod(RESU_THER,evol_ther)
17052   return evol_noli
17053
17054 MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod,
17055                       fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL",
17056                       reentrant='n',
17057             UIinfo={"groupes":("Outils métier",)},
17058          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
17059
17060          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
17061                                into=("SAIN",
17062                                      "FISS_COUDE",
17063                                      "FISS_AXIS_DEB",
17064                                      "SOUS_EPAIS_COUDE"
17065                                      ) ),
17066
17067          CL_BOL_P2_GV    =FACT(statut='f',
17068            ANGLE           =SIMP(statut='o',typ='R' ),
17069            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
17070          ),
17071
17072          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
17073          MODELE          =SIMP(statut='o',typ=CO,),
17074          CHAM_MATER      =SIMP(statut='f',typ=CO,),
17075          CARA_ELEM       =SIMP(statut='f',typ=CO,),
17076          FOND_FISS       =SIMP(statut='f',typ=CO,),
17077          CHARGE          =SIMP(statut='f',typ=CO,),
17078          RESU_THER       =SIMP(statut='f',typ=CO,),
17079
17080          AFFE_MATERIAU   =FACT(statut='o',max=3,
17081            regles=(UN_PARMI('TOUT','GROUP_MA'),),
17082            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17083            GROUP_MA        =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ),
17084            MATER           =SIMP(statut='o',typ=mater_sdaster ),
17085            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17086          ),
17087
17088          PRES_REP        =FACT(statut='f',
17089            PRES            =SIMP(statut='o',typ='R' ),
17090            EFFE_FOND_P1    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17091            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17092            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17093          ),
17094
17095          ECHANGE         =FACT(statut='f',
17096            COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17097            TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17098          ),
17099
17100          TORS_P1         =FACT(statut='f',max=6,
17101            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
17102            FX              =SIMP(statut='f',typ='R' ),
17103            FY              =SIMP(statut='f',typ='R' ),
17104            FZ              =SIMP(statut='f',typ='R' ),
17105            MX              =SIMP(statut='f',typ='R' ),
17106            MY              =SIMP(statut='f',typ='R' ),
17107            MZ              =SIMP(statut='f',typ='R' ),
17108            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
17109          ),
17110
17111          COMP_INCR       =FACT(statut='f',
17112            RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
17113            VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
17114            RESI_INTE_RELA  =SIMP(statut='f',typ='R'
17115                                 ,defaut= 1.0E-6),
17116            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
17117            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
17118            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17119                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17120          ),
17121
17122          COMP_ELAS       =FACT(statut='f',
17123            RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
17124            ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17125            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17126            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
17127            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
17128            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
17129            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17130                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17131          ),
17132
17133          SOLVEUR         =FACT(statut='d',
17134            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
17135            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
17136              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
17137            ),
17138            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
17139              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
17140            ),
17141            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
17142                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
17143              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
17144              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17145            ),
17146            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
17147              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
17148              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
17149              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
17150              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
17151              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
17152            ),
17153            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17154          ),
17155
17156          CONVERGENCE     =FACT(statut='d',
17157            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
17158            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
17159            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17160            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
17161          ),
17162
17163          NEWTON          =FACT(statut='d',
17164            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
17165            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
17166            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
17167            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
17168            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
17169          ),
17170
17171          RECH_LINEAIRE   =FACT(statut='d',
17172            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
17173            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
17174          ),
17175
17176          INCREMENT       =FACT(statut='o',
17177            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
17178                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
17179            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
17180            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
17181                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
17182            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
17183            INST_INIT       =SIMP(statut='f',typ='R'),
17184            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
17185            INST_FIN        =SIMP(statut='f',typ='R'),
17186            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
17187            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
17188            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
17189               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
17190               defaut="AUCUNE",
17191               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
17192            ),
17193            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
17194              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17195              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
17196                 fr="Coefficient multiplicateur de la 1ère subdivision"),
17197              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
17198                 fr="Nombre de subdivision d'un pas de temps"),
17199              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17200                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17201              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17202                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17203            ),
17204            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
17205              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17206              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
17207                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
17208                 defaut="IGNORE_PREMIERES",
17209                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
17210              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
17211                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
17212              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
17213                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
17214              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
17215                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
17216              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17217                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17218              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17219                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17220              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
17221                 fr="% itération autorisée en plus"),
17222            ),
17223            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
17224          ),
17225
17226          THETA_3D        =FACT(statut='f',max='**',
17227            R_INF           =SIMP(statut='o',typ='R' ),
17228            R_SUP           =SIMP(statut='o',typ='R' ),
17229          ),
17230
17231          IMPR_TABLE      =FACT(statut='f',
17232            regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
17233             PRESENT_PRESENT('TOUT_PARA','ANGLE',    ),
17234             PRESENT_PRESENT('TOUT_PARA','R_CINTR',  ),
17235                    UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
17236            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4,
17237                                  into=("TRESCA_MEMBRANE",
17238                                        "TRESCA_MFLE",
17239                                        "TRESCA",
17240                                        "SI_LONG"
17241                                        "SI_RADI"
17242                                        "SI_CIRC"
17243                                        ) ),
17244            TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17245            ANGLE           =SIMP(statut='f',typ='R',max='**' ),
17246            R_CINTR         =SIMP(statut='f',typ='R',max='**' ),
17247            POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
17248            POSI_ANGUL      =SIMP(statut='f',typ='R',max='**' ),
17249            TRANSFORMEE     =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
17250          ),
17251
17252          IMPRESSION      =FACT(statut='f',
17253            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
17254                                  into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
17255                                  
17256            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17257              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17258            ),  
17259
17260            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17261              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17262            ),
17263
17264          ),
17265
17266          TITRE           =SIMP(statut='f',typ='TXM' ),
17267
17268          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
17269 )  ;
17270 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17271 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17272 # ======================================================================
17273 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17274 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17275 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17276 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17277 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17278 #
17279 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17280 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17281 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17282 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17283 #
17284 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17285 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17286 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17287 # ======================================================================
17288 # RESPONSABLE GALENNE E.GALENNE
17289 from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops
17290 MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster,
17291             fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)",
17292             UIinfo={"groupes":("Outils métier",)},reentrant='n',
17293
17294          regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
17295
17296          EXEC_MAILLAGE   =FACT(statut='o',
17297            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
17298            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
17299            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
17300            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
17301          ),
17302
17303          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
17304
17305          COUDE           =FACT(statut='o',
17306            ANGLE           =SIMP(statut='o',typ='R' ),  
17307            R_CINTR         =SIMP(statut='o',typ='R' ),  
17308            L_TUBE_P1       =SIMP(statut='o',typ='R' ),  
17309            L_TUBE_P2       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
17310            NB_ELEM_EPAIS   =SIMP(statut='f',typ='I',defaut= 3 ),  
17311            SYME            =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ),
17312            TRANSFORMEE     =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
17313            b_transf_coude  =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
17314               DEXT            =SIMP(statut='o',typ='R' ),  
17315               EPAIS           =SIMP(statut='o',typ='R' ),  
17316               SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
17317               BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
17318            ),
17319            b_transf_tube   =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
17320               TRAN_EPAIS      =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
17321               b_trans_epais_oui    =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
17322                       regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
17323                               UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
17324                       DEXT_T1         =SIMP(statut='o',typ='R' ),  
17325                       EPAIS_T1        =SIMP(statut='o',typ='R' ),  
17326                       EPAIS_T2        =SIMP(statut='o',typ='R' ),  
17327                       EPAIS_TI        =SIMP(statut='f',typ='R' ),  
17328                       ANGL_TETA1      =SIMP(statut='o',typ='R' ),  
17329                       ANGL_TETA2      =SIMP(statut='f',typ='R' ),  
17330                       ABSC_CURV_TRAN  =SIMP(statut='f',typ='R' ),  
17331                       POSI_ANGU_TRAN  =SIMP(statut='f',typ='R' ),  
17332               ),
17333               b_trans_epais_non    =BLOC(condition = "TRAN_EPAIS == 'NON' ",
17334                       DEXT            =SIMP(statut='o',typ='R' ),  
17335                       EPAIS           =SIMP(statut='o',typ='R' ),  
17336                       SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
17337                       BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
17338               ),
17339            ),
17340          ),
17341
17342          SOUS_EPAIS_COUDE=FACT(statut='f',
17343            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
17344                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
17345            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
17346            AXE_CIRC        =SIMP(statut='f',typ='R' ),  
17347            AXE_LONGI       =SIMP(statut='o',typ='R' ),  
17348            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
17349            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
17350            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
17351            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
17352            AZIMUT          =SIMP(statut='f',typ='R' ),  
17353            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
17354            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
17355            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
17356            NB_ELEM_RADI    =SIMP(statut='f',typ='I',defaut= 3 ),  
17357            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17358          ),
17359
17360          SOUS_EPAIS_MULTI=FACT(statut='f',max='**',
17361            regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
17362                    UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
17363            TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
17364            AXE_CIRC        =SIMP(statut='f',typ='R' ),  
17365            AXE_LONGI       =SIMP(statut='o',typ='R' ),  
17366            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
17367            POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
17368            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
17369            POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
17370            AZIMUT          =SIMP(statut='f',typ='R' ),  
17371            SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
17372            NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
17373            NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
17374            EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17375          ),
17376
17377          FISS_COUDE      =FACT(statut='f',
17378            regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
17379            AXIS            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),  
17380            b_axis_non    =BLOC(condition = "AXIS == 'NON' ",
17381                    LONGUEUR        =SIMP(statut='o',typ='R' ),  
17382            ),
17383            b_axis_oui    =BLOC(condition = "AXIS == 'OUI' ",
17384                    LONGUEUR        =SIMP(statut='f',typ='R' ),  
17385            ),
17386            PROFONDEUR      =SIMP(statut='o',typ='R' ),  
17387            ABSC_CURV       =SIMP(statut='f',typ='R' ),  
17388            POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
17389            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
17390            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),  
17391            ORIEN           =SIMP(statut='o',typ='R',
17392                                  into=(45.,-45.,90.,0.E+0) ),
17393            NB_TRANCHE      =SIMP(statut='o',typ='I' ),  
17394            NB_SECTEUR      =SIMP(statut='o',typ='I' ),  
17395            NB_COURONNE     =SIMP(statut='o',typ='I' ),  
17396            RAYON_TORE      =SIMP(statut='f',typ='R' ),  
17397            COEF_MULT_RC2   =SIMP(statut='f',typ='R',defaut= 1. ),  
17398            COEF_MULT_RC3   =SIMP(statut='f',typ='R' ),  
17399            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.5 ),  
17400          ),
17401
17402          IMPRESSION      =FACT(statut='f',max='**',
17403            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
17404            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",   
17405                                  into=("ASTER","IDEAS","CASTEM") ),
17406            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17407              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17408            ),  
17409            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17410              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17411            ),
17412            FICHIER         =SIMP(statut='f',typ='TXM' ),  
17413            UNITE           =SIMP(statut='f',typ='I' ),  
17414          ),
17415
17416          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
17417 )  ;
17418 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17419 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17420 # ======================================================================
17421 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17422 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17423 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17424 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17425 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17426 #
17427 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17428 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17429 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17430 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17431 #
17432 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17433 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17434 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17435 # ======================================================================
17436 # RESPONSABLE GALENNE E.GALENNE
17437 from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops
17438
17439 def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args):
17440   if MODELE      != None:self.type_sdprod(MODELE,modele_sdaster)
17441   if CHAM_MATER  != None:self.type_sdprod(CHAM_MATER,cham_mater)
17442   if CARA_ELEM   != None:self.type_sdprod(CARA_ELEM,cara_elem)
17443   if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
17444   if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
17445   if CHARGE      != None:self.type_sdprod(CHARGE,char_meca)
17446   if RESU_THER   != None:self.type_sdprod(RESU_THER,evol_ther)
17447   return evol_noli
17448
17449 MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod,
17450             fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ",
17451             UIinfo={"groupes":("Outils métier",)},reentrant='n',
17452          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
17453
17454          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
17455                                into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
17456                                      "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
17457
17458          TUBULURE        =FACT(statut='o',
17459            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
17460          ),
17461          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
17462          MODELE          =SIMP(statut='f',typ=CO,),
17463          CHAM_MATER      =SIMP(statut='f',typ=CO,),
17464          CARA_ELEM       =SIMP(statut='f',typ=CO,),
17465          FOND_FISS_1     =SIMP(statut='f',typ=CO,),
17466          FOND_FISS_2     =SIMP(statut='f',typ=CO,),
17467          CHARGE          =SIMP(statut='f',typ=CO,),
17468          RESU_THER       =SIMP(statut='f',typ=CO,),
17469
17470          AFFE_MATERIAU   =FACT(statut='o',max=3,
17471            regles=(UN_PARMI('TOUT','GROUP_MA'),),
17472            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
17473            GROUP_MA        =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
17474            MATER           =SIMP(statut='o',typ=mater_sdaster),
17475            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
17476            RCCM            =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
17477          ),
17478
17479          EQUILIBRE       =FACT(statut='o',
17480            NOEUD           =SIMP(statut='o',typ=no),
17481          ),
17482
17483          PRES_REP        =FACT(statut='o',
17484            PRES            =SIMP(statut='o',typ='R'),
17485            NOEUD           =SIMP(statut='f',typ=no),
17486            EFFE_FOND       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
17487            PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17488            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17489          ),
17490
17491          ECHANGE         =FACT(statut='f',
17492            COEF_H_TUBU     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17493            COEF_H_CORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17494            TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
17495          ),
17496
17497          TORS_CORP       =FACT(statut='f',max=6,
17498            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
17499            NOEUD           =SIMP(statut='o',typ=no),
17500            FX              =SIMP(statut='f',typ='R'),
17501            FY              =SIMP(statut='f',typ='R'),
17502            FZ              =SIMP(statut='f',typ='R'),
17503            MX              =SIMP(statut='f',typ='R'),
17504            MY              =SIMP(statut='f',typ='R'),
17505            MZ              =SIMP(statut='f',typ='R'),
17506            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17507          ),
17508
17509          TORS_TUBU       =FACT(statut='f',max=6,
17510            regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
17511            FX              =SIMP(statut='f',typ='R'),
17512            FY              =SIMP(statut='f',typ='R'),
17513            FZ              =SIMP(statut='f',typ='R'),
17514            MX              =SIMP(statut='f',typ='R'),
17515            MY              =SIMP(statut='f',typ='R'),
17516            MZ              =SIMP(statut='f',typ='R'),
17517            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
17518          ),
17519
17520          COMP_INCR       =FACT(statut='f',
17521            RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
17522            VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
17523            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-6),
17524            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17525            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut=0),
17526            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17527                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17528          ),
17529
17530          COMP_ELAS       =FACT(statut='f',
17531            RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
17532            ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17533            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
17534            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
17535            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
17536            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
17537            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
17538                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
17539          ),
17540
17541          THETA_3D        =FACT(statut='f',max='**',
17542            R_INF           =SIMP(statut='o',typ='R'),
17543            R_SUP           =SIMP(statut='o',typ='R'),
17544          ),
17545
17546          OPTION          =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ),
17547          BORNES          =FACT(statut='f',max='**',
17548            NUME_ORDRE      =SIMP(statut='o',typ='I'),
17549            VALE_MIN        =SIMP(statut='o',typ='R'),
17550            VALE_MAX        =SIMP(statut='o',typ='R'),
17551          ),
17552
17553          SOLVEUR         =FACT(statut='d',
17554            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
17555            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
17556              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
17557            ),
17558            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
17559              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
17560            ),
17561            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
17562                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
17563              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
17564              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
17565            ),
17566            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
17567              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
17568              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
17569              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
17570              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
17571              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
17572            ),
17573            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
17574          ),
17575
17576          CONVERGENCE     =FACT(statut='d',
17577            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
17578            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
17579            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
17580            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
17581          ),
17582
17583          NEWTON          =FACT(statut='d',
17584            REAC_INCR       =SIMP(statut='f',typ='I',defaut=1),
17585            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")),
17586            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")),
17587            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
17588          ),
17589
17590          RECH_LINEAIRE   =FACT(statut='d',
17591            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-3),
17592            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut=3),
17593          ),
17594
17595          INCREMENT       =FACT(statut='o',
17596            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
17597                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
17598            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
17599            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
17600                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
17601            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
17602            INST_INIT       =SIMP(statut='f',typ='R'),
17603            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
17604            INST_FIN        =SIMP(statut='f',typ='R'),
17605            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
17606            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
17607            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
17608               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
17609               defaut="AUCUNE",
17610               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
17611            ),
17612            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
17613              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17614              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
17615                 fr="Coefficient multiplicateur de la 1ère subdivision"),
17616              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
17617                 fr="Nombre de subdivision d'un pas de temps"),
17618              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17619                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17620              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17621                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17622            ),
17623            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
17624              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
17625              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
17626                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
17627                 defaut="IGNORE_PREMIERES",
17628                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
17629              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
17630                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
17631              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
17632                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
17633              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
17634                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
17635              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
17636                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
17637              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
17638                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
17639              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
17640                 fr="% itération autorisée en plus"),
17641            ),
17642            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
17643          ),
17644
17645          PAS_AZIMUT      =SIMP(statut='f',typ='I',defaut=1),
17646
17647          IMPRESSION      =FACT(statut='f',
17648            FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
17649                                  into=("RESULTAT","ASTER","CASTEM","IDEAS")),
17650                                  
17651            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17652              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17653            ),  
17654
17655            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17656              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17657            ),
17658
17659            b_extrac        =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
17660                                  fr="extraction d un champ de grandeur",
17661              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
17662              NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,
17663                                    into=("DEPL","EQUI_ELNO_SIGM","TEMP")),
17664              
17665              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17666              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17667              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
17668            ),      
17669          ),
17670
17671          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
17672
17673          TITRE           =SIMP(statut='f',typ='TXM'),
17674 )
17675 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17676 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17677 # ======================================================================
17678 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17679 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17680 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17681 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17682 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17683 #
17684 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17685 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17686 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17687 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17688 #
17689 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17690 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17691 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17692 # ======================================================================
17693 # RESPONSABLE GALENNE E.GALENNE
17694
17695 from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops
17696
17697 MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n',
17698             fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)",
17699             UIinfo={"groupes":("Outils métier",)},
17700
17701          EXEC_MAILLAGE   =FACT(statut='o',
17702            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")),
17703            UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
17704            UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
17705            NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
17706          ),
17707
17708          TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
17709
17710          RAFF_MAIL       =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
17711
17712          TUBULURE        =FACT(statut='o',
17713            E_BASE          =SIMP(statut='o',typ='R'),  
17714            DEXT_BASE       =SIMP(statut='o',typ='R'),  
17715            L_BASE          =SIMP(statut='o',typ='R'),  
17716            L_CHANF         =SIMP(statut='o',typ='R'),  
17717            E_TUBU          =SIMP(statut='o',typ='R'),  
17718            DEXT_TUBU       =SIMP(statut='o',typ='R'),  
17719            Z_MAX           =SIMP(statut='o',typ='R'),  
17720            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
17721            L_PENETR        =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
17722          ),
17723
17724          SOUDURE         =FACT(statut='o',
17725            H_SOUD          =SIMP(statut='o',typ='R'),  
17726            ANGL_SOUD       =SIMP(statut='o',typ='R'),  
17727            JEU_SOUD        =SIMP(statut='o',typ='R'),  
17728          ),
17729
17730          CORPS           =FACT(statut='o',
17731            E_CORP          =SIMP(statut='o',typ='R'),  
17732            DEXT_CORP       =SIMP(statut='o',typ='R'),  
17733            X_MAX           =SIMP(statut='o',typ='R'),  
17734          ),
17735
17736          FISS_SOUDURE    =FACT(statut='f',
17737            TYPE            =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
17738            AXIS            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
17739            PROFONDEUR      =SIMP(statut='o',typ='R'),  
17740            LONGUEUR        =SIMP(statut='f',typ='R'),  
17741            AZIMUT          =SIMP(statut='o',typ='R'),  
17742            RAYON_TORE      =SIMP(statut='f',typ='R'),  
17743            POSITION        =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
17744            FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
17745            LIGA_INT        =SIMP(statut='f',typ='R'),  
17746            ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
17747            COEF_MULT_RC1   =SIMP(statut='f',typ='R'),  
17748            COEF_MULT_RC2   =SIMP(statut='f',typ='R'),  
17749            COEF_MULT_RC3   =SIMP(statut='f',typ='R'),  
17750            NB_TRANCHE      =SIMP(statut='f',typ='I'),  
17751            NB_SECTEUR      =SIMP(statut='f',typ='I'),  
17752            NB_COURONNE     =SIMP(statut='f',typ='I'),  
17753          ),
17754
17755          IMPRESSION      =FACT(statut='f',max='**',
17756            regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
17757            FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
17758
17759            b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
17760              VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
17761            ),  
17762
17763            b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
17764              NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
17765            ),
17766            FICHIER         =SIMP(statut='f',typ='TXM'),  
17767            UNITE           =SIMP(statut='f',typ='I'),  
17768          ),
17769
17770          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
17771 )  ;
17772 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17773 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17774 # ======================================================================
17775 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
17776 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17777 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17778 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17779 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
17780 #                                                                       
17781 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
17782 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
17783 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
17784 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
17785 #                                                                       
17786 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17787 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
17788 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
17789 # ======================================================================
17790 # RESPONSABLE FLEJOU J.L.FLEJOU
17791
17792 from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops
17793
17794 MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster,
17795                        reentrant='n',
17796           UIinfo={"groupes":("Modélisation",)},
17797           fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
17798           regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
17799                   EXCLUS('SYME_Y','GROUP_MA_BORD'),),
17800                  
17801           UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 20 ),  
17802           ORIG_INER       =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
17803                                 fr="Point par rapport auquel sont calculées les inerties"),  
17804           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
17805          
17806           SYME_X          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"),
17807           SYME_Y          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"),
17808          
17809           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
17810           fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
17811           
17812           GROUP_MA_BORD   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
17813                                fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
17814          
17815                b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
17816                             fr=" calcul des carac. mecaniques",
17817                             regles=(UN_PARMI('NOEUD','GROUP_NO')),
17818
17819                     NOEUD           =SIMP(statut='f',typ=no,  max='**',
17820                     fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
17821                     GROUP_NO        =SIMP(statut='f',typ=grno,max='**',
17822                     fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
17823                     GROUP_MA_INTE   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
17824                     fr="groupes de mailles linéiques bordant des trous dans la section"),
17825                     ),
17826                     
17827                b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
17828                            fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
17829                             regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
17830                             LONGUEUR        =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"),  
17831                             MATERIAU        =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"),
17832                             LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
17833                             fr="type de conditions aux limites sur le plancher supérieur" ),
17834                               ), 
17835                     )
17836 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17837 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17838 # ======================================================================
17839 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
17840 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17841 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17842 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
17843 # (AT YOUR OPTION) ANY LATER VERSION.
17844 #
17845 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
17846 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
17847 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
17848 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
17849 #
17850 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17851 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17852 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17853 # ======================================================================
17854 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
17855
17856 from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops
17857
17858 def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
17859   self.type_sdprod(RESULTAT,AsType(RESU_INIT))
17860   self.type_sdprod(MAILLAGE,maillage_sdaster)
17861   return None
17862
17863
17864 MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n',
17865              UIinfo={"groupes":("Post traitements",)},
17866              fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation",
17867
17868
17869              # SD résultat ,modèle et champs à "éclater" :
17870              RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
17871              MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
17872              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
17873
17874              # paramètres numériques de la commande :
17875              SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
17876              TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
17877
17878              # concepts produits par la commande :
17879              RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
17880              MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
17881
17882              # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :
17883              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17884              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
17885              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
17886
17887              # Sélection des numéros d'ordre :
17888              regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
17889              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
17890              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
17891              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
17892              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
17893              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
17894              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
17895              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
17896             )
17897 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR CORUS M.CORUS 
17898 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17899 # ======================================================================
17900 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17901 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17902 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17903 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17904 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17905 #
17906 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17907 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17908 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17909 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17910 #
17911 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17912 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17913 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17914 # ======================================================================
17915 # RESPONSABLE CORUS M.CORUS
17916
17917 MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
17918                     fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique",
17919                     reentrant='n',
17920             UIinfo={"groupes":("Matrices/vecteurs",)},
17921          regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),
17922                  PRESENT_ABSENT('MATR_IMPE','MATR_RIGI','MATR_MASS'),),
17923          BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
17924          MATR_RIGI       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c),),
17925          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
17926          MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
17927          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'), 
17928          SANS_GROUP_NO   =SIMP(statut='f',typ=grno ),
17929          MATR_IMPE       =SIMP(statut='f',typ=matr_asse_gene_c ),
17930          b_matr_impe     =BLOC(condition = "MATR_IMPE != None",
17931              FREQ_EXTR       =SIMP(statut='o',typ='R' ),
17932              AMOR_SOL        =SIMP(statut='f',typ='R',defaut=0.E+0 ),
17933            ),
17934          CAS_CHARGE      =FACT(statut='f',max='**',
17935            NOM_CAS         =SIMP(statut='o',typ='TXM'),
17936            VECT_ASSE_GENE  =SIMP(statut='o',typ=vect_asse_gene ),
17937          ),
17938 )  ;
17939 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17940 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17941 # ======================================================================
17942 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
17943 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
17944 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
17945 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
17946 # (AT YOUR OPTION) ANY LATER VERSION.                                 
17947 #
17948 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
17949 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
17950 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
17951 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
17952 #
17953 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
17954 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
17955 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
17956 # ======================================================================
17957 # RESPONSABLE PELLET J.PELLET
17958 MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f',
17959             UIinfo={"groupes":("Matrices/vecteurs",)},
17960                     fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration",
17961         regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),
17962                 ENSEMBLE('DEFINITION','EXTERIEUR'),),
17963          DEFINITION      =FACT(statut='f',
17964            regles=(PRESENT_PRESENT('PROJ_MESU','MODE_MESURE'),),
17965            MODELE          =SIMP(statut='o',typ=modele_sdaster),
17966            CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
17967            CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
17968            CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
17969            INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
17970            NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),
17971            NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),
17972            PROJ_MESU       =SIMP(statut='f',typ=(mode_gene,tran_gene,harm_gene),max=1),
17973            MODE_MESURE     =SIMP(statut='f',typ=( mode_meca,base_modale) ),
17974          ),
17975          EXTERIEUR       =FACT(statut='f',
17976            regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
17977            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
17978            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
17979          ),
17980          RIGI_MECA       =FACT(statut='f',
17981          ),
17982          MASS_MECA       =FACT(statut='f',
17983          ),
17984          CAS_CHARGE      =FACT(statut='f',max='**',
17985            NOM_CAS         =SIMP(statut='o',typ='TXM'),
17986            SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
17987            CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
17988            INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
17989          ),
17990
17991 )  ;
17992 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
17993 #            CONFIGURATION MANAGEMENT OF EDF VERSION
17994 # ======================================================================
17995 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
17996 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
17997 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
17998 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
17999 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18000 #                                                                       
18001 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18002 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18003 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18004 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18005 #                                                                       
18006 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18007 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18008 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18009 # ======================================================================
18010 # RESPONSABLE GNICOLAS G.NICOLAS
18011
18012 from Macro.macr_fiabilite_ops import macr_fiabilite_ops
18013
18014 #
18015 #====
18016 # 1. Le retour : une liste de rééls.
18017 #====
18018 #
18019 def macr_fiabilite_prod ( self , **args ):
18020   return listr8_sdaster
18021 #
18022 #====
18023 # 2. L'entete
18024 #====
18025 #
18026 MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops,
18027                          docu="U7.03.31",UIinfo={"groupe":("Post traitements",)},
18028                          sd_prod=macr_fiabilite_prod,
18029                          fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).",
18030                          ang="Fiability mechanics.",
18031 #
18032 #====
18033 # 3. Le niveau d'information
18034 #====
18035 #
18036    INFO           = SIMP(statut="f",typ="I",defaut=1,into=(1,2)),
18037 #
18038 #====
18039 # 4. Nom et Version du logiciel de fiabilité
18040 #====
18041 #
18042    LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO",
18043                    into=("MEFISTO",),
18044                    fr="Nom du logiciel de fiabilité.",
18045                    ang="Fiability software name."),
18046 #
18047    VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2",
18048                   into=("V3_2", "V3_N"),
18049                   fr="Version du logiciel de fiabilité.",
18050                   ang="Fiability software release."),
18051 #
18052 #====
18053 # 5. Les entrees-sorties du calcul ASTER déterministe
18054 #====
18055 #
18056 # 5.1. ==> Le jeu de commandes déterministe
18057 #
18058    UNITE_ESCL = SIMP(statut="o",typ="I",
18059                      fr="Unité logique associée aux commandes du calcul ASTER déterministe.",
18060                      ang="Logical unit for the commands of the ASTER deterministic calculation."),
18061 #
18062 # 5.2. ==> Le destin des messages produits par ASTER
18063 #
18064    MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER",
18065                         into=("AUCUN", "DERNIER", "TOUS"),
18066                         fr="Quels messages ASTER récupérer.",
18067                         ang="Which ASTER messages must be kept."),
18068 #
18069 #====
18070 # 6. Options
18071 #====
18072 # 6.1. ==> Générales
18073 #
18074 # 6.1.1. ==> La valeur du seuil
18075 #
18076    SEUIL = SIMP(statut="o",typ="R",max=1,
18077                 fr="Le seuil de défaillance.",
18078                 ang="Failure threshold."),
18079 #
18080 # 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que
18081 #            la défaillance a lieu au dessus d'un seuil maximum ou
18082 #            en dessous d'un seuil minimum
18083 #
18084    SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1,
18085                      into=("MINIMUM","MAXIMUM"),
18086                      fr="Que faut-il ne pas dépasser : un maximum ou un minimum.",
18087                      ang="What is the failure threshold : maximum or minimum."),
18088 #
18089 # 6.2. ==> Pour MEFISTO
18090 #
18091 ### en attente de résolution de AL 2004-006 (1/2)   b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'",
18092 #
18093 # 6.2.1. ==> Pilotage de la recherche du point de conception
18094 #
18095      RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI",
18096                             into=("OUI","NON"),
18097                             fr="Pour trouver le point de conception.",
18098                             ang="To find the design point."),
18099 #
18100      b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
18101 #
18102        EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2,
18103                         fr="Précision du test d'arret sur les points itératifs dans l'espace standard.",
18104                         ang="Precision of stop test for iterative points in standard space."),
18105 #
18106        EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2,
18107                         fr="Précision du test d'arret sur la proximité de la surface d'état limite.",
18108                         ang="Precision of stop test for limit state surface."),
18109 #
18110        TAU       = SIMP(statut="f",typ="R",defaut=5.0E-1,
18111                         fr="Paramètre de la méthode de minimisation.",
18112                         ang="Parameter for the minimization method."),
18113 #
18114        OMEGA     = SIMP(statut="f",typ="R",defaut=1.0E-4,
18115                         fr="Paramètre de la méthode de minimisation.",
18116                         ang="Parameter for the minimization method."),
18117 #
18118        ITER_MAX  = SIMP(statut="f",typ="I",defaut=50,
18119                         fr="Nombre maximum d'itérations.",
18120                         ang="Maximum number of iterations."),
18121      ),
18122 #
18123 # 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance
18124 #
18125      METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI",
18126                          into=("OUI","NON"),
18127                          fr="Recherche de la probabilité de défaillance avec la méthode FORM.",
18128                          ang="Research of failure probability with FORM method."),
18129 #
18130      METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON",
18131                          into=("OUI","NON"),
18132                          fr="Recherche de la probabilité de défaillance avec la méthode SORM.",
18133                          ang="Research of failure probability with SORM method."),
18134 #
18135      TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON",
18136                               into=("OUI","NON"),
18137                               fr="Recherche de la probabilité de défaillance avec le tirage d'importance.",
18138                               ang="Research of failure probability with ."),
18139 #
18140      b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'",
18141 #
18142        NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3,
18143                             fr="Nombre de simulations pour le tirage d'importance.",
18144                             ang="Number of simulation for."),
18145 #
18146      ),
18147 #
18148 # 6.2.3. ==> Création d'une surface de réponse polynomiale
18149 #
18150      POLYNOME_TAYLOR   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),),
18151      HGRAD             = SIMP(statut="f",typ="R",defaut=1.0E-2,
18152                               fr="Pas incrémental pour le calcul des gradients.",
18153                               ang="Step for calculation of gradients."),
18154      HHESS             = SIMP(statut="f",typ="R",defaut=1.0E-2,
18155                               fr="Pas incrémental pour le calcul des dérivées secondes.",
18156                               ang="Step for calculation of second derivatives."),
18157 #
18158 # 6.2.4. ==> Recherche d'un plan d'expérience
18159 #
18160      PLAN_EXPERIENCE   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18161                               fr="Construction d'un plan d'expérience.",
18162                               ang="Construction of an experiment plan."),
18163 #
18164      b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
18165 #
18166        ALPHA         = SIMP(statut="f",typ="R",defaut=2.0E-1,
18167                             fr="Plan d'expérience : maille du plan de type composite centré.",
18168                             ang="Experiment plane : mesh centered composite."),
18169 #
18170        BETA          = SIMP(statut="f",typ="R",defaut=4.0E-1,
18171                             fr="Plan d'expérience : maille du plan de type factoriel.",
18172                             ang="Experiment plane : mesh factor."),
18173 #
18174      ),
18175 #
18176 # 6.2.5. ==> Les tests
18177 # 6.2.5.1. ==> Test de la sphere
18178 #
18179      T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18180                      fr="Test de la sphère.",
18181                      ang="Sphere test."),
18182 #
18183      b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
18184 #
18185        METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
18186                            into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
18187                            fr="Type de méthode.",
18188                            ang="Method."),
18189 #
18190        NB_POINT     = SIMP(statut="f",typ="I",max=1,defaut=60,
18191                            fr="Nombre de points de la sphere.",
18192                            ang="Number of points over the sphere.")
18193      ),
18194 #
18195 # 6.2.5.2. ==> Test du maximum fort
18196 #
18197      T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18198                            fr="Test du maximum fort.",
18199                            ang="Strong maximum test."),
18200 #
18201      b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
18202 #
18203        COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0,
18204                       fr="Cosinus de l'angle d'exclusion.",
18205                       ang="Cosine of angle of exclusion."),
18206 #
18207        DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
18208                       fr="Fraction d'iso-densité de probabilité de défaillance.",
18209                       ang="Fraction.")
18210 #
18211      ),
18212 #
18213 # 6.2.5.3. ==> Test du hessien
18214 #
18215      T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
18216                       fr="Test du hessien.",
18217                       ang="Hessian test."),
18218 #
18219 # 6.2.6. ==> Les correlations entre les variables
18220 #
18221      MATRICE = SIMP(statut="f",typ="R",max="**",
18222                     fr="Matrice de corrélation entre les variables.",
18223                     ang="Correlation matrix."), 
18224 #
18225 ### en attente de résolution de AL 2004-006 (2/2)   ),
18226 #
18227 #====
18228 # 7. Definition des paramètres
18229 #====
18230 #
18231    VARIABLE = FACT(statut="o",min=1,max="**",
18232 #
18233 # 7.1. ==> Nom de la variable
18234 #
18235        NOM = SIMP(statut="o",typ="TXM",
18236                   fr="Nom de la variable, identique au nom de concept PARA_SENSI.",
18237                   ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."),
18238 #
18239 # 7.2. ==> Loi de distribution
18240 #
18241        LOI = SIMP(statut="o",typ="TXM",
18242                   into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
18243                   fr="Choix de la loi",
18244                   ang="Law."),
18245 #
18246 # 7.2.1. ==> Loi normale
18247 #
18248        b_normale=BLOC(condition="LOI=='NORMALE'",
18249 #
18250          VALE_MOY   = SIMP(statut="o",typ="R",max=1,
18251                                fr="Valeur moyenne.",
18252                                ang="Mean value."),
18253 #
18254          ECART_TYPE = SIMP(statut="o",typ="R",max=1,
18255                                fr="Ecart type.",
18256                                ang="Standard deviation."),
18257 #
18258        ),
18259 #
18260 # 7.2.2. ==> Loi lognormale
18261 #
18262        b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
18263 #
18264          VALE_MIN       = SIMP(statut="o",typ="R",max=1,
18265                                    fr="Valeur minimale.",
18266                                    ang="Minimal value."),
18267 #
18268          VALE_MOY       = SIMP(statut="f",typ="R",max=1,
18269                                    fr="Valeur moyenne dans l'espace de la loi normale.",
18270                                    ang="Mean value in the space of the normal law."),
18271 #
18272          ECART_TYPE     = SIMP(statut="f",typ="R",max=1,
18273                                    fr="Ecart type dans l'espace de la loi normale.",
18274                                    ang="Standard deviation in the space of the normal law."),
18275 #
18276          VALE_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
18277                                    fr="Valeur moyenne dans l'espace physique.",
18278                                    ang="Mean value in the physical space."),
18279 #
18280          ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
18281                                    fr="Ecart type dans l'espace physique.",
18282                                    ang="Standard deviation in the physical space."),
18283 #
18284          regles=(AU_MOINS_UN("VALE_MOY"  ,"VALE_MOY_PHY"),
18285                  AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"),
18286                  EXCLUS  ("VALE_MOY"  ,"VALE_MOY_PHY"),
18287                  EXCLUS  ("VALE_MOY"  ,"ECART_TYPE_PHY"),
18288                  EXCLUS  ("ECART_TYPE","VALE_MOY_PHY"),
18289                  EXCLUS  ("ECART_TYPE","ECART_TYPE_PHY")),
18290 #
18291        ),
18292 #
18293 # 7.2.3. ==> Loi uniforme
18294 #
18295        b_uniforme=BLOC(condition="LOI=='UNIFORME'",
18296 #
18297          VALE_MIN = SIMP(statut="o",typ="R",max=1,
18298                              fr="Valeur minimale.",
18299                              ang="Minimal value."),
18300 #
18301          VALE_MAX = SIMP(statut="o",typ="R",max=1,
18302                              fr="Valeur maximale.",
18303                              ang="Maximal value."),
18304 #
18305        ),
18306 #
18307 # 7.2.4. ==> Loi normale tronquée
18308 #
18309        b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
18310 #
18311          VALE_MOY   = SIMP(statut="o",typ="R",max=1,
18312                                fr="Valeur moyenne de la loi normale complète.",
18313                                ang="Mean value for the entire normal law."),
18314 #
18315          ECART_TYPE = SIMP(statut="o",typ="R",max=1,
18316                                fr="Ecart type de la loi normale complète.",
18317                                ang="Standard deviation for the entire normal law."),
18318 #
18319          VALE_MIN   = SIMP(statut="o",typ="R",max=1,
18320                                fr="Valeur minimale.",
18321                                ang="Minimal value."),
18322 #
18323          VALE_MAX   = SIMP(statut="o",typ="R",max=1,
18324                                fr="Valeur maximale.",
18325                                ang="Maximal value."),
18326 #
18327        ),
18328 #
18329 # 7.3. ==> Paramètres de calcul
18330 # 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
18331 #
18332        regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
18333                EXCLUS("POINT_REF","POINT_CONCEPT"),),
18334 #
18335 # 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme.
18336 #            Si on ne le fait pas, le programme prendra la valeur moyenne.
18337 #
18338        POINT_INI = SIMP(statut="f",typ="R",max=1,
18339                           fr="Point de démarrage de l'algorithme itératif.",
18340                           ang="Initial point for iterative process."),
18341 #
18342 # 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser.
18343 #            Si on ne le fait pas, le programme prendra la valeur moyenne.
18344 #
18345        POINT_REF = SIMP(statut="f",typ="R",max=1,
18346                           fr="Point de référence de l'algorithme itératif.",
18347                           ang="Reference point for iterative process."),
18348 #
18349 # 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
18350 #
18351        POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
18352                               fr="Point de conception.",
18353                               ang="Design point."),
18354 #
18355 # 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
18356 #
18357        GRADIENT = SIMP(statut="o",typ="TXM",max=1,
18358                            into=("OUI","NON"),
18359                            fr="ASTER calcule directement le gradient.",
18360                        ang="ASTER computes the gradient for this parameter."),
18361
18362        b_gradient=BLOC(condition="GRADIENT=='NON'",
18363          INCREMENT = SIMP(statut="o",typ="R",max=1,
18364                              fr="Incrément dans la direction.",
18365                          ang="Direction increment."),
18366        ),
18367
18368    ),
18369 #
18370 );
18371 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18372 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18373 # ======================================================================
18374 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
18375 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18376 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18377 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18378 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18379 #                                                                       
18380 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18381 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18382 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18383 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18384 #                                                                       
18385 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18386 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18387 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18388 # ======================================================================
18389 # RESPONSABLE GNICOLAS G.NICOLAS
18390
18391 from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops
18392
18393 MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
18394                      docu="U7.04.41",UIinfo={"groupe":("Impression",)},
18395                      fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.",
18396                      ang="Print values for the fiability software",
18397 #
18398 # 1. Le niveau d'information
18399 #
18400    INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18401 #
18402 # 2. Impression de la valeur de la cible
18403 #
18404 # 2.1. ==> La table contenant la valeur à imprimer
18405 #
18406    TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster,
18407                  fr="Table contenant la valeur cible.",
18408                  ang="Table which includes the target value."),
18409 #
18410 # 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table
18411 #
18412    NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM',
18413                     fr="Nom du paramètre associé à la valeur cible.",
18414                     ang="Name of the parameter connected to the target value."),
18415 #
18416 # 3. Impressions des valeurs des éventuels gradients
18417 #
18418    GRADIENTS = FACT(statut='f',min=1,max='**',
18419 #
18420 # 3.1. ==> La table contenant la valeur à imprimer
18421 #
18422        TABLE = SIMP(statut='o',typ=table_sdaster,
18423                     fr="Table contenant le gradient.",
18424                     ang="Table which includes the gradient."),
18425 #
18426 # 3.2. ==> Le paramètre sensible
18427 #
18428        PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom),
18429                        fr="Paramètre sensible associé au gradient.",
18430                        ang="Sensitivity parameter connected to the gradient."),
18431 #
18432 # 3.3. ==> Le nom du paramètre associé au gradient dans cette table
18433 #
18434        NOM_PARA = SIMP(statut='o',typ='TXM',
18435                        fr="Nom du paramètre associé au gradient.",
18436                        ang="Name of the parameter connected to the gradient."),
18437 #
18438          ),
18439 #
18440 );
18441 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18442 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18443 # ======================================================================
18444 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18445 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18446 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18447 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18448 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18449 #
18450 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18451 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18452 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18453 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18454 #
18455 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18456 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18457 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18458 # ======================================================================
18459 # RESPONSABLE GNICOLAS G.NICOLAS
18460
18461 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
18462
18463 MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
18464                      docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)},
18465                      fr="Donner des informations sur un maillage.",
18466                      ang="To give information about a mesh.",
18467 #
18468 # 1. Le niveau d'information
18469 #
18470   INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18471 #
18472 # 2. Version de HOMARD
18473 #
18474   VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_11",
18475                         into=("V8_11", "V8_N", "V8_N_PERSO"),
18476                         fr="Version de HOMARD",
18477                         ang="HOMARD release"),
18478 #
18479 # 3. Langue des messages issus de HOMARD
18480 #
18481   LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
18482                 into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
18483                 fr="Langue des messages issus de HOMARD.",
18484                 ang="Language for HOMARD messages." ),
18485 #
18486 # 4. Le nom du maillage a analyser
18487 #
18488   MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,
18489                   fr="Maillage à analyser.",
18490                   ang="Mesh to be checked." ),
18491 #
18492 # 5. Suivi d'une frontiere
18493 #
18494   MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
18495                            fr="Maillage de la frontiere à suivre",
18496                            ang="Boundary mesh" ),
18497 #
18498   b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
18499                       fr="Information complémentaire sur la frontière",
18500                       ang="Further information about boundary",
18501 #
18502     GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
18503                     fr="Groupes de mailles définissant la frontière",
18504                     ang="Mesh groups which define the boundary" ),
18505 #
18506                     ) ,
18507 #
18508 # 6. Les options ; par defaut, on controle tout
18509 # 6.1. Nombre de noeuds et elements
18510 #
18511   NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18512                         fr="Nombre de noeuds et éléments du maillage",
18513                         ang="Number of nodes and elements in the mesh" ),
18514 #
18515 # 6.2. Determination de la qualite des elements du maillage
18516 #
18517   QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18518                         fr="Qualité du maillage",
18519                         ang="Mesh quality" ),
18520 #
18521 # 6.3. Connexite du maillage
18522 #
18523   CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18524                         fr="Connexité du maillage.",
18525                         ang="Mesh connexity." ),
18526 #
18527 # 6.4. Taille des sous-domaines du maillage
18528 #
18529   TAILLE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
18530                         fr="Tailles des sous-domaines du maillage.",
18531                         ang="Sizes of mesh sub-domains." ),
18532 #
18533 # 6.5. Controle de la non-interpenetration des elements
18534 #
18535   INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
18536                         fr="Controle de la non interpénétration des éléments.",
18537                         ang="Overlapping checking." ),
18538 #
18539 # 7. Gestion des éléments autres que ceux compatibles avec HOMARD
18540 #       "REFUSER" : ils sont refuses (defaut)
18541 #       "IGNORER" : ils sont ignorés
18542 #
18543   ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
18544                              fr="Acceptation d'éléments incompatibles avec HOMARD",
18545                              ang="Incompatible elements for HOMARD" ),
18546 )  ;
18547 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18548 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18549 # ======================================================================
18550 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
18551 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18552 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18553 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
18554 # (AT YOUR OPTION) ANY LATER VERSION.
18555 #
18556 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
18557 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
18558 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
18559 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
18560 #
18561 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
18562 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18563 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18564 # ======================================================================
18565 # RESPONSABLE DURAND C.DURAND
18566
18567 from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops
18568
18569 MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster,
18570                        reentrant='n',
18571             UIinfo={"groupes":("Outils métier",)},
18572             fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies"
18573              +" par deux points et un intervalle",
18574             regles=(UN_PARMI("RESULTAT","CHAM_GD"),),
18575
18576          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ),
18577          CHAM_GD         =SIMP(statut='f',typ=(cham_gd_sdaster)),
18578
18579          b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
18580                                  regles=(EXCLUS('NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',), ),
18581              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
18582              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
18583              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
18584              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
18585              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
18586              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
18587            ),
18588
18589 # extraction des résultats
18590          b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
18591            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ),
18592          ),
18593          b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
18594            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP' ),
18595          ),
18596          b_cham       =BLOC(condition = "CHAM_GD!=None",
18597            NOM_CHAM        =SIMP(statut='f',typ='TXM',),),
18598
18599          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),
18600          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
18601
18602          VIS_A_VIS       =FACT(statut='f',max='**',
18603                              regles=(EXCLUS('GROUP_MA_1','MAILLE_1'),),
18604            GROUP_MA_1        =SIMP(statut='f',typ=grma),
18605            MAILLE_1          =SIMP(statut='f',typ=ma,max='**'),),
18606
18607          LIGN_COUPE     =FACT(statut='o',max='**',
18608             regles=(EXCLUS("NOM_CMP","INVARIANT","ELEM_PRINCIPAUX","RESULTANTE"),
18609                     PRESENT_PRESENT("TRAC_DIR","DIRECTION"),
18610                     EXCLUS("TRAC_DIR","TRAC_NOR"),
18611                     PRESENT_PRESENT("TRAC_DIR","NOM_CMP"),
18612                     PRESENT_PRESENT("TRAC_NOR","NOM_CMP"),),
18613
18614            INTITULE        =SIMP(statut='f',typ='TXM',),
18615            TYPE            =SIMP(statut='o',typ='TXM',max=1,
18616                                  into=("GROUP_NO","SEGMENT","ARC","GROUP_MA"),defaut="SEGMENT"),
18617            REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
18618                                 into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
18619            OPERATION       =SIMP(statut='f',typ='TXM',into=("EXTRACTION","MOYENNE",),defaut="EXTRACTION",),
18620
18621            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
18622            INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",),),
18623            ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",),),
18624            RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),
18625            TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
18626            TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
18627            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
18628
18629
18630            b_local        =BLOC(condition = "REPERE=='LOCAL' ",
18631              VECT_Y          =SIMP(statut='o',typ='R',min=2,max=3),),
18632
18633            b_utili        =BLOC(condition = "REPERE=='UTILISATEUR'",
18634              ANGL_NAUT       =SIMP(statut='o',typ='R',min=3,max=3),),
18635
18636            b_grno          =BLOC(condition = "TYPE=='GROUP_NO'",
18637              GROUP_NO        =SIMP(statut='o',typ=grno, max=1),),
18638
18639            b_grma          =BLOC(condition = "TYPE=='GROUP_MA'",
18640              GROUP_MA        =SIMP(statut='o',typ=grma, max=1),
18641              MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),),
18642
18643            b_segment       =BLOC(condition = "TYPE=='SEGMENT'",
18644              NB_POINTS       =SIMP(statut='o',typ='I',max=1),
18645              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),
18646              COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),),
18647
18648            b_arc           =BLOC(condition = "TYPE=='ARC'",
18649              NB_POINTS       =SIMP(statut='o',typ='I',max=1),
18650              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),
18651              CENTRE          =SIMP(statut='o',typ='R',min=2,max=3),
18652              ANGLE           =SIMP(statut='o',typ='R',max=1),
18653              DNOR            =SIMP(statut='f',typ='R',min=2,max=3),),
18654
18655            b_cylind       =BLOC(condition = ("REPERE=='CYLINDRIQUE' and TYPE!='ARC'"),
18656              ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
18657              AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),),
18658
18659            DISTANCE_MAX    =SIMP(statut='f',typ='R',defaut=0.,
18660                 fr="Si la distance entre un noeud de la ligne de coupe et le maillage coupé "
18661                 +"est > DISTANCE_MAX, ce noeud sera ignoré."),
18662
18663          ),
18664 )  ;
18665
18666
18667 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18668 #MACRO_BASCULE_SCHEMA = MACRO(nom="MACRO_BASCULE_SCHEMA", op=macro_bascule_schema_ops, sd_prod=evol_noli,reentrant='f',
18669
18670
18671 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18672 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18673 # ======================================================================
18674 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18675 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18676 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18677 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
18678 # (AT YOUR OPTION) ANY LATER VERSION.                                 
18679 #
18680 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
18681 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
18682 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
18683 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
18684 #
18685 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
18686 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
18687 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
18688 # ======================================================================
18689 # RESPONSABLE DESROCHES X.DESROCHES
18690
18691 from Macro.macro_elas_mult_ops import macro_elas_mult_ops
18692
18693 def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
18694   if isinstance(NUME_DDL,CO) :
18695     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
18696   else:
18697     self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
18698   if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
18699   if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
18700   raise AsException("type de concept resultat non prevu")
18701
18702 MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f',
18703             UIinfo={"groupes":("Résolution",)},
18704          fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier",
18705          regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
18706          MODELE          =SIMP(statut='o',typ=modele_sdaster),
18707          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
18708          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
18709          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)),
18710          CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18711          CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18712          LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
18713          CAS_CHARGE      =FACT(statut='o',max='**',
18714            regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
18715                    UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),),
18716            NOM_CAS         =SIMP(statut='f',typ='TXM' ),
18717            MODE_FOURIER    =SIMP(statut='f',typ='I' ),
18718            TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
18719            CHAR_MECA       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18720            CHAR_CINE       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
18721            OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
18722                                  into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
18723                                        "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL",
18724                                        "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA",
18725                                        "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
18726                                        "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",
18727                                        "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA",
18728                                        "ERZ2_ELEM_SIGM","VNOR_ELEM_DEPL","ERRE_ELNO_ELEM","SIRE_ELNO_DEPL",
18729                                        "ERRE_ELEM_SIGM","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
18730                                        "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
18731                                        "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
18732                                        "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
18733            NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),
18734            NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
18735            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
18736            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
18737          ),
18738          SOLVEUR         =FACT(statut='d',
18739            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
18740            b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",
18741                                     fr="Paramètres de la méthode multi frontale",
18742              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
18743            ),
18744            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
18745              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
18746             ),
18747            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
18748                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
18749              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
18750              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18751            ),
18752          ),
18753          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
18754          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
18755 )  ;
18756 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18757 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18758 # ======================================================================
18759 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
18760 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
18761 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
18762 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
18763 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
18764 #                                                                       
18765 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
18766 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
18767 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
18768 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
18769 #                                                                       
18770 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
18771 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18772 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
18773 # ======================================================================
18774 # RESPONSABLE BODEL C.BODEL
18775
18776 from Macro.macro_expans_ops import macro_expans_ops
18777
18778 def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args):
18779     RESU_EXP = MODELE_MESURE['MESURE']
18780     for res in (RESU_NX, RESU_EX, RESU_ET, RESU_RD):
18781         if isinstance(res, CO):
18782             if AsType(RESU_EXP) == mode_meca:
18783                 self.type_sdprod(res, mode_meca)
18784             else:
18785                 self.type_sdprod(res, dyna_harmo)
18786         else:
18787             self.type_sdprod(res,res.__class__)
18788     return None
18789
18790 MACRO_EXPANS=MACRO(nom="MACRO_EXPANS",
18791                    op=macro_expans_ops,
18792                    sd_prod=macro_expans_prod,
18793                    reentrant='n',
18794                    UIinfo={"groupes":("Outils métier",)},
18795                    fr="Outil d'expansion de resultats exprimentaux sur une base definie sur un modele numerique",
18796                         MODELE_CALCUL   = FACT(statut='o',
18797                            MODELE          = SIMP(statut='o',typ=(modele_sdaster) ),
18798                            BASE            = SIMP(statut='o',typ=(mode_meca,base_modale,) ), 
18799                            NUME_MODE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
18800                                              ),
18801                         MODELE_MESURE   = FACT(statut='o',
18802                            MODELE          = SIMP(statut='o',typ=(modele_sdaster) ),
18803                            MESURE          = SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
18804                            NOM_CHAM        = SIMP(statut='f',typ='TXM',defaut="DEPL",
18805                                                   into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
18806                            NUME_MODE       = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
18807                                              ),
18808                         NUME_DDL       = SIMP(statut='f',typ=(nume_ddl_sdaster)),
18809                         RESU_NX        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
18810                         RESU_EX        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
18811                         RESU_ET        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
18812                         RESU_RD        = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
18813                         RESOLUTION     = FACT(statut='f',
18814                            METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
18815                            b_svd   =BLOC(condition="METHODE=='SVD'",
18816                                          EPS=SIMP(statut='f',typ='R',defaut=0. ),
18817                                         ),
18818                            REGUL   =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
18819                            b_regul =BLOC(condition="REGUL!='NON'",
18820                                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
18821                                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),
18822                                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
18823                                         ),
18824                                              ),
18825                    )
18826 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18827 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18828 # ======================================================================
18829 # COPYRIGHT (C) 1991 - 2001  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 # RESPONSABLE GREFFET N.GREFFET
18845
18846 from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops
18847
18848 def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
18849   self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r)
18850   self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r)
18851   self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r)
18852   if FORC_AJOU != None:
18853     for m in FORC_AJOU:
18854       self.type_sdprod(m['VECTEUR'],vect_asse_gene)
18855
18856   return None
18857
18858 MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod,
18859             UIinfo={"groupes":("Matrices/vecteurs",)},
18860             fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement"
18861               +" ou de rigidité ajoutés",
18862       regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
18863               AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
18864               EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
18865               EXCLUS('MONO_APPUI','MODE_STAT',),
18866              ),
18867          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
18868          GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
18869          GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
18870          MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
18871          FLUIDE          =FACT(statut='o',max='**',
18872            RHO             =SIMP(statut='o',typ='R'),
18873            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
18874            GROUP_MA        =SIMP(statut='f',typ=grma),
18875            MAILLE          =SIMP(statut='f',typ=ma),
18876          ),
18877          DDL_IMPO        =FACT(statut='o',max='**',
18878            regles=(UN_PARMI('NOEUD','GROUP_NO'),
18879                    UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
18880            NOEUD           =SIMP(statut='f',typ=no),
18881            GROUP_NO        =SIMP(statut='f',typ=grno),
18882            PRES_FLUIDE     =SIMP(statut='f',typ='R'),
18883            PRES_SORTIE     =SIMP(statut='f',typ='R'),
18884          ),
18885          ECOULEMENT      =FACT(statut='f',
18886            GROUP_MA_1      =SIMP(statut='o',typ=grma),
18887            GROUP_MA_2      =SIMP(statut='o',typ=grma),
18888            VNOR_1          =SIMP(statut='o',typ='R'),
18889            VNOR_2          =SIMP(statut='f',typ='R'),
18890            POTENTIEL       =SIMP(statut='f',typ=evol_ther),
18891          ),
18892          MODE_MECA       =SIMP(statut='f',typ=mode_meca),
18893          DEPL_IMPO       =SIMP(statut='f',typ=cham_no_sdaster),
18894          MODELE_GENE     =SIMP(statut='f',typ=modele_gene),
18895          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene),
18896          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.0E-2),
18897          MATR_MASS_AJOU  =SIMP(statut='f',typ=CO,),
18898          MATR_RIGI_AJOU  =SIMP(statut='f',typ=CO,),
18899          MATR_AMOR_AJOU  =SIMP(statut='f',typ=CO,),
18900          MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
18901          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
18902          FORC_AJOU       =FACT(statut='f',max='**',
18903            DIRECTION     =SIMP(statut='o',typ='R',max=3),
18904            NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
18905            GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
18906            VECTEUR       =SIMP(statut='o',typ=CO),
18907          ),
18908          SOLVEUR         =FACT(statut='d',
18909            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
18910            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
18911              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
18912            ),
18913            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
18914              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
18915            ),
18916            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
18917                                    fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
18918              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
18919              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
18920            ),
18921            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
18922              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
18923              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
18924              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
18925              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
18926              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
18927            ),
18928          ),
18929          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
18930          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
18931          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
18932 )
18933 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
18934 #            CONFIGURATION MANAGEMENT OF EDF VERSION
18935 # ======================================================================
18936 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
18937 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
18938 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
18939 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
18940 # (AT YOUR OPTION) ANY LATER VERSION.
18941 #
18942 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
18943 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
18944 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
18945 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
18946 #
18947 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
18948 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18949 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18950 # ======================================================================
18951 # RESPONSABLE PELLET J.PELLET
18952
18953 from Macro.macro_matr_asse_ops import macro_matr_asse_ops
18954
18955 def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
18956   if not MATR_ASSE:  raise AsException("Impossible de typer les concepts resultats")
18957   if not NUME_DDL :  raise AsException("Impossible de typer les concepts resultats")
18958   if isinstance(NUME_DDL,CO) :
18959     self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
18960   else:
18961     self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
18962   for m in MATR_ASSE:
18963     opti=m['OPTION']
18964
18965     if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
18966        "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
18967        "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
18968        "ONDE_FLUI","MASS_MECA_DIAG","MECA_GYRO" ) : t=matr_asse_depl_r
18969
18970     if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
18971
18972     if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
18973        "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r
18974
18975     if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
18976
18977     self.type_sdprod(m['MATRICE'],t)
18978   return None
18979
18980 MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
18981             UIinfo={"groupes":("Matrices/vecteurs",)},
18982                       sd_prod=macro_matr_asse_prod,
18983                       fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ",
18984          MODELE          =SIMP(statut='o',typ=modele_sdaster),
18985          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
18986          INST            =SIMP(statut='f',typ='R',defaut=0.),
18987          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
18988          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
18989          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
18990          NUME_DDL        =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
18991          SOLVEUR         =FACT(statut='d',
18992            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
18993          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale",
18994            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
18995          ),
18996          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT",
18997            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
18998          ),
18999          b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
19000            RENUM         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
19001          ),
19002          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="Paramètres associés à la méthode gradient conjugué",
19003            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
19004          ),
19005          ),
19006
19007          MATR_ASSE       =FACT(statut='o',max='**',
19008              MATRICE         =SIMP(statut='o',typ=CO),
19009              OPTION          =SIMP(statut='o',typ='TXM',
19010                                    into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
19011                                          "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
19012                                          "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
19013                                          "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR","MECA_GYRO",
19014                                          "RIGI_THER","MASS_THER",
19015                                          "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
19016                                          "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
19017                                    ),
19018
19019              b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
19020                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
19021              ),
19022
19023              b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
19024                SIEF_ELGA       =SIMP(statut='o',typ=cham_elem),
19025                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
19026              ),
19027
19028              b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'",
19029                THETA           =SIMP(statut='o',typ=theta_geom),
19030                PROPAGATION     =SIMP(statut='f',typ='R'),
19031              ),
19032
19033              b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'",
19034                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
19035              ),
19036
19037          ), # fin MATR_ASSE
19038
19039          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19040          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19041 )  ;
19042 #& MODIF COMMANDE  DATE 02/06/2008   AUTEUR GREFFET N.GREFFET 
19043 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19044 # ======================================================================
19045 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19046 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19047 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19048 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19049 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19050 #
19051 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19052 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19053 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19054 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19055 #
19056 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19057 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19058 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19059 # ======================================================================
19060 # RESPONSABLE DEVESA G.DEVESA
19061
19062 from Macro.macro_miss_3d_ops import macro_miss_3d_ops
19063
19064 MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,
19065             fr="Préparation des données puis exécution du logiciel MISS3D",
19066             UIinfo={"groupes":("Matrices/vecteurs",)},
19067          OPTION          =FACT(statut='o',
19068            regles=(UN_PARMI('TOUT','MODULE'),),
19069            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
19070            MODULE          =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
19071          ),
19072          PROJET          =SIMP(statut='o',typ='TXM'),  
19073          REPERTOIRE      =SIMP(statut='f',typ='TXM'),
19074          VERSION         =SIMP(statut='f',typ='TXM',into=("V1_3","V1_4",),defaut="V1_4"),
19075          UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),  
19076          UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),  
19077          UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),  
19078          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
19079          UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0),
19080          PARAMETRE       =FACT(statut='f',         
19081            regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'),
19082                    PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'),
19083                    PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'),
19084                    PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'),
19085                    PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),),
19086            FREQ_MIN        =SIMP(statut='f',typ='R'), 
19087            FREQ_MAX        =SIMP(statut='f',typ='R'),
19088            FREQ_PAS        =SIMP(statut='f',typ='R'),
19089            Z0              =SIMP(statut='f',typ='R'), 
19090            SURF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
19091            RFIC            =SIMP(statut='f',typ='R'),
19092            FICH_RESU_IMPE  =SIMP(statut='f',typ='TXM'),
19093            FICH_RESU_FORC  =SIMP(statut='f',typ='TXM'),
19094            TYPE            =SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII",),defaut="ASCII"),
19095            DREF            =SIMP(statut='f',typ='R'),
19096            ALGO            =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")),
19097            OFFSET_MAX      =SIMP(statut='f',typ='R'),
19098            OFFSET_NB       =SIMP(statut='f',typ='I'),
19099            SPEC_MAX        =SIMP(statut='f',typ='R'),
19100            SPEC_NB         =SIMP(statut='f',typ='I'),
19101            ISSF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
19102            FICH_POST_TRAI  =SIMP(statut='f',typ='TXM'),
19103            CONTR_NB        =SIMP(statut='f',typ='I'),
19104            CONTR_LISTE     =SIMP(statut='f',typ='R',max='**'),
19105            LFREQ_NB        =SIMP(statut='f',typ='I'),
19106            LFREQ_LISTE     =SIMP(statut='f',typ='R',max='**'),
19107            DIRE_ONDE       =SIMP(statut='f',typ='R',max='**'),
19108          ),
19109 )  ;
19110 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
19111 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19112 # ======================================================================
19113 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19114 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19115 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19116 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19117 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19118 #
19119 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19120 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19121 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19122 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19123 #
19124 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19125 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19126 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19127 # ======================================================================
19128 # RESPONSABLE NISTOR I.NISTOR
19129
19130 from Macro.macro_mode_meca_ops import macro_mode_meca_ops
19131
19132 MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca,
19133                      reentrant='n',fr="Lancer une succession de calculs de modes propres réels",
19134             UIinfo={"groupes":("Résolution",)},
19135          MATR_A          =SIMP(statut='o',typ=matr_asse_depl_r ),
19136          MATR_B          =SIMP(statut='o',typ=matr_asse_depl_r ),
19137          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
19138 #  ce mot cle ne devrait il pas etre dans calc_freq  
19139          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",    
19140                                into=("TRI_DIAG","JACOBI","SORENSEN",) ),
19141          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
19142            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
19143            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19144            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
19145            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
19146          ),
19147          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
19148            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
19149            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
19150            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19151            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
19152          ),
19153          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
19154            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
19155            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
19156            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
19157          ),
19158          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",    
19159                                into=("MODE_RIGIDE","SANS") ),
19160          CALC_FREQ       =FACT(statut='d',min=0,
19161            regles=(UN_PARMI('FREQ','FREQ_MAX'),
19162                    PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
19163                    PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),
19164                    EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
19165            FREQ            =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**', ),  
19166            FREQ_MIN        =SIMP(statut='f',typ='R' ),  
19167            FREQ_MAX        =SIMP(statut='f',typ='R' ),  
19168            NB_BLOC_FREQ    =SIMP(statut='f',typ='I' ),  
19169            DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),  
19170            COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
19171            NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),  
19172            NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),  
19173            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),  
19174            SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),  
19175            STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
19176          ),
19177          VERI_MODE       =FACT(statut='d',min=0,
19178            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19179            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),  
19180            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),  
19181            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19182          ),
19183          NORM_MODE       =FACT(statut='o',max='**',
19184            NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",    
19185                                  into=("MASS_GENE","RIGI_GENE","EUCL",           
19186                                        "EUCL_TRAN","TRAN","TRAN_ROTA") ),
19187            INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
19188          ),
19189          FILTRE_MODE     =FACT(statut='f',
19190            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
19191                                  into=("MASS_EFFE_UN","MASS_GENE") ),
19192            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
19193          ),
19194          IMPRESSION      =FACT(statut='d',
19195            TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19196            CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19197            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
19198                                  into=("MASS_EFFE_UN","MASS_GENE",) ),
19199          ),
19200 )  ;
19201 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
19202 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19203 # ======================================================================
19204 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19205 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19206 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19207 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19208 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19209 #
19210 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19211 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19212 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19213 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19214 #
19215 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19216 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19217 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19218 # ======================================================================
19219 # RESPONSABLE BOYERE E.BOYERE
19220
19221 from Macro.macro_proj_base_ops import macro_proj_base_ops
19222
19223 def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ):
19224   if MATR_ASSE_GENE != None:
19225     for m in MATR_ASSE_GENE:
19226       self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
19227   if VECT_ASSE_GENE != None:
19228     for v in VECT_ASSE_GENE:
19229       self.type_sdprod(v['VECTEUR'],vect_asse_gene)
19230   return None
19231
19232 MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
19233          regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')),
19234             UIinfo={"groupes":("Matrices/vecteurs",)},
19235                       sd_prod=macro_proj_base_prod,
19236          fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)",
19237          BASE            =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ),
19238          NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),
19239          PROFIL          =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
19240          MATR_ASSE_GENE  =FACT(statut='f',max='**',
19241            MATRICE         =SIMP(statut='o',typ=CO,),
19242            regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),),
19243            MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r),
19244            MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
19245          ),
19246          VECT_ASSE_GENE  =FACT(statut='f',max='**',
19247            VECTEUR         =SIMP(statut='o',typ=CO,),
19248            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),),
19249            TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
19250            VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
19251            VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
19252          ),
19253          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
19254 )  ;
19255 #& MODIF COMMANDE  DATE 03/06/2008   AUTEUR BODEL C.BODEL 
19256 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19257 # ======================================================================
19258 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
19259 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19260 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19261 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19262 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19263 #                                                                       
19264 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19265 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19266 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19267 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19268 #                                                                       
19269 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19270 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19271 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19272 # ======================================================================
19273 # RESPONSABLE BODEL C.BODEL
19274
19275 from Macro.macro_visu_meidee_ops import macro_visu_meidee_ops
19276
19277 def macro_visu_meidee_prod(self,RESU_FLUDELA,RESU_TURBULENT,RESU_MODIFSTRU,**args):
19278
19279     if RESU_FLUDELA != None:
19280         for res in RESU_FLUDELA:
19281             self.type_sdprod(res['TABLE'],table_sdaster)
19282     if RESU_TURBULENT != None:
19283         for res in RESU_TURBULENT:
19284             self.type_sdprod(res['TABLE'],table_fonction)
19285
19286     MTYPES = {
19287         'MODELE'    : modele_sdaster,
19288         'MODE_MECA' : mode_meca,
19289         'NUME_DDL'  : nume_ddl_sdaster,
19290         'MAILLAGE'  : maillage_sdaster,
19291         'MASS_MECA' : matr_asse_depl_r,
19292         'RIGI_MECA' : matr_asse_depl_r,
19293         'AMOR_MECA' : matr_asse_depl_r,
19294         'MACR_ELEM' : macr_elem_stat,
19295         'PROJ_MESU' : mode_gene,
19296               }
19297     if RESU_MODIFSTRU != None:
19298         for res in RESU_MODIFSTRU:
19299             for mc, typ in MTYPES.items():
19300                 if res[mc]:
19301                     self.type_sdprod(res[mc], typ)
19302     return None
19303
19304
19305 MACRO_VISU_MEIDEE=MACRO(nom       = 'MACRO_VISU_MEIDEE',
19306                         op        = macro_visu_meidee_ops,
19307                         sd_prod   = macro_visu_meidee_prod,
19308                         reentrant = 'n',
19309                         UIinfo    = {"groupes":("Outils métier",)},
19310                         fr        = "Outil de post-traitement interactif pour Meidee ",
19311                         UNITE_FIMEN = SIMP( statut='f',typ='I',max='**' ),
19312                         INTERACTIF  = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
19313                         RESU_FLUDELA     = FACT( statut='f',max='**',
19314                                                  TABLE = SIMP(statut='f', typ=CO),
19315                                                 ),
19316                         RESU_TURBULENT   = FACT( statut='f',max='**',
19317                                                  TABLE = SIMP(statut='f', typ=CO),
19318                                                 ),
19319                         RESU_MODIFSTRU = FACT( statut='f', max=1,
19320                                                MODELE=SIMP(statut='f',typ=CO,defaut=None),
19321                                                MODE_MECA=SIMP(statut='f',typ=CO,defaut=None),
19322                                                MAILLAGE=SIMP(statut='f',typ=CO,defaut=None),
19323                                                NUME_DDL=SIMP(statut='f',typ=CO,defaut=None),
19324                                                MASS_MECA=SIMP(statut='f',typ=CO,defaut=None),
19325                                                RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None),
19326                                                AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None),
19327                                                MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None),
19328                                                PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None),
19329                                              ),
19330                         UNITE_RESU = SIMP( statut='f',typ='I'),
19331
19332                         b_inter    = BLOC( condition="INTERACTIF=='NON'",
19333
19334                              EXPANSION        = FACT( statut='f',max='**',
19335                                                       CALCUL           = SIMP(statut='o',typ=mode_meca),
19336                                                       NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(),
19337                                                                               max='**',defaut=0),
19338                                                       MESURE           = SIMP(statut='o',typ=mode_meca),
19339                                                       NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(),
19340                                                                               max='**',defaut=0),
19341                                                       RESOLUTION       = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')),
19342                                                       b_reso           = BLOC(condition = "RESOLUTION=='SVD'",
19343                                                                               EPS = SIMP(statut='f',typ='R', defaut = 0.)
19344                                                                        )
19345                                                     ),
19346                              FLUIDE_ELASTIQUE = FACT( statut='f', max='**',
19347                                                       MESURE1 = SIMP(statut='o',typ=mode_meca),
19348                                                       MESURE2 = SIMP(statut='o',typ=mode_meca),
19349                                                       MESURE3 = SIMP(statut='o',typ=mode_meca),
19350                                                       RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
19351                                                       b_base   = BLOC(condition = "RESU_EXPANSION=='NON'",
19352                                                                       BASE = SIMP(statut='o',typ=mode_meca),
19353                                                                      ) 
19354                                                     ),
19355                              TURBULENT        = FACT( statut='f',max='**',   
19356                                                       ALPHA   = SIMP(statut='f',typ='R', defaut = 0.),
19357                                                       EPS     = SIMP(statut='f',typ='R', defaut = 0.),
19358                                                       OBSERVABILITE  = SIMP(statut='o',typ=(mode_meca, base_modale)),
19359                                                       COMMANDABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)),
19360                                                       INTE_SPEC      = SIMP(statut='o',typ=table_sdaster),
19361                                                       RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
19362                                                       b_base         = BLOC(condition = "RESU_EXPANSION=='NON'",
19363                                                                             BASE = SIMP(statut='o',typ=mode_meca),
19364                                                                            ),
19365                                                      ),
19366                              MODIFSTRUCT = FACT( statut='f', max=1,
19367                                                  MESURE = SIMP(statut='o', typ=mode_meca),
19368                                                  MODELE_SUP = SIMP(statut='o', typ=modele_sdaster),
19369                                                  MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r),
19370                                                  RESOLUTION = SIMP(statut='o', typ='TXM',
19371                                                                into=('ES', 'LMME')),
19372                                                  b_resol = BLOC( condition = "RESOLUTION=='LMME'",
19373                                                                  MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r),
19374                                                                 ),
19375                                                  NUME_MODE_MESU   = SIMP(statut='o', typ='I',max='**'),
19376                                                  NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'),
19377                                                  MAILLE_MODIF = SIMP(statut='o', typ=maillage_sdaster),
19378                                                  MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster),
19379                                                ),
19380
19381                             # Si on realise une modification structurale, on donne les DDL capteurs et interface
19382                             b_inter    = BLOC( condition="MODIFSTRUCT!=None",
19383                                 GROUP_NO_CAPTEURS  = FACT( statut='f', max='**',
19384                                                            GROUP_NO = SIMP(statut='f',typ='TXM', max='**'),
19385                                                            NOM_CMP  = SIMP(statut='f',typ='TXM', max='**'),
19386                                                          ),
19387                                 GROUP_NO_EXTERIEUR = FACT( statut='f', max='**',
19388                                                            GROUP_NO = SIMP(statut='f',typ='TXM', max='**'),
19389                                                            NOM_CMP  = SIMP(statut='f',typ='TXM', max='**'),
19390                                                          ),
19391                                               ),
19392                                           ),
19393                         );
19394
19395 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
19396 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19397 # ======================================================================
19398 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
19399 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19400 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19401 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19402 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19403 #                                                                       
19404 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19405 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19406 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19407 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19408 #                                                                       
19409 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19410 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19411 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19412 # ======================================================================
19413 # RESPONSABLE ASSIRE A.ASSIRE
19414
19415 from Macro.macr_recal_ops import macr_recal_ops
19416
19417 def macr_recal_prod(self,**args ):
19418   return listr8_sdaster
19419
19420 MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
19421             UIinfo={"groupes":("Résultats et champs",)},
19422                       sd_prod=macr_recal_prod,
19423                       fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux"
19424                         +" ou sur d'autres résultats de calculs",
19425          UNITE_ESCL      =SIMP(statut='o',typ='I'),
19426          RESU_EXP        =SIMP(statut='o',typ=assd,max='**'),
19427          POIDS           =SIMP(statut='f',typ=assd,max='**'),
19428          RESU_CALC       =SIMP(statut='o',typ=assd,max='**'),
19429          LIST_PARA       =SIMP(statut='o',typ=assd,max='**'),
19430          LIST_DERIV      =SIMP(statut='f',typ=assd,max='**'),
19431          ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10),
19432          ITER_FONC_MAXI  =SIMP(statut='f',typ='I',defaut=100),
19433          RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3),
19434          UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
19435          PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.001),
19436          GRAPHIQUE       =FACT(statut='f',
19437            FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")),
19438            b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
19439                           fr="Mots-clés propres à XMGRACE",
19440              PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
19441                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
19442                             fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
19443              UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
19444                                  fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
19445          ),
19446
19447          AFFICHAGE       =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE")),),
19448          SUIVI_ESCLAVE   =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),),
19449
19450          METHODE         =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG","FMIN","FMINBFGS","FMINNCG","EXTERNE")),
19451
19452          b_gradient =BLOC(condition = "METHODE == 'FMINBFGS' or METHODE == 'FMINNCG'" ,
19453             GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )),
19454          ),
19455
19456          b_gradient_externe =BLOC(condition = "METHODE == 'EXTERNE'" ,
19457             GRADIENT        =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )),
19458          ),
19459
19460          b_type_fonctionnelle =BLOC(condition = "METHODE == 'EXTERNE'" ,
19461             FONCTIONNELLE   =SIMP(statut='f',typ='TXM',defaut='SCALAIRE',into=("SCALAIRE","VECTORIELLE")),
19462          ),
19463
19464          INFO            =SIMP(statut='f',typ='I',defaut=2,into=( 1, 2 ) ),
19465 );
19466 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
19467 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19468 # ======================================================================
19469 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
19470 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
19471 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
19472 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
19473 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
19474 #                                                                       
19475 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
19476 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
19477 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
19478 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
19479 #                                                                       
19480 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
19481 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
19482 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19483 # ======================================================================
19484 # RESPONSABLE VOLDOIRE F.VOLDOIRE
19485
19486 from Macro.macr_spectre_ops import macr_spectre_ops
19487
19488 MACR_SPECTRE=MACRO(nom="MACR_SPECTRE",op=macr_spectre_ops,sd_prod=table_sdaster,
19489                        reentrant='n', UIinfo={"groupes":("Outils métier",)},
19490                        fr="calcul de spectre, post-traitement de séisme",
19491          MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster,),
19492          PLANCHER      =FACT(statut='o',max='**',
19493             regles=(AU_MOINS_UN('NOEUD','GROUP_NO' ),),
19494             NOM           =SIMP(statut='o',typ='TXM',),
19495             GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
19496             NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'), ),
19497          NOM_CHAM      =SIMP(statut='o',typ='TXM' ,into=('ACCE','DEPL')),
19498          CALCUL        =SIMP(statut='o',typ='TXM' ,into=('ABSOLU','RELATIF'),position='global'),
19499          b_acce  =BLOC( condition = "NOM_CHAM=='ACCE'",
19500            regles=(UN_PARMI('LIST_FREQ','FREQ'),),
19501            AMOR_SPEC     =SIMP(statut='o',typ='R',max='**'),
19502            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster ),
19503            LIST_FREQ     =SIMP(statut='f',typ=listr8_sdaster ),
19504            FREQ          =SIMP(statut='f',typ='R',max='**'),
19505            NORME         =SIMP(statut='o',typ='R'),  
19506            RESU          =FACT(statut='o',max='**',
19507                 regles=(UN_PARMI('RESU_GENE','RESULTAT'),),
19508                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
19509                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
19510                 b_calc  =BLOC( condition = "CALCUL=='RELATIF'",
19511                    ACCE_X        =SIMP(statut='o',typ=fonction_sdaster),
19512                    ACCE_Y        =SIMP(statut='o',typ=fonction_sdaster),
19513                    ACCE_Z        =SIMP(statut='o',typ=fonction_sdaster),), ),
19514            IMPRESSION    =FACT(statut='f',
19515                 TRI           =SIMP(statut='f',typ='TXM',defaut='AMOR_SPEC',into=("AMOR_SPEC","DIRECTION",),),
19516                 FORMAT        =SIMP(statut='f',typ='TXM',defaut='TABLEAU',into=("TABLEAU","XMGRACE",),),
19517                 UNITE         =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
19518                                     fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
19519                 b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
19520                    PILOTE        =SIMP(statut='f',typ='TXM',defaut='',
19521                                  into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),),),
19522                 TOUT          =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON",),),
19523                               ),
19524          ),
19525          b_depl  =BLOC( condition = "NOM_CHAM=='DEPL'",
19526            LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),  
19527            RESU          =FACT(statut='o',max=3,
19528                 regles=(UN_PARMI('RESU_GENE','RESULTAT'),),
19529                 RESU_GENE     =SIMP(statut='f',typ=tran_gene),
19530                 RESULTAT      =SIMP(statut='f',typ=(dyna_trans,evol_noli)),
19531                 b_calc  =BLOC( condition = "CALCUL=='ABSOLU'",
19532                    DEPL_X        =SIMP(statut='o',typ=fonction_sdaster),
19533                    DEPL_Y        =SIMP(statut='o',typ=fonction_sdaster),
19534                    DEPL_Z        =SIMP(statut='o',typ=fonction_sdaster),),),
19535          ),
19536 )
19537 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
19538 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19539 # ======================================================================
19540 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19541 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19542 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19543 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19544 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19545 #
19546 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19547 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19548 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19549 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19550 #
19551 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19552 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19553 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19554 # ======================================================================
19555 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
19556 MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
19557             UIinfo={"groupes":("Gestion du travail",)},
19558               fr="Compilation des catalogues de commandes et d'éléments",
19559
19560          ELEMENT         =FACT(statut='f',),
19561
19562 )  ;
19563 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
19564 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19565 # ======================================================================
19566 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19567 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19568 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19569 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
19570 # (AT YOUR OPTION) ANY LATER VERSION.
19571 #
19572 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
19573 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
19574 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
19575 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
19576 #
19577 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
19578 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
19579 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19580 # ======================================================================
19581 # RESPONSABLE PELLET J.PELLET
19582 MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
19583                    fr="Résoudre un problème de mécanique statique linéaire",reentrant='f',
19584             UIinfo={"groupes":("Résolution",)},
19585          regles=(EXCLUS("INST","LIST_INST"),
19586                  AU_MOINS_UN('CHAM_MATER','CARA_ELEM',),
19587                  CONCEPT_SENSIBLE('ENSEMBLE'),),
19588          MODELE          =SIMP(statut='o',typ=modele_sdaster),
19589          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,
19590          fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
19591          ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
19592          CARA_ELEM       =SIMP(statut='f',typ=cara_elem,
19593          fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
19594          ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
19595          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
19596          EXCIT           =FACT(statut='o',max='**',
19597            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
19598            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
19599            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
19600          ),
19601          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
19602          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
19603          INST_FIN        =SIMP(statut='f',typ='R'),
19604          OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1,
19605              fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.",
19606                           ),
19607          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
19608                                fr="Liste des paramètres de sensibilité.",
19609                                ang="List of sensitivity parameters"),
19610
19611          SOLVEUR         =FACT(statut='d',
19612          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI","MUMPS","PETSC") ),
19613
19614            b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
19615              PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
19616              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
19617              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
19618              NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19619              REAC_RESI       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19620              TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
19621              NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19622              NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19623              PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
19624              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
19625              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19626              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
19627              INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
19628              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
19629              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
19630              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19631            ),
19632
19633            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
19634              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
19635            ),
19636
19637            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
19638              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
19639            ),
19640
19641            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI' ",
19642                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
19643              NPREC           =SIMP(statut='f',typ='I',defaut=8),
19644              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19645            ),
19646
19647            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
19648              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
19649              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
19650              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
19651              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
19652              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
19653            ),
19654
19655            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
19656              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
19657              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
19658              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
19659              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
19660              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
19661              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
19662              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
19663                                    into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
19664              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
19665              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
19666              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
19667              ),
19668
19669            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
19670              VARIANTE        =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
19671              PRE_COND        =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
19672              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
19673              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-8),
19674              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
19675            ),
19676          ),
19677          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
19678 )  ;
19679 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
19680 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19681 # ======================================================================
19682 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19683 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19684 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19685 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19686 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19687 #
19688 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19689 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19690 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19691 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19692 #
19693 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19694 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19695 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19696 # ======================================================================
19697 # RESPONSABLE BODEL C.BODEL
19698 MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
19699                     fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir"
19700                         +" d'une base de modes propres réels",
19701                     reentrant='n',
19702             UIinfo={"groupes":("Résolution",)},
19703          BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
19704          NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
19705          NB_SECTEUR      =SIMP(statut='o',typ='I' ),
19706          LIAISON         =FACT(statut='o',
19707            DROITE          =SIMP(statut='o',typ='TXM' ),
19708            GAUCHE          =SIMP(statut='o',typ='TXM' ),
19709            AXE             =SIMP(statut='f',typ='TXM' ),
19710          ),
19711          VERI_CYCL       =FACT(statut='f',
19712            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
19713            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
19714            DIST_REFE       =SIMP(statut='f',typ='R' ),
19715          ),
19716          CALCUL          =FACT(statut='o',
19717            regles=(UN_PARMI('TOUT_DIAM','NB_DIAM'),),
19718            TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
19719            NB_DIAM         =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
19720            OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
19721                                 ,into=("PLUS_PETITE","CENTRE","BANDE") ),
19722            b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
19723              FREQ            =SIMP(statut='o',typ='R',),
19724            ),
19725            b_bande       =BLOC(condition = "OPTION == 'BANDE'",
19726              FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
19727            ),
19728 #  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
19729            NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
19730            PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
19731            PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
19732            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
19733          ),
19734          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19735 )  ;
19736 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
19737 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19738 # ======================================================================
19739 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19740 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19741 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19742 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19743 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19744 #
19745 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19746 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19747 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19748 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19749 #
19750 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19751 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19752 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19753 # ======================================================================
19754 # RESPONSABLE NISTOR I.NISTOR
19755
19756 def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
19757   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
19758   if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
19759   if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
19760   if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
19761   if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
19762   raise AsException("type de concept resultat non prevu")
19763
19764 MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
19765                     ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
19766                      reentrant='n',
19767             UIinfo={"groupes":("Résolution",)},
19768          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
19769          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
19770          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
19771          MATR_C          =SIMP(statut='f',typ=matr_asse_depl_r ),
19772          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",   
19773                                into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ),
19774          b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
19775            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
19776            
19777              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
19778                                    fr="Choix de l option pour estimer les valeurs propres"  ),
19779              FREQ            =SIMP(statut='o',typ='R',max='**'),
19780              AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),     
19781              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
19782              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
19783              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
19784              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
19785              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
19786
19787              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19788              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19789              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
19790              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
19791            ),
19792          ),
19793          b_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
19794            CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
19795            
19796              OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
19797                                  fr="Choix de l option pour estimer les valeurs propres"  ),
19798              CHAR_CRIT       =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
19799              NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
19800              NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
19801              PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
19802              NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
19803              PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
19804            
19805              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19806              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19807              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
19808              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
19809            ),
19810          ),
19811          CALC_MODE       =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres",
19812            OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
19813            PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ),
19814            NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
19815          ),
19816          VERI_MODE       =FACT(statut='d',min=0,
19817            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19818            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0,
19819                                  fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
19820          ),
19821          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
19822                                fr="Liste des param\350tres de sensibilit\351.",
19823                                ang="List of sensitivity parameters",
19824          ),
19825          b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
19826              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
19827              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
19828              EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
19829          ),
19830          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19831          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
19832 )  ;
19833 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
19834 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19835 # ======================================================================
19836 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19837 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19838 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19839 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19840 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19841 #
19842 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19843 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19844 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19845 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19846 #
19847 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19848 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19849 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
19850 # ======================================================================
19851 # RESPONSABLE NISTOR I.NISTOR
19852
19853 def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
19854   if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
19855   if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
19856   if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
19857   if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c
19858   if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
19859   if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
19860   if AsType(MATR_A) == matr_asse_gene_c : return mode_gene
19861
19862   raise AsException("type de concept resultat non prevu")
19863
19864 MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
19865                       fr="Calcul des modes propres par itérations simultanées ; valeurs propres et"
19866                          +" modes propres réels ou complexes",
19867                       reentrant='n',
19868             UIinfo={"groupes":("Résolution",)},
19869          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
19870          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,
19871                                matr_asse_gene_r,matr_asse_gene_c,matr_asse_pres_r ) ),
19872          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
19873          MATR_C          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
19874          METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
19875                                into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ),
19876          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
19877            PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
19878            NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19879            PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
19880            NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
19881          ),
19882          b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
19883            PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
19884            NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
19885            PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19886            NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
19887          ),
19888          b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
19889            PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
19890            NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
19891            PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
19892          ),
19893          b_qz =BLOC(condition = "METHODE == 'QZ'",
19894            TYPE_QZ      =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ),  
19895          ),
19896          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
19897                                into=("MODE_FLAMB","DYNAMIQUE"),
19898                                fr="Type d analyse" ),
19899          OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
19900                                fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
19901
19902          b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
19903            CALC_FREQ       =FACT(statut='d',min=0,
19904              OPTION       =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
19905                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
19906              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
19907                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19908              ),
19909              b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
19910                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
19911                CHAR_CRIT       =SIMP(statut='o',typ='R',
19912                                      fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
19913                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19914              ),
19915              b_bande       =BLOC(condition = "(OPTION == 'BANDE')",
19916                                  fr="Recherche des valeurs propres dans une bande donnée",
19917                CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
19918                                      fr="Valeur des deux charges critiques délimitant la bande de recherche"),
19919              ),           
19920              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
19921                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
19922              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
19923              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
19924              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
19925              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19926              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19927              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
19928              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19929            ),
19930          ),
19931
19932          b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
19933            CALC_FREQ       =FACT(statut='d',min=0,
19934              OPTION      =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
19935                                    fr="Choix de l option et par conséquent du shift du problème modal" ),
19936              b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
19937                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19938              ),
19939              b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
19940                                   fr="Recherche des valeurs propres les plus proches d une valeur donnée",
19941                FREQ            =SIMP(statut='o',typ='R',
19942                                      fr="Fréquence autour de laquelle on cherche les fréquences propres"),
19943                AMOR_REDUIT     =SIMP(statut='f',typ='R',),
19944                NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
19945              ),
19946              b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
19947                                    fr="Recherche des valeurs propres dans une bande donnée",
19948                FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
19949                                      fr="Valeur des deux fréquences délimitant la bande de recherche"),
19950              ),           
19951              APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
19952                                    fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
19953              regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
19954              DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
19955              COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
19956              NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
19957              NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
19958              PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
19959              SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
19960            ),
19961          ),
19962
19963          VERI_MODE       =FACT(statut='d',min=0,
19964            STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19965            PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
19966            SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
19967                                  fr="Valeur limite admise pour l ereur a posteriori des modes" ),
19968            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19969          ),
19970          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
19971                                fr="Liste des param\350tres de sensibilit\351.",
19972                                ang="List of sensitivity parameters",
19973          ),
19974          b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
19975              CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
19976              CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
19977              EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
19978          ),
19979          STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
19980          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
19981          TITRE           =SIMP(statut='f',typ='TXM',max='**'),        
19982 )  ;
19983 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
19984 #            CONFIGURATION MANAGEMENT OF EDF VERSION
19985 # ======================================================================
19986 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
19987 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
19988 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
19989 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
19990 # (AT YOUR OPTION) ANY LATER VERSION.                                 
19991 #
19992 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
19993 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
19994 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
19995 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
19996 #
19997 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
19998 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
19999 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20000 # ======================================================================
20001 # RESPONSABLE NISTOR I.NISTOR
20002
20003 def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
20004  if (MODE_STAT != None)          : return mode_stat_depl
20005  if (PSEUDO_MODE !=None)         : return mode_stat_acce
20006  if (FORCE_NODALE != None)       : return mode_stat_forc
20007  raise AsException("type de concept resultat non prevu")
20008 MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
20009                    fr="Calcul de modes statiques pour un déplacement, une force ou une accélération unitaire imposé",
20010                    reentrant='n',
20011             UIinfo={"groupes":("Résolution",)},
20012          MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
20013          MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
20014                regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),),
20015          MODE_STAT       =FACT(statut='f',max='**',
20016            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
20017                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
20018            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
20019            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
20020            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
20021            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
20022            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20023            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20024          ),
20025          FORCE_NODALE    =FACT(statut='f',max='**',
20026            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
20027                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
20028            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
20029            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
20030            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
20031            TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",), ),
20032            AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20033            SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20034          ),
20035          PSEUDO_MODE       =FACT(statut='f',max='**',
20036            regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
20037            AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
20038            DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3),
20039            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
20040            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
20041            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
20042            b_dir           =BLOC(condition = "DIRECTION != None",
20043              NOM_DIR         =SIMP(statut='f',typ='TXM' ),),
20044            b_cmp          =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
20045              regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
20046              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20047              AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
20048              SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'), 
20049         ),
20050          ),
20051          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20052          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
20053 )  ;
20054 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20055 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20056 # ======================================================================
20057 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20058 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20059 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20060 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20061 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20062 #
20063 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20064 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20065 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20066 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20067 #
20068 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20069 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20070 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20071 # ======================================================================
20072 # RESPONSABLE ADOBES A.ADOBES
20073 MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
20074                       reentrant='f',
20075             fr="Définir la base modale d'une structure sous écoulement",
20076             UIinfo={"groupes":("Matrices/vecteurs",)},
20077 #  la commande modi_base _modale : reentrant = f ou o                      
20078          regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
20079          BASE            =SIMP(statut='o',typ=mode_meca ),
20080          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
20081          NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
20082          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20083          AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
20084          AMOR_UNIF       =SIMP(statut='f',typ='R' ),
20085          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20086          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20087 )  ;
20088 #& MODIF COMMANDE  DATE 06/05/2008   AUTEUR KHAM M.KHAM 
20089 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20090 # ======================================================================
20091 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20092 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20093 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20094 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20095 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20096 #
20097 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20098 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20099 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20100 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20101 #
20102 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20103 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20104 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20105 # ======================================================================
20106 # RESPONSABLE PELLET J.PELLET
20107 MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
20108                    fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant,"
20109                       +" à l'application d'une pression, à la modélisation du contact,...",
20110                    reentrant='o',
20111             UIinfo={"groupes":("Maillage",)},
20112       regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20113                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
20114                        'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE',
20115                        'ORIE_LIGNE',),
20116               PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20117                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
20118                        'ORIE_LIGNE'),
20119               PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D',
20120                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
20121                        'ORIE_LIGNE'),
20122               PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D',
20123                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
20124                        'ORIE_LIGNE'),
20125               PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA',
20126                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
20127                        'ORIE_LIGNE'),
20128               PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20129                        'PLAQ_TUBE','MODI_MAILLE',),
20130               PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20131                        'PLAQ_TUBE','MODI_MAILLE','ORIE_LIGNE'),
20132               PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20133                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE','ORIE_LIGNE'),
20134               PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
20135                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','ORIE_LIGNE'),
20136               EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
20137               EXCLUS('EQUE_PIQUA','TUBE_COUDE'),
20138               EXCLUS('ROTATION','MODI_BASE'),
20139               EXCLUS('SYMETRIE','ROTATION'),
20140               EXCLUS('SYMETRIE','TRANSLATION'),
20141               EXCLUS('SYMETRIE','MODI_BASE'),
20142               EXCLUS('SYMETRIE','ECHELLE'),
20143               ),
20144          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
20145
20146          ORIE_FISSURE    =FACT(statut='f',
20147            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20148          ),
20149
20150          DEFORME         =FACT(statut='f',
20151            OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
20152            DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
20153         b_deform        =BLOC(condition = "OPTION=='TRAN_APPUI'", 
20154            GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),
20155            GROUP_NO_STRU  = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),),
20156          ),
20157
20158          EQUE_PIQUA      =FACT(statut='f',
20159            GROUP_NO        =SIMP(statut='o',typ=grno),
20160            E_BASE          =SIMP(statut='o',typ='R' ),
20161            DEXT_BASE       =SIMP(statut='o',typ='R' ),
20162            L_BASE          =SIMP(statut='o',typ='R' ),
20163            L_CHANF         =SIMP(statut='o',typ='R' ),
20164            TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
20165            H_SOUD          =SIMP(statut='o',typ='R' ),
20166            ANGL_SOUD       =SIMP(statut='o',typ='R' ),
20167            JEU_SOUD        =SIMP(statut='o',typ='R' ),
20168            E_CORP          =SIMP(statut='o',typ='R' ),
20169            DEXT_CORP       =SIMP(statut='o',typ='R' ),
20170            AZIMUT          =SIMP(statut='o',typ='R' ),
20171            RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
20172            X_MAX           =SIMP(statut='o',typ='R' ),
20173          ),
20174          ORIE_PEAU_2D    =FACT(statut='f',max='**',
20175            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20176          ),
20177          ORIE_PEAU_3D    =FACT(statut='f',max='**',
20178            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20179            GROUP_MA_VOLU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20180          ),
20181          ORIE_SHB8       =FACT(statut='f',max=1,
20182            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20183          ),
20184          ORIE_NORM_COQUE =FACT(statut='f',max='**',
20185            regles=(EXCLUS('NOEUD','GROUP_NO'),
20186                    PRESENT_PRESENT('NOEUD','VECT_NORM'),
20187                    PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
20188            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20189            VECT_NORM       =SIMP(statut='f',typ='R',max=3),
20190            NOEUD           =SIMP(statut='f',typ=no),
20191            GROUP_NO        =SIMP(statut='f',typ=grno),
20192          ),
20193          ORIE_LIGNE =FACT(statut='f',max='**',
20194            regles=(EXCLUS('NOEUD','GROUP_NO'),
20195                    PRESENT_PRESENT('NOEUD','VECT_TANG'),
20196                    PRESENT_PRESENT('GROUP_NO','VECT_TANG'),),
20197            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
20198            VECT_TANG       =SIMP(statut='f',typ='R',max=3),
20199            NOEUD           =SIMP(statut='f',typ=no),
20200            GROUP_NO        =SIMP(statut='f',typ=grno),
20201          ),
20202          PLAQ_TUBE       =FACT(statut='f',
20203            DEXT            =SIMP(statut='o',typ='R' ),
20204            EPAIS           =SIMP(statut='o',typ='R' ),
20205            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
20206            AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
20207            COUTURE         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",)  ),
20208          ),
20209          TUBE_COUDE      =FACT(statut='f',
20210            ANGLE           =SIMP(statut='o',typ='R' ),
20211            R_CINTR         =SIMP(statut='o',typ='R' ),
20212            L_TUBE_P1       =SIMP(statut='o',typ='R' ),
20213          ),
20214          MODI_MAILLE     =FACT(statut='f',max=1,
20215            regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),),
20216            OPTION          =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ),
20217            GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
20218            MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
20219            GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
20220            NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
20221          ),
20222          MODI_BASE       =FACT(statut='f',
20223            VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
20224            VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),
20225          ),
20226          ECHELLE         =SIMP(statut='f',typ='R',),        
20227          TRANSLATION     =SIMP(statut='f',typ='R',min=2,max=3),
20228          ROTATION        =FACT(statut='f',max='**',
20229            POIN_1           =SIMP(statut='o',typ='R',min=2,max=3),
20230            ANGL             =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
20231            regles=(EXCLUS('DIR','POIN_2'),),
20232            POIN_2           =SIMP(statut='f',typ='R',min=2,max=3),
20233            DIR              =SIMP(statut='f',typ='R',min=2,max=3),
20234          ),
20235          SYMETRIE        =FACT(statut='f',max='**',
20236                           fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.",
20237            POINT           =SIMP(statut='o',typ='R',min=2,max=3,
20238                             fr="Point appartenant à la droite ou au plan."),
20239            AXE_1           =SIMP(statut='o',typ='R',min=2,max=3,
20240                             fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."),
20241            AXE_2           =SIMP(statut='f',typ='R',min=3,max=3,
20242                             fr="2nd vecteur appartenant du plan."),
20243          ),
20244          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
20245 )  ;
20246 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR GENIAUT S.GENIAUT 
20247 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20248 # ======================================================================
20249 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
20250 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
20251 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20252 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
20253 # (AT YOUR OPTION) ANY LATER VERSION.
20254 #
20255 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20256 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20257 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20258 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20259 #
20260 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20261 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20262 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20263 # ======================================================================
20264 # RESPONSABLE GENIAUT S.GENIAUT
20265
20266 MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f',
20267             UIinfo={"groupes":("Modélisation",)},
20268                            fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
20269                            
20270     MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=1,max=1,),
20271     FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=1,max='**',),
20272     CRITERE         =SIMP(statut='f',typ='R',defaut=1.67E-8),
20273     INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
20274     CONTACT         =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),min=1,max=1,),
20275 )  ;
20276 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20277 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20278 # ======================================================================
20279 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20280 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20281 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20282 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20283 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20284 #
20285 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20286 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20287 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20288 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20289 #
20290 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20291 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20292 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20293 # ======================================================================
20294 # RESPONSABLE KHAM M.KHAM
20295 MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=table_fonction,
20296             fr="Calculer les obstacles dans les systèmes guidage-tube après usure",
20297             reentrant='f',
20298             UIinfo={"groupes":("Modélisation",)},
20299       regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
20300               PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
20301          OBSTACLE        =SIMP(statut='f',typ=table_fonction),
20302          GUIDE           =SIMP(statut='o',typ=table_sdaster),
20303          CRAYON          =SIMP(statut='f',typ=table_sdaster),
20304          TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
20305          INST            =SIMP(statut='f',typ='R'),  
20306          R_MOBILE        =SIMP(statut='f',typ='R'),  
20307          PERCEMENT       =SIMP(statut='f',typ='R',defaut=1),  
20308          V_USUR_TUBE     =SIMP(statut='f',typ='R',max='**'),
20309          V_USUR_OBST     =SIMP(statut='f',typ='R',max='**'),
20310          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
20311 )  ;
20312 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20313 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20314 # ======================================================================
20315 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20316 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20317 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20318 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20319 # (AT YOUR OPTION) ANY LATER VERSION.
20320 #
20321 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20322 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20323 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20324 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20325 #
20326 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20327 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20328 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20329 # ======================================================================
20330 # RESPONSABLE DESROCHES X.DESROCHES
20331 def modi_repere_prod(RESULTAT,**args):
20332   if AsType(RESULTAT) != None : return AsType(RESULTAT)
20333
20334 MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n',
20335             UIinfo={"groupes":("Résultats et champs",)},
20336                     fr="Calcule des résultats dans le repère cylindrique",
20337          RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
20338
20339          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20340                         'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
20341          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20342          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20343          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20344          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20345          NOM_CAS         =SIMP(statut='f',typ='TXM' ),
20346
20347          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20348          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20349          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
20350          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
20351
20352          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
20353          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
20354
20355          MODI_CHAM       =FACT(statut='o',max='**',
20356            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20357            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
20358            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20359            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
20360            TYPE_CHAM       =SIMP(statut='o',typ='TXM',
20361                                  into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
20362            NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
20363            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
20364               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
20365            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
20366               NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
20367            b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
20368               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
20369            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
20370               NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
20371            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
20372               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
20373          ),
20374          DEFI_REPERE     =FACT(statut='o',
20375          regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),),
20376            REPERE          =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",
20377                                  into=("UTILISATEUR","CYLINDRIQUE"),),
20378            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
20379            ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
20380            AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),
20381          ),
20382          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
20383          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
20384 )  ;
20385 #& MODIF COMMANDE  DATE 05/05/2008   AUTEUR NISTOR I.NISTOR 
20386 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20387 # ======================================================================
20388 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20389 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20390 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20391 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20392 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20393 #
20394 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20395 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20396 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20397 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20398 #
20399 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20400 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20401 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20402 # ======================================================================
20403 # RESPONSABLE NISTOR I.NISTOR
20404
20405 def norm_mode_prod(MODE,**args ):
20406   if AsType(MODE) == mode_meca   : return mode_meca
20407   if AsType(MODE) == mode_meca_c : return mode_meca_c
20408   if AsType(MODE) == mode_flamb  : return mode_flamb
20409   if AsType(MODE) == base_modale : return base_modale
20410   raise AsException("type de concept resultat non prevu")
20411
20412 NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
20413                fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur",
20414                reentrant='f',
20415             UIinfo={"groupes":("Résolution",)},
20416          regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),
20417                  CONCEPT_SENSIBLE('SEPARE'),
20418                  DERIVABLE('MODE'),),
20419          MODE       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
20420          NORME      =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
20421                           into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
20422          NOEUD      =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
20423          b_noeud    =BLOC(condition = "NOEUD != None",
20424            NOM_CMP    =SIMP(statut='o',typ='TXM' ),
20425          ),
20426          AVEC_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20427          SANS_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20428          MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes",
20429            NOEUD      =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
20430            NOM_CMP    =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
20431            SIGNE      =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
20432                             fr="Choix du signe" ),
20433          ),
20434          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
20435                                fr="Liste des param\350tres de sensibilit\351.",
20436                                ang="List of sensitivity parameters",
20437          ),
20438          b_base    =BLOC(condition = "AsType(MODE) == base_modale",
20439               MASSE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ),
20440               RAIDE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ),
20441               AMOR  = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
20442          ),
20443          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
20444          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
20445 )  ;
20446 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20447 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20448 # ======================================================================
20449 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20450 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20451 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20452 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
20453 # (AT YOUR OPTION) ANY LATER VERSION.
20454 #
20455 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
20456 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
20457 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
20458 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
20459 #
20460 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
20461 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
20462 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20463 # ======================================================================
20464 # RESPONSABLE PELLET J.PELLET
20465 NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n',
20466             UIinfo={"groupes":("Matrices/vecteurs",)},
20467               fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
20468                   regles=(UN_PARMI('MATR_RIGI','MODELE'),),
20469          MATR_RIGI       =SIMP(statut='f',validators=NoRepeat(),max=100,
20470                                typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ),
20471          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
20472          b_modele        =BLOC(condition = "MODELE != None",
20473            CHARGE     =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
20474          ),
20475          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
20476          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
20477            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
20478          ),
20479          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
20480            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
20481          ),
20482          b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
20483            RENUM         =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
20484          ),
20485          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
20486            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
20487          ),
20488          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
20489 )  ;
20490 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20491 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20492 # ======================================================================
20493 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20494 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20495 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20496 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20497 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20498 #
20499 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20500 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20501 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20502 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20503 #
20504 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20505 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20506 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20507 # ======================================================================
20508 # RESPONSABLE BODEL C.BODEL
20509 NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
20510                    fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées",
20511                     reentrant='n',
20512             UIinfo={"groupes":("Matrices/vecteurs",)},
20513          regles=UN_PARMI('MODELE_GENE','BASE'),
20514          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
20515              b_modele_gene     =BLOC(condition = "MODELE_GENE != None",
20516                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
20517                METHODE            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE") ),
20518                                     ),
20519          BASE     =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ),
20520              b_base     =BLOC(condition = "BASE != None",
20521                STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ),
20522                NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
20523                              ),
20524 )  ;
20525 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20526 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20527 # ======================================================================
20528 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
20529 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
20530 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
20531 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
20532 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
20533 #                                                                       
20534 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
20535 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
20536 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
20537 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
20538 #                                                                       
20539 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
20540 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
20541 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
20542 # ======================================================================
20543 # RESPONSABLE BODEL C.BODEL
20544
20545 from Macro.observation_ops import observation_ops
20546
20547
20548 def observation_prod(self, RESULTAT, **args):
20549     if AsType(RESULTAT) == base_modale or AsType(RESULTAT) == mode_meca :
20550         return base_modale
20551     elif AsType(RESULTAT) == evol_elas :
20552         return evol_elas
20553     elif AsType(RESULTAT) == dyna_harmo :
20554         return dyna_harmo
20555     else :
20556         return None
20557
20558 OBSERVATION=MACRO(nom="OBSERVATION",op=observation_ops,
20559             UIinfo={"groupes":("Matrices/vecteurs",)},
20560                       sd_prod=observation_prod,
20561                       fr="Calcul de l'observabilite d'un champ aux noeuds ",
20562 #
20563          MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
20564          MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
20565          RESULTAT        =SIMP(statut='o',typ=(mode_meca,base_modale) ),
20566          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1),
20567
20568 #        ------------------------------------------------------------------
20569
20570          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','FREQ','LIST_FREQ','NUME_MODE' ),),
20571          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20572          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
20573          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
20574          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
20575          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
20576          LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
20577          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
20578          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
20579          NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20580
20581 #        ------------------------------------------------------------------
20582 #        OPTIONS DE PROJ_CHAMP (SANS MC FACTEUR PARTICULIER)
20583 #        ------------------------------------------------------------------
20584          PROJECTION     =SIMP(statut='f',max=1,typ='TXM',into=("OUI","NON"),defaut="NON"),
20585          CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
20586          DISTANCE_MAX    =SIMP(statut='f',typ='R',
20587                 fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
20588          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
20589
20590          TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",), 
20591                 fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
20592
20593 #           PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
20594 #                fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger"
20595 #                   +" les champs par zéro la ou la projection ne donne pas de valeurs."),
20596
20597          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
20598          VIS_A_VIS       =FACT(statut='f',max='**',
20599              regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
20600                      AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
20601              TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20602              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20603              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20604              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
20605              NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
20606              TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20607              GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20608              MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20609              GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
20610              NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
20611              CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
20612              ),
20613
20614 #        ------------------------------------------------------------------
20615 #        MODI_REPERE
20616 #        ------------------------------------------------------------------
20617          MODI_REPERE     =FACT(statut='f',max='**',
20618          regles=(UN_PARMI('REPERE'),
20619                  AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
20620            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20621            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
20622            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20623            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
20624            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20625 #
20626            TYPE_CHAM       =SIMP(statut='f',typ='TXM',
20627                                  into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),
20628                                        defaut="VECT_3D"),
20629            b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
20630               NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
20631            b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
20632               NOM_CMP         =SIMP(statut='f',typ='TXM',min=3,max=3,defaut=('DX','DY','DZ') ),),
20633            b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
20634               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
20635            b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
20636               NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
20637            b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
20638               NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
20639
20640            REPERE          =SIMP(statut='o',typ='TXM',
20641                                  into=("UTILISATEUR","CYLINDRIQUE","NORMALE"),),
20642            b_normale       =BLOC(condition = "REPERE=='NORMALE'",
20643              regles=(UN_PARMI('VECT_X','VECT_Y')),
20644              VECT_X          =SIMP(statut='f',typ='R',min=3,max=3),
20645              VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3), ),
20646            b_utilisateur   =BLOC(condition = "REPERE=='UTILISATEUR'",
20647              ANGL_NAUT       =SIMP(statut='o',typ='R',max=3)),
20648            b_cylindrique   =BLOC(condition = "REPERE=='CYLINDRIQUE'",
20649              ORIGINE         =SIMP(statut='o',typ='R',min=2,max=3),
20650              AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3)),
20651          ),
20652
20653 #        ------------------------------------------------------------------
20654 #        FILTRE DES DDL
20655 #        ------------------------------------------------------------------
20656          FILTRE     =FACT(statut='f',max='**',
20657            regles=(UN_PARMI('DDL_ACTIF'),
20658 #                           'MASQUE'),
20659            AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
20660            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20661            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
20662            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20663            NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
20664            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20665 #
20666            DDL_ACTIF       =SIMP(statut='f',typ='TXM',max=6),
20667 # TODO : mettre en place le systeme de masques
20668 #           MASQUE          =SIMP(statut='f',typ='TXM',max=6),
20669          ),
20670 #        ------------------------------------------------------------------
20671
20672          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
20673          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
20674       )  ;
20675 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20676 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20677 # ======================================================================
20678 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
20679 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
20680 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
20681 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
20682 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
20683 #                                                                       
20684 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
20685 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
20686 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
20687 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
20688 #                                                                       
20689 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
20690 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
20691 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
20692 # ======================================================================
20693 # RESPONSABLE GENIAUT S.GENIAUT
20694 POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=evol_noli,
20695                     reentrant='n',UIinfo={"groupes":("Post traitements",)},
20696             fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré",
20697     MAILLAGE_SAIN = SIMP(statut='o',typ=maillage_sdaster),
20698     MAILLAGE_FISS = SIMP(statut='o',typ=maillage_sdaster),
20699     NOM_CHAM      = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA"),),
20700     MODELE        = SIMP(statut='o',typ=modele_sdaster,),
20701     RESULTAT      = SIMP(statut='o',typ=resultat_sdaster),
20702       b_elga      = BLOC(condition = "NOM_CHAM in ('SIEF_ELGA','VARI_ELGA') or \
20703                                       (type(NOM_CHAM)==type(()) and 'SIEF_ELGA' in NOM_CHAM) or \
20704                                       (type(NOM_CHAM)==type(()) and 'VARI_ELGA' in NOM_CHAM)",
20705       MODELE_VISU = SIMP(statut='o',typ=modele_sdaster,),
20706                          ),
20707     INFO           =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
20708 );                     
20709 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20710 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20711 # ======================================================================
20712 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20713 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20714 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20715 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20716 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20717 #
20718 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20719 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20720 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20721 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20722 #
20723 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20724 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20725 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20726 # ======================================================================
20727 # RESPONSABLE ZENTNER I.ZENTNER
20728 from Macro.post_dyna_alea_ops import post_dyna_alea_ops
20729 POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA",op= post_dyna_alea_ops,sd_prod=table_sdaster,
20730                     fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers",
20731                     reentrant='n',
20732             UIinfo={"groupes":("Post traitements",)},
20733          regles=(UN_PARMI('FRAGILITE','INTE_SPEC'),),
20734          FRAGILITE  =FACT(statut='f',fr="donnees pour courbe de fragilite",max='**', 
20735                     TABL_RESU  =SIMP(statut='o',typ=table_sdaster),
20736                     regles=(UN_PARMI('VALE','LIST_PARA'),),
20737                     VALE       = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**' ), 
20738                     LIST_PARA  = SIMP(statut='f',typ=listr8_sdaster), 
20739                     AM_INI     =  SIMP(statut='f',typ='R',defaut= 0.4 ), 
20740                     BETA_INI   = SIMP(statut='f',typ='R',defaut= 0.3 ), 
20741                     FRACTILE   = SIMP(statut='f',typ='R', min=1,validators=NoRepeat(),max='**'),
20742                     b_inte_spec_f  = BLOC(condition="""FRACTILE !=None""",
20743                         NB_TIRAGE =SIMP(statut='f',typ='I' ),),                   
20744                  ),
20745          INTE_SPEC       =SIMP(statut='f',typ=table_fonction),
20746          b_inte_spec_f      =BLOC(condition="""INTE_SPEC !=None""",
20747             regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
20748             NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),  
20749             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
20750             NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**' ),
20751             NOEUD_I         =SIMP(statut='f',typ=no,max='**'),         
20752             OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
20753             b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
20754                NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),   
20755                                 ),  
20756             b_noeud_i      =BLOC(condition = "NOEUD_I != None",
20757                NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
20758                NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),  
20759                NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),     
20760                                 ), 
20761             MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), 
20762             ),  
20763          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
20764          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20765 )  ;
20766 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
20767 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20768 # ======================================================================
20769 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20770 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20771 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20772 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20773 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20774 #
20775 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20776 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20777 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20778 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20779 #
20780 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20781 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20782 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20783 # ======================================================================
20784 # RESPONSABLE BOYERE E.BOYERE
20785 POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster,
20786                       fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL",
20787                       reentrant='n',
20788             UIinfo={"groupes":("Post traitements",)},
20789         regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
20790          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
20791          CHOC            =FACT(statut='f',max='**',
20792                                fr="Analyse des non linéarités de choc",
20793            INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
20794            INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
20795            NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
20796            SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20797            DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
20798            OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
20799            NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
20800          ),
20801          RELA_EFFO_DEPL  =FACT(statut='f',
20802                                fr="Analyse des relationsnon linéaires effort-déplacement",
20803            NOEUD           =SIMP(statut='o',typ=no),
20804            NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
20805          ),
20806          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
20807          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
20808 )  ;
20809 #& MODIF COMMANDE  DATE 20/05/2008   AUTEUR MAHFOUZ D.MAHFOUZ 
20810 #            CONFIGURATION MANAGEMENT OF EDF VERSION
20811 # ======================================================================
20812 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
20813 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
20814 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
20815 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
20816 # (AT YOUR OPTION) ANY LATER VERSION.                                 
20817 #
20818 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
20819 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
20820 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
20821 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
20822 #
20823 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
20824 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
20825 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
20826 # ======================================================================
20827 # RESPONSABLE DESROCHES X.DESROCHES
20828 POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n',
20829             UIinfo={"groupes":("Post traitements",)},
20830                fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
20831
20832          regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT','MINMAX',
20833                           'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
20834                           'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
20835                           'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','INTEGRALE'),
20836                 ),
20837
20838          MASS_INER      = FACT(statut='f',max='**',
20839                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20840                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20841                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20842                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20843                                ORIG_INER    = SIMP(statut='f',typ='R',min=3,max=3 ),
20844                               ),
20845          b_mass_iner = BLOC(condition = "( MASS_INER != None )",
20846                        fr="calcul de la masse, les inerties et le centre de gravité",
20847                        regles=(EXCLUS('CHAM_GD','RESULTAT'),
20848                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20849                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
20850                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20851                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20852                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20853                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
20854                                         char_ther,char_acou),validators=NoRepeat(),max='**' ),
20855                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20856                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20857                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20858                        GEOMETRIE      = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
20859                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20860                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
20861                                                              fourier_elas,dyna_trans) ),
20862                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20863                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20864                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20865                        NUME_ORDRE     = SIMP(statut='f',typ='I',),
20866                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20867                        INST           = SIMP(statut='f',typ='R',),
20868                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20869                        FREQ           = SIMP(statut='f',typ='R',),
20870                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
20871                        NUME_MODE      = SIMP(statut='f',typ='I',),
20872                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2),
20873                        NOM_CAS        = SIMP(statut='f',typ='TXM',),
20874          ),
20875
20876          ENER_POT       = FACT(statut='f',max='**',
20877                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20878                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20879                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20880                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20881                               ),
20882          b_ener_pot = BLOC(condition = "( ENER_POT  != None )",
20883                        fr="calcul de l'énergie potentielle de déformation",
20884                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
20885                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20886                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
20887                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20888                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20889                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20890                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
20891                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
20892                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20893                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20894                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
20895                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20896                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20897                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ),
20898                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20899                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20900                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20901                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20902                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20903                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20904                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20905                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20906                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
20907                        NUME_MODE      = SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
20908                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20909                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20910          ),
20911
20912          ENER_CIN       = FACT(statut='f',max='**',
20913                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20914                                OPTION       = SIMP(statut='f',typ='TXM',
20915                                                    into=("MASS_MECA","MASS_MECA_DIAG"),
20916                                                    defaut="MASS_MECA" ),
20917                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20918                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20919                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20920                               ),
20921          b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
20922                        fr="calcul de l'énergie cinétique",
20923                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
20924                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
20925                                       'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
20926                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20927                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20928                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20929                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
20930                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
20931                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20932                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20933                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
20934                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20935                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
20936                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
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                        FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20945                        LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
20946                        NUME_MODE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20947                        NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20948                        NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
20949          ),
20950
20951          ENER_ELAS      = FACT(statut='f',max='**',
20952                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20953                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20954                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20955                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20956                               ),
20957          b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
20958                        fr="calcul de l'énergie de déformation élastique",
20959                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20960                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20961                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20962                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
20963                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
20964                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20965                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20966                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20967                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20968                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20969                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20970                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20971                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20972                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
20973                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
20974                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
20975                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
20976          ),
20977
20978          ENER_TOTALE    = FACT(statut='f',max='**',
20979                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
20980                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20981                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
20982                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
20983                               ),
20984          b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
20985                        fr="calcul de l'énergie de déformation totale",
20986                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
20987                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
20988                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
20989                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
20990                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
20991                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
20992                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
20993                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
20994                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
20995                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
20996                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
20997                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
20998                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
20999                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21000                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21001                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21002                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21003          ),
21004
21005          INTEGRALE  = FACT(statut='f',max='**',
21006                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21007                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21008                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21009                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21010                                NOM_CHAM       = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
21011                                NOM_CMP        = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
21012                               ),
21013          b_integrale = BLOC(condition = "( INTEGRALE != None )",
21014                        fr="calcul de la moyenne d'une composante",
21015                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21016                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21017                        RESULTAT       = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas) ),
21018                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21019                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21020                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21021                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21022                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21023                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21024                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21025          ),
21026
21027
21028          MINMAX  = FACT(statut='f',max=1,
21029                        fr="calcul des extrema en espace d'une CMP d'un champ, pour tous les instants spécifiés",
21030                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
21031                                PRESENT_PRESENT('CHAM_GD','MODELE'),
21032                                PRESENT_PRESENT('RESULTAT','NOM_CHAM'),
21033                                AU_MOINS_UN('TOUT','GROUP_MA'),),
21034                        TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),                          
21035                        GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),           
21036                        RESULTAT       = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ),
21037                        NOM_CHAM       = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),                
21038                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
21039                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21040                        NOM_CMP        = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),        
21041               b_minmax = BLOC(condition = "( RESULTAT != None )",
21042                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21043                               PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21044                               CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21045                               TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21046                               NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21047                               LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21048                               INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21049                               LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21050                               ),
21051          ),
21052
21053          WEIBULL        = FACT(statut='f',max='**',
21054                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21055                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21056                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21057                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21058                                OPTION       = SIMP(statut='f',typ='TXM',
21059                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
21060                                                    defaut="SIGM_ELGA"),
21061                                CORR_PLAST   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
21062                                COEF_MULT    = SIMP(statut='f',typ='R',defaut=1.),
21063                               ),
21064          b_weibull = BLOC(condition = "( WEIBULL != None )",
21065                        fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
21066                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
21067                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21068                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21069                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21070                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
21071                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21072                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21073                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
21074                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
21075                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21076                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
21077                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
21078                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21079                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21080                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21081                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21082                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21083                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21084                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21085          ),
21086
21087          RICE_TRACEY    = FACT(statut='f',max='**',
21088                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21089                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21090                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21091                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21092                                OPTION       = SIMP(statut='f',typ='TXM',
21093                                                    into=("SIGM_ELGA","SIGM_ELMOY"),
21094                                                    defaut="SIGM_ELGA"),
21095                                LOCAL        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
21096                               ),
21097          b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
21098                        fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
21099                        regles=(UN_PARMI('CHAM_GD','RESULTAT'),
21100                                EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21101                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21102                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21103                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
21104                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21105                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21106                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
21107                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
21108                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21109                        CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
21110                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
21111                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21112                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21113                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21114                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21115                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21116                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21117                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21118          ),
21119
21120          INDIC_ENER     = FACT(statut='f',max='**',
21121                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21122                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21123                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21124                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21125                               ),
21126          b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
21127                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
21128                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21129                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21130                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21131                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21132                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21133                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
21134                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21135                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21136                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21137                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21138                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21139                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21140                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21141                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21142          ),
21143
21144          INDIC_SEUIL    = FACT(statut='f',max='**',
21145                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21146                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21147                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21148                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21149                               ),
21150          b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
21151                        fr="calcul un indicateur global de perte de proportionnalité du chargement",
21152                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21153                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21154                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21155                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21156                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21157                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
21158                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21159                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21160                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21161                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21162                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21163                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21164                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21165                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21166          ),
21167
21168          CHAR_LIMITE    = FACT(statut='f',min=0,
21169                                CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
21170                               ),
21171          b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
21172                        fr="post-traitement du calcul de la charge limite",
21173                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21174                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21175                        CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
21176                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21177                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21178                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21179                        RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
21180                        regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
21181                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21182                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21183                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21184                        NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21185                        LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
21186                        INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21187                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
21188          ),
21189
21190          CARA_GEOM      = FACT(statut='f',max='**',
21191                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21192                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21193                                MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21194                                GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21195                                SYME_X       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21196                                SYME_Y       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
21197                                ORIG_INER    = SIMP(statut='f',typ='R',min=2,max=2),
21198                               ),
21199          b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
21200                        fr="calcul des caractéristiques géométriques d'un section de poutre",
21201                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21202                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21203                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21204                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21205                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21206          ),
21207
21208          CARA_POUTRE    = FACT(statut='f',max='**',
21209                                regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
21210                                        ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
21211                                TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21212                                GROUP_MA      = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21213                                GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21214                                CARA_GEOM     = SIMP(statut='o',typ=table_sdaster),
21215                                RT            = SIMP(statut='f',typ='R'),
21216                                LAPL_PHI      = SIMP(statut='f',typ=evol_ther),
21217                                LAPL_PHI_Y    = SIMP(statut='f',typ=evol_ther),
21218                                LAPL_PHI_Z    = SIMP(statut='f',typ=evol_ther),
21219                                LIAISON       = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
21220                                LONGUEUR      = SIMP(statut='f',typ='R'),
21221                                MATERIAU      = SIMP(statut='f',typ=mater_sdaster),
21222                                OPTION        = SIMP(statut='f',typ='TXM',
21223                                                     into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
21224                              ),
21225          b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
21226                        fr="calcul des caractéristiques mécaniques d'un section de poutre",
21227                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21228                        CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
21229                        CHARGE         = SIMP(statut='f',typ=(char_meca,char_cine_meca,
21230                        char_ther,char_acou),validators=NoRepeat(),max='**' ),
21231                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
21232          ),
21233
21234           AIRE_INTERNE   = FACT(statut='f',max='**',
21235                                 GROUP_MA_BORD  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
21236                                ),
21237          b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
21238                        fr="calcul de l'aire d'un trou dans un maillage 2D",
21239                        MODELE         = SIMP(statut='f',typ=modele_sdaster),
21240          ),
21241
21242          TRAV_EXT       = FACT(statut='f',),
21243          b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
21244                        fr="calcul du travail des efforts extérieurs",
21245                        RESULTAT       = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ),
21246                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
21247                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
21248                        TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21249          ),
21250
21251          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
21252          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21253
21254  )  ;
21255 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21256 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21257 # ======================================================================
21258 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21259 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21260 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21261 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21262 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21263 #
21264 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21265 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21266 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21267 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21268 #
21269 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21270 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21271 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21272 # ======================================================================
21273 # RESPONSABLE ZENTNER I.ZENTNER
21274 POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n',
21275             UIinfo={"groupes":("Post traitements",)},
21276                     fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire",
21277          regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
21278                  PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
21279                  UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
21280          MOMENT_SPEC_0   =SIMP(statut='f',typ='R'),  
21281          MOMENT_SPEC_2   =SIMP(statut='f',typ='R'),  
21282          MOMENT_SPEC_4   =SIMP(statut='f',typ='R'),  
21283          TABL_POST_ALEA  =SIMP(statut='f',typ=table_sdaster),
21284          COMPTAGE        =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
21285          DUREE           =SIMP(statut='f',typ='R',defaut= 1.),  
21286          CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
21287          DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
21288          MATER           =SIMP(statut='o',typ=mater_sdaster),
21289          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
21290 )  ;
21291 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21292 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21293 # ======================================================================
21294 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21295 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21296 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21297 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
21298 # (AT YOUR OPTION) ANY LATER VERSION.
21299 #
21300 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
21301 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
21302 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
21303 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
21304 #
21305 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
21306 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
21307 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
21308 # ======================================================================
21309 # RESPONSABLE ANGLES J.ANGLES
21310 POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n',
21311             UIinfo={"groupes":("Post traitements",)},
21312                   fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement",
21313
21314          CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
21315
21316          b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
21317                       regles=(PRESENT_PRESENT('CORR_KE','MATER'),
21318                               PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
21319                               PRESENT_PRESENT('DOMMAGE','MATER'),),
21320              HISTOIRE       = FACT(statut='o',
21321                                  regles=(UN_PARMI('SIGM','EPSI'),),
21322                                  SIGM  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21323                                  EPSI  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
21324              COMPTAGE       = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
21325              DELTA_OSCI     = SIMP(statut='f',typ='R',defaut= 0.0E+0),
21326              COEF_MULT      = FACT(statut='f',
21327                                  KT    = SIMP(statut='o',typ='R'),),
21328              CORR_KE        = SIMP(statut='f',typ='TXM',into=("RCCM",)),
21329              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN",
21330                                                               "TAHERI_MANSON","TAHERI_MIXTE")),
21331              MATER          = SIMP(statut='f',typ=mater_sdaster),
21332              CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
21333              TAHERI_NAPPE   = SIMP(statut='f',typ=(nappe_sdaster,formule)),
21334              TAHERI_FONC    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21335              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
21336          ),
21337
21338          b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
21339              HISTOIRE       = FACT(statut='o',
21340                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21341                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21342                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21343                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21344                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21345                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
21346              CRITERE        = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
21347              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
21348              MATER          = SIMP(statut='o',typ=mater_sdaster),
21349              COEF_CORR      = SIMP(statut='f',typ='R'),
21350          ),
21351
21352          b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
21353              HISTOIRE       = FACT(statut='o',
21354                                  SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21355                                  SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21356                                  SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21357                                  SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21358                                  SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21359                                  SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21360                                  EPSP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
21361                                  TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),),
21362              DOMMAGE        = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),),
21363              MATER          = SIMP(statut='o',typ=mater_sdaster),
21364              CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
21365          ),
21366
21367          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21368          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21369 )  ;
21370 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21371 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21372 # ======================================================================
21373 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
21374 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21375 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21376 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21377 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21378 #                                                                       
21379 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21380 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21381 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21382 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21383 #                                                                       
21384 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21385 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21386 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21387 # ======================================================================
21388 # RESPONSABLE WADIER Y.WADIER
21389
21390 from Macro.post_gp_ops import post_gp_ops
21391 def post_gp_prod(self, TABL_RESU, **kargs):
21392    """Typage des sd_prod
21393    """
21394    if TABL_RESU != None:
21395       self.type_sdprod(TABL_RESU, table_sdaster)
21396    return table_sdaster
21397
21398 POST_GP=MACRO(nom="POST_GP", op=post_gp_ops, sd_prod=post_gp_prod,
21399               fr="Calcul du critère énergétique Gp suite à un calcul thermo-mécanique",
21400               reentrant='n',
21401               UIinfo={"groupes":("Post traitements",)},
21402               regles=(UN_PARMI('IDENTIFICATION', 'PREDICTION'),
21403                       UN_PARMI('THETA_2D','THETA_3D'),
21404                       UN_PARMI('PAS_ENTAILLE','LIST_EP_COPEAUX'),
21405                       PRESENT_PRESENT('THETA_2D','DIRECTION'),),
21406       
21407       # Résultat, modèle, comportement, chargement
21408       RESULTAT     = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
21409       RESU_THER    = SIMP(statut='f',typ=evol_ther,),
21410       MODELE       = SIMP(statut='o',typ=modele_sdaster),
21411       MATER        = SIMP(statut='o',typ=mater_sdaster),
21412       
21413       COMP_ELAS    = FACT(statut='o',
21414             RELATION    = SIMP(statut='f',typ='TXM',defaut="ELAS",
21415                             into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC"),),
21416             DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN"),),
21417       ),
21418       
21419       EXCIT        = FACT(statut='f', max='**',
21420             CHARGE      = SIMP(statut='o', typ=(char_meca,char_cine_meca)),
21421             FONC_MULT   = SIMP(statut='f', typ=(fonction_sdaster,nappe_sdaster,formule)),
21422             TYPE_CHARGE = SIMP(statut='f', typ='TXM', defaut="FIXE", into=("FIXE",)),
21423       ),
21424       SYME_CHAR    = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS")),
21425       
21426       DIRECTION    = SIMP(statut='f', typ='R', max=3),
21427
21428       THETA_2D     = FACT(statut='f', max='**',
21429                           fr="paramètres de définition des champs theta",
21430             GROUP_NO    = SIMP(statut='o', typ=grno, validators=NoRepeat(), max='**'),
21431             R_INF       = SIMP(statut='o', typ='R'),
21432             R_SUP       = SIMP(statut='o', typ='R'),
21433       ),
21434
21435
21436       THETA_3D        =FACT(statut='f',max='**',
21437             GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
21438             R_INF           =SIMP(statut='o',typ='R'),
21439             R_SUP           =SIMP(statut='o',typ='R'),
21440                          ),
21441          b_theta_3d     =BLOC(condition="THETA_3D != None",
21442             LISSAGE         =FACT(statut='d',
21443                 DEGRE            =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
21444                 LISSAGE_THETA    =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",
21445                                   into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
21446                 LISSAGE_G        =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",
21447                                   into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),),
21448                              ),
21449     
21450             FOND_FISS       =SIMP(statut='o',typ=fond_fiss,max=1,),
21451             NB_TRANCHES     =SIMP(statut='o',typ='I',max=1,
21452                             fr="nombre de tranches: nombre de segments maillant le fond de fissure",),
21453                          ),
21454
21455       # prise en compte de la traction compression
21456       TRAC_COMP    = SIMP(statut='f',typ='TXM',into=("OUI",),
21457                           fr="prise en compte de la traction-compression (plus lent)",
21458                          ),
21459
21460       # copeaux
21461       GROUP_MA        = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'),
21462       PAS_ENTAILLE    = SIMP(statut='f', typ='R', val_min=0.),
21463       LIST_EP_COPEAUX = SIMP(statut='f', typ='R', max='**'),
21464       
21465       # critère sur Gp
21466       CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU",
21467                           into=("RELATIF","ABSOLU")),
21468       
21469       # correction axisymétrie
21470       RAYON_AXIS   = SIMP(statut='f', typ='R', val_min=0., defaut=1.),
21471       
21472       # identification
21473       IDENTIFICATION = FACT(statut='f', max=1,
21474             KJ_CRIT     = SIMP(statut='o', typ='R', val_min=0., max='**'),
21475             TEMP        = SIMP(statut='o', typ='R', val_min=0., max='**'),
21476       ),
21477       
21478       # prédiction
21479       PREDICTION   = FACT(statut='f', max=1,
21480             GP_CRIT     = SIMP(statut='o', typ='R', val_min=0., max='**'),
21481             TEMP        = SIMP(statut='o', typ='R', val_min=0., max='**'),
21482       ),
21483       
21484       # table résultat
21485       TABL_RESU    = SIMP(statut='o', typ=CO,),
21486       
21487       INFO         = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),),
21488 )
21489 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21490 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21491 # ======================================================================
21492 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21493 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21494 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21495 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21496 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21497 #
21498 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21499 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21500 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21501 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21502 #
21503 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21504 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21505 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21506 # ======================================================================
21507 # RESPONSABLE GALENNE E.GALENNE
21508 from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops
21509 POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster,
21510                    fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements"
21511                      +" sur les lèvres de la fissure",
21512                    reentrant='n',
21513             UIinfo={"groupes":("Post traitements",)},
21514
21515            regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
21516                   EXCLUS('FISSURE','FOND_FISS'),
21517                   PRESENT_PRESENT('FISSURE','RESULTAT'),
21518                   PRESENT_PRESENT('FOND_FISS','VECT_K1'),
21519                   PRESENT_PRESENT('TABL_DEPL_SUP','VECT_K1'),
21520                    #PRESENT_PRESENT('RESULTAT','FOND_FISS'),
21521                    ),
21522
21523          MODELISATION  =SIMP(statut='o',typ='TXM',
21524                              into=("3D","AXIS","D_PLAN","C_PLAN"),
21525                              fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
21526          FOND_FISS     =SIMP(statut='f',typ=fond_fiss),
21527          FISSURE     =SIMP(statut='f',typ=fiss_xfem),
21528          b_fond_fiss   =BLOC (condition="(FOND_FISS!= None)",
21529                          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
21530                          TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"),
21531                          NB_NOEUD_COUPE= SIMP(statut='f',typ='I'),
21532                          NOEUD         = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21533                          GROUP_NO      = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21534                          SANS_NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21535                          SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21536                          TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
21537                          EVOL_THER     = SIMP(statut='f',typ=(evol_ther),fr="Température sur le fond de fissure")
21538                          ),
21539          b_fissure   =BLOC (condition="(FISSURE!= None)",
21540                          MAILLAGE       = SIMP(statut='o',typ=maillage_sdaster),
21541                          NB_NOEUD_COUPE = SIMP(statut='f',typ='I' ,defaut=5 ),
21542                          DTAN_ORIG      = SIMP(statut='f',typ='R',max='**'),
21543                          DTAN_EXTR      = SIMP(statut='f',typ='R',max='**'),
21544                          ),
21545          MATER         =SIMP(statut='o',typ=mater_sdaster,
21546                              fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
21547          RESULTAT      =SIMP(statut='f',typ=(evol_elas,evol_noli),
21548                              fr="Déplacement des noeuds de la lèvre supérieure et inférieure"),
21549          TABL_DEPL_SUP =SIMP(statut='f',typ=table_sdaster,
21550                              fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
21551          TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster,
21552                              fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
21553          ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
21554                              fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"),  
21555          PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1),
21556          TOUT_ORDRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21557          NUME_ORDRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21558          LIST_ORDRE    =SIMP(statut='f',typ=listis_sdaster),
21559          INST          =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21560          LIST_INST     =SIMP(statut='f',typ=listr8_sdaster),
21561              b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
21562                PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
21563                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
21564              ),
21565          SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ),
21566          INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21567          VECT_K1       =SIMP(statut='f',typ='R',max=3,
21568                              fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"),  
21569          TITRE         =SIMP(statut='f',typ='TXM',max='**'),  
21570 )  ;
21571 #& MODIF COMMANDE  DATE 03/06/2008   AUTEUR DURAND C.DURAND 
21572 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21573 # ======================================================================
21574 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
21575 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21576 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21577 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21578 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21579 #
21580 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21581 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21582 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21583 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21584 #
21585 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21586 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21587 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21588 # ======================================================================
21589 # RESPONSABLE C.MESSELIER-GOUZE
21590 #
21591 POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster,
21592                    fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA",
21593                    reentrant='n',
21594             UIinfo={"groupes":("Post traitements",)},
21595          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
21596          MATER_REV     = SIMP(statut='o',typ=mater_sdaster),
21597          EPAIS_REV     = SIMP(statut='o',typ='R'),
21598          FISSURE       = FACT(statut='o',
21599             DECALAGE       = SIMP(statut='f',typ='R',defaut=-2.e-04),
21600             PROFONDEUR     = SIMP(statut='o',typ='R'),
21601             LONGUEUR       = SIMP(statut='o',typ='R'),
21602             ORIENTATION    = SIMP(statut='o',typ='TXM',
21603                                  into=("CIRC","LONGI"),),
21604          ),
21605          K1D           = FACT(statut='o',max='**',
21606             TABL_MECA_REV  = SIMP(statut='o',typ=(table_sdaster)),
21607             TABL_MECA_MDB  = SIMP(statut='o',typ=(table_sdaster)),
21608             TABL_THER      = SIMP(statut='o',typ=(table_sdaster)),
21609             INTITULE       = SIMP(statut='o',typ='TXM' ), 
21610          ),
21611          TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
21612 );
21613 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21614 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21615 # ======================================================================
21616 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
21617 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21618 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21619 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21620 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21621 #                                                                       
21622 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21623 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21624 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21625 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21626 #                                                                       
21627 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21628 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21629 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21630 # ======================================================================
21631 # RESPONSABLE GALENNE E.GALENNE
21632
21633 from Macro.post_k_trans_ops import post_k_trans_ops
21634
21635 POST_K_TRANS=MACRO(nom="POST_K_TRANS",op=post_k_trans_ops,sd_prod=table_sdaster,
21636             fr="Calcul des facteurs d intensite des contrainte par recombinaison modale",reentrant='n',
21637             UIinfo={"groupes":("Post traitements",)},
21638         RESU_TRANS      =SIMP(statut='o',typ=tran_gene), 
21639         K_MODAL         =FACT(statut='o',
21640            TABL_K_MODA     =SIMP(statut='f',typ=table_sdaster,),
21641            RESU_MODA       =SIMP(statut='f',typ=mode_meca,),
21642            FOND_FISS       =SIMP(statut='f',typ=fond_fiss,),
21643            FISSURE         =SIMP(statut='f',typ=fiss_xfem,),
21644            THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster)),
21645            R_INF           =SIMP(statut='f',typ='R'),
21646            R_SUP           =SIMP(statut='f',typ='R'),
21647            MODULE          =SIMP(statut='f',typ='R'),
21648            DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
21649            DIRECTION       =SIMP(statut='f',typ='R',max='**'),
21650            R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21651            R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),             
21652            MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
21653            DEGRE           =SIMP(statut='f',typ='I',into=(0,1,2,3,4,5,6,7) ),
21654            LISSAGE_THETA   =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),),
21655            LISSAGE_G       =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),),
21656
21657
21658            regles=(UN_PARMI('TABL_K_MODA','RESU_MODA'),
21659                    UN_PARMI('FISSURE','FOND_FISS'),
21660                    EXCLUS('MODULE','MODULE_FO'),
21661                    PRESENT_PRESENT('R_INF','R_SUP'),
21662                    PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
21663          ),
21664         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
21665         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21666         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
21667         LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
21668         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21669         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
21670         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
21671         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
21672
21673         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
21674         TITRE           =SIMP(statut='f',typ='TXM'),
21675 )
21676
21677 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21678 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21679 # ======================================================================
21680 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
21681 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
21682 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
21683 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
21684 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
21685 #                                                                       
21686 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
21687 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
21688 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
21689 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
21690 #                                                                       
21691 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
21692 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
21693 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
21694 # ======================================================================
21695 # RESPONSABLE GENIAUT S.GENIAUT
21696 POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
21697                     reentrant='n',UIinfo={"groupes":("Maillage",)},
21698             fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM",
21699     MODELE        = SIMP(statut='o',typ=modele_sdaster),
21700     MAILLAGE_SAIN = SIMP(statut='o',typ=maillage_sdaster),
21701     PREF_NOEUD_X   =SIMP(statut='f',typ='TXM',defaut="NX",validators=LongStr(1,2),),
21702     PREF_NOEUD_M   =SIMP(statut='f',typ='TXM',defaut="NM",validators=LongStr(1,2),),
21703     PREF_NOEUD_P   =SIMP(statut='f',typ='TXM',defaut="NP",validators=LongStr(1,2),),
21704     PREF_MAILLE_X  =SIMP(statut='f',typ='TXM',defaut="MX",validators=LongStr(1,2),),
21705     TITRE         = SIMP(statut='f',typ='TXM',max='**'),
21706     INFO           =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
21707
21708 );                     
21709 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21710 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21711 # ======================================================================
21712 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21713 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21714 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21715 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21716 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21717 #
21718 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21719 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21720 # MERCHANTABILITY OR FITNESS FOR A PARTIC               
21721 #
21722 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21723 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21724 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21725 # ======================================================================
21726 # RESPONSABLE GALENNE E.GALENNE
21727 POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster,
21728                fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
21729                reentrant='n',
21730             UIinfo={"groupes":("Post traitements",)},
21731          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ),
21732          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
21733          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
21734          TYPE_RESU_MECA  =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ),
21735
21736 # ======================================================================
21737      b_evolution  =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')",
21738
21739          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
21740                                into=("PM_PB","SN","FATIGUE_ZH210","AMORCAGE") ),
21741          MATER           =SIMP(statut='o',typ=mater_sdaster ),
21742          SY_MAX          =SIMP(statut='f',typ='R',
21743                                fr="limite élastique utilisée pour le calcul du rochet thermique" ),
21744
21745          TRANSITOIRE     =FACT(statut='o',max='**',fr="transitoire à dépouiller",
21746            regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),
21747                    UN_PARMI('TABL_RESU_MECA','TABL_SIGM_THETA'),),
21748            NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,
21749                                  fr="nombre d occurences réelles de ce transitoire" ),
21750            TABL_RESU_MECA  =SIMP(statut='f',typ=table_sdaster,
21751                                  fr="relevé des contraintes sur le chemin"),
21752            TABL_SIGM_THER  =SIMP(statut='f',typ=table_sdaster,
21753                                  fr="résultat sous chargement thermique seul" ),
21754            TABL_RESU_PRES  =SIMP(statut='f',typ=table_sdaster,
21755                                  fr="table relevé des contraintes sous chargement de pression" ),
21756            TABL_SIGM_THETA =SIMP(statut='f',typ=table_sdaster,
21757                                  fr="table relevé des contraintes a la distance d de la singularité pour chacun des angles THETA" ),
21758            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21759            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
21760            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
21761            b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
21762              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
21763              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
21764                                  ), 
21765                              ),
21766          ),
21767
21768 # ======================================================================
21769      b_unitaire  =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')",
21770
21771          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
21772                                into=("PM_PB","SN","FATIGUE") ),
21773          MATER           =SIMP(statut='o',typ=mater_sdaster ),
21774          SY_MAX          =SIMP(statut='f',typ='R',
21775                                fr="limite élastique utilisée pourle calcul du rochet thermique" ),
21776          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
21777                                fr="Ke meca seul ou partition mecanique + thermique" ),
21778          CHAR_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
21779                            regles=(UN_PARMI('MX','MX_TUBU'),),
21780            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
21781            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
21782            TYPE_CHAR     =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
21783            MX            =SIMP(statut='f',typ='R',fr="moment suivant x", ),
21784            MX_TUBU       =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ),
21785            b_1_tenseur     =BLOC( condition = "MX != None",
21786              FX            =SIMP(statut='f',typ='R',fr="effort suivant x", ),
21787              FY            =SIMP(statut='f',typ='R',fr="effort suivant y", ),
21788              FZ            =SIMP(statut='f',typ='R',fr="effort suivant z", ),
21789              MY            =SIMP(statut='o',typ='R',fr="moment suivant y", ),
21790              MZ            =SIMP(statut='o',typ='R',fr="moment suivant z", ),
21791            ),
21792            b_2_tenseurs    =BLOC( condition = "MX_TUBU != None",
21793              FX_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ),
21794              FY_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ),
21795              FZ_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ),
21796              MY_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ),
21797              MZ_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ),
21798              FX_CORP       =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ),
21799              FY_CORP       =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ),
21800              FZ_CORP       =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ),
21801              MX_CORP       =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ),
21802              MY_CORP       =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ),
21803              MZ_CORP       =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ),
21804            ),
21805
21806                          ),
21807          RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires",
21808                               regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),),
21809            TABL_MX       =SIMP(statut='f',typ=table_sdaster,
21810                                fr="table relevé des contraintes pour chargement unitaire MX"),
21811            TABL_MX_TUBU  =SIMP(statut='f',typ=table_sdaster,
21812                                fr="table relevé des contraintes pour chargement unitaire MX_TUBU"),
21813            b_1_tenseur     =BLOC( condition = "TABL_MX != None",
21814              TABL_FX       =SIMP(statut='f',typ=table_sdaster,
21815                                  fr="table relevé des contraintes pour chargement unitaire FX"),
21816              TABL_FY       =SIMP(statut='f',typ=table_sdaster,
21817                                  fr="table relevé des contraintes pour chargement unitaire FY"),
21818              TABL_FZ       =SIMP(statut='f',typ=table_sdaster,
21819                                  fr="table relevé des contraintes pour chargement unitaire FZ"),
21820              TABL_MY       =SIMP(statut='o',typ=table_sdaster,
21821                                  fr="table relevé des contraintes pour chargement unitaire MY"),
21822              TABL_MZ       =SIMP(statut='o',typ=table_sdaster,
21823                                  fr="table relevé des contraintes pour chargement unitaire MZ"),
21824            ),
21825            b_2_tenseurs    =BLOC( condition = "TABL_MX_TUBU != None",
21826              TABL_FX_TUBU  =SIMP(statut='f',typ=table_sdaster,
21827                                  fr="table relevé des contraintes pour chargement unitaire FX_TUBU"),
21828              TABL_FY_TUBU  =SIMP(statut='f',typ=table_sdaster,
21829                                  fr="table relevé des contraintes pour chargement unitaire FY_TUBU"),
21830              TABL_FZ_TUBU  =SIMP(statut='f',typ=table_sdaster,
21831                                  fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"),
21832              TABL_MY_TUBU  =SIMP(statut='o',typ=table_sdaster,
21833                                  fr="table relevé des contraintes pour chargement unitaire MY_TUBU"),
21834              TABL_MZ_TUBU  =SIMP(statut='o',typ=table_sdaster,
21835                                  fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"),
21836              TABL_FX_CORP  =SIMP(statut='f',typ=table_sdaster,
21837                                  fr="table relevé des contraintes pour chargement unitaire FX_CORP"),
21838              TABL_FY_CORP  =SIMP(statut='f',typ=table_sdaster,
21839                                  fr="table relevé des contraintes pour chargement unitaire FY_CORP"),
21840              TABL_FZ_CORP  =SIMP(statut='f',typ=table_sdaster,
21841                                  fr="table relevé des contraintes pour chargement unitaire FZ_CORP"),
21842              TABL_MX_CORP  =SIMP(statut='o',typ=table_sdaster,
21843                                  fr="table relevé des contraintes pour chargement unitaire MX_CORP"),
21844              TABL_MY_CORP  =SIMP(statut='o',typ=table_sdaster,
21845                                  fr="table relevé des contraintes pour chargement unitaire MY_CORP"),
21846              TABL_MZ_CORP  =SIMP(statut='o',typ=table_sdaster,
21847                                  fr="table relevé des contraintes pour chargement unitaire MZ_CORP"),
21848            ),
21849            TABL_PRES     =SIMP(statut='o',typ=table_sdaster,
21850                                fr="table relevé des contraintes pour chargement unitaire de pression"),
21851                          ),
21852
21853           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
21854            NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
21855            TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
21856                               fr="table relevé des contraintes sous chargement thermique seul" ),
21857                            ),
21858          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
21859               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
21860               NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
21861               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
21862               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
21863               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
21864               NUME_GROUPE      =SIMP(statut='f',typ='I',max=2,
21865                  fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ),
21866               NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
21867               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
21868               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
21869               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
21870               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
21871               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
21872               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
21873                                ),
21874                       ),
21875 # ======================================================================
21876      b_tuyauterie  =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')",
21877
21878          OPTION          =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ),
21879          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
21880          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
21881                                fr="Ke meca seul ou partition mecanique + thermique" ),
21882          MODELE          =SIMP(statut='o',typ=modele_sdaster),
21883          CARA_ELEM       =SIMP(statut='o',typ=cara_elem),
21884          ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
21885             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21886             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21887             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21888             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21889             ),
21890          RESU_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
21891            regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
21892            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
21893            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
21894            TYPE_CHAR     =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
21895            CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
21896            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
21897            b_extrac        =BLOC(condition="RESULTAT != None",
21898                                  fr="extraction d un champ de grandeur",
21899              regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),),
21900              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),),
21901              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21902              NUME_ORDRE      =SIMP(statut='f',typ='I',),
21903              INST            =SIMP(statut='f',typ='R',),
21904              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
21905              b_acce_reel     =BLOC(condition="(INST != None)",
21906                PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
21907                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ),
21908              ),
21909            ),
21910                           ),
21911          INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes",
21912             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21913             C1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"),
21914             K1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"),
21915             C2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"),
21916             K2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"),
21917             C3              =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"),
21918             K3              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"),
21919             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),),
21920             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
21921                              fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
21922             MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
21923                              fr="liste des mailles ou sont affectés les indices de contraintes"),
21924             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
21925                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21926                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21927             ),
21928             TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"),
21929                               fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"),
21930                          ),
21931           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
21932             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
21933             NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
21934             TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
21935                               fr="table relevé des températures sur la section"),
21936             TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster,
21937                               fr="table relevé des moyennes sur la section"),
21938             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
21939             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
21940             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
21941             b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
21942                GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
21943                NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
21944             ),
21945                            ),
21946          SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
21947               NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
21948               NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
21949               NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
21950               NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
21951               COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
21952               NUME_GROUPE      =SIMP(statut='f',typ='I',max=2,
21953                  fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ),
21954               NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
21955               CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
21956               CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
21957               PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
21958               PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
21959               TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
21960               TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
21961                                ),
21962                ),
21963 )  ;
21964 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
21965 # ======================================================================
21966 #            CONFIGURATION MANAGEMENT OF EDF VERSION
21967 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
21968 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
21969 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
21970 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
21971 # (AT YOUR OPTION) ANY LATER VERSION.                                 
21972 #
21973 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
21974 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
21975 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
21976 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
21977 #
21978 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
21979 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
21980 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
21981 # ======================================================================
21982 # RESPONSABLE DESROCHES X.DESROCHES
21983 POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f',
21984             fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)"
21985                +" ou pour les exprimer dans d'autres repères",
21986             docu="U4.81.21",UIinfo={"groupes":("Post traitements",)},
21987
21988          ACTION          =FACT(statut='o',max='**',
21989                                regles=(UN_PARMI('RESULTAT','CHAM_GD'),), 
21990
21991            OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","EXTREMA"),validators=NoRepeat(),max=2),
21992            INTITULE        =SIMP(statut='o',typ='TXM'),  
21993
21994            CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
21995                                                  cham_elem,),),
21996            RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
21997 #
21998 #  1. Sensibilité
21999 #  1.1. Cas d'un résultat réel
22000 #       Cas d'un résultat harmonique dont on veut partie réelle ou imaginaire
22001 #
22002            b_sensibilite   =BLOC(condition=" (RESULTAT != None) and \
22003                                       (   AsType(RESULTAT) in (evol_elas,evol_ther,evol_noli,dyna_trans, \
22004                                                                mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, \
22005                                                                mult_elas,fourier_elas,fourier_ther) or \
22006                                         ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C != 'MODULE' ) )",
22007                                  fr="Définition des paramètres de sensibilité",
22008                                  ang="Definition of sensitivity parameters",
22009              regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
22010                      DERIVABLE('RESULTAT'),),
22011              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
22012                                    fr="Liste des paramètres de sensibilité.",
22013                                    ang="List of sensitivity parameters"),
22014
22015            ),
22016 #
22017 #  1.2. Cas d'un résultat harmonique dont on veut le module
22018 #
22019            b_sensibilite_harmo =BLOC(condition=" (RESULTAT != None) and \
22020                                       ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C == 'MODULE' )",
22021                                      fr="Définition des paramètres de sensibilité",
22022                                      ang="Definition of sensitivity parameters",
22023              regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
22024                      DERIVABLE('RESULTAT'),),
22025              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
22026                                    fr="Liste des paramètres de sensibilité.",
22027                                    ang="List of sensitivity parameters"),
22028                b_sensibilite_harmo =BLOC(condition=" SENSIBILITE != None",
22029                                          fr="Option pour la sensibilite",
22030                                          ang="Option for sensitivity",
22031                SENSIBILITE_OPTION =SIMP(statut='o',typ='TXM',into=("MODULE_SENSIBILITE","SENSIBILITE_MODULE",),
22032                                         fr="Option : module de la dérivée ou dérivée du module",
22033                                         ang="Option : modulus of derivative or derivative of modulus"),
22034                ),
22035            ),
22036
22037            b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
22038                                  regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',         
22039                                                 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),           
22040              NOM_CHAM        =SIMP(statut='o',typ='TXM' ),  
22041              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22042              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
22043              LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
22044              NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
22045              LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
22046              NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22047              NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),  
22048              FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
22049              LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
22050              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
22051              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22052              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
22053              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
22054            ),
22055
22056            b_extrema   =BLOC(condition="OPERATION == 'EXTREMA'",
22057                              fr="recherche de MIN MAX",
22058                              regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
22059               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22060               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22061               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22062               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22063               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22064               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
22065               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
22066            ),
22067
22068            b_autre   =BLOC(condition="OPERATION != 'EXTREMA'",
22069                            fr="extraction et moyenne",
22070                            regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
22071                                    EXCLUS('CHEMIN','GROUP_NO'),
22072                                    EXCLUS('CHEMIN','NOEUD'),
22073                                    PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
22074                                    UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
22075                                    PRESENT_PRESENT('TRAC_DIR','DIRECTION'),          
22076                                    ENSEMBLE('MOMENT','POINT'),
22077                                    PRESENT_PRESENT('MOMENT','RESULTANTE'),
22078                                    PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
22079                                    EXCLUS('TRAC_DIR','TRAC_NOR'),
22080                                    PRESENT_PRESENT('ORIGINE','AXE_Z'),),
22081                    
22082               CHEMIN          =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ),
22083               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22084               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22085               MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22086               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22087               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22088
22089               TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
22090               NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
22091               INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
22092               ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22093               RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),  
22094
22095               MOMENT          =SIMP(statut='f',typ='TXM',max='**'),  
22096               POINT           =SIMP(statut='f',typ='R',max='**'),  
22097
22098               REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
22099                                  into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
22100               ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),  
22101               ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
22102               AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),  
22103
22104               TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
22105               TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
22106               DIRECTION       =SIMP(statut='f',typ='R',max='**'),  
22107  
22108               VECT_Y          =SIMP(statut='f',typ='R',max='**'),  
22109               MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
22110            ),
22111
22112            FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
22113
22114          ),
22115          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
22116          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
22117 )  ;
22118 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22119 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22120 # ======================================================================
22121 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22122 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22123 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22124 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22125 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22126 #
22127 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22128 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22129 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22130 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22131 #
22132 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22133 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22134 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22135 # ======================================================================
22136 # RESPONSABLE ZENTNER I.ZENTNER
22137 POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f',
22138             UIinfo={"groupes":("Post traitements",)},
22139                 fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure",
22140          regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'),
22141                  PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'),
22142                  PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),),
22143          TUBE_NEUF       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22144          ETAT_INIT       =FACT(statut='f',
22145            TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
22146            INST_INIT       =SIMP(statut='f',typ='R'),  
22147                          ),
22148          RESU_GENE       =SIMP(statut='f',typ=tran_gene),
22149          NOEUD           =SIMP(statut='f',typ=no,),
22150          INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),  
22151          INST_FIN        =SIMP(statut='f',typ='R'),  
22152          NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
22153          PUIS_USURE      =SIMP(statut='f',typ='R'),  
22154          LOI_USURE       =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
22155          b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
22156            regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), 
22157                    EXCLUS('MATER_USURE','OBSTACLE'),
22158                    EXCLUS('MOBILE','USURE_OBST'),),
22159            MOBILE          =FACT(statut='f',
22160              COEF_USURE      =SIMP(statut='o',typ='R'), 
22161            ),   
22162            OBSTACLE        =FACT(statut='f',
22163              COEF_USURE      =SIMP(statut='o',typ='R'), 
22164            ),
22165            SECTEUR         =FACT(statut='f',max='**',
22166              CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",  
22167                                                               "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", 
22168                                                               "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
22169              COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),  
22170              COEF_USUR_OBST  =SIMP(statut='f',typ='R'),  
22171              ANGL_INIT       =SIMP(statut='f',typ='R'),  
22172              ANGL_FIN        =SIMP(statut='f',typ='R'),  
22173            ),
22174            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
22175            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
22176          ),
22177          b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
22178            regles=(UN_PARMI('MOBILE','MATER_USURE'), 
22179                    EXCLUS('MATER_USURE','OBSTACLE'),
22180                    EXCLUS('MOBILE','USURE_OBST'),),
22181            MOBILE          =FACT(statut='f',
22182              COEF_FNOR       =SIMP(statut='f',typ='R'),  
22183              COEF_VTAN       =SIMP(statut='f',typ='R'),  
22184              COEF_USURE      =SIMP(statut='f',typ='R'),  
22185              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
22186              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
22187            ),   
22188            OBSTACLE        =FACT(statut='f',
22189              COEF_FNOR       =SIMP(statut='f',typ='R' ),  
22190              COEF_VTAN       =SIMP(statut='f',typ='R' ),  
22191              COEF_USURE      =SIMP(statut='o',typ='R'), 
22192              COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
22193              COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
22194            ),   
22195            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
22196            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
22197            FNOR_MAXI       =SIMP(statut='f',typ='R' ),  
22198            VTAN_MAXI       =SIMP(statut='f',typ='R' ),  
22199          ),
22200          b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
22201            regles=(UN_PARMI('MOBILE','MATER_USURE'), 
22202                    EXCLUS('MATER_USURE','OBSTACLE'),
22203                    EXCLUS('MOBILE','USURE_OBST'),),
22204            MOBILE          =FACT(statut='f',
22205              COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),  
22206              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
22207              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
22208              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
22209            ),   
22210            OBSTACLE        =FACT(statut='f',
22211              COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13), 
22212              COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
22213              COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
22214              COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
22215            ),   
22216            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
22217            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
22218          ),
22219          b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
22220             TABL_USURE      =SIMP(statut='o',typ=table_sdaster),
22221             INST            =SIMP(statut='f',typ='R'),
22222          ),
22223          CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",    
22224                                                           "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",        
22225                                                           "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
22226          RAYON_MOBILE    =SIMP(statut='f',typ='R'),  
22227          RAYON_OBST      =SIMP(statut='f',typ='R'),  
22228          LARGEUR_OBST    =SIMP(statut='f',typ='R'),  
22229          ANGL_INCLI      =SIMP(statut='f',typ='R'),  
22230          ANGL_ISTHME     =SIMP(statut='f',typ='R'),  
22231          ANGL_IMPACT     =SIMP(statut='f',typ='R'),  
22232          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
22233          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22234          COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
22235          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
22236          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
22237 )  ;
22238 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22239 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22240 # ======================================================================
22241 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22242 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22243 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22244 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22245 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22246 #
22247 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22248 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22249 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22250 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22251 #
22252 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22253 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22254 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22255 # ======================================================================
22256 # RESPONSABLE TAHERI S.TAHERI
22257 POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n',
22258             UIinfo={"groupes":("Post traitements",)},
22259               fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous"
22260                 +" chargement cyclique élastique affine ou non",
22261          MODELE          =SIMP(statut='o',typ=modele_sdaster),
22262          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
22263          EXCIT           =FACT(statut='o',max='**',
22264            CHARGE          =SIMP(statut='o',typ=char_meca),
22265            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
22266            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)),
22267          ),
22268          EVOL_ELAS       =SIMP(statut='o',typ=evol_elas),
22269          b_evol_elas     =BLOC(condition="EVOL_ELAS != None",
22270            regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),),
22271            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
22272            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22273            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
22274          ),
22275          TEMP_ZAC        =SIMP(statut='f',typ='R',defaut=0.0E+0),  
22276          EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
22277          b_evol_noli     =BLOC(condition="EVOL_NOLI != None",
22278            INST_MAX        =SIMP(statut='o',typ='R'),  
22279          ),
22280          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
22281          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
22282
22283 )  ;
22284 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22285 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22286 # ======================================================================
22287 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22288 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22289 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22290 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22291 # (AT YOUR OPTION) ANY LATER VERSION.
22292 #
22293 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22294 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22295 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22296 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22297 #
22298 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22299 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22300 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22301 # ======================================================================
22302 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
22303
22304 POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
22305                 fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale",
22306                 sd_prod = ops.POURSUITE,
22307             UIinfo={"groupes":("Gestion du travail",)},
22308                 op_init = ops.POURSUITE_context,fichier_ini = 1,
22309          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
22310                                typ='TXM',defaut="NON",into=("OUI","NON",) ),
22311          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
22312                            into=("OUI","NON"),defaut="OUI"),
22313          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
22314                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
22315          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
22316                                statut='f',min=1,max=2,
22317            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
22318            TITRE           =SIMP(statut='f',typ='TXM'),
22319            CAS             =SIMP(statut='f',typ='TXM'),
22320            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
22321            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
22322            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
22323          ),
22324          IMPRESSION      =FACT(statut='f',min=1,max=3,
22325            FICHIER         =SIMP(statut='o',typ='TXM'),
22326            UNITE           =SIMP(statut='o',typ='I'),
22327          ),
22328          CATALOGUE       =FACT(statut='f',min=1,max=10,
22329            FICHIER         =SIMP(statut='o',typ='TXM'),
22330            TITRE           =SIMP(statut='f',typ='TXM'),
22331            UNITE           =SIMP(statut='f',typ='I'),
22332          ),
22333          ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
22334            ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
22335          ),
22336          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
22337                                statut='f',min=1,max=1,
22338            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
22339                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
22340            SDVERI          =SIMP(fr="vérifie la conformité des SD produites par les commandes",
22341                                  statut='f',typ='TXM',into=('OUI','NON')),
22342            JEVEUX          =SIMP(fr="force les déchargement sur disque",
22343                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
22344            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
22345                                  statut='f',typ='TXM',into=('TEST',)),
22346          ),
22347          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
22348            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
22349            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
22350            TAILLE          =SIMP(statut='f',typ='I'),
22351            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
22352            PARTITION       =SIMP(statut='f',typ='R' ),
22353            DYNAMIQUE       =SIMP(statut='f',typ='I'),
22354          ),
22355  
22356          RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
22357            regles=(EXCLUS('VALE','POURCENTAGE'),),
22358            VALE            =SIMP(statut='f',typ='I',val_min=0),
22359 #                            valeur par défaut fixée à 10. dans le FORTRAN si CODE présent
22360            POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
22361 #                           valeur par défaut fixée à 10% dans le FORTRAN
22362            BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=900) ),
22363 #          valeur en pourcentage du temps maximum bornée à 900 secondes
22364
22365          CODE            =FACT("définition d'un nom pour l'ensemble d'une étude",
22366                                statut='f',min=1,max=1,
22367            NOM             =SIMP(statut='o',typ='TXM'),
22368          ),
22369
22370
22371          IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
22372
22373 )  ;
22374 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22375 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22376 # ======================================================================
22377 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22378 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22379 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22380 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22381 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22382 #
22383 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22384 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22385 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22386 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22387 #
22388 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22389 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22390 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22391 # ======================================================================
22392 # RESPONSABLE COURTOIS M.COURTOIS
22393
22394 PRE_GIBI=PROC(nom="PRE_GIBI",op=49,
22395             UIinfo={"groupes":("Gestion du travail",)},
22396               fr="Conversion d'un fichier de maillage GIBI au format Aster",
22397          UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
22398          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
22399 )  ;
22400 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22401 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22402 # ======================================================================
22403 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22404 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22405 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22406 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22407 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22408 #
22409 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22410 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22411 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22412 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22413 #
22414 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22415 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22416 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22417 # ======================================================================
22418 # RESPONSABLE COURTOIS M.COURTOIS
22419
22420 PRE_GMSH=PROC(nom="PRE_GMSH",op=47,
22421             UIinfo={"groupes":("Gestion du travail",)},
22422                fr="Conversion d'un fichier de maillage GMSH au format Aster",
22423          UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
22424          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
22425 )  ;
22426 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22427 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22428 # ======================================================================
22429 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22430 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22431 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22432 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22433 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22434 #
22435 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22436 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22437 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22438 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22439 #
22440 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22441 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22442 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22443 # ======================================================================
22444 # RESPONSABLE MIKCHEVITCH A.MIKCHEVITCH
22445 PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
22446             UIinfo={"groupes":("Gestion du travail",)},
22447                fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster",
22448          UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
22449          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
22450          CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
22451 )  ;
22452 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22453 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22454 # ======================================================================
22455 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22456 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22457 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22458 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22459 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22460 #
22461 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22462 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22463 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22464 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22465 #
22466 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22467 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22468 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22469 # ======================================================================
22470 # RESPONSABLE PELLET J.PELLET
22471
22472 PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster,
22473                     fr="Effectuer le produit d'une matrice par un vecteur",
22474                     reentrant='n',
22475             UIinfo={"groupes":("Résultats et champs",)},
22476          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ),
22477          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
22478          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
22479 )  ;
22480 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22481 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22482 # ======================================================================
22483 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22484 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22485 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22486 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22487 # (AT YOUR OPTION) ANY LATER VERSION.
22488 #
22489 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22490 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22491 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22492 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22493 #
22494 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22495 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22496 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22497 # ======================================================================
22498 # RESPONSABLE PELLET J.PELLET
22499 def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
22500     if AsType(RESULTAT) != None : return AsType(RESULTAT)
22501     if CHAM_NO_REFE     != None : return cham_no_sdaster
22502     raise AsException("type de concept resultat non prevu")
22503
22504
22505 PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
22506             UIinfo={"groupes":("Résultats et champs",)},
22507                 fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage",
22508
22509
22510          METHODE         =SIMP(statut='f',typ='TXM',defaut="ELEM",
22511                                into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
22512
22513
22514          # Méthode NUAGE_xxx :
22515          #--------------------
22516          b_nuage         =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
22517                                fr="Lissage d'un nuage de points",
22518            CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
22519            CHAM_NO_REFE    =SIMP(statut='o',typ=cham_no_sdaster),
22520          ),
22521
22522
22523
22524          # Méthode ELEM :
22525          #--------------------
22526          b_elem          =BLOC(condition="METHODE=='ELEM'",
22527                               fr="Utilisation des fonctions de forme du maillage initial",
22528            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
22529                    EXCLUS('TOUT_CHAM','NOM_CHAM',),
22530                    CONCEPT_SENSIBLE('SEPARE'),
22531                    REUSE_SENSIBLE(),
22532                    DERIVABLE('RESULTAT'),),
22533            RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
22534            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
22535                                fr="Liste des paramètres de sensibilité.",
22536                                ang="List of sensitivity parameters",),
22537            MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
22538            MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
22539
22540            NOM_PARA        =SIMP(statut='f',typ='TXM', max='**'),
22541            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22542            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22543
22544            NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster),
22545                 fr="Utile en dynamique pour pouvoir imoser la numérotation des cham_no."),
22546
22547
22548            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22549            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
22550            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
22551            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22552            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
22553            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22554            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
22555            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
22556            NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
22557
22558
22559            CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",),
22560                 fr="Pour indiquer au programme le type de projection souhaité"),
22561            DISTANCE_MAX    =SIMP(statut='f',typ='R',
22562                 fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
22563            TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
22564                 fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
22565                    " aux noeuds du MODELE_2 avant la projection."),
22566
22567            ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
22568
22569            TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
22570                 fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
22571
22572            PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
22573                 fr="Pour prolonger les champs par zéro là ou la projection ne donne pas de valeurs."),
22574
22575          ),
22576
22577
22578
22579          # Mots clés utilisables avec les 2 méthodes :
22580          #---------------------------------------------
22581          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
22582          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
22583
22584          VIS_A_VIS       =FACT(statut='f',max='**',
22585            regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
22586                    AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
22587            TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22588            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22589            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22590            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22591            NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22592            TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22593            GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22594            MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22595            GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
22596            NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
22597            CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
22598            TRANSF_GEOM_2   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3,
22599                 fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+
22600                    " aux noeuds du MODELE_2 avant la projection."),
22601          ),
22602 )  ;
22603 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22604 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22605 # ======================================================================
22606 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22607 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22608 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22609 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22610 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22611 #
22612 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22613 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22614 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22615 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22616 #
22617 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22618 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22619 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22620 # ======================================================================
22621 # RESPONSABLE BOYERE E.BOYERE
22622 def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
22623   if AsType(MATR_ASSE) == matr_asse_depl_r  : return matr_asse_gene_r
22624   if AsType(MATR_ASSE_GENE) == matr_asse_gene_r  : return matr_asse_gene_r
22625   if AsType(MATR_ASSE) == matr_asse_depl_c  : return matr_asse_gene_c
22626   if AsType(MATR_ASSE_GENE) == matr_asse_gene_c  : return matr_asse_gene_c
22627   raise AsException("type de concept resultat non prevu")
22628
22629 PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
22630                     fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)",
22631                     reentrant='n',
22632             UIinfo={"groupes":("Matrices/vecteurs",)},
22633          regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
22634          BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
22635          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
22636          MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
22637          MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
22638 )  ;
22639
22640 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22641 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22642 # ======================================================================
22643 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22644 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22645 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22646 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22647 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22648 #
22649 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22650 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22651 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22652 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22653 #
22654 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22655 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22656 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22657 # ======================================================================
22658 # RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
22659 def proj_mesu_modal_prod(MODELE_MESURE,**args):
22660      vale=MODELE_MESURE['MESURE']
22661      if  AsType(vale) == dyna_trans   : return tran_gene
22662      if  AsType(vale) == dyna_harmo   : return harm_gene
22663      if  AsType(vale) == mode_meca    : return mode_gene
22664 #     if  AsType(vale) == mode_meca_c  : return mode_gene_c
22665      if  AsType(vale) == base_modale  : return mode_gene
22666      raise AsException("type de concept resultat non prevu")
22667
22668 PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
22669                      sd_prod=proj_mesu_modal_prod,
22670                      reentrant='n',
22671             UIinfo={"groupes":("Résultats et champs",)},
22672                      fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection",
22673
22674          MODELE_CALCUL   =FACT(statut='o',
22675            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
22676            BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,) ),
22677                          ),
22678          MODELE_MESURE   =FACT(statut='o',
22679            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
22680            MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
22681            NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
22682                          ),
22683          CORR_MANU       =FACT(statut='f',max='**',
22684            regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
22685            NOEU_CALCUL     =SIMP(statut='f',typ=no),
22686            NOEU_MESURE     =SIMP(statut='f',typ=no),
22687                          ),
22688          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
22689          RESOLUTION      =FACT(statut='f',
22690            METHODE         =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
22691            b_svd =BLOC(condition="METHODE=='SVD'",
22692                        EPS=SIMP(statut='f',typ='R',defaut=0. ),
22693                       ),
22694            REGUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
22695            b_regul =BLOC(condition="REGUL!='NON'",
22696                          regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
22697                          COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),  
22698                          COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
22699                         ),
22700              ),
22701
22702           ); 
22703 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22704 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22705 # ======================================================================
22706 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22707 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22708 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22709 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22710 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22711 #
22712 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22713 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22714 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22715 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22716 #
22717 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22718 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22719 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22720 # ======================================================================
22721 # RESPONSABLE ADOBES A.ADOBES
22722 PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n',
22723             UIinfo={"groupes":("Matrices/vecteurs",)},
22724             fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ",
22725       regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),),
22726          SPEC_TURB       =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ),
22727          TOUT_CMP        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
22728          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
22729          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
22730          CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
22731          FREQ_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
22732          FREQ_FIN        =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
22733          NB_POIN         =SIMP(statut='o',typ='I' ),  
22734          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
22735          GROUP_MA        =SIMP(statut='f',typ=grma),
22736 #  Quel est le type attendu derriere  MODELE_INTERFACE         
22737          MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster),
22738          VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),  
22739          VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3 ),  
22740          ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
22741          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
22742 )  ;
22743 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22744 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22745 # ======================================================================
22746 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22747 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22748 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22749 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22750 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22751 #
22752 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22753 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22754 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22755 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22756 #
22757 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22758 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22759 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22760 # ======================================================================
22761 # RESPONSABLE BOYERE E.BOYERE
22762
22763 PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
22764                     fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)",
22765                     reentrant='n',
22766             UIinfo={"groupes":("Matrices/vecteurs",)},
22767          regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
22768          BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
22769          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
22770          TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
22771          VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
22772          VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
22773 )  ;
22774 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22775 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22776 # ======================================================================
22777 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
22778 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
22779 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
22780 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
22781 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
22782 #                                                                       
22783 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
22784 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
22785 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
22786 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
22787 #                                                                       
22788 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
22789 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
22790 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
22791 # ======================================================================
22792 # RESPONSABLE GENIAUT S.GENIAUT
22793
22794 PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n',
22795                 UIinfo={"groupes":("Modélisation",)},
22796                 fr="Propagation de fissure avec X-FEM",
22797     
22798     MODELE        =SIMP(statut='o',typ=modele_sdaster),
22799         
22800     TABLE         =SIMP(statut='o',typ=table_sdaster),
22801
22802     LOI_PROPA     =FACT(statut='o',max=1,
22803       LOI            =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
22804       b_paris        =BLOC( condition = "LOI=='PARIS'",
22805         C            =SIMP(statut='o',typ='R',),
22806         M            =SIMP(statut='o',typ='R',),),
22807             ),
22808             
22809     RAYON          =SIMP(statut='o',typ='R',),
22810           
22811     METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="SIMPLEXE"),
22812
22813 #    RUNGE_KUTTA    =SIMP(statut='f',typ='I',into=("1","2",),defaut=1),
22814
22815     INFO           =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
22816 )  ;
22817 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22818 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22819 # ======================================================================
22820 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22821 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22822 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22823 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
22824 # (AT YOUR OPTION) ANY LATER VERSION.                                 
22825 #
22826 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
22827 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
22828 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
22829 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
22830 #
22831 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
22832 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
22833 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
22834 # ======================================================================
22835 # RESPONSABLE PARROT A.PARROT
22836 RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster,
22837                      fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n',
22838             UIinfo={"groupes":("Post traitements",)},
22839          LIST_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ),
22840          RESU            =FACT(statut='o',max='**',
22841            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),
22842                    AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
22843            EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
22844            MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
22845            CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
22846            TEMPE           =SIMP(statut='f',typ='R' ),
22847            LIST_INST_RUPT  =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
22848            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22849            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
22850            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
22851            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
22852            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22853            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
22854            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
22855            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),
22856                          ),
22857          OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
22858          CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
22859          METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
22860          INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
22861          ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
22862          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
22863                        )  ;
22864 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
22865 #            CONFIGURATION MANAGEMENT OF EDF VERSION
22866 # ======================================================================
22867 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
22868 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
22869 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
22870 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
22871 # (AT YOUR OPTION) ANY LATER VERSION.
22872 #
22873 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
22874 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
22875 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
22876 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
22877 #
22878 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
22879 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
22880 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
22881 # ======================================================================
22882 # RESPONSABLE COURTOIS M.COURTOIS
22883 def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None,
22884                        BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None,
22885                        NOM_PARA_TABL=None,**args):
22886    if AsType(RESULTAT)  == dyna_harmo or \
22887       AsType(RESU_GENE) == harm_gene or \
22888       (TABLE != None and NOM_PARA_TABL == "FONCTION_C"):
22889       return fonction_c
22890    else:
22891       return fonction_sdaster
22892
22893 RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
22894                    fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre",
22895                    reentrant='f',
22896             UIinfo={"groupes":("Fonction",)},
22897          regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE'),),
22898
22899          CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,cham_elem,),),
22900          RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
22901          RESU_GENE       =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)),
22902          TABLE           =SIMP(statut='f',typ=(table_sdaster,table_fonction)),
22903          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
22904          NAPPE           =SIMP(statut='f',typ=nappe_sdaster),
22905
22906 # ======= SENSIBILITE =================================================
22907          b_sensibilite   =BLOC(condition="RESULTAT != None",
22908                                  fr="Définition des paramètres de sensibilité",
22909                                  ang="Definition of sensitivity parameters",
22910            regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
22911                    DERIVABLE('RESULTAT'),),
22912            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
22913                                    fr="Liste des paramètres de sensibilité.",
22914                                    ang="List of sensitivity parameters"),),
22915 # ======= ACCES A LA SD RESULTAT =================================================
22916          b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)",
22917                           fr="acces a une SD résultat",
22918 # on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran
22919            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22920            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22921            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
22922            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22923            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22924            LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
22925            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
22926            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
22927            NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22928            b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
22929              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22930              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22931              INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
22932            ),
22933          ),
22934 # ======= BASE_ELAS_FLUI =================================================
22935          b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
22936                                    fr="Récupération de la fonction à partir d un concept melasflu",
22937            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
22938            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
22939            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
22940            NUME_MODE       =SIMP(statut='o',typ='I' ),
22941            PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
22942            PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),
22943          ),
22944
22945 # ======= TABLE =================================================
22946          b_table = BLOC ( condition = "TABLE != None",
22947                           fr="Récupération de la fonction à partir d un concept table",
22948                           regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
22949                                   PRESENT_PRESENT('PARA_X','PARA_Y'),),
22950            PARA_X        = SIMP(statut='f',typ='TXM',
22951                                  fr="1ère colonne de la table qui définit la fonction à récupérer", ),
22952            PARA_Y        = SIMP(statut='f',typ='TXM',
22953                                  fr="2ème colonne de la table qui définit la fonction à récupérer", ),
22954            #b_tabl_fonc = BLOC(condition = "AsType(TABLE) == table_fonction",
22955            NOM_PARA_TABL = SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C"),
22956                                 fr="Nom du paramètre de la table contenant la fonction" ),
22957            #),
22958
22959            FILTRE        = FACT(statut='f',max='**',
22960               NOM_PARA        =SIMP(statut='o',typ='TXM' ),
22961               CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
22962                                     into=("EQ","LT","GT","NE","LE","GE","VIDE",
22963                                           "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
22964               b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
22965                  regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
22966                  VALE            =SIMP(statut='f',typ='R' ),
22967                  VALE_I          =SIMP(statut='f',typ='I' ),
22968                  VALE_C          =SIMP(statut='f',typ='C' ),
22969                  VALE_K          =SIMP(statut='f',typ='TXM' ),),
22970
22971               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
22972               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
22973            ),
22974          ),
22975
22976 # ======= RESULTAT =================================================
22977          b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
22978                          regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
22979            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
22980            NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
22981            b_cham = BLOC ( condition = "NOM_CHAM != None",
22982                            regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
22983                                    PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
22984                                    PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
22985                                    EXCLUS('GROUP_MA','MAILLE'),
22986                                    EXCLUS('GROUP_NO','NOEUD'),),
22987              NOM_CMP         =SIMP(statut='o',typ='TXM' ),
22988              MAILLE          =SIMP(statut='f',typ=ma),
22989              GROUP_MA        =SIMP(statut='f',typ=grma),
22990              NOEUD           =SIMP(statut='f',typ=no),
22991              GROUP_NO        =SIMP(statut='f',typ=grno),
22992              POINT           =SIMP(statut='f',typ='I' ),
22993              SOUS_POINT      =SIMP(statut='f',typ='I' ),
22994            ),
22995          ),
22996
22997 # ======= RESU_GENE =================================================
22998          b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene",
22999                               fr="Récupération d'une fonction à partir d un concept TRAN_GENE",
23000                               regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),),
23001              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
23002              NOEUD_CHOC      =SIMP(statut='f',typ=no),
23003              GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
23004            b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')",
23005                            regles=(UN_PARMI('GROUP_NO','NOEUD'),
23006                                    EXCLUS('MULT_APPUI','CORR_STAT'),),
23007              NOM_CMP         =SIMP(statut='o',typ='TXM' ),
23008              NOEUD           =SIMP(statut='f',typ=no),
23009              GROUP_NO        =SIMP(statut='f',typ=grno),
23010              MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23011              CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23012              ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)),
23013            ),
23014            b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)",
23015                            regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),),
23016              PARA_X          =SIMP(statut='o',typ='TXM',
23017                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
23018              PARA_Y          =SIMP(statut='o',typ='TXM',
23019                               into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
23020              LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
23021              INTITULE        =SIMP(statut='f',typ='TXM' ),
23022              SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
23023            ),
23024          ),
23025          b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene",
23026                               fr="Récupération d'une fonction à partir d un concept HARM_GENE",
23027                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
23028              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
23029              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
23030            b_cham = BLOC ( condition = "NOM_CHAM != None",
23031                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
23032              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
23033              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
23034              b_cmp = BLOC ( condition = "NOM_CMP != None",
23035                             regles=(UN_PARMI('NOEUD','GROUP_NO'),),
23036                NOEUD         =SIMP(statut='f',typ=no),
23037                GROUP_NO      =SIMP(statut='f',typ=grno),
23038              ),
23039            ),
23040          ),
23041          b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene",
23042                               fr="Récupération d'une fonction à partir d un concept MODE_GENE",
23043                               regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
23044              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
23045              NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
23046            b_cham = BLOC ( condition = "NOM_CHAM != None",
23047                            regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
23048              NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
23049              NOM_CMP         =SIMP(statut='f',typ='TXM' ),
23050              b_cmp = BLOC ( condition = "NOM_CMP != None",
23051                             regles=(UN_PARMI('NOEUD','GROUP_NO'),
23052                                     UN_PARMI('SQUELETTE','SOUS_STRUC'),),
23053                NOEUD         =SIMP(statut='f',typ=no),
23054                GROUP_NO      =SIMP(statut='f',typ=grno),
23055                SQUELETTE     =SIMP(statut='f',typ=squelette ),
23056                SOUS_STRUC    =SIMP(statut='f',typ='TXM' ),  
23057              ),
23058            ),
23059          ),
23060
23061 # ======= CHAM_GD =================================================
23062          b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
23063                             regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
23064                                     PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
23065                                     PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
23066                                     EXCLUS('GROUP_MA','MAILLE'),
23067                                     EXCLUS('GROUP_NO','NOEUD'),),
23068            NOM_CMP         =SIMP(statut='o',typ='TXM' ),
23069            MAILLE          =SIMP(statut='f',typ=ma),
23070            GROUP_MA        =SIMP(statut='f',typ=grma),
23071            NOEUD           =SIMP(statut='f',typ=no),
23072            GROUP_NO        =SIMP(statut='f',typ=grno),
23073            POINT           =SIMP(statut='f',typ='I' ),
23074            SOUS_POINT      =SIMP(statut='f',typ='I' ),
23075          ),
23076
23077 # ======= NAPPE =================================================
23078          b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de NAPPE",
23079          VALE_PARA_FONC  =SIMP(statut='o',typ='R' ),
23080          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
23081          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23082          ),
23083
23084 # ======= SURCHARGE DES ATTRIBUTS =================================================
23085          NOM_PARA        =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ),
23086          NOM_RESU        =SIMP(statut='f',typ='TXM' ),
23087          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
23088          PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
23089          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
23090
23091          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
23092          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
23093 )  ;
23094 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23095 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23096 # ======================================================================
23097 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23098 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23099 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23100 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23101 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23102 #
23103 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23104 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23105 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23106 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23107 #
23108 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23109 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23110 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23111 # ======================================================================
23112 # RESPONSABLE BOYERE E.BOYERE
23113 RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,reentrant='n',
23114             UIinfo={"groupes":("Résultats et champs",)},
23115                fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
23116                   +" en coordonnées généralisées",
23117          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
23118          INST            =SIMP(statut='o',typ='R' ),
23119          NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
23120          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
23121          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
23122          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
23123 )  ;
23124 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23125 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23126 # ======================================================================
23127 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23128 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23129 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23130 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23131 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23132 #
23133 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23134 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23135 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23136 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23137 #
23138 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23139 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23140 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23141 # ======================================================================
23142 # RESPONSABLE COURTOIS M.COURTOIS
23143 RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
23144          fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue"
23145             +" dans une autre SD pour celles qui le permettent",
23146          UIinfo={"groupes":("Résultats et champs",)},reentrant='n',
23147          CO              =SIMP(statut='o',typ=assd),
23148          regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
23149          NOM_TABLE       =SIMP(statut='f',typ='TXM' ),
23150          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
23151          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
23152 )  ;
23153 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23154 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23155 # ======================================================================
23156 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
23157 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23158 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23159 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23160 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23161 #                                                                       
23162 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23163 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23164 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23165 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23166 #                                                                       
23167 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23168 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23169 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23170 # ======================================================================
23171 # RESPONSABLE PELLET J.PELLET
23172
23173 RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f',
23174                fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+
23175                   "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
23176                UIinfo={"groupes":("Résolution",)},
23177          MATR           =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
23178                                                matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
23179          CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
23180          CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
23181
23182          # mot-clé commun aux solveurs MUMPS et GCPC:
23183          RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
23184
23185          # mots-clés pour solver GCPC:
23186          MATR_PREC       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
23187          NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),  
23188          REPRISE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23189
23190          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
23191          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
23192 )  ;
23193 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23194 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23195 # ======================================================================
23196 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23197 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23198 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23199 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23200 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23201 #
23202 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23203 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23204 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23205 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23206 #
23207 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23208 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23209 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23210 # ======================================================================
23211 # RESPONSABLE BOYERE E.BOYERE
23212 def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ):
23213   if AsType(RESU_GENE) == tran_gene : return dyna_trans
23214   if AsType(RESU_GENE) == mode_gene : return mode_meca
23215   if AsType(RESU_GENE) == mode_cycl : return mode_meca
23216   if AsType(RESU_GENE) == harm_gene : return dyna_harmo
23217   if AsType(RESU_PHYS) == evol_noli : return dyna_trans
23218   if AsType(RESULTAT)  == evol_elas      : return evol_elas
23219   if AsType(RESULTAT)  == evol_noli      : return evol_noli
23220   if AsType(RESULTAT)  == evol_char      : return evol_char
23221   if AsType(RESULTAT)  == dyna_trans     : return dyna_trans
23222   if AsType(RESULTAT)  == mode_meca      : return mode_meca
23223   if AsType(RESULTAT)  == mode_stat_depl : return mode_stat_depl
23224   if AsType(RESULTAT)  == base_modale    : return base_modale
23225   raise AsException("type de concept resultat non prevu")
23226
23227 REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
23228                     fr="Restituer dans la base physique des résultats en coordonnées généralisées",
23229                     reentrant='n',
23230             UIinfo={"groupes":("Matrices/vecteurs",)},
23231         regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'),
23232                 EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
23233                 EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
23234 #  Doc U à revoir
23235                 EXCLUS('MULT_APPUI','CORR_STAT'),
23236                 EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
23237                 EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
23238                 EXCLUS('NOEUD','GROUP_NO'),
23239                 EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),
23240                 PRESENT_PRESENT('RESULTAT','SQUELETTE'),
23241                 PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
23242          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
23243                                                mode_meca,mode_stat_depl,base_modale) ),
23244          
23245          RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
23246          RESU_PHYS       =SIMP(statut='f',typ=evol_noli ),
23247          BASE_MODALE     =SIMP(statut='f',typ=(base_modale,mode_meca) ),
23248          NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
23249          MACR_ELEM_DYNA  =SIMP(statut='f',typ=macr_elem_dyna),
23250          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
23251          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23252          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
23253          NUME_MODE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
23254          TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23255          INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
23256          LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
23257          FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
23258          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
23259          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
23260          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
23261          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
23262          MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23263          CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23264          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",   
23265                                into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",                 
23266                                      "SIGM_ELNO_DEPL","FORC_NODA",) ),
23267          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23268          GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23269          NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23270          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23271          MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23272  
23273          ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23274          DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
23275
23276          CYCLIQUE    =FACT(statut='f',max='**',
23277            NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
23278            NUME_DIAMETRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
23279            RESULTAT2       =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
23280                                                mode_meca,mode_stat_depl,base_modale) ),
23281          ),
23282
23283          SQUELETTE       =SIMP(statut='f',typ=squelette ),
23284          SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
23285          SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
23286          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
23287 )  ;
23288 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23289 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23290 # ======================================================================
23291 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23292 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23293 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23294 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
23295 # (AT YOUR OPTION) ANY LATER VERSION.                                 
23296 #
23297 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
23298 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
23299 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
23300 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
23301 #
23302 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
23303 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
23304 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
23305 # ======================================================================
23306 # RESPONSABLE ADOBES A.ADOBES
23307 REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction,
23308                     reentrant='n',
23309             fr="Calculer la réponse d'une structure dans la base physique",
23310             UIinfo={"groupes":("Matrices/vecteurs",)},
23311          regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),        
23312          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
23313          MODE_MECA       =SIMP(statut='f',typ=(mode_meca, base_modale ),),
23314          BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
23315          NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),
23316          TOUT_ORDRE       =SIMP(statut='f',typ='TXM',defaut="NON",  into=("OUI","NON")  ),
23317          INTE_SPEC_GENE  =SIMP(statut='o',typ=table_fonction),
23318          NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
23319          MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
23320          NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
23321          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,    
23322                                into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",
23323                                      "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
23324          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ),
23325          EXCIT           =FACT(statut='f',
23326            NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
23327            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
23328          ),
23329          MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
23330          OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
23331                                into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
23332          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
23333 )  ;
23334 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23335 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23336 # ======================================================================
23337 # COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
23338 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23339 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23340 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23341 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23342 #                                                                       
23343 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23344 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23345 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23346 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23347 #                                                                       
23348 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23349 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23350 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23351 # ======================================================================
23352 # RESPONSABLE PROIX J.M.PROIX
23353 # -*- coding: iso-8859-1 -*-
23354
23355 from Macro.simu_point_mat_ops import simu_point_mat_ops
23356
23357 SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", op=simu_point_mat_ops,sd_prod=table_sdaster,
23358                    UIinfo={"groupes":("Résolution",)},
23359                    fr="Calcul de l'évolution mécanique, en quasi-statique,"
23360                       +" d'un point matériel en non linéaire",
23361    COMP_INCR       =C_COMP_INCR(),
23362    COMP_ELAS       =FACT(statut='f',max='**',
23363            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
23364            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
23365            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
23366                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
23367                                       "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
23368            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23369            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23370            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23371            ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23372            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
23373          ),
23374    MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
23375    INCREMENT       =FACT(statut='o',
23376            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
23377            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
23378            INST_INIT       =SIMP(statut='f',typ='R'),
23379            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
23380            INST_FIN        =SIMP(statut='f',typ='R'),
23381            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
23382            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
23383            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
23384               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
23385               defaut="AUCUNE",
23386               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
23387            ),
23388            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
23389              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23390              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
23391                 fr="Coefficient multiplicateur de la 1ère subdivision"),
23392              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
23393                 fr="Nombre de subdivision d'un pas de temps"),
23394              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23395                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23396              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23397                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23398            ),
23399            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
23400              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23401              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
23402                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",), 
23403                 defaut="IGNORE_PREMIERES",
23404                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
23405              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
23406                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
23407              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
23408                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
23409              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
23410                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
23411              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23412                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23413              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23414                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23415              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
23416                 fr="% itération autorisée en plus"),
23417            ),
23418            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS 
23419          ),
23420    NEWTON          =FACT(statut='d',
23421            PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
23422            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
23423            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
23424            REAC_ITER       =SIMP(statut='f',typ='I',defaut=1),
23425            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
23426          ),
23427    RECH_LINEAIRE   =FACT(statut='f',                                          
23428      RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),               
23429      ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),                     
23430      ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),                    
23431      PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),                 
23432      RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),                 
23433      RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),                 
23434      RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.),      
23435    ),                                                                         
23436    CONVERGENCE     =FACT(statut='d',
23437      regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
23438      SIGM_REFE       =SIMP(statut='f',typ='R'),
23439      EPSI_REFE       =SIMP(statut='f',typ='R'),
23440      RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
23441      RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
23442      RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
23443      ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=50),
23444      ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
23445      ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23446    ),
23447    SUIVI_DDL      = FACT(statut='f',max=4,                                                                   
23448        NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),                                               
23449        NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,                               
23450                              into=("DEPL","SIEF_ELGA","VARI_ELGA",)),                                        
23451        NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),                                                   
23452    ),                                                                                                        
23453    ARCHIVAGE       =FACT(statut='f',
23454      regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
23455             EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),  
23456      LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),                                                 
23457      INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
23458      PAS_ARCH        =SIMP(statut='f',typ='I' ),
23459      PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
23460      ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
23461      NUME_INIT       =SIMP(statut='f',typ='I'),
23462      DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
23463      CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
23464             into=("DEPL","SIEF_ELGA","VARI_ELGA","LANL_ELGA")),
23465             ),       
23466    MODELISATION  =SIMP(statut='f',typ='TXM',defaut="3D",validators=NoRepeat(),max=1,
23467                        into=("3D","C_PLAN","D_PLAN",)),                                                       
23468    b_3D = BLOC(condition="MODELISATION ==  '3D'",
23469                        fr="Trajets de chargement en 3D",                    
23470           SIGM_IMPOSE=FACT(statut='f',
23471                  SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23472                  SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23473                  SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23474                  SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23475                  SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23476                  SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23477                             ),
23478           EPSI_IMPOSE=FACT(statut='f',
23479                  EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23480                  EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23481                  EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23482                  EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23483                  EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23484                  EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23485                             ),
23486             ),
23487             
23488    b_2D = BLOC(condition="MODELISATION !=  '3D'",
23489                     fr="Trajets de chargement en 2D",
23490                     
23491          SIGM_IMPOSE=FACT(statut='f',
23492                 SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23493                 SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23494                 SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23495                            ),
23496          EPSI_IMPOSE=FACT(statut='f',
23497                 EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23498                 EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23499                 EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
23500                            ),
23501              ),
23502
23503    b_3Dini = BLOC(condition="MODELISATION ==  '3D'",
23504                       fr="Etat initial en 3D",                    
23505           SIGM_INIT=FACT(statut='f',
23506                  SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23507                  SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23508                  SIZZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23509                  SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23510                  SIXZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23511                  SIYZ = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23512                             ),
23513           EPSI_INIT=FACT(statut='f',
23514                  EPXX = SIMP(statut='o',typ='R',max=1),
23515                  EPYY = SIMP(statut='o',typ='R',max=1),
23516                  EPZZ = SIMP(statut='o',typ='R',max=1),
23517                  EPXY = SIMP(statut='o',typ='R',max=1),
23518                  EPXZ = SIMP(statut='o',typ='R',max=1),
23519                  EPYZ = SIMP(statut='o',typ='R',max=1),
23520                             ),
23521           VARI_INIT=FACT(statut='f',
23522                  VALE = SIMP(statut='o',typ='R',max='**'),
23523                             ),
23524             ),
23525             
23526    b_2Dini = BLOC(condition="MODELISATION !=  '3D'",
23527                     fr="Etat initial en 2D",
23528                     
23529          SIGM_INIT=FACT(statut='f',
23530                 SIXX = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23531                 SIYY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23532                 SIXY = SIMP(statut='f',typ='R',max=1,defaut=0.0E+0),
23533                            ),
23534          EPSI_INIT=FACT(statut='f',
23535                 EPXX = SIMP(statut='o',typ='R',max=1),
23536                 EPYY = SIMP(statut='o',typ='R',max=1),
23537                 EPXY = SIMP(statut='o',typ='R',max=1),
23538                            ),
23539           VARI_INIT=FACT(statut='f',
23540                  VALE    = SIMP(statut='o',typ='R',max='**'),
23541                             ),
23542              ),
23543    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23544 )
23545
23546 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23547 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23548 # ======================================================================
23549 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
23550 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23551 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23552 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23553 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23554 #                                                                       
23555 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23556 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23557 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23558 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23559 #                                                                       
23560 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23561 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23562 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23563 # ======================================================================
23564 # RESPONSABLE ASSIRE A.ASSIRE
23565
23566 from Macro.stanley_ops import stanley_ops
23567
23568 STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None,
23569                        reentrant='n',
23570               UIinfo={"groupes":("Outils métier",)},
23571                        fr="Outil de post-traitement interactif Stanley ",
23572          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ),
23573          MODELE          =SIMP(statut='f',typ=modele_sdaster),
23574          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
23575          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23576          DISPLAY         =SIMP(statut='f',typ='TXM'),
23577          UNITE_VALIDATION=SIMP(statut='c',typ='I',val_min=10,val_max=90,
23578                                fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
23579
23580 )  ;
23581 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23582 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23583 # ======================================================================
23584 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
23585 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
23586 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
23587 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
23588 # (AT YOUR OPTION) ANY LATER VERSION.
23589 #
23590 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
23591 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
23592 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
23593 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
23594 #
23595 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
23596 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
23597 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
23598 # ======================================================================
23599 # RESPONSABLE ABBAS M.ABBAS
23600 STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
23601                    fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
23602                       +" d'une structure en non linéaire",
23603                    reentrant='f',
23604             UIinfo={"groupes":("Résolution",)},
23605          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
23606                  CONCEPT_SENSIBLE('ENSEMBLE'),),
23607          MODELE          =SIMP(statut='o',typ=modele_sdaster),
23608          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
23609          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
23610          EXCIT           =FACT(statut='o',max='**',
23611            CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
23612            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23613            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
23614                                  into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
23615          ),
23616          SOUS_STRUC      =FACT(statut='f',min=01,max='**',
23617                 regles=(UN_PARMI('TOUT','SUPER_MAILLE'),),
23618                 CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
23619                 TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23620                 SUPER_MAILLE=SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
23621                 FONC_MULT   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
23622               ),
23623          COMP_INCR       =C_COMP_INCR(),
23624          COMP_ELAS       =FACT(statut='f',max='**',
23625            RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
23626            ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
23627            ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
23628            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
23629                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
23630            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
23631                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS",
23632                                       "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
23633            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23634            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23635            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23636            ELAS_VMIS_PUIS  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23637            ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23638            ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
23639            CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
23640            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
23641       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
23642            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23643            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23644            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23645          ),
23646          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
23647            ETAT_INIT       =FACT(statut='o',
23648              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
23649                      EXCLUS('EVOL_NOLI','DEPL',),
23650                      EXCLUS('EVOL_NOLI','SIGM',),
23651                      EXCLUS('EVOL_NOLI','VARI',),
23652                      EXCLUS('NUME_ORDRE','INST'), ),
23653              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
23654              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
23655              VARI            =SIMP(statut='f',typ=cham_elem),
23656              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
23657              NUME_ORDRE      =SIMP(statut='f',typ='I'),
23658              INST            =SIMP(statut='f',typ='R'),
23659              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23660              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23661              NUME_DIDI       =SIMP(statut='f',typ='I'),
23662              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
23663          ),),
23664          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
23665            ETAT_INIT       =FACT(statut='f',
23666              regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI',),
23667                      EXCLUS('EVOL_NOLI','DEPL',),
23668                      EXCLUS('EVOL_NOLI','SIGM',),
23669                      EXCLUS('EVOL_NOLI','VARI',),
23670                      EXCLUS('NUME_ORDRE','INST'), ),
23671              DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
23672              SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
23673              VARI            =SIMP(statut='f',typ=cham_elem),
23674              EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
23675              NUME_ORDRE      =SIMP(statut='f',typ='I'),
23676              INST            =SIMP(statut='f',typ='R'),
23677              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23678              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
23679              NUME_DIDI       =SIMP(statut='f',typ='I'),
23680              INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
23681          ),),
23682          INCREMENT       =FACT(statut='o',
23683            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
23684                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
23685            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
23686            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
23687                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
23688            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
23689            INST_INIT       =SIMP(statut='f',typ='R'),
23690            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
23691            INST_FIN        =SIMP(statut='f',typ='R'),
23692            ERRE_TEMPS      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
23693                                  fr="Adaptation temporelle pour les modélisations HM instationnaires",
23694                                  ang="Time adaptation for unstationary HM models"),
23695            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
23696            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
23697            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
23698               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
23699               defaut="AUCUNE",
23700               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
23701            ),
23702            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
23703              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23704              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
23705                 fr="Coefficient multiplicateur de la 1ère subdivision"),
23706              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
23707                 fr="Nombre de subdivision d'un pas de temps"),
23708              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23709                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23710              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23711                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23712            ),
23713            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
23714              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
23715              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
23716                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
23717                 defaut="IGNORE_PREMIERES",
23718                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
23719              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
23720                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
23721              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
23722                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
23723              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
23724                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
23725              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
23726                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
23727              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
23728                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
23729              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
23730                 fr="% itération autorisée en plus"),
23731            ),
23732            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
23733            OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
23734            NOM_CHAM        =SIMP(statut='f',typ='TXM',),
23735            NOM_CMP         =SIMP(statut='f',typ='TXM',),
23736            VALE            =SIMP(statut='f',typ='R'),
23737          ),
23738          NEWTON          =FACT(statut='d',
23739            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
23740            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
23741            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
23742            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
23743            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
23744            REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
23745            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
23746          ),
23747          RECH_LINEAIRE   =FACT(statut='f',
23748            METHODE         =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE") ),
23749            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
23750            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
23751            ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
23752            PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
23753            RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
23754            RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
23755            RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.),
23756          ),
23757          PILOTAGE        =FACT(statut='f',
23758            regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
23759            TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
23760            COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
23761            ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
23762            ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
23763            ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
23764            ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
23765            PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23766            SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
23767            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
23768            GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
23769            MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
23770            NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
23771            GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
23772            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
23773                          ),
23774          CONVERGENCE     =FACT(statut='d',
23775            regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
23776            b_refe_rela    =BLOC(condition = "RESI_REFE_RELA != None",
23777              regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE','FORC_REFE',
23778                                   'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),),
23779              FORC_REFE       =SIMP(statut='f',typ='R',min=2,max=2,
23780                 fr="Force et Moment de référence pour les éléments de structure."),
23781              SIGM_REFE       =SIMP(statut='f',typ='R'),
23782              EPSI_REFE       =SIMP(statut='f',typ='R'),
23783              FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
23784              FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
23785              FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
23786              VARI_REFE       =SIMP(statut='f',typ='R'),
23787            ),
23788
23789
23790
23791            RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
23792            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
23793            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
23794            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
23795            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
23796            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23797          ),
23798          SOLVEUR         =FACT(statut='d',
23799            METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI","PETSC") ),
23800           
23801            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
23802              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23803            ),
23804            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
23805              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
23806            ),
23807            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI'",
23808                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factoriser",
23809              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
23810              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
23811            ),
23812            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
23813              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
23814              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
23815              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23816              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
23817              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
23818            ),
23819            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
23820              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
23821              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
23822              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
23823              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
23824              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
23825              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
23826              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
23827                                    into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
23828              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
23829              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
23830              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
23831              ),
23832            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
23833              VARIANTE        =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
23834              PRE_COND        =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
23835              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
23836              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-8),
23837              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
23838            ),
23839            b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
23840              PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
23841              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
23842              RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
23843              NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23844              REAC_RESI       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23845              TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
23846              NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23847              NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23848              PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
23849              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
23850              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23851              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
23852              INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
23853              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
23854              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
23855              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
23856            ),
23857            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
23858          ),
23859          ARCHIVAGE       =FACT(statut='f',
23860            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
23861                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
23862            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
23863            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
23864            PAS_ARCH        =SIMP(statut='f',typ='I' ),
23865            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
23866            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
23867            NUME_INIT       =SIMP(statut='f',typ='I'),
23868            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
23869            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
23870                                  into=("DEPL","SIEF_ELGA","VARI_ELGA","LANL_ELGA")),
23871          ),
23872          OBSERVATION     =FACT(statut='f',max='**',
23873            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
23874            SUIVI_DDL       =SIMP(statut='f',typ='TXM',defaut="NON",max=1,into=("OUI","NON")),
23875          b_suivi          =BLOC(condition = "SUIVI_DDL == 'OUI' ",
23876                                 regles=(UN_PARMI('NOEUD','MAILLE','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'),
23877                                                   PRESENT_PRESENT('MAILLE','POINT'),),
23878              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23879              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23880              POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
23881              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23882              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
23883                                    into=("DEPL","VITE","ACCE","SIEF_ELGA",
23884                                          "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
23885              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
23886              NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
23887              VALE_MAX        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),
23888              VALE_MIN        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ),),
23889          b_non_suivi      =BLOC(condition = "SUIVI_DDL == 'NON' ",
23890                                 regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),PRESENT_PRESENT('MAILLE','POINT'),),
23891              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
23892              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
23893              POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
23894              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
23895              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
23896                                               "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")),
23897              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
23898              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
23899              PAS_OBSE        =SIMP(statut='f',typ='I'),
23900              LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
23901              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
23902              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),),
23903          ),
23904
23905          AFFICHAGE      = FACT(statut='f',max=16,
23906
23907             UNITE       = SIMP(statut='f',typ='I',val_min=1),
23908
23909             LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
23910             PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
23911             LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
23912
23913             NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
23914                                 into=("STANDARD","MINIMUM",
23915                                       "ITER_NEWT",
23916                                       "INCR_TPS",
23917                                       "RESI_RELA","RELA_NOEU",
23918                                       "RESI_MAXI","MAXI_NOEU",
23919                                       "RESI_REFE","REFE_NOEU",
23920                                       "RELI_ITER","RELI_COEF",
23921                                       "PILO_PARA",
23922                                       "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
23923                                       "MATR_ASSE",
23924                                       "ITER_DEBO",
23925                                       "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
23926                                       "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
23927                                       "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI",
23928                                      ),
23929                                ),
23930             b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
23931                     NOM_COLONNE == 'RESI_MAXI' or\
23932                     NOM_COLONNE == 'RESI_REFE' or\
23933                     NOM_COLONNE == 'CTCD_GEOM' or\
23934                     NOM_COLONNE == 'STANDARD' ",
23935                             INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
23936                           ),
23937          ),
23938
23939
23940
23941          CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
23942            NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
23943            CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10),
23944                             fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
23945            INST_CALCUL       =SIMP(statut='f',typ='TXM',defaut="LISTE_ARCHIVAGE",into=("LISTE_ARCHIVAGE","TOUT_PAS",) ),
23946          ),
23947            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
23948                                fr="Liste des paramètres de sensibilité",
23949                                ang="List of sensitivity parameters"),
23950          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
23951          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
23952  )
23953
23954 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
23955 #            CONFIGURATION MANAGEMENT OF EDF VERSION
23956 # ======================================================================
23957 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
23958 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
23959 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
23960 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
23961 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
23962 #                                                                       
23963 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
23964 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
23965 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
23966 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
23967 #                                                                       
23968 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
23969 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
23970 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
23971 # ======================================================================
23972 # RESPONSABLE COURTOIS M.COURTOIS
23973
23974 from Macro.test_fichier_ops import test_fichier_ops
23975
23976 TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops,
23977                    UIinfo={"groupes":("Impression",)},
23978                    fr="Tester la non régression de fichiers produits par des commandes aster",
23979    FICHIER          =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)),
23980    EXPR_IGNORE      =SIMP(statut='f',typ='TXM',max='**',
23981                           fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"),
23982
23983    TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut='SOMM',into=("SOMM_ABS","SOMM","MAXI","MINI","MAXI_ABS","MINI_ABS")),
23984    NB_VALE         =SIMP(statut='o',typ='I',),
23985    VALE            =SIMP(statut='f',typ='R',max='**'),
23986    VALE_K          =SIMP(statut='f',typ='TXM'),
23987
23988    CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
23989    PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
23990
23991    REFERENCE       =SIMP(statut='f',typ='TXM',
23992                          into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
23993
23994    b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
23995       VERSION         =SIMP(statut='f',typ='TXM' ),
23996    ),
23997
23998    INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
23999 )
24000 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
24001 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24002 # ======================================================================
24003 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24004 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24005 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24006 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24007 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24008 #
24009 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24010 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24011 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24012 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24013 #
24014 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24015 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24016 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24017 # ======================================================================
24018 # RESPONSABLE COURTOIS M.COURTOIS
24019 TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,
24020             fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
24021             UIinfo={"groupes":("Impression",)},
24022          TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24023          VALEUR          =FACT(statut='f',max='**',
24024                                fr="Tester la valeur d une fonction ou d une nappe",
24025            regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',),
24026                    DERIVABLE('FONCTION'),),
24027            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
24028            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
24029                                  fr="Paramètre de sensibilité.",
24030                                  ang="Sensitivity parameter"),
24031            NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
24032            VALE_PARA       =SIMP(statut='o',typ='R'  ,validators=NoRepeat(),max=2),
24033            VALE_REFE       =SIMP(statut='f',typ='R',max='**' ),
24034            VALE_REFE_C     =SIMP(statut='f',typ='C',max='**' ),
24035            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24036            CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
24037                                  defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24038            PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
24039                                  defaut= 1.E-3 ),
24040            REFERENCE       =SIMP(statut='f',typ='TXM',
24041                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
24042            b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", 
24043              VERSION         =SIMP(statut='f',typ='TXM' ),
24044            ),
24045          ),
24046          ATTRIBUT        =FACT(statut='f',max='**',
24047                                fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
24048            FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
24049            PARA            =SIMP(statut='f',typ='R' ),
24050            CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24051            PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
24052            ATTR            =SIMP(statut='o',typ='TXM',
24053                                  into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
24054                                        "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
24055            ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
24056            REFERENCE       =SIMP(statut='f',typ='TXM',
24057                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
24058            b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
24059              VERSION         =SIMP(statut='f',typ='TXM' ),
24060            ),
24061          ),
24062          TABL_INTSP      =FACT(statut='f',max='**',
24063                                fr="Tester la valeur d une fonction contenue dans une table interspectrale",
24064            regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
24065            INTE_SPEC       =SIMP(statut='o',typ=table_fonction),
24066            NOEUD_I         =SIMP(statut='f',typ=no),
24067            NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
24068            b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", 
24069              NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
24070            ),
24071            b_noeud_i = BLOC (condition = "NOEUD_I != None",             
24072              NOEUD_J         =SIMP(statut='o',typ=no),
24073              NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
24074              NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
24075            ),
24076            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
24077            VALE_PARA       =SIMP(statut='o',typ='R' ),
24078            VALE_REFE_C     =SIMP(statut='o',typ='C',max='**' ),
24079            CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
24080                                  defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24081            PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
24082                                  defaut= 1.E-3 ),
24083            REFERENCE       =SIMP(statut='f',typ='TXM',
24084                                  into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
24085            b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
24086              VERSION         =SIMP(statut='f',typ='TXM' ),
24087            ),
24088          ),
24089 )  ;
24090 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
24091 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24092 # ======================================================================
24093 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24094 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24095 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24096 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24097 # (AT YOUR OPTION) ANY LATER VERSION.
24098 #
24099 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24100 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24101 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24102 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24103 #
24104 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24105 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24106 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24107 #
24108 #
24109 # ======================================================================
24110 # RESPONSABLE LEFEBVRE J.P.LEFEBVRE
24111 TEST_RESU=PROC(nom="TEST_RESU",op=23,
24112             UIinfo={"groupes":("Impression",)},
24113          fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
24114          regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')),
24115
24116          CHAM_NO         =FACT(statut='f',max='**',
24117            regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
24118                    EXCLUS('NOEUD','GROUP_NO'),
24119                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
24120                    PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
24121                    UN_PARMI('VALE','VALE_I','VALE_C'),),
24122            CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
24123            NOEUD           =SIMP(statut='f',typ=no   ),
24124            GROUP_NO        =SIMP(statut='f',typ=grno ),
24125            NOM_CMP         =SIMP(statut='f',typ='TXM'),
24126            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
24127            VALE            =SIMP(statut='f',typ='R',max='**'),
24128            VALE_I          =SIMP(statut='f',typ='I',max='**'),
24129            VALE_C          =SIMP(statut='f',typ='C',max='**'),
24130            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24131            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
24132            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
24133            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
24134                                                             "NON_REGRESSION","AUTRE_ASTER")),
24135            VERSION         =SIMP(statut='f',typ='TXM'),
24136          ),
24137
24138          CHAM_ELEM       =FACT(statut='f',max='**',
24139            regles=(UN_PARMI('MAILLE','TYPE_TEST',),
24140                    EXCLUS('NOEUD','GROUP_NO','POINT'),
24141                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
24142                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
24143                    PRESENT_PRESENT('POINT','NOM_CMP'),
24144                    UN_PARMI('VALE','VALE_I','VALE_C'), ),
24145            CHAM_GD         =SIMP(statut='o',typ=cham_elem),
24146            MAILLE          =SIMP(statut='f',typ=ma),
24147            POINT           =SIMP(statut='f',typ='I' ),
24148            SOUS_POINT      =SIMP(statut='f',typ='I'),
24149            NOEUD           =SIMP(statut='f',typ=no),
24150            GROUP_NO        =SIMP(statut='f',typ=grno),
24151            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
24152            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
24153            VALE            =SIMP(statut='f',typ='R',max='**' ),
24154            VALE_I          =SIMP(statut='f',typ='I',max='**' ),
24155            VALE_C          =SIMP(statut='f',typ='C',max='**' ),
24156            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24157            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
24158            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24159            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
24160                                                             "NON_REGRESSION","AUTRE_ASTER") ),
24161            VERSION         =SIMP(statut='f',typ='TXM' ),
24162          ),
24163
24164          RESU            =FACT(statut='f',max='**',
24165            regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
24166                    UN_PARMI('NOM_CHAM','PARA'),
24167                    PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
24168                    PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
24169                    EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
24170                    PRESENT_PRESENT('NOEUD','NOM_CMP'),
24171                    PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
24172                    PRESENT_PRESENT('POINT','NOM_CMP'),
24173                    UN_PARMI('VALE','VALE_I','VALE_C'),
24174                    DERIVABLE('RESULTAT'),),
24175            RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
24176            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
24177                                  fr="Paramètre de sensibilité.",
24178                                  ang="Sensitivity parameter"),
24179            NUME_ORDRE      =SIMP(statut='f',typ='I'),
24180            INST            =SIMP(statut='f',typ='R'),
24181            FREQ            =SIMP(statut='f',typ='R'),
24182            NUME_MODE       =SIMP(statut='f',typ='I'),
24183            NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
24184            NOM_CAS         =SIMP(statut='f',typ='TXM'),
24185            ANGL            =SIMP(statut='f',typ='R'),
24186            PARA            =SIMP(statut='f',typ='TXM'),
24187            NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
24188            NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
24189            MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
24190            NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
24191            GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
24192            POINT           =SIMP(statut='f',typ='I'),
24193            SOUS_POINT      =SIMP(statut='f',typ='I'),
24194            TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
24195            VALE            =SIMP(statut='f',typ='R',max='**'),
24196            VALE_I          =SIMP(statut='f',typ='I',max='**'),
24197            VALE_C          =SIMP(statut='f',typ='C',max='**'),
24198            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24199            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
24200            PRECISION       =SIMP(statut='f',typ='R',max=2),
24201            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
24202                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
24203            VERSION         =SIMP(statut='f',typ='TXM' ),
24204          ),
24205
24206          GENE            =FACT(statut='f',max='**',
24207            regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,),
24208            RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
24209            b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene",
24210              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
24211            ),
24212            b_mode          =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)",
24213                             regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
24214                                     UN_PARMI('NOM_CHAM','PARA'),
24215                                     PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
24216              NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
24217              NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
24218              PARA            =SIMP(statut='f',typ='TXM'),
24219              NUME_ORDRE      =SIMP(statut='f',typ='I'),
24220              NUME_MODE       =SIMP(statut='f',typ='I'),
24221              FREQ            =SIMP(statut='f',typ='R'),
24222            ),
24223            b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
24224                             regles=(UN_PARMI('NUME_ORDRE','INST') ,),
24225              NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
24226              NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
24227              NUME_ORDRE      =SIMP(statut='f',typ='I'),
24228              INST            =SIMP(statut='f',typ='R'),
24229            ),
24230            VALE            =SIMP(statut='f',typ='R',max='**'),
24231            VALE_I          =SIMP(statut='f',typ='I',max='**'),
24232            VALE_C          =SIMP(statut='f',typ='C',max='**'),
24233            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24234            CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
24235            PRECISION       =SIMP(statut='f',typ='R',max=2),
24236            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
24237                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
24238            VERSION         =SIMP(statut='f',typ='TXM' ),
24239          ),
24240
24241          OBJET           =FACT(statut='f',max='**',
24242            regles=(UN_PARMI('S_I','S_R',),
24243                    UN_PARMI('VALE','VALE_I','VALE_C','S_R','S_I'),),
24244            NOM             =SIMP(statut='o',typ='TXM'),
24245            S_R             =SIMP(statut='f',typ='R'),
24246            S_I             =SIMP(statut='f',typ='I'),
24247            VALE            =SIMP(statut='f',typ='R'),
24248            VALE_I          =SIMP(statut='f',typ='I'),
24249            VALE_C          =SIMP(statut='f',typ='C'),
24250            VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24251            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
24252            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
24253            REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
24254                                                             "NON_REGRESSION","AUTRE_ASTER",) ),
24255            VERSION         =SIMP(statut='f',typ='TXM' ),
24256          ),
24257 )  ;
24258 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
24259 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24260 # ======================================================================
24261 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24262 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24263 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24264 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
24265 # (AT YOUR OPTION) ANY LATER VERSION.                                 
24266 #
24267 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
24268 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
24269 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
24270 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
24271 #
24272 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
24273 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
24274 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
24275 # ======================================================================
24276 # RESPONSABLE COURTOIS M.COURTOIS
24277 TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
24278             UIinfo={"groupes":("Impression",)},
24279          fr="Tester une cellule ou une colonne d'une table",
24280          regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),
24281                  DERIVABLE('TABLE'),),
24282 #  concept table_sdaster à tester
24283          TABLE           =SIMP(statut='o',typ=table_sdaster),
24284
24285          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
24286                                  fr="Paramètre de sensibilité.",
24287                                  ang="Sensitivity parameter"),
24288          FILTRE          =FACT(statut='f',max='**',
24289            NOM_PARA        =SIMP(statut='o',typ='TXM' ),
24290            CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
24291                                  into=("EQ","LT","GT","NE","LE","GE","VIDE",
24292                                        "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
24293            b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
24294               regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
24295               VALE            =SIMP(statut='f',typ='R',),
24296               VALE_I          =SIMP(statut='f',typ='I',),
24297               VALE_C          =SIMP(statut='f',typ='C',),
24298               VALE_K          =SIMP(statut='f',typ='TXM' ),),
24299
24300            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24301            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
24302          ),
24303          TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
24304          NOM_PARA        =SIMP(statut='o',typ='TXM' ),
24305          VALE            =SIMP(statut='f',typ='R',max='**' ),
24306          VALE_I          =SIMP(statut='f',typ='I',max='**' ),
24307          VALE_C          =SIMP(statut='f',typ='C',max='**' ),
24308          VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24309          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24310          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
24311          REFERENCE       =SIMP(statut='f',typ='TXM',
24312                                into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
24313          b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
24314              VERSION         =SIMP(statut='f',typ='TXM' ),
24315          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
24316          ),
24317 )  ;
24318 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
24319 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24320 # ======================================================================
24321 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24322 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24323 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24324 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24325 # (AT YOUR OPTION) ANY LATER VERSION.
24326 #
24327 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24328 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24329 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24330 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24331 #
24332 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24333 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24334 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24335 # ======================================================================
24336 # RESPONSABLE DURAND C.DURAND
24337 THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
24338             UIinfo={"groupes":("Résolution",)},
24339                    fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
24340          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
24341          MODELE          =SIMP(statut='o',typ=modele_sdaster),
24342          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
24343          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
24344          EXCIT           =FACT(statut='o',max='**',
24345            CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
24346            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24347          ),
24348          INCREMENT       =FACT(statut='f',
24349            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
24350                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
24351            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
24352            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
24353                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
24354            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
24355            INST_INIT       =SIMP(statut='f',typ='R'),
24356            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
24357            INST_FIN        =SIMP(statut='f',typ='R'),
24358            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
24359          ),
24360          ETAT_INIT       =FACT(statut='f',
24361            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
24362            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
24363            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
24364            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
24365            VALE            =SIMP(statut='f',typ='R'),
24366            NUME_ORDRE      =SIMP(statut='f',typ='I'),
24367            INST            =SIMP(statut='f',typ='R'),
24368            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24369            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24370            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
24371          ),
24372          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
24373                                fr="Liste des paramètres de sensibilité.",
24374                                ang="List of sensitivity parameters",
24375          ),
24376            SENS_INIT       =FACT(statut='f',
24377              regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
24378              STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24379              EVOL_THER       =SIMP(statut='f',typ=evol_ther),
24380              NUME_INIT       =SIMP(statut='f',typ='I'),
24381            ),
24382          SOLVEUR         =FACT(statut='d',
24383            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
24384            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
24385              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24386            ),
24387            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
24388              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24389            ),
24390            b_ldlt_mult      =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
24391                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
24392              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24393              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24394            ),
24395            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
24396              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
24397              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
24398              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24399              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
24400              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24401            ),
24402            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
24403              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
24404              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
24405              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
24406              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
24407              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
24408              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
24409              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
24410                                    into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
24411              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
24412              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
24413              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
24414              ),
24415
24416            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
24417              VARIANTE        =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
24418              PRE_COND        =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
24419              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24420              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-8),
24421              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
24422            ),
24423          ),
24424          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
24425          ARCHIVAGE       =FACT(statut='f',
24426            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
24427                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
24428            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
24429            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
24430            PAS_ARCH        =SIMP(statut='f',typ='I' ),
24431            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
24432            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
24433            NUME_INIT       =SIMP(statut='f',typ='I'),
24434            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
24435            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
24436                                  into=("VARI",)),
24437          ),
24438          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24439          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
24440 )  ;
24441 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
24442 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24443 # ======================================================================
24444 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24445 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24446 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24447 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24448 # (AT YOUR OPTION) ANY LATER VERSION.
24449 #
24450 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24451 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24452 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24453 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24454 #
24455 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24456 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24457 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24458 # ======================================================================
24459 # RESPONSABLE DURAND C.DURAND
24460 THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
24461             UIinfo={"groupes":("Résolution",)},
24462                    fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
24463                       +" stationnaire ou transitoire" ,
24464          regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
24465          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
24466          CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
24467          CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
24468          COMP_THER_NL    =FACT(statut='d',max='**',
24469            RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
24470                                  into=("THER_NL",
24471                                        "THER_HYDR",
24472                                        "SECH_GRANGER",
24473                                        "SECH_MENSI",
24474                                        "SECH_BAZANT",
24475                                        "SECH_NAPPE"
24476                                        ) ),
24477          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
24478            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
24479            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
24480            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
24481          ),
24482          EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
24483          EXCIT           =FACT(statut='o',max='**',
24484            CHARGE          =SIMP(statut='o',typ=char_ther),
24485            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
24486          ),
24487          INCREMENT       =FACT(statut='f',
24488            regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
24489                    EXCLUS('NUME_INST_FIN','INST_FIN'),),
24490            LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
24491            EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
24492                                  into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
24493            NUME_INST_INIT  =SIMP(statut='f',typ='I'),
24494            INST_INIT       =SIMP(statut='f',typ='R'),
24495            NUME_INST_FIN   =SIMP(statut='f',typ='I'),
24496            INST_FIN        =SIMP(statut='f',typ='R'),
24497            PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
24498            # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
24499            SUBD_METHODE    =SIMP( statut='f',typ='TXM',
24500               into =("AUCUNE","UNIFORME","EXTRAPOLE"),
24501               defaut="AUCUNE",
24502               fr="Méthode de subdivision des pas de temps en cas de non-convergence"
24503            ),
24504            b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
24505              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
24506              SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
24507                 fr="Coefficient multiplicateur de la 1ère subdivision"),
24508              SUBD_PAS       =SIMP(statut='f',typ='I',defaut=4,val_min=2,
24509                 fr="Nombre de subdivision d'un pas de temps"),
24510              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
24511                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
24512              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
24513                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
24514            ),
24515            b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
24516              regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
24517              SUBD_OPTION    =SIMP(statut='f',typ='TXM',
24518                 into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
24519                 defaut="IGNORE_PREMIERES",
24520                 fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
24521              SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
24522                 fr="Les n premières itérations sont ignorées pour l'extrapolation"),
24523              SUBD_ITER_FIN  =SIMP(statut='c',typ='I',defaut=8,val_min=3,
24524                 fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
24525              SUBD_PAS       =SIMP(statut='c',typ='I',defaut=4,val_min=2,
24526                 fr="Nombre de subdivision d'un pas de temps en cas divergence"),
24527              SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
24528                 fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
24529              SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
24530                 fr="Pas de temps en dessous duquel on ne subdivise plus"),
24531              SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
24532                 fr="% itération autorisée en plus"),
24533            ),
24534            # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
24535          ),
24536          ETAT_INIT       =FACT(statut='f',
24537            regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
24538            STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
24539            EVOL_THER       =SIMP(statut='f',typ=evol_ther),
24540            CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
24541            VALE            =SIMP(statut='f',typ='R'),
24542            NUME_ORDRE      =SIMP(statut='f',typ='I'),
24543            INST            =SIMP(statut='f',typ='R'),
24544            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24545            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
24546            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
24547          ),
24548          NEWTON          =FACT(statut='d',
24549            REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24550            RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24551            ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
24552          ),
24553          CONVERGENCE     =FACT(statut='d',
24554            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
24555            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
24556            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
24557          ),
24558          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
24559                                fr="Liste des paramètres de sensibilité.",
24560                                ang="List of sensitivity parameters",
24561          ),
24562          SOLVEUR         =FACT(statut='d',
24563            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
24564            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale",
24565              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24566            ),
24567            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
24568              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24569            ),
24570            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
24571                                    fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
24572              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24573              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24574            ),
24575            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
24576              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
24577              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I'  ,defaut= 0 ),
24578              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24579              RESI_RELA       =SIMP(statut='f',typ='R'  ,defaut= 1.E-6 ),
24580              NMAX_ITER       =SIMP(statut='f',typ='I'  ,defaut= 0 ),
24581            ),
24582            b_mumps        =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
24583              TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
24584              PRETRAITEMENTS  =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
24585              RENUM           =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
24586              ELIM_LAGR2      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
24587              PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=10,),
24588              RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.0,),
24589              PARALLELISME    =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
24590                                    into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
24591              PARTITION       =SIMP(statut='f',typ=sd_feti_sdaster),
24592              CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
24593              CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
24594              ),
24595
24596            b_petsc          =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
24597              VARIANTE        =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
24598              PRE_COND        =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
24599              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24600              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-8),
24601              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= -1 ),
24602            ),
24603            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
24604          ),
24605          PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
24606          ARCHIVAGE       =FACT(statut='f',
24607            regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
24608                    EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
24609            LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
24610            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
24611            PAS_ARCH        =SIMP(statut='f',typ='I' ),
24612            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
24613            ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
24614            NUME_INIT       =SIMP(statut='f',typ='I'),
24615            DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
24616            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
24617                                  into=("VARI",)),
24618          ),
24619          OBSERVATION     =FACT(statut='f',max='**',
24620            NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
24621            SUIVI_DDL       =SIMP(statut='c',typ='TXM',defaut="NON",max=1,into=("NON",)),
24622          b_non_suivi      =BLOC(condition = "SUIVI_DDL == 'NON' ",
24623                                 regles=(UN_PARMI('NOEUD','GROUP_NO')),
24624              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
24625              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
24626              NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("TEMP",)),
24627              INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
24628              LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
24629              PAS_OBSE        =SIMP(statut='f',typ='I'),
24630              LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
24631              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
24632              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),),
24633          ),
24634          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
24635          OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
24636                                into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
24637          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
24638
24639 )  ;
24640 #& MODIF COMMANDE  DATE 21/04/2008   AUTEUR LEFEBVRE J-P.LEFEBVRE 
24641 #            CONFIGURATION MANAGEMENT OF EDF VERSION
24642 # ======================================================================
24643 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
24644 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
24645 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
24646 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
24647 # (AT YOUR OPTION) ANY LATER VERSION.
24648 #
24649 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
24650 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
24651 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
24652 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
24653 #
24654 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
24655 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
24656 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
24657 # ======================================================================
24658 # RESPONSABLE DURAND C.DURAND
24659 THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
24660                      fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
24661                         +" stationnaire avec chargement mobile",
24662                      reentrant='n',
24663             UIinfo={"groupes":("Résolution",)},
24664          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
24665          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
24666          CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
24667          EXCIT           =FACT(statut='o',max='**',
24668            CHARGE          =SIMP(statut='o',typ=char_ther ),
24669            FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
24670          ),
24671          ETAT_INIT       =FACT(statut='f',
24672            EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
24673            NUME_ORDRE      =SIMP(statut='f',typ='I',defaut= 0 ),
24674          ),
24675          CONVERGENCE     =FACT(statut='d',
24676            CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
24677            CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
24678            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
24679            ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24680          ),
24681          SOLVEUR         =FACT(statut='d',
24682            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
24683            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
24684              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
24685            ),
24686            b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
24687              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
24688            ),
24689            b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
24690                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
24691              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
24692              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
24693            ),
24694            b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
24695              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
24696              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
24697              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
24698              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
24699              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
24700            ),
24701            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
24702          ),
24703          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
24704          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
24705 )  ;
24706
24707
24708